我正在使用Asterisk 11.当我尝试呼出时,我遇到了获取频道名称的问题。 通常,当被叫方拿起他/她的电话时,我可以获得频道名称。但现在,我希望在拨出后立即获得频道名称。我可以在屏幕上看到它:
Called SIP/7146991234@64.195.139.88
- SIP/64.195.139.88-00000001 is ringing
-- SIP/64.195.139.88-00000001 is making progress passing it to SIP/8001-00000000
我知道频道名称是:“SIP / 64.195.139.88-00000001”, 但我不知道如何从编码或任何其他方式获得它。 请帮我。 非常感谢你!
答案 0 :(得分:2)
您可以使用被叫频道上的Pre-Dial Handler获取Asterisk 11中出站频道的名称。
[default]
exten => pre_dial_handler,1,NoOp()
same => n,Verbose(1, Channel is ${CHANNEL})
same => n,Return()
exten => dial_example,1,NoOp()
same => n,Dial(SIP/alice,,b(default^pre_dial_handler^1)
这将在通道SIP / alice-XXXXXXXX上执行子程序pre_dial_handler,而不是实际执行拨号操作的任何通道。子程序在创建后立即在出站通道上执行,但在对其进行任何操作之前,例如进行呼叫尝试。
答案 1 :(得分:0)
您无法在拨号方案中获取出站频道的频道名称
原因:当时还没有创建。
但您可以通过检查变量BRDIGEDPEERNAME或listnen事件来获取外部应用程序。
此外,您可以在cmd_dial内部宏(M param)中获取两个通道