我正在使用Asterisk PBX调用软件电话,我使用以下命令:“发起SIP/100分机4004”,在拨号方案中,我必须获取CALLERID变量,但是在这种情况下,它始终为空!

附言:如果我从软件电话(100)调用分机(4004),则会设置CALLERID,我可以使用${CALLERID(num)}来获取。

在原始情况下如何获取来电显示?

最佳答案

发起调用时,您可以自行设置调用者ID。有两种方法可以执行此操作-自己在原始应用程序中,或在拨号计划中。下面是一个示例。

Action: Originate
Channel: local/12345@outgoing
Application: Echo
CallerID: Asterisk <12345>

extensions.conf:
[outgoing]
exten => 12345,1,NoOp()
same => n,Verbose(1, Outgoing Caller ID: {$CALLERID(all)})
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()

或者您可以执行以下操作:
exten => 12345,1,NoOp()
same => n,Set(CALLERID(num)=54321)
same => n,Set(CALLERID(name)=Asterisk)
same => n,Verbose(1, Outgoing Caller ID: {$CALLERID(all)})
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()

您应该在AMI源中看到设置的调用者ID,或者如果在拨号方案中选择覆盖它,则看到这些值。

有关更多信息,请参见Manager Action OriginateCallerID Function

关于sip - Asterisk : originate call doesn't set the CALLERID in the dialplan,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10045451/

10-13 05:17