ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Смена DID от оператора в сторону клиентов

Проблемы и их решения Asterisk как такового

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

Смена DID от оператора в сторону клиентов

Сообщение Gib_adm » 24 май 2021, 22:46

Доброго, Коллеги.

Debian = 6.0.5
FreePBX = 2.9.0.14
Asterisk = 1.6.2.9

Мы являемся транзитным оператором связи, имеем канал по SIP куда он передает все номера, оператор отдает DID в формате ХХХХХХХ в 7 значном формате.
А нам надо передать клиентам номер в 11 значном виде. В интернетах пока не нашел ничего вменяемого по этому вопросу.
Коллеги, прошу обратить внимание я коворю не про CALLERID, а именно про DID.

Вот пример лога:
Код: выделить все
    -- Executing [XXXXXXX@from-trunk:1] Set("SIP/Operator-trunk-00012bf0", "__FROM_DID=XXXXXXX") in new stack
    -- Executing [XXXXXXX@from-trunk:2] ExecIf("SIP/Operator-trunk-00012bf0", "1 ?Set(CALLERID(num)=79267248709)") in new stack
    -- Executing [XXXXXXX@from-trunk:3] Set("SIP/Operator-trunk-00012bf0", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [XXXXXXX@from-trunk:4] Set("SIP/Operator-trunk-00012bf0", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [XXXXXXX@from-trunk:5] Goto("SIP/Operator-trunk-00012bf0", "ext-trunk,27,1") in new stack
    -- Goto (ext-trunk,27,1)
    -- Executing [27@ext-trunk:1] Set("SIP/Operator-trunk-00012bf0", "TDIAL_STRING=SIP/Client-trunk1") in new stack
    -- Executing [27@ext-trunk:2] Set("SIP/Operator-trunk-00012bf0", "DIAL_TRUNK=27") in new stack
    -- Executing [27@ext-trunk:3] Goto("SIP/Operator-trunk-00012bf0", "ext-trunk,tdial,1") in new stack
    -- Goto (ext-trunk,tdial,1)
    -- Executing [tdial@ext-trunk:1] Set("SIP/Operator-trunk-00012bf0", "OUTBOUND_GROUP=OUT_27") in new stack
    -- Executing [tdial@ext-trunk:2] GotoIf("SIP/Operator-trunk-00012bf0", "0?nomax") in new stack
    -- Executing [tdial@ext-trunk:3] GotoIf("SIP/Operator-trunk-00012bf0", "0?hangit") in new stack
    -- Executing [tdial@ext-trunk:4] ExecIf("SIP/Operator-trunk-00012bf0", "1?Set(CALLERPRES()=allowed_not_screened)") in new stack
    -- Executing [tdial@ext-trunk:5] Set("SIP/Operator-trunk-00012bf0", "DIAL_NUMBER=XXXXXXX") in new stack
    -- Executing [tdial@ext-trunk:6] GosubIf("SIP/Operator-trunk-00012bf0", "1?sub-flp-27,s,1") in new stack
    -- Executing [s@sub-flp-27:1] ExecIf("SIP/Operator-trunk-00012bf0", "0?Set(TARGET_FLP_27=7040)") in new stack
    -- Executing [s@sub-flp-27:2] GotoIf("SIP/Operator-trunk-00012bf0", "0?match") in new stack
    -- Executing [s@sub-flp-27:3] Return("SIP/Operator-trunk-00012bf0", "") in new stack
    -- Executing [tdial@ext-trunk:7] Set("SIP/Operator-trunk-00012bf0", "OUTNUM=XXXXXXX") in new stack
    -- Executing [tdial@ext-trunk:8] Dial("SIP/Operator-trunk-00012bf0", "SIP/Client-trunk1/XXXXXXX,300,") in new stack


Как видно в строке
Код: выделить все
-- Executing [tdial@ext-trunk:8] Dial("SIP/Operator-trunk-00012bf0", "SIP/Client-trunk1/XXXXXXX,300,") in new stack

после "SIP/Client-trunk1/ отдается DID в формате XXXXXXX, а надо отдавать в ХХХХXXXXXXX
Gib_adm
 
Сообщений: 9
Зарегистрирован: 01 фев 2014, 18:43

Re: Смена DID от оператора в сторону клиентов

Сообщение Gib_adm » 24 май 2021, 23:08

Написал решение:
ХХХХХХХ - не готовое правило, тут каждый пишет свое

ХХХХХХХ - Присылаемый DID от оператора
ХХХХХХХХХХХ - Меняем на то как отправить клиенту
Код: выделить все
exten => ХХХХХХХ,2,Set(__FROM_DID=ХХХХХХХХХХХ)
exten => ХХХХХХХ,3,NoOp(${__FROM_DID})


Далее идет по диалплану

* Прошу пометить как [РЕШЕНО]
Gib_adm
 
Сообщений: 9
Зарегистрирован: 01 фев 2014, 18:43

Re: Смена DID от оператора в сторону клиентов

Сообщение Gib_adm » 25 май 2021, 00:55

Забыл добавить.
Всё делается в контексте [ext-did-custom] в файле extension_custom.conf
Gib_adm
 
Сообщений: 9
Зарегистрирован: 01 фев 2014, 18:43

Re: Смена DID от оператора в сторону клиентов

Сообщение ded » 25 май 2021, 01:20

Код: выделить все
[from-local-operator]
exten => _ZХХХХХХ,1,Set(__FROM_DID=8495${EXTEN})  ; для всех входящих семизначных, не начинающихся с нуля, добавляется код 8495

Asterisk, в виду обширных ДВО - конечное решение, не транзитное.
Для транзитных операторов лучше Kamailio, Freeswitch. Opensips.
thttps://www.kamailio.org
https://freeswitch.com
https://opensips.org
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Смена DID от оператора в сторону клиентов

Сообщение Zavr2008 » 25 май 2021, 13:02

Что мешает задать в пире транка оператора context=from-operator-custom?

Ну и сделать далее элементарное:
Код: выделить все
[from-operator-custom]

  exten=>_XXXXXXX,1,Goto(from-trunk,8495${EXTEN},1)



Все меньше и меньше читают книги люди...
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2162
Зарегистрирован: 27 янв 2011, 01:35

Re: Смена DID от оператора в сторону клиентов

Сообщение jlss » 25 май 2021, 17:56

Applications -> Set CallerID ?
jlss
 
Сообщений: 4
Зарегистрирован: 24 май 2021, 15:18

Re: Смена DID от оператора в сторону клиентов

Сообщение Zavr2008 » 26 май 2021, 09:39

DID нормализовать нужно, а не CallerID.
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2162
Зарегистрирован: 27 янв 2011, 01:35

Re: Смена DID от оператора в сторону клиентов

Сообщение jlss » 26 май 2021, 13:29

ок, тогда Inbound Routes -> создать маршрут под новый did
и в маршруте под старый did:
Set Destination -> Inbound Routes -> новый did
jlss
 
Сообщений: 4
Зарегистрирован: 24 май 2021, 15:18

Re: Смена DID от оператора в сторону клиентов

Сообщение ded » 26 май 2021, 16:47

jlss писал(а):создать маршрут под новый did
ТС написал, что они операторы связи, им нужно целый пул номеров нормализовать, а не один-два DIDs
Поэтому простой ход - одна-две строки в принимающем контексте, с преобразованием в десяти- или одинадцатизнак.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH