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

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


faq:did-routs

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
faq:did-routs [2021/08/30 13:32]
Портнов Алексей [Возможные проблемы]
faq:did-routs [2024/02/01 12:40] (текущий)
Портнов Алексей [Манго офис]
Строка 1: Строка 1:
  
 ====== Маршрутизация звонков по DID ====== ====== Маршрутизация звонков по DID ======
 +[[faq:​|Обратно к инструкциям]]
  
 ===== Введение ===== ===== Введение =====
Строка 73: Строка 74:
   - функция "​**PJSIP_PARSE_URI**"​ получает из значения заголовка поле "​**user**",​ которое соответствует значению DID   - функция "​**PJSIP_PARSE_URI**"​ получает из значения заголовка поле "​**user**",​ которое соответствует значению DID
   - Gosub перемещает канал в начало,​ для повторной инициализации маршрута   - Gosub перемещает канал в начало,​ для повторной инициализации маршрута
 +  - **SIP-1622040384** - это ID учетной записи провайдера MikoPBX, можно подсмотреть в адресной строке браузера при редактировании учетки
  
 ==== DID произвольном заголовке ==== ==== DID произвольном заголовке ====
Строка 99: Строка 101:
 [SIP-1622040384-incoming-custom] [SIP-1622040384-incoming-custom]
 exten => _[0-9*#​+a-zA-Z][0-9*#​+a-zA-Z]!,​1,​NoOp(------) exten => _[0-9*#​+a-zA-Z][0-9*#​+a-zA-Z]!,​1,​NoOp(------)
- same => n,​Set(toNum=${PJSIP_HEADER(read,​x-roistat-phon)}) + same => n,​Set(toNum=${PJSIP_HEADER(read,​x-roistat-phone)}) 
- same => n,​ExecIf($["​${toNum}"​ != "​${EXTEN}"​]?​Gosub(${CUT(CONTEXT,,​1-3)},​${toNum},​1))+ same => n,ExecIf($["​${toNum}x"​ != "​x"​ && ​"​${toNum}"​ != "​${EXTEN}"​]?​Gosub(${CUT(CONTEXT,,​1-3)},​${toNum},​1))
  same => n,return  same => n,return
 </​code>​ </​code>​
-  - функция "​**PJSIP_HEADER**"​ считывает значение заголовка "​**x-roistat-phon**"+  - функция "​**PJSIP_HEADER**"​ считывает значение заголовка "​**x-roistat-phone**"
   - Gosub перемещает канал в начало,​ для повторной инициализации маршрута   - Gosub перемещает канал в начало,​ для повторной инициализации маршрута
 +
 +
 +==== Манго офис ====
 +
 +Получение номера,​ на который позвонил клиент из поля "​Diversion":​
 +
 +<​code>​
 +[SIP-1622040384-incoming-custom]
 +exten => _[0-9*#​+a-zA-Z][0-9*#​+a-zA-Z]!,​1,​NoOp(------)
 + same => n,​Set(tmpDiversion=${PJSIP_HEADER(read,​Diversion)})
 + same => n,​ExecIf($["​x${tmpDiversion}"​ != "​x"​]?​Set(toNum=${CUT(CUT(tmpDiversion,>,​1),:,​2)}))
 + same => n,​ExecIf($["​${toNum}x"​ != "​x"​ && "​${toNum}"​ != "​${EXTEN}"​]?​Gosub(${CUT(CONTEXT,,​1-3)},​${toNum},​1))
 + same => n,return
 +</​code>​
 +
 +Более универсальный вариант:​
 +<​code>​[add-trim-prefix-clid-custom]
 +exten => _[0-9*#​+a-zA-Z][0-9*#​+a-zA-Z]!,​1,​NoOp(------)
 + same => n,​Set(tmpDiversion=${PJSIP_HEADER(read,​Diversion)})
 + same => n,​ExecIf($["​x${tmpDiversion}"​ != "​x"​]?​Set(toNum=${CUT(CUT(tmpDiversion,​@,​1),:,​2)}))
 + same => n,​ExecIf($["​${toNum}x"​ != "​x"​ && "​${toNum}"​ != "​${EXTEN}"​]?​Gosub(${contextID},​${toNum},​1))
 + same => n,​return</​code>​
 +==== Novafon (zadarma) ====
 +
 +Получение номера,​ на который позвонил клиент из заголовка "​CALLED_DID":​
 +<​code>​
 +[SIP-1622040384-incoming-custom]
 +exten => _[0-9*#​+a-zA-Z][0-9*#​+a-zA-Z]!,​1,​NoOp(------)
 + same => n,​Set(toNum=${PJSIP_HEADER(read,​CALLED_DID)})
 + same => n,​ExecIf($["​${toNum}x"​ != "​x"​ && "​${toNum}"​ != "​${EXTEN}"​]?​Gosub(${CUT(CONTEXT,,​1-3)},​${toNum},​1))
 + same => n,return
 +</​code>​
 +
 +[[faq:​|Обратно к инструкциям]]
  
faq/did-routs.1630330358.txt.gz · Последние изменения: 2021/08/30 13:32 — Портнов Алексей