70 просмотров
от (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 Ответы

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

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

[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 баллов)

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

от (9.7 тыс. баллов)
Приложите 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

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

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

[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 баллов)
Работает! Спасибо огромное!
от (101 тыс. баллов)

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

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

[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
от (101 тыс. баллов)

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

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

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

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

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

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

2 тыс. ответов

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

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

...