Страница 1 из 2
Не передается Diversion
Добавлено: 11 апр 2019, 10:05
blond2002
Приветствую всех!
Используется Asterisk 13.17.0 под FreePBX 13.0.192.17
Тема наверное банальная но внятного ответа я так и не нашел. Входящие звонок с внешнего транка на внутренний номер астериска, на нем включена переадресация (Follow) на сотовый номер. А -> B -> C
Если использовать режим переадресации с "Outside Calls Fixed CID Value" - переадресация проходит, на сотовом входящий с номера В.
Необходимо чтобы при переадресации на сотовом фиксировался номер А. Оператор транка просит включить параметр Diversion.
В Advanced Setting включаю параметр DIVERSIONHEADER. В файле extensions_additional.conf появились соответствующие разделы.
Включаю параметр переадресации "Default" , но в логах исходящий пакетов в транк нет этого параметра, оператор тоже не видит его.
Что не правильно?
Re: Не передается Diversion
Добавлено: 11 апр 2019, 10:49
ded
Включите sip set debug on
и смотрите прибегающий SIP пакет от провайдера при входящем звонке с внешнего транка на внутренний номер астериска.
Там есть поле Diversion согласно
https://tools.ietf.org/html/rfc5806 ? Типа
Код: Выделить всё
Diversion: <sip:2000@192.168.254.254>;privacy=off;reason=no-answer;counter=1;screen=no
Если да, то из него можно выцепить номер через функцию Астериска
https://www.voip-info.org/asterisk-func-sipheader/
Re: Не передается Diversion
Добавлено: 11 апр 2019, 11:47
blond2002
Я, наверное, не правильно обьяснил.
Мне с внешнего транка приходит обычный звонок, не переадресованный. В нем нет поля Diversion и оно мне в данный момент не нужно.
В настройках FreePBX вроде как все активировано.
В логах исходящего звонка вижу строку
-- Executing [s@func-set-sipheader:1] NoOp("Local/89121231212@from-internal-0000003d;2", "Sip Add Header function called. Adding Diversion = <tel:209516>;reason=no-answer;screen=no;privacy=off") in new stack
-- Executing [s@func-set-sipheader:2] Set("Local/89121231212@from-internal-0000003d;2", "HASH(__SIPHEADERS,Diversion)=<tel:209516>;reason=no-answer;screen=no;privacy=off") in new stack
-- Executing [s@func-set-sipheader:3] Return("Local/89121231212@from-internal-0000003d;2", "") in new stack
Необходимо чтобы в исходящем звонке на транк было поле Diversion. Но его там нет.
Re: Не передается Diversion
Добавлено: 11 апр 2019, 13:30
ded
Ну, вы видите, что функционал этот отрабатывается в диалплане.
Sip Add Header function called. Adding Diversion = <tel:209516>;reason=no-answer;screen=no;privacy=off"
HASH(__SIPHEADERS,Diversion)=<tel:209516>;reason=no-answer;screen=no;privacy=off
значит его можно увидеть в SIP пакете, если бы он был исходящий сразу в варианте SIP/operator/89121231212
но он у вас идут как Local/89121231212
Думаю, что к каналу Local применить Sip Add Header function нельзя.
Re: Не передается Diversion
Добавлено: 11 апр 2019, 13:40
blond2002
где можно задать тип канала?
Re: Не передается Diversion
Добавлено: 11 апр 2019, 15:11
ded
Два ответа:
1. Читать Книгу о будущем телефонии и FreePBX 2.10 Руководство администратора (на русском языке, в формате PDF)
http://asterisk.ru/knowledgebase/books
2. Обращаться в раздел Бизнес.
Re: Не передается Diversion
Добавлено: 11 апр 2019, 15:40
blond2002
Re: Не передается Diversion
Добавлено: 11 апр 2019, 18:49
Zavr2008
Set(CallerID(RDNIS)=...) чем не подходит?
Re: Не передается Diversion
Добавлено: 11 апр 2019, 21:37
blond2002
Я понимаю что можно вручную подправить диалплан и получить результат. Но FreePBX при сохранении перезатрет изменения.
Нужно вносить в отдельный файл. Тогда в какой контекс?
Но главный вопрос, почему freepbx своим функционалом этого не делает. Ведь умеет же. Возможно что-то не активировал или не так сделал.
Что , где?
Re: Не передается Diversion
Добавлено: 11 апр 2019, 22:21
ded
blond2002 писал(а):Но FreePBX при сохранении перезатрет изменения.
Нет.
blond2002 писал(а):Нужно вносить в отдельный файл. Тогда в какой контекс?
Контекст. Вот поэтому -
Люди старались, писали, разъясняли. Наберитесь терпения! Это будет быстрее и полезнее, чем преписываться тут по этой теме.
blond2002 писал(а):почему freepbx своим функционалом этого не делает.
freepbx своим функционалом это делает.