Инструменты пользователя

Инструменты сайта


faq:add_ppi

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
faq:add_ppi [2020/10/22 11:00]
Портнов Алексей создано
faq:add_ppi [2022/02/02 07:48] (текущий)
Портнов Алексей
Строка 1: Строка 1:
-====== ​При исходящем добавить P-Preferred-Identity заголовок ======+====== ​Добавить P-Preferred-Identity ​и Remote-Party-ID ​заголовок ======
  
 [[faq:​|Обратно к инструкциям]] [[faq:​|Обратно к инструкциям]]
Строка 8: Строка 8:
 Для решения задачи следует описать дополнительные контексты через меню [[:​custom-files|Кастомизация системных файлов]]. Править будем файл **extensions.conf**. Добавьте в конец файла следущий текст: Для решения задачи следует описать дополнительные контексты через меню [[:​custom-files|Кастомизация системных файлов]]. Править будем файл **extensions.conf**. Добавьте в конец файла следущий текст:
  
-<​code>​[SIP-12345-outgoing-custom] +<​code>​ 
-exten => _X!,1,​Ringing() +[SIP-1611151795-outgoing-custom] 
-  same => n,​Gosub(${ISTRANSFER}dial,​${EXTEN},​1) +exten => _X!,​1,​Dial(PJSIP/​${number}@SIP-${CUT(CONTEXT,​-,​2)},​600,​${DOPTIONS}TKU(dial_answer)b(dial_create_chan_${CUT(CONTEXT,​-,2)}_custom,s,1)) 
-  same => n,​Dial(PJSIP/​${number}@SIP-12345,​600,​${DOPTIONS}TKU(dial_answer)b(sipgate-create-chan,s,1)) +    same => n,​ExecIf($["​${DIALSTATUS}" = "ANSWER"]?Hangup()) 
-  same => n,​ExecIf($["​${ISTRANSFER}x" ​!= "x"​]?​Gosub(${ISTRANSFER}dial_hangup,​${EXTEN},​1)) +    same => n,​ExecIf($["​${DIALSTATUS}"​ = "​BUSY"​]?​Busy(2)) 
-  same => n,Set(pt1c_UNIQUEID=${EMPTY_VALUE}+    same => n,return 
-  same => n,​ExecIf($["​${BLINDTRANSFER}x" != "​x"​]?​AGI(check_redirect.php,${BLINDTRANSFER})) +     
-  same => n,Hangup(+[dial_create_chan_1611151795_custom]  
- +exten => s,1,Gosub(lua_${ISTRANSFER}dial_create_chan,​${EXTEN},​1) 
-[sipgate-create-chan] +    same => n,​Set(pt1c_is_dst=1)  
-exten => s,1,Gosub(dial_create_chan,​${EXTEN},1+    same => n,Set(OUTGOING_CID=74952293042
-  same => n,Set(PJSIP_HEADER(add,​P-Preferred-Identity)=<​sip:​74952293042@sipconnect.sipgate.de>​+    same => n,​ExecIf($["​${OUTGOING_CID}x" != "​x"​]?​Set(PJSIP_HEADER(add,P-Preferred-Identit)=<​sip:​${OUTGOING_CID}@127.0.0.1>​)) 
-  same => n,return +    same => n,ExecIf($["​${OUTGOING_CID}x"​ != "​x"​]?​Set(PJSIP_HEADER(add,​Remote-Party-ID)=<​sip:​${OUTGOING_CID}@127.0.0.1>​)) 
-  </​code>​+    ​same ​=> n,Set(__PT1C_SIP_HEADER=${UNDEFINED})  
 +    same => n,Set(CHANNEL(hangup_handler_wipe)=hangup_handler,​s,​1)  
 +    same => n,return 
 +</​code>​
  
 **Обратите внимание**:​ **Обратите внимание**:​
-  - Все вхождения строки "​**SIP-12345**" следует заменить на ID провайдера "**подсмотреть**" можно в адресной строке браузера при редактировании учетной записи в web интерфейсе MIKOPBX +  - Все вхождения строки "​**SIP-1611151795**" следует заменить на ID провайдера "**найти**" можно в адресной строке браузера при редактировании учетной записи в web интерфейсе MIKOPBX 
-  - Вместо "<​sip:​74952293042@sipconnect.sipgate.de>" следует задать требуемое значение заголовка ​PPI+  - Вместо "**<sip:${OUTGOING_CID}@127.0.0.1>**" следует задать требуемое значение заголовков 
 + 
 +При использовании модуля "​Группы пользователей":​ 
 + 
 +<​code>​ 
 + 
 +[SIP-1611151795-outgoing-ug-custom] 
 +exten => _X!,​1,​Dial(PJSIP/​${number}@SIP-${CUT(CONTEXT,​-,​2)},​600,​${DOPTIONS}TKU(dial_answer)b(dial_create_chan_custom,​s,​1)) 
 + same => n,​ExecIf($["​${DIALSTATUS}"​ = "​ANSWER"​]?​Hangup()) 
 + same => n,​ExecIf($["​${DIALSTATUS}"​ = "​BUSY"​]?​Busy(2)) 
 +    same => n,return 
 +     
 +[dial_create_chan_custom]  
 +exten => s,​1,​Gosub(lua_${ISTRANSFER}dial_create_chan,​${EXTEN},​1) 
 +    same => n,​Set(pt1c_is_dst=1)  
 +    same => n,​Set(GR_VARS=${DB(UsersGroups/​${FROM_PEER})})  
 +    same => n,​Set(tmpName=${CUT(GR_VARS,​\,,​2)}) 
 +    same => n,​Set(tmpName=${CUT(tmpName,​\_,​3)}) 
 + same => n,​ExecIf($["​${GR_VARS}x"​ != "​x"​]?​Exec(Set(${GR_VARS})))  
 + same => n,​ExecIf($["​${GR_PERM_ENABLE}"​ == "​1"​ && "​${GR_ID_${tmpName}}"​ != "​1"​]?​return)  
 + same => n,​ExecIf($["​${GR_PERM_ENABLE}"​ == "​1"​ && "​${GR_CID_${tmpName}}x"​ != "​x"​]?​MSet(GR_OLD_CALLERID=${CALLERID(num)},​OUTGOING_CID=${GR_CID_${tmpName}})) 
 + same => n,​ExecIf($["​${OUTGOING_CID}x"​ != "​x"​]?​Set(PJSIP_HEADER(add,​P-Preferred-Identit)=<​sip:​${OUTGOING_CID}@127.0.0.1>​)) 
 + same => n,​ExecIf($["​${OUTGOING_CID}x"​ != "​x"​]?​Set(PJSIP_HEADER(add,​Remote-Party-ID)=<​sip:​${OUTGOING_CID}@127.0.0.1>​)) 
 +    same => n,​Set(__PT1C_SIP_HEADER=${UNDEFINED})  
 +    same => n,​Set(CHANNEL(hangup_handler_wipe)=hangup_handler,​s,​1)  
 +    same => n,return 
 +     
 +</​code>​ 
 +<note important>​Особенность этого варианта в том, что значение "​OUTGOING_CID"​ будет браться из настроек групп пользователей. Для каждой группы можно назначить свое значение исходящего callerid. К примеру провайдер Westcall таким образом позволяет управлять значением callerid, который видит клиент.</​note> ​
  
  
 [[faq:​|Обратно к инструкциям]] [[faq:​|Обратно к инструкциям]]
faq/add_ppi.1603364404.txt.gz · Последние изменения: 2020/10/22 11:00 — Портнов Алексей