Re[2]: Re[2]: Исходящая маршрутизация.

От: Andriy Harisios <CGatePro_at_mx_ru>
Дата: Thu 22 Jul 2010 - 01:24:11 MSD

Tue, 20 Jul 2010 23:22:25 +0400 письмо от "Dmitry Akindinov" <CGatePro@mx.ru>:

> Здравствуйте,
>
> Andriy Harisios wrote:
> > Tue, 20 Jul 2010 10:00:18 +0400 письмо от "Dmitry Akindinov" <CGatePro@mx.ru>:
> >
> >> Здравствуйте,
> >>
> >> Andriy Harisios wrote:
> >>> Доброго дня всем.
> >>>
> >>> Столкнулись с неординарной ситуацией, не удается маршрутизировать исходящие звонки
> >>> от определенного акаунта на определенный шлюз.
> >>>
> >>> Итак имеем:
> >>>
> >>> +38044XXXXXXX0 username:44X pass:X1 sipgsteway:89.xxx.xxx.xxx (шлюз1)
> >>> +38032XXXXXXX0 username:32X pass:X2 sipgsteway:89.xxx.xxx.xxx (шлюз2)
> >>>
> >>> Телефоны регионально разнесены, тоисть один Львов второй Киев.
> >>> Сейчас настроено таким образом.
> >>> Пользователь набирает 044 и номер попадает на первый шлюз, набирает 032 на второй.
> >>> Тут все работает как надо, проблема в том что нужно пере-настроить вот так:
> >>>
> >>> 1.Когда пользователь из аккаунта 44X набирает 2222222 звонок должен уходить на +38044XXXXXXX0,
> >>> тоисть в маршрутизаторе создать правило маршрутизации от акаунта псевдонима или чего то такого.
> >>>
> >>> 2.Соответственно от пользователя 32X при наборе 2222222 нужно чтоб уходил на +38032XXXXXXX0.
> >>>
> >>>
> >>> 3.Акаунт 32X набрав 044 звонок должен уйти на +38044XXXXXXX0
> >>>
> >>> 4.Акаунт 44Х набрав 032 звонок должен уйти на +38032XXXXXXX0
> >>>
> >>> У кого так работает подскажите примером или покажите в каком направлении читать.
> >> Читать здесь:
> >> <http://www.communigate.com/CommuniGatePro/PSTN.html#LocalArea>
> >>
> >> Идея в том, что неполные номера должны направляться в скрипт
> >> localAreacall - скрипт достанет из настроек звонящено аккаунта его код
> >> страны и код города и превратит это всё в номер в формате E.164.
> >>
> >>> PS: Раньше был обыкновенный PSTN и набор производился так, сейчас перешли на IP линию,
> >>> все привыкли звонить так, и набор префикса есть для них проблема.
> >>>
> >>> Спасибо.
> >
> >> --
> >> Best regards,
> >> Dmitry Akindinov -- Stalker Labs.
> > -------------------------------------------
> >
> > Здравствуйте.
> >
> > Ссылку данную выше прочитали и изучили, но всеравно возникли некоторые нюансы.
> >
> > Настройки акаунтов.(дубль из прошлого письма но с немногим дополнением)
> >
> > +38044XXXXXXX0 username:44X pass:X1 sipgsteway:89.xxx.xxx.xxx (шлюз1)
> > +38032XXXXXXX0 username:32X pass:X2 sipgsteway:89.xxx.xxx.xxx (шлюз2)
> >
> > -----------------------------------------------------------------------------
> > В аккаунте +38044XXXXXXX0 в PSTN настройках прописано:
> >
> >
> > Local Area Code: 38044(*)
>
> Должно быть 38(044)
>
> > Emergency Code:
> > Gateway Domain: {SIP_38044XXXXXXX0=kiev.tel.ua;}
> > Gateway Address: {SIP_38044XXXXXXX0=89.xxx.xxx.xxx;}
>
> А на втором шлюзе (38032...) тоже нужен аккаунт (а здесь - настройки для
> него) если надо, чтобы пользователь мог звонить в 032 через шлюз в этой
> зоне.
>
> > Caller ID: {SIP_38044XXXXXXX0=SIP_38044XXXXXXX0@kiev.tel.ua;}
> > Name for Gateway: {SIP_38044XXXXXXX0=44X;}
> > Pass for Gateway: {SIP_38044XXXXXXX0=X1;}
> > Billing Plan:
> > -----------
> > В настройкаx пользователя: TEL NUMBERRS:38044XXXXXXX0
> > -----------------------------------------------------------------------------
> > В аккаунте +38032XXXXXXX0 в PSTN настройках прописано:
> >
> >
> > Local Area Code: 38032(*)
>
> 38(032)
>
> > Emergency Code:
> > Gateway Domain: {SIP_38032XXXXXXX0=kiev.tel.ua;}
> > Gateway Address: {SIP_38032XXXXXXX0=89.xxx.xxx.xxx;}
> > Caller ID: {SIP_38032XXXXXXX0=SIP_38032XXXXXXX0@kiev.tel.ua;}
> > Name for Gateway: {SIP_38032XXXXXXX0=32X;}
> > Pass for Gateway: {SIP_38032XXXXXXX0=X2;}
>
> Аналогично здесь - описать шлюз для 044.
>
> > Billing Plan:
> > -----------
> > В настройкаx пользователя: TEL NUMBERRS:38032XXXXXXX0
> > -----------------------------------------------------------------------------
> > В ROUTER прописано:
> >
> > <(7d)@*> = (7d)@telnum
>
> Вместо этого -
>
> S:<(7d)@*> = localAreaCall{*}#postmaster@localhost
>
> Если же все семизначные номера по умолчанию считаются киевскими, то
> можно такую запись использовать:
>
> S:<(7d)@*> = +38032*@telnum
>
> Не знаю, как у вас сейчас принято набирать номера для междугородних (в
> другой area code), но допуская, что для этого можно просто использовать
> десятизначные номера, можно добавить такую запись:
>
> S:<(10d)@*> = localAreaCall{*,c}#postmaster@localhost
>
> Вместо этого, если все такие номера предполагаются украинскими (на
> сервере нет аккаунтов, у которых area code был бы, например, российским
> или польским), можно записать:
>
> <(10d)@*> = +38*@telnum
>
> Результатом этой и двух предыдущих (с сиспользованием скрипта
> localAreaCall) записей будет то, что неполные номера при звонках из
> локальных аккаунтов будут ппреобразованы в глобально уникальные номера в
> формате E.164 (+ код_страны код_города номер), которые можно роутить
> через telnum. Соответственно, аккаунтам, которым можно присвоить
> настоящий номер из PSTN, присваивать его надо именно в формате E.164, то
> есть +38032XXXXXXX.
>
> > <(8-15d)@*> = (8-15d)@telnum
>
> Это просто неправильно в правой части, а с учётом вышесказанного (все
> полные номера должны быть в стандартном формате), запись будет выглядеть
> так:
>
> <+(8-15d)@*> = +*@telnum
> <(11-15d)@*> = +*@telnum
>
> > S:telnum = pstn
>
> Вот после этой записи всё, что не было найдено среди присвоенных
> локальным аккаунтам телефонных номеров (в формате E.164), будет
> отправлено в pstn. Теперь опишем, как эти звонки в pstn будут выполняться.
>
> ; киевские номера через шлюз в Киеве, просто конец номера без кодов
> S:<+38032*@pstn> = gatewaycaller{*,SIP_38032XXXXXXX0}#postmaster@localhost
>
> ;львовские номера через шлюз во Львове, передаём номер без кода страны и
> без кода города
> S:<+38044*@pstn> = gatewaycaller{*,SIP_38044XXXXXXX0}#postmaster@localhost
>
> ;все звонки внутри Украины передаём в местный шлюз с префиксом,
> ;который используется этим шлюзом для межгорода
> S:<+38*@pstn> = gatewaycaller{0*,SIP_38032XXXXXXX0}#postmaster@localhost
>
> ;все международные звонки передаём в местный шлюз с нужным префиксом,
> например 010
> S:<+*@pstn> = gatewaycaller{010*,SIP_38032XXXXXXX0}#postmaster@localhost
>
> Всё.
>
>
>
> > S:<(7d)@pstn> = localAreaCall{*,c,SIP_38044XXXXXXX0}#pbx
> > S:<(7d)@pstn> = localAreaCall{*,c,SIP_38032XXXXXXX0}#pbx
>
> Это вы плохо прочитали...
>
> > -----------------------------------------------------------------------------
> >
> > Теперь о проблемах в настройке.
> >
> > Local Area Code: 38044
> > Работет только в таком формате 38044(*), с параметром с,
> > во всех других вариантах только две первый цифры, так
> > должно быть?
>
> Эта настройка ожидается в формате country(area). Например, для
> московского номера +7(495)212-8506 там будет 7(495). А номер 2128506,
> набранный аккаунтом с такой настройкой, будет преобразован програмкой
> localAreaCall в +74952128506.
>
> > Правила в маршрутизаторе обрабатываются с верху в низ, поeтому так как прописано выше
> > все звонки уходят через SIP_38044XXXXXXX0,если поменять местами то через
> > SIP_38032XXXXXXX0,как тут быть?
>
> По разному роутить номера, который начинаются с разных кодов страны и
> кодов номера. А для этого сначала привести номера к стандартному формату.
>
> > При возможносити покажите пример настройки, и еще раз о маршрутизации,
> > аккаунт +38044XXXXXXX0 набрав семизначный номер должен маршрутизироватся через
> > SIP_38044XXXXXXX0, а 38032XXXXXXX0 через SIP_38032XXXXXXX0
>
> Рассмотрите немного другую логику: в зависимости от настроек аккаунта,
> семизначные номера преобразуются в полные номера в формате E.164. А уж
> потом решается, на какие шлюзы отправляются эти полные номера. Если
> каким-то аккаунтам надо запретить звонки в другие города или за пределы
> страны, то надо описать в PSTN настройках параметры для нескольких
> шлюзов (пусть даже они дублируются для нормальных аккаунтов), и для
> международного шлюза эти настройки "испортить".
>
> > Спасибо.
> > ------------------
>
> --
> Best regards,
> Dmitry Akindinov -- Stalker Labs.


Здравствуйте.

Спасибо все заработало, но возникло еще несколько вопросов.

Как маршрутизировать исходящне звонки от пользователя на определенный шлюз, имеется в виду что каждый пользователь имеет свой шлюз и звонки от него должны уходить только на шлюз этого пользователя и никуда иначе.

Суть вопроса:
VegaTelecom начал новую услугу IP линия, http://www.vegatele.com/rus/for_home/phone/ip_line отличие тут в том что только одна линия на пользователя(не путать с sip_trunk), и тарификация идет по каждой линии, только один канал на линию. Теперь получается прописав в маршрутизаторе такую запись: S:<+38032*@pstn> = gatewaycaller{+38032*,SIP_38032XXXXX100}#postmaster@localhost Все исходящие от пользователей будут уходить на шлюз SIP_38032XXXXX100, а остальные линии использоватся не будут. Временно сделали вот так
S:<38032*@pstn> = gatewaycaller{38032*,SIP_38032XXXXX200}#postmaster@localhost (убрали +) Тем самым разрулили 2 линии.

Но тут уже не вопрос в 2-х пользователях а к примеру в 10, как их разрулить, с помощью префикса с переди тоже не подходит, потому что пользователи хотят как обычный PSTN, да и если пользователей будет ххх то и префикс должен быть ххх.

Думали с помощью правил(rules) но тоже ничего не получилось.

Спасибо.

К примеру вот PSTN настройки 2-х пользователей: Разница:Gateway Address.



В аккаунте +38032XXXXX100 в PSTN настройках прописано: Local Area Code: 38(032)
Emergency Code:
Gateway Domain:   {SIP_38032XXXXX100=tel.ua;}
Gateway Address:  {SIP_38032XXXXX100=89.xxx.xxx.50;}
Caller ID:        {SIP_38032XXXXX100=SIP_38032XXXXX100@tel.ua;}
Name for Gateway: {SIP_38032XXXXX100=32X;}
Pass for Gateway: {SIP_38032XXXXX100=X2;}
Billing Plan:

В настройкаx пользователя: TEL NUMBERRS:38032XXXXXXX0
#############################################################
В аккаунте +38032XXXXX200 в PSTN настройках прописано: Local Area Code: 38(032)
Emergency Code:
Gateway Domain:   {SIP_38032XXXXX200=tel.ua;}
Gateway Address:  {SIP_38032XXXXX200=89.xxx.xxx.100;}
Caller ID:        {SIP_38032XXXXX200=SIP_38032XXXXX200@tel.ua;}
Name for Gateway: {SIP_38032XXXXX200=32X;}
Pass for Gateway: {SIP_38032XXXXX200=X2;}
Billing Plan:

В настройкаx пользователя: TEL NUMBERRS:38032XXXXX200
Получено Wed Jul 21 21:24:22 2010

Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:16:53 MSK