星号:始发呼叫不在拨号方案中设置CALLERID

Ahm*_*abi 5 asterisk sip

我使用Asterisk PBX来呼叫软电话,我使用这个命令:"发起SIP/100扩展4004",在拨号方案中,我必须得到CALLERID变量,但在这种情况下,它总是空的!

PS:如果我从软电话(100)呼叫分机(4004),则设置CALLERID,我可以使用:${CALLERID(num)}.

如何在原始案例中获取来电显示?

Mat*_*dan 11

当您发起呼叫时,您自己设置来电显示.有两种方法可以做到这一点 - 无论是在原始应用程序中,还是在拨号方案中.下面是一个例子.

Action: Originate
Channel: local/12345@outgoing
Application: Echo
CallerID: Asterisk <12345>
Run Code Online (Sandbox Code Playgroud)

extensions.conf文件:

[outgoing]
exten => 12345,1,NoOp()
same => n,Verbose(1, Outgoing Caller ID: {$CALLERID(all)})
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做:

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()
Run Code Online (Sandbox Code Playgroud)

您应该在AMI originate中设置您的呼叫者ID,或者如果您选择在拨号方案中覆盖它,则应该看到这些值.

有关更多信息,请参阅Manager Action OriginateCallerID函数.

  • 实际上,你从来没有说过你用过的*,也没有说过*不是*AMI.AMI是每个人和他们的狗用来发起呼叫的东西. (2认同)

Ahm*_*abi 0

我现在使用的最终解决方案:

  • 我从 php 脚本调用我的分机(源自 SIP/100 分机 777)
  • 我将扩展名写入文本文件(file_put_contents)
  • 然后我在星号拨号计划中读取它,并将该变量设置为来电显示集(CALLERID(num)=${caller_id}

我没有找到其他解决方案。