我真的很难弄清楚是否有触发器或从拨号操作继续的方法,它允许您检测呼叫是否已应答。似乎拨号在挂断、忙或拥塞之前没有响应。当线路的另一端实际应答呼叫时,我错过了什么操作或事件来告诉我?希望有像这样的可用的东西,我只是错过了:
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)
发布于 2018-05-23 22:23:54
终于想明白了。它涉及在拨号动作调用中调用M标志。通过调用M标志,可以调用一个自定义宏,该宏将在呼叫连接/应答后立即执行。
例如:拨号(SIP/200,60,M(myCustomMacro))
希望这对任何好奇的人都有帮助。
发布于 2018-08-16 05:11:30
您还可以在呼叫应答时执行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
https://stackoverflow.com/questions/50479282
复制相似问题