2013-08-26 34 views
0

我开发了一个Web应用程序,允许用户只需点击一下即可通过网络向基于Asterisk的VoiP系统拨打电话(它就像点击通话一样) 但是,来自应用程序是从同一个SIP帐户发出的。所以我创建了3个字段来输入一些信息(姓名,电话号码,电子邮件),这些信息在拨打电话之前放入Asterisk数据库。 我想要的是,可能会显示名称和电话号码,而不是从中启动呼叫的SIP帐户。 如何使用AMI来允许此功能。Web应用程序和AMI之间的交互星号

问候

回答

0

是否使用“动作:产”从渠道的延伸?

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

如果是

你需要使用一个AGI或Mysql Function从数据库获取值,然后设置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!

现在你可以VAR1,VAR2在你的extensions.conf,并设置来电显示(姓名,NUM)

您仍然可以设置“来电显示”参数设置您的手机号码,如:

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

从不使用mysql函数,它被删除。用户REALTIME而不是那个。 – arheops

相关问题