2013-08-26 36 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

相關問題