2013-08-26 4 views
0

Я разработал веб-приложение, которое позволяет людям совершать вызовы из Интернета в систему VoiP на основе Asterisk одним щелчком мыши (это как звонок для вызова) Но все вызовы, которые из приложения выписываются с той же учетной записи SIP. Поэтому я создал 3 поля для ввода информации (имя, номер телефона, электронная почта), эти данные помещаются в базу данных Asterisk перед выполнением вызова. Что я хочу, так это то, что имя и номер телефона могут отображаться вместо учетной записи SIP, с которой инициирован вызов. Как использовать AMI для этой функции.Взаимодействие между веб-приложением AMI Asterisk

С уважением

ответ

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 и установить CallerID (имя, 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

Смежные вопросы