Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

Kamailio - переписать номер в формат E.164

 
Список форумов Asterisk Forum -> OpenSER    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Пт Фев 27, 2009 12:13    Заголовок сообщения: Kamailio - переписать номер в формат E.164

Всем привет!

Подскажите, как правильно переписать номер из формата принятого в РФ (8-, 810-, а также семизначный номер) в формат E.164?
При этом нужно, чтобы при перемаршрутизации во всех заголовках был номер уже в формате E.164, чтобы его потом корректно съел биллинг.
На Kamailio происходит аудентификация и авторизация, для корректно авторизации номер уже должен быть в E.164.
Аккаунтинг, а также конвертация SIP->H323 производится на отдельной железке (Quintum CallRelay).

Заранее спасибо.

_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Вс Мар 01, 2009 16:29    Заголовок сообщения:

Уже второй день бьюсь, пытаюсь при помощи subst и subst_uri переписать из формата к примеру XXXXXXX в 7812XXXXXXX.
Переписывает, но в функцию radius_www_authorize (в методе INVITE) все равно попадает в формате XXXXXXX, биллинг блочит звонок и так по кругу. ;(
Кто знает, как модифицировать uri и затем перероутить звонок заново?

Added after 52 minutes:

Походу дела нужно ставить еще один сервер, т.к. авторизации (через radius) происходит по INVITE (по крайней мере у меня), а сообщение INVITE модифицировать нельзя, т.к. к uri привязан md5-хэш...

_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
simax



Зарегистрирован:
19.05.2008
Сообщения: 35

Статус: Оффлайн 

СообщениеДобавлено: Пн Мар 02, 2009 13:44    Заголовок сообщения:

Модифицировать все можно только модификация в route блоке работает как наложение - тоесть изменения применяются к request'у на самом деле после выхода из блока.
А как насчет radius_proxy_authorize? Сам не пробовал - радиус не пользую но там вроде есть второй параметр uri_user.
Код:

uri_user - Uri_user is an optional pseudo variable parameter whose value, if present, will be given to Radius server as value of SIP-URI-User check item. If uri_user pseudo variable parameter is not present, the server will generate SIP-URI-User check item value from user part of To/From URI.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Вт Мар 03, 2009 10:21    Заголовок сообщения:

simax писал(а):
Модифицировать все можно только модификация в route блоке работает как наложение - тоесть изменения применяются к request'у на самом деле после выхода из блока.


А если сделать специальный route только для модификации? После выхода из route заголовки будут уже модифицированы?

simax писал(а):
А как насчет radius_proxy_authorize? Сам не пробовал - радиус не пользую но там вроде есть второй параметр uri_user.

Пробовал -- не получилось, правда дело было ночью, возможно что-то не так сделал...

И еще вопрос; Как включить отладку SIP-пакетов включая SDP?

_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Пт Мар 06, 2009 14:40    Заголовок сообщения:

simax писал(а):
А как насчет radius_proxy_authorize? Сам не пробовал - радиус не пользую но там вроде есть второй параметр uri_user.

Сегодня проверил -- не подходит. uri_user -- это uri того, кто звонит (аб. А), там нет номера, на который звонят (аб. Б).

_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Вт Мар 10, 2009 17:07    Заголовок сообщения:

simax писал(а):
Модифицировать все можно только модификация в route блоке работает как наложение - тоесть изменения применяются к request'у на самом деле после выхода из блока.

А route из route применяется? У меня -- нет. Или я что-то не так делаю?
Пробовал strip, prefix -- ничего не помогает, в radius уходит немодифицированный номер.
Может можно как-нибудь передать дополнительный radius-аттрибут?
Cisco-AVPair вроде там только один call-id и он жестко забит.
Получается, что kamailio от radius все, что угодно получить может, а вот то, что передать -- жестко зашито. Crying or Very sad

P.S. Кто-нибудь как-нибудь обходил это или Kamailio/OpenSER с radius'ом никто не использует?!! Аккаунтинг меня не интересует, нужны только Authentication и Authorization.

Added after 1 minutes:

Точнее даже только Authorization, т.к. с Authentication проблем нет.

_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Чт Апр 09, 2009 15:30    Заголовок сообщения:

Проблема решена внесением изменений в биллинг.
Тема закрыта.

_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ZloMurz



Зарегистрирован:
31.01.2008
Сообщения: 303

Статус: Оффлайн 

СообщениеДобавлено: Пн Июл 06, 2009 10:54    Заголовок сообщения:

tma писал(а):
Уже второй день бьюсь, пытаюсь при помощи subst и subst_uri переписать из формата к примеру XXXXXXX в 7812XXXXXXX.
Переписывает

А как вы переписываете номер в SIP пакете не расскажите? Хочу в kamailio роутить звонки префиксами, т.к. дальше стоят коммутаторы потоков, которые только так понимают. Я так полагаю это делается с помощью psevdovariable transformation?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kks



Зарегистрирован:
03.07.2009
Сообщения: 29

Статус: Оффлайн 

СообщениеДобавлено: Пн Июл 06, 2009 11:34    Заголовок сообщения:

Модуль UAC, функция uac_replace_from
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
tma



Зарегистрирован:
11.07.2005
Сообщения: 361

Статус: Оффлайн 

СообщениеДобавлено: Сб Авг 29, 2009 01:32    Заголовок сообщения:

ZloMurz писал(а):
А как вы переписываете номер в SIP пакете не расскажите?


У меня так:
Код:

        if (uri =~ "^sip:[0-9]{7}@.*") {
                xlog("L_DBG", "Dialing: Local SPb number (xxx-xx-xx): From: <$fu> To: <$tu>\n");
                subst_uri('/^sip:([0-9]{7})@(.*)$/sip:7812\1@\2/i');
                rewritehostport("192.168.XXX.XXX");
                route(1);
                return;
        }


Но дело в том, что измнения видны только после того, как пакет ушел из Kamailio! Т.е. если я его буду гонять внутри по route'ам, изменений не будет!

Чтобы понял биллинг -- пришлось добавить функционал, при котором он сам преобразовывает номер к виду E.164 по заданным правилам.

_________________
Maksim Timofejev
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Список форумов Asterisk Forum -> OpenSER Ответить на тему
Страница 1 из 1

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum