328 просмотров
от (190 баллов) в категории Настройка провайдеров

Из манго приходит звонок и в INVITE и To: нет номера DID.Там только SIP учетка. Но номер есть в поле Diversion: <tel:73331234567>;counter=1;reason=unconditnal

Соответственно при звонке появляется имя учетки sip.

Как вытащить его оттуда в этот код по инструкции:

[SIP-1659597569-incoming-custom]

exten => _.!,1,NoOp(from_did)

    same => n,ExecIf($[ "${FROM_DID}x" != "x" ]?Set(CALLERID(name)=${FROM_DID}))

    same => n,return

2 Ответы

от (13.2 тыс. баллов)

Попробуйте такой вариант:
 

[SIP-1659597569-incoming-custom]

exten => _.!,1,NoOp(from_did)

    same => n,Set(tmpDiversion=${PJSIP_HEADER(read,Diversion)})

 same => n,ExecIf($["x${tmpDiversion}" != "x"]?Set(tmpFROM_DID=${CUT(CUT(${tmpDiversion},>,1),:,2)}))

 same => n,ExecIf($["x${tmpFROM_DID}" != "x"]?Set(__FROM_DID=${tmpFROM_DID}))

 same => n,ExecIf($["x${tmpFROM_DID}" != "x"]?Set(CALLERID(name)=${tmpFROM_DID}))

    same => n,return
от (190 баллов)

Спасибо, но к сожалению не получилось. Ничего не выводит.

от (13.2 тыс. баллов)
Приложите verbose лог звонка
от (190 баллов)
редактировать от

[2022-08-11 10:00:06] VERBOSE[20873][C-0000002f] pbx.c: Executing [gs999@SIP-1659597569-incoming-custom:1] NoOp("PJSIP/SIP-1659597569-00000058", "from_did") in new stack

[2022-08-11 10:00:06] VERBOSE[20873][C-0000002f] pbx.c: Executing [gs999@SIP-1659597569-incoming-custom:2] Set("PJSIP/SIP-1659597569-00000058", "tmpDiversion=<tel:73331234567>;counter=1;reason=unconditional") in new stack

[2022-08-11 10:00:06] VERBOSE[20873][C-0000002f] pbx.c: Executing [gs999@SIP-1659597569-incoming-custom:3] ExecIf("PJSIP/SIP-1659597569-00000058", "1?Set(tmpFROM_DID=)") in new stack

[2022-08-11 10:00:06] VERBOSE[20873][C-0000002f] pbx.c: Executing [gs999@SIP-1659597569-incoming-custom:4] ExecIf("PJSIP/SIP-1659597569-00000058", "0?Set(__FROM_DID=)") in new stack

[2022-08-11 10:00:06] VERBOSE[20873][C-0000002f] pbx.c: Executing [gs999@SIP-1659597569-incoming-custom:5] ExecIf("PJSIP/SIP-1659597569-00000058", "0?Set(CALLERID(name)=)") in new stack

[2022-08-11 10:00:06] VERBOSE[20873][C-0000002f] pbx.c: Executing [gs999@SIP-1659597569-incoming-custom:6] Return("PJSIP/SIP-1659597569-00000058", "") in new stack

от (13.2 тыс. баллов)

Исправленный вариант:
 

[SIP-1659597569-incoming-custom]

exten => _.!,1,NoOp(from_did)

 same => n,Set(tmpDiversion=${PJSIP_HEADER(read,Diversion)})

 same => n,ExecIf($["x${tmpDiversion}" != "x"]?Set(tmpFROM_DID=${CUT(CUT(tmpDiversion,>,1),:,2)}))

 same => n,ExecIf($["x${tmpFROM_DID}" != "x"]?Set(__FROM_DID=${tmpFROM_DID}))

 same => n,ExecIf($["x${tmpFROM_DID}" != "x"]?Set(CALLERID(name)=${tmpFROM_DID}))

 same => n,return
от (190 баллов)
Работает! Спасибо огромное!
от (122 тыс. баллов)

Попробуйте как в инструкции

Будет что то вроде:

[SIP-1659597569-incoming-custom]
exten => _[0-9*#+a-zA-Z][0-9*#+a-zA-Z]!,1,NoOp(------)
	same => n,Set(toNum=${PJSIP_PARSE_URI(${PJSIP_HEADER(read,Diversion)},user)})
	same => n,ExecIf($["${toNum}" != "${EXTEN}"]?Gosub(${CUT(CONTEXT,,1-3)},${toNum},1))
	same => n,return
от (122 тыс. баллов)

Если не поможет, то нужно разбираться с парсером, раскладывать вот эту строку на составляющие 

${PJSIP_PARSE_URI(${PJSIP_HEADER(read,Diversion)},user)}
от (190 баллов)
При таком варианте идет дозвон (причем дольше обычного) и софтфон молчит.
от (122 тыс. баллов)
я показал куда копать. приложил примеры.

дальше попробуйте самостоятельно, если не выйдет, можете обратиться в нашу платную поддержку 233@miko.ru
На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...