VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

TRANSFER_CONTEXT и DAHDI (Возврат звонков)

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

shines2
Сообщения: 36
Зарегистрирован: 31 мар 2016, 17:53

Re: TRANSFER_CONTEXT и DAHDI (Возврат звонков)

Сообщение shines2 »

Нашел ответ на вопрос, как отловить переведенные через flash звонки. Суть в использовании GROUP() и анализе количества активных каналов в этой группе.
Аттендант трансфер тогда работает так: 101 звонит 102, попадает в контекст from_dahdi.
102 отвечает на вызов - отрабатывает макрос dialfromdahdi.
102 (или 101) давит на flash и вызывает 103, этот вызов в контексте from_dahdi, что приводит к увеличению GROUP_COUNT(102) и вызов переходит в контекст transfer, что и требовалось

Пример диалплана (возможны ошибки, т.к. не копировал из рабочего конфига, а писал прямо здесь)

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

[from_dahdi] 
exten => _XXX, 1, Noop(сюда попадают вызовы с dahdi )
same => n, Set(GROUP()=${CALLERID(num)}) ;посчитали активный канал для вызывающего
same => n, GotoIf($[${GROUP_COUNT(${CALLERID(num)})}>1];transfer)
same => n, Dial(DAHDI/g0/${EXTEN},,tTM(dialfromdahdi,${EXTEN}))

same => n(transfer), Goto(transfer,s,1)

[transfer]
...

[macro-dialfromdahdi]
Set(GROUP()=${ARG1}) ;посчитали активный канал для ответившего
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH