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

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

Добавлено: 20 апр 2016, 09:43
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}) ;посчитали активный канал для ответившего