Здравствуйте,
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.>
> -------------------------------------------
Должно быть 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.Получено Tue Jul 20 19:22:32 2010
Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:16:53 MSK