星号:发起呼叫不设置CALLERID在拨号方案(Asterisk : originate call

2019-09-16 09:34发布

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

PS:如果我呼叫分机(4004),从软电话(100),来电显示设置,我可以用得到它: ${CALLERID(num)}

如何获得的起源情况下,来电显示?

Answer 1:

当你发起呼叫,自己设置来电显示。 这样做有两种方式 - 无论是在发起申请自己,或者在拨号方案。 这样的一个例子是下面。

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起源,或者,如果您选择覆盖它的拨号方案,这些值。

欲了解更多信息,请参阅管理行动发源于和来电显示功能 。



Answer 2:

我知道这是迟到的方式,但如果你在Asterisk 1.8发源于应用只是不让它正常。

我问过之前的论坛,他们说该功能将在以后添加。 所以我所做的就是修改app_originate.c以允许通过编号和名称。

下面是我写了去年的一个: https://github.com/cmendes0101/asterisk-originate-callerid

一直在生产了一年多,并一直工作良好。 被写为1.8。 它所以如果你使用不同的版本,你可以简单的差异的变化,使这些小的变化,以您的版本做到这一点是很容易修改。



Answer 3:

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

  • 我打电话给我的extention从PHP脚本(发起SIP / 100分机777)
  • 我写我的扩展到一个文本文件(file_put_contents)
  • 然后我在星号拨号计划读它,并且设置该变量作为呼叫者ID设置(CALLERID(NUM)= $ {caller_id}

我没有找到另一种解决方案。



文章来源: Asterisk : originate call doesn't set the CALLERID in the dialplan
标签: sip asterisk