VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Не работает переадресация при звонке из города

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
vkarpov
Сообщения: 4
Зарегистрирован: 13 май 2025, 10:23

Не работает переадресация при звонке из города

Сообщение vkarpov »

Добрый день!
Столкнулись с проблемой - Follow ME на сотовый работает только если звонки совершаются с внутренних на внутренние номера , если звонок идет из города - переадрес не работает, звонит внутренний и все, пробовал принудительно переключать на телефоне, тоже результат 0, прописано все как положено через 7903ХХХХХХХ#
Произошло после перехода с callbox на freepbx, хотя маршруты все сохранены
Дамп в вложении
Буду признателен за помощь
ded
Сообщения: 15736
Зарегистрирован: 26 авг 2010, 19:00

Re: Не работает переадресация при звонке из города

Сообщение ded »

Открываем консоль

Код: Выделить всё

 asterisk -vvvvvr
и смотрим - что происходит при переходе на сотовый в Folow me
Glukinho
Сообщения: 735
Зарегистрирован: 07 янв 2011, 20:05

Re: Не работает переадресация при звонке из города

Сообщение Glukinho »

Думаю, что провайдеру не нравится callerid, который получается при срабатыванит follow me.
Аватара пользователя
Zavr2008
Сообщения: 2272
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Не работает переадресация при звонке из города

Сообщение Zavr2008 »

Outbound Caller ID Number задать принудительно у экстена.
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1, настройка Asterisk/FreePBX, подключение CRM
shader
Сообщения: 123
Зарегистрирован: 09 авг 2013, 10:33

Re: Не работает переадресация при звонке из города

Сообщение shader »

Добрый день!
попробую тут спрошу.
Ситуация: раньше работал с chan_sip (asterisk 13). При входящем вызове на АТС и/, если его нужно переадресовать, я использовал функцию
SET(CALLERID(rdnis)=<номер который перадресовал>
И все было хорошо. Перешёл на pjsip - работать перстало. Ну как, код отрабатывает без ошибок, но вот в INVITE исходящих я не вижу ни в каком виде номера, который переадресовал ну и далее, скорее всего по антифроду вызов дропается.
Вопрос: как в современном asterisk (22) правильно задавать номер, который переадресовал вызов?
ded
Сообщения: 15736
Зарегистрирован: 26 авг 2010, 19:00

Re: Не работает переадресация при звонке из города

Сообщение ded »

Повставяйте проверочные
NoOp(RDNIS is ${CALLERID(all)})
NoOp(RDNIS is ${CALLERID(rdnis)})
NoOp(RDNIS is ${CALLERID(ani)})
везде, где проходит вызов. Может прояснится картина?
shader
Сообщения: 123
Зарегистрирован: 09 авг 2013, 10:33

Re: Не работает переадресация при звонке из города

Сообщение shader »

CALLER(RNDIS) - есть. Там задан номер того, кто осуществил переадресацию (кому изначально звонили, на моей АТС). 10 знаков.
CALLERID(ALL) - есть. 10 значный номер без callername (10 знаков - по договоренности с апстримом). Номер того, кто фактически звонит.
CALLERID(ANI) - есть. 11 значный номер. Номер того, кто фактически звонит.
Это всё непосредственно перед командой DIAL вышестоящему провайдеру.
shader
Сообщения: 123
Зарегистрирован: 09 авг 2013, 10:33

Re: Не работает переадресация при звонке из города

Сообщение shader »

Переключил вызов на старый asterisk (там полностью аналогичный dialplan и функцинал ARI).
Сделал на нем вызов (с переадресацией). Глянул SNGREP - в INVITE есть поле DIVERSION
В новом asterisk - его нет. Это и есть главная проблема. Но тут уже я не понимаю, почему asterisk не формирует это поле.
PS. Пробовал задавать REDIRECTING(from-num,i)
Проверял - на pjsip пире - включен параметр send_diversion=true

Пока не знаю где еще поискать.
ded
Сообщения: 15736
Зарегистрирован: 26 авг 2010, 19:00

Re: Не работает переадресация при звонке из города

Сообщение ded »

Код: Выделить всё

[my-diversion-context]
exten => s,1,Noop(Setting Diversion Header)
; Set the original caller number (Originating Party)
same => n,Set(REDIRECTING(orig-num)=1112223333)
; Set the number the call is being forwarded from (From Party)
same => n,Set(REDIRECTING(from-num)=4445556666)
; Set the destination number (To Party)
same => n,Set(REDIRECTING(to-num)=7778889999)
; Set the redirecting reason (e.g., "unconditional", "no-answer", "busy")
same => n,Set(REDIRECTING(reason)=unconditional)
; Increment the redirection counter
same => n,Set(REDIRECTING(count)=$[${REDIRECTING(count)} + 1])
; Set presentation information
same => n,Set(REDIRECTING(from-num-pres)=allowed)
same => n,Set(REDIRECTING(to-num-pres)=allowed)

; Dial the PJSIP endpoint/trunk. Asterisk will automatically generate the Diversion header
same => n,Dial(PJSIP/7778889999@my-pjsip-trunk)
same => n,Hangup()
Key Functions Explained:
REDIRECTING(orig-num): The initial calling number.
REDIRECTING(from-num): The number from which the call is being forwarded (the number on your system that received the call initially).
REDIRECTING(to-num): The final destination number the call is being diverted to.
REDIRECTING(reason): Specifies why the call is being diverted (e.g., cfu for call forward unconditional, no-answer).
REDIRECTING(count): Tracks the number of redirections to prevent infinite loops.

Но провайдер не должен выпустиь чужой callerid, который получается при срабатыванит follow me.
shader
Сообщения: 123
Зарегистрирован: 09 авг 2013, 10:33

Re: Не работает переадресация при звонке из города

Сообщение shader »

ded, спасибо большое!
Поле diversion - появилось!
Добавил в код (typescript, ari)

await this.channel.setChannelVar({
variable: 'REDIRECTING(reason)',
value: 'unconditional'
});
await this.channel.setChannelVar({
variable: 'REDIRECTING(count)',
value: '1'
});
await this.channel.setChannelVar({
variable: 'REDIRECTING(from-num-pres)',
value: 'allowed'
});
await this.channel.setChannelVar({
variable: 'REDIRECTING(to-num-pres)',
value: 'allowed'
});

Видимо, с asterisk 13 по asterisk 22 изменились некоторые умолчания. Там, где раньше не надо было задавать эти параметры. Теперь - надо.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH