Asterisk Dialplan: Как определить, когда на звонок успешно ответили? - PullRequest
0 голосов
/ 23 мая 2018

Мне очень трудно выяснить, есть ли триггер или способ продолжить с действия Набрать , которое позволяет вам определить, получен ли ответ на вызов.Кажется, что Набрать не отвечает, пока не зависнет, не занят или перегружен .Какое действие или событие, которое я пропускаю, могло бы сказать мне, когда другой конец линии фактически отвечает на звонок?Надеюсь, что-то вроде этого доступно, что я просто скучаю:

exten => s,7,Dial(${ARG1},20,rt)       ; Ring the interface, 20 seconds maximum
exten => s,8,Goto(s-${DIALSTATUS},1)                    
; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-ANSWER(do something)

Ответы [ 2 ]

0 голосов
/ 16 августа 2018

Вы также можете сделать Gosub при ответе на звонок:

asterisk*cli> core show application Dial
...
    U(x[^arg[^...]]):
        x - Name of the subroutine to execute via Gosub
        arg - Arguments for the Gosub routine
Execute via Gosub the routine <x> for the *called* channel before connecting to
the calling channel. Arguments can be specified to the Gosub using '^' as a
delimiter. The Gosub routine can set the variable ${GOSUB_RESULT} to specify
the following actions after the Gosub returns
0 голосов
/ 23 мая 2018

Наконец-то разобрался.Это включает вызов флага M в вызове действия Dial .Вызвав флаг M , вы можете вызвать пользовательский макрос, который будет выполнен сразу после того, как вызов будет подключен / получен ответ.

Пример: Набрать номер (SIP / 200,60, M (myCustomMacro))

Надеюсь, это поможет всем, кто также заинтересовался.

...