首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Asterisk Dialplan:如何检测呼叫已成功应答?

Asterisk Dialplan:如何检测呼叫已成功应答?
EN

Stack Overflow用户
提问于 2018-05-23 11:15:09
回答 2查看 3.7K关注 0票数 3

我真的很难弄清楚是否有触发器或从拨号操作继续的方法,它允许您检测呼叫是否已应答。似乎拨号挂断、忙或拥塞之前没有响应。当线路的另一端实际应答呼叫时,我错过了什么操作或事件来告诉我?希望有像这样的可用的东西,我只是错过了:

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2018-05-23 22:23:54

终于想明白了。它涉及在拨号动作调用中调用M标志。通过调用M标志,可以调用一个自定义宏,该宏将在呼叫连接/应答后立即执行。

例如:拨号(SIP/200,60,M(myCustomMacro))

希望这对任何好奇的人都有帮助。

票数 3
EN

Stack Overflow用户

发布于 2018-08-16 05:11:30

您还可以在呼叫应答时执行Gosub:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50479282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档