Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
faq:did-routs [2021/08/30 13:33] Портнов Алексей |
faq:did-routs [2024/02/01 12:40] (текущий) Портнов Алексей [Манго офис] |
||
---|---|---|---|
Строка 74: | Строка 74: | ||
- функция "**PJSIP_PARSE_URI**" получает из значения заголовка поле "**user**", которое соответствует значению DID | - функция "**PJSIP_PARSE_URI**" получает из значения заголовка поле "**user**", которое соответствует значению DID | ||
- Gosub перемещает канал в начало, для повторной инициализации маршрута | - Gosub перемещает канал в начало, для повторной инициализации маршрута | ||
+ | - **SIP-1622040384** - это ID учетной записи провайдера MikoPBX, можно подсмотреть в адресной строке браузера при редактировании учетки | ||
==== DID произвольном заголовке ==== | ==== DID произвольном заголовке ==== | ||
Строка 100: | Строка 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:|Обратно к инструкциям]] | ||