Kamailio как NAT + SIP Proxy перенаправлющий запросы клиентов. Или всетаки Asterisk ????

Kamailio/OpenSIPS и другие производные от SER.

Модераторы: Admins, Модераторы

Ответить
EVoIP
Сообщения: 78
Зарегистрирован: 16 апр 2010, 14:14
Откуда: Ukraine

Kamailio как NAT + SIP Proxy перенаправлющий запросы клиентов. Или всетаки Asterisk ????

Сообщение EVoIP » 02 авг 2012, 15:10

Приветствую!

Хочу реализовать следующую схему:

На данный момент MVTS работает с биллингом, и Kamailio SER пока на практике нету в этой схеме.
Тоесть сейчас абоненты указвают в качестве SIP Registar - MVTS Pro. Но в связи с тем что версия MVTS которая у нас есть, не может работать с оконечными абонентами, тоесть являеться Softswitch class IV, хочу добавить функционал Softswitch class V. (в частности не могут регаться абоненты находящиеся за NAT).

Я не хочу изобретать велосипед и завязывать Kamailio через RADIUS с тем же биллингом так как он (биллинг) прекрасно работает с MVTS.
А хочу сделать так что бы sip клиенты указывали ip Kamailio как SIP Registar, а он в свою очередь перенаправлял запросы регестрации на MVTS где и будет происходить авторизация клиента.
Тоесть - Kamailio не будет авторизовать клиентов, а будет работать как НАТ (для тех кому это нужно) и передавать запрос на MVTS который будет авторизовать клиентов.
Asterisk для такой схемы не подходит.


Так как я начал разбираться с Kamailio совсем недавно, возникает вопрос - сможет ли Kamailio (SER) работать в такой схеме?
И посоветуйте какую конфигурацию для Kamailio тут лучше применять.

Заранее спасибо за ответ.
Вложения
new-sxema1.jpg

Игорь
Сообщения: 232
Зарегистрирован: 10 авг 2009, 13:36
Откуда: НН
Контактная информация:

Сообщение Игорь » 02 авг 2012, 15:51

дык для MVTS все равно NAT будет. нее ?
рву шаблоны. дорого.

indeec
Сообщения: 87
Зарегистрирован: 17 май 2009, 11:46
Откуда: Киев

Сообщение indeec » 02 авг 2012, 19:09

По идее камаилио - то что нужно для этого, он сможет и медиа потоки спроксировать с iprtpproxy.
Правда не очень понятно что значит "не может работать с клиентами за NAT".
Не умеет угадывать куда клиенту отвечать?

EVoIP
Сообщения: 78
Зарегистрирован: 16 апр 2010, 14:14
Откуда: Ukraine

Сообщение EVoIP » 03 авг 2012, 09:20

Данная версия MVTS не корректно работает с NAT, почему так происходит я пока не разобрался так как недавно в проэкте. Но аргуметируют тем что это транзитный Софт Свич и он не предназначен для работы с оконечными абонентами являясь Softswitch class IV, а для таких целей поддержка ALOE Systems (производители, разработчики MVTS) предлагает купить их продукт за "много денег" который все умеет и являеться полоценным Softswitch class V.
На MVTS нету многих функция Софт Свича класса 5, например нужно реализовать бесплатные звонки между абонентами, IVR, DID номера и много другое.
Поэтому я планирую его оставить в этой схеме, так как они и работал: для коммутации с провайдерами и тарификации абонентов совместно с биллингом.

А вот для всех дополнительных услуг нужно внедрять OpenSource решения ИМХО.
Много работал с Asterisk, но он тут не подходит.

Упал взгляд на Kamailio - достаточно сложный в освоении - читаю "Building Telephony Systems with OpenSIPS 1.6". Поставил Веб Интерфес администратора siremis - кто то польовался ?
Вот и прошу помощи порекомендовать конфиг Kamailio для моих задач, каким модулем лучше перенаправлять SIP запросы на MVTS ?

indeec
Сообщения: 87
Зарегистрирован: 17 май 2009, 11:46
Откуда: Киев

Сообщение indeec » 03 авг 2012, 09:53

siremis не использовал, ничего сказать не могу.
Конфиг камаилио коментировать - дело не благодарное, оно по сути является скриптом обработки sip сообщений на своём языке.
Дефолтный конфиг для проксирования запросов на регистрацию не подходит, его нада сразу писать под себя.

EVoIP
Сообщения: 78
Зарегистрирован: 16 апр 2010, 14:14
Откуда: Ukraine

Сообщение EVoIP » 15 авг 2012, 09:07

А как у Kamailio, SER обстоят дела с ДВО:
- Перевод звонков
- Постановка звонка на удержание
- Уведомление о поступлении нового вызова
- Голосовая почта
- Интерактивный голосовой ответ (IVR)
- итд...

это можно реализовать ?

indeec
Сообщения: 87
Зарегистрирован: 17 май 2009, 11:46
Откуда: Киев

Сообщение indeec » 15 авг 2012, 11:01

Kamailo может практически что угодно сделать с sip сигналкой, но вообще не имеет представления о медиа.

EVoIP
Сообщения: 78
Зарегистрирован: 16 апр 2010, 14:14
Откуда: Ukraine

Сообщение EVoIP » 15 авг 2012, 12:11

В таком случаее мне только Kamailio не обойтись... Нужны функции ДВО.
Основная задача которую я хочу решить - это передача запроса RIGISTER на MVTS для авторизации клиента.

Как я писал выше не хочу ломать связку MVTS + Billing. Нужно перед MVTS поставить какой-то Softswitch, если звонки например между абонентами, то они не должны биллинговаться, а если звонок на внешний мир, то он должен пойти через MVTS. В свою очередь MVTS должна распознать верно абонента и что бы выдать ему правильные маршруты ИТД.

Как лучше сделать ?

indeec
Сообщения: 87
Зарегистрирован: 17 май 2009, 11:46
Откуда: Киев

Сообщение indeec » 15 авг 2012, 13:08

Если звонок между клиентами - он должен быть пробилингован по бесплатному тарифу. Но должен быть учтён в принципи.
По поводу "ДВО" - смотря что нужно, по логике нада рядом с mvts ставить asterisk/freeswitch/yate/somethingelse и крутить на нём дополнительные фишки.

EVoIP
Сообщения: 78
Зарегистрирован: 16 апр 2010, 14:14
Откуда: Ukraine

Сообщение EVoIP » 17 сен 2012, 18:12

Потихоньку разбираюсь с Kamailio...
В моей схеме нужно сделать как бы двойную регестрацию.
UAC --> Kamailio --> MVTS Pro

Подскажите как лучше это сделать, или как это вообще возможно:
Клиент регаеться на Kamailio и звонки между абонентами происходят внутри Kamailio, но когда клиенту нужно позвонить на внешний мир он должен передать запрос регестрации на MVTS Pro что бы та распознала его как конкретного клиента и применила к нему все правила.

Я вот думаю как можно это сделать:
1. Взять из функции usrloc.so сохраненные данные о клиенте и сформировать новый register который передать на MVTS - так реально ?
2. Делать двойную регестрацию сразу при регестрации на камайлио (только как ?)
прилетел REGISTER от клиента мы делаем save("location"); и еще раз передаем REGISTER на MVTS ?
3. Или как-то делать регестрацию на MVTS но говорить MVTS что клиент находиться на Kamailio.
как в этом примере - http://kb.asipto.com/asterisk:realtime: ... .7.0-astdb


Заранее спасибо за ответы.

indeec
Сообщения: 87
Зарегистрирован: 17 май 2009, 11:46
Откуда: Киев

Сообщение indeec » 18 сен 2012, 13:22

Последний вариант.
Но звонки между сип пользователями так же пропускать через меру

EVoIP
Сообщения: 78
Зарегистрирован: 16 апр 2010, 14:14
Откуда: Ukraine

Сообщение EVoIP » 16 окт 2012, 09:32

Приветсвую!

Есть задачка когда клиент звонит через удаленный шлюз тот требует авторизацию (username, password).
Я вижу выходом из этой ситуации использовать модуль UAC Module [url]htatp://kamailio.org/docs/modules/3.3.x/modules_k/uac.html#id2548056[/url] который умеет эмулировать поведение SIP UAC. Но не совсем получаеться...

В модуле есть несколько возможностей сгенерироваться REGISTER на удаленный шлюз:

- есть таблица uacreg в БД Kamailio, когда в нее внести данные, то после перезагрузки Kamailio она выдаст все регестрации что занесены в таблицу, тоесть было в таблице 200 учеток, они одним мигом при старте будут регаться - это не правильно, не подходит. Потом табица перечитываеться только при рестарте К (Камайлио).

- дальше есть способ регестрации с помощью ф-ии uac_auth() - как показано на примере:

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

6.2. Client authentication

Many SIP platforms relay calls to SIP-to-PSTN third party gateways which require SIP authentication.

The example show how calls from all local users are forwarded and authenticated against the PSTN gateway. The PSTN terminator provides with one username and password for authentication.

The script will look like:

Example 9. Restricting access example

...
#define the credential
modparam("uac","credential","gw_user:gw_realm:gw_passwd")
.....
route
{
	.....
	# set failure route for authentication
	t_on_failure("3")
	# reset flag to mark no authentication yet performed
	resetflag(7);
	# forward to PSTN
	t_relay_to_udp("GW_IP","GW_PORT");
	....
}

failure_route[3]
{
	# authentication reply received?
	if ( t_check_status("401|407") )
	{
		# have we already tried to authenticate?
		if (isflagset(7))
		{
			t_reply("503","Authentication failed");
			break;
		}
		if (uac_auth())
		{
			# mark that auth was performed
			setflag(7);
			# trigger again the failure route
			t_on_failure("3");
			# repeat the request with auth response this time
			append_branch();
			t_relay();
		}
	}
}
...
Как видно в примере выше - при получении ответа 401, 407 попадаем в failure route и теоретически uac_auth() должна добавить требуемые заголовки credentinals которые указаны в uac modparam.
Этот вариант подходит - таким образом авторизации должна произойти только по требованию. Но почему то делаю все как на примере и в документации к модулю, а ни..на не получаеться :(
Уже доблбаюсь с этой темой почти месяц... буду рад любым советам.


Вопрос к спецам по Камайлио - кто то пользовался данным модулем ?



Заранее благодарен.

dyer
Модератор
Сообщения: 251
Зарегистрирован: 03 мар 2005, 15:37
Откуда: Санкт Петербург

Сообщение dyer » 09 ноя 2012, 18:58

Если еще актуально - можно попробовать скомбинировать и сделать примерно следующее:
- транслировать REGISTER на MVTS, при этом делая save_location (для звонков между абонентами kamailio)
и меняя Contact на вновь сгенерированный и ставя там свой (kamailio) ip. Соотвествие оригинального и сгенерированного Contact хранить в базе
- при входящем INVITE от MVTS восстанавливать оригинальный Contact и отправлять дальше.

Ответить