Страница 1 из 1

Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 09:35
Axribak
Здравствуйте!
Что ни как не могу понять, помогите разобраться!
Установлен Asterisk 1.8.25.0 на FreeBSD, подключен голосовой шлюз Dlink dvg-3016s и n-ое количество телефонов Escene ES320.
Настроил кнопки BLF на телефонах, настроил перехват в asterisk след образом:
extensions.conf
[office]
exten => _XXX,1,Dial(SIP/${EXTEN})
exten => _XXX,2,Hangup()
;exten => _*8XXX,1,Pickup(${EXTEN:2})
include => outgoing_calls
include => incoming_calls
include => pickup1
;
[pickup1]
exten => _*8XXX,1,Set(PICKUPMARK=${EXTEN:2})
exten => _*8XXX,2,Pickup(${EXTEN:2})

C такими настройками перехват работает, но ТОЛЬКО при звонках между моими SIP телефонами, если звонок поступает со шлюза (т.е. извне, с города) не хочет перехватывать, вот лог звонка с шлюза (звонок поступает с города);
-- Executing [0701@incoming_calls:1] Dial("SIP/701-00000000", "SIP/200") in new stack
-- Called SIP/200
-- SIP/200-00000001 is ringing
-- Executing [*8200@office:1] Set("SIP/202-00000002", "PICKUPMARK=200") in new stack
-- Executing [*8200@office:2] Pickup("SIP/202-00000002", "200") in new stack
[Dec 26 08:48:42] NOTICE[48119]: app_directed_pickup.c:313 pickup_exec: No target channel found for 200.
-- Auto fallthrough, channel 'SIP/202-00000002' status is 'UNKNOWN'

А это лог когда абоненты перехватывают внутри сети (между SIP аппаратами все проходит отлично!);
-- Executing [201@office:1] Dial("SIP/202-00000003", "SIP/201") in new stack
-- Called SIP/201
-- SIP/201-00000004 is ringing
-- Executing [*8201@office:1] Set("SIP/200-00000005", "PICKUPMARK=201") in new stack
-- Executing [*8201@office:2] Pickup("SIP/200-00000005", "201") in new stack
[Dec 26 08:56:41] NOTICE[48119]: app_directed_pickup.c:203 pickup_by_exten: SIP/201-00000004 pickup by SIP/200-00000005
-- SIP/200-00000005 answered SIP/202-00000003

Ни как не могу понять что ему не нравится!!!!

Re: Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 09:39
Vlad1983

Код: Выделить всё

asterisk -rx "core show application Dial"
ищем связанное с пикапом

Re: Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 09:54
Axribak
Про пикап ни слова, вообще для работы пикапа достаточно одной строчки exten => _*8XXX,2,Pickup(${EXTEN:2}), ну и группы для сипов прописать, при таком раскладе все работает также, с города не перехватывает!!((

И еще хотелось бы уточнить, при перехвате вообще важно откуда поступает звонок?? Я так понимаю что важно только куда поступает звонок и кто его хочет перехватить? Или я не прав?

Re: Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 10:15
Vlad1983

Код: Выделить всё

...
exten => _*8XXX,2,Pickup(${EXTEN:2}@office)

Re: Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 10:26
Axribak
Написал exten => _*8XXX,2,Pickup(${EXTEN:2}@office) Кстати такой вариант тоже пробовал, наверно так более правильно. Но результат тот же!! :oops:

-- Executing [0701@incoming_calls:1] Dial("SIP/701-00000000", "SIP/200") in new stack
-- Called SIP/200
-- SIP/200-00000001 is ringing
-- Executing [*8200@office:1] Pickup("SIP/202-00000002", "200@office") in new stack
[Dec 26 10:23:10] NOTICE[98279]: app_directed_pickup.c:313 pickup_exec: No target channel found for 200.
-- Auto fallthrough, channel 'SIP/202-00000002' status is 'UNKNOWN'

Re: Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 10:42
zzuz
Не смущает , что Вы перехватываете вызов в контексте incoming_calls , но сам перехват ориентирован на контекст office ?

Re: Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 10:44
Samael28
Так вам надо не
Axribak писал(а):200@office"
перехватывать, а
Axribak писал(а):0701@incoming_calls
Почитайте про Pickup еще раз :)

Re: Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 10:48
Vlad1983
менить надо чтоб с разными контекстами не морочиться

Код: Выделить всё

[incoming_calls]
exten => 0701,1,Set(_PICKUPMARK=200)
    same => n,Dial(SIP/200)

[pickup1]
exten => _*8XXX,1,Pickup(${EXTEN:2}@PICKUPMARK)

Re: Перехват звонка Pickup Asterisk.

Добавлено: 26 дек 2013, 11:27
Axribak
Параллельно на просторах интернета нашлись вот такие строки, так все заработало!!! :)

exten => _*8XXX,1,Set(GLOBAL(PICKUPMARK)=${EXTEN:2})
same => n,Pickup(${EXTEN:2}@PICKUPMARK)

Я только знакомлюсь с asterisk, и не до конца понял смысл этих строк, объясните пожалуйста на пальцах :roll:
Vlad1983 писал(а):менить надо чтоб с разными контекстами не морочиться

Код: Выделить всё

[incoming_calls]
exten => 0701,1,Set(_PICKUPMARK=200)
    same => n,Dial(SIP/200)

[pickup1]
exten => _*8XXX,1,Pickup(${EXTEN:2}@PICKUPMARK)
тут все более менее понятно!
Всем спасибо за помощь!!!! :!: