0

我开发了一个 Web 应用程序,它允许人们通过单击从 Web 向基于 Asterisk 的 VoiP 系统进行呼叫(就像单击呼叫一样)但是来自该应用程序的所有呼叫都是从同一个 SIP 帐户发出的. 所以我创建了 3 个字段来输入一些信息(姓名、电话号码、电子邮件),这些信息在拨打电话之前被放入 Asterisk 数据库。我想要的是可以显示姓名和电话号码,而不是发起呼叫的 SIP 帐户。如何使用 AMI 来启用此功能。

问候

4

1 回答 1

0

您是否正在使用从频道到扩展的“操作:起源”?

Action: Originate
Channel: SIP/1001
Context: default
Exten: 1000
Priority: 1
Timeout: 30000

如果是

您将需要使用一个 AGI 或Mysql 函数从数据库中获取值,然后设置CALLERID(name,num)

在你的 extensions.conf 中设置

[default] 
exten => 1000,1,AGI(AGI_TO_GET_VALUES_FROM_DATABASE)    
exten => 1000,n,Set(${CALLERID(NUM)}=${VARIABLE_NUM_FORM_AGI})    
exten => 1000,n,Set(${CALLERID(NAME)}=${VARIABLE_NAME_FROM_AGI})    
exten => 1000,n,Dial(...)

另一种方法是设置“变量”参数并传递给您的扩展:

Action: Originate
Channel: SIP/1001
Context: default
Exten: 1000
Priority: 1
Timeout: 30000
Variable: var1=23|var2=24

将数据库中的值放入 var1,var2 中!

现在您可以在 extensions.conf 中获取 var1,var2 并设置 callerid(name,num)

您仍然可以设置“Callerid”参数来设置您的电话号码,例如:

Action: Originate
Channel: SIP/1001
Context: default
Exten: 1000
Priority: 1
Timeout: 30000
Callerid: 111111
Variable: var1=23|var2=24
于 2013-08-26T23:11:14.783 回答