VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

kamailio настройка балансировки

Использование и настройка других открытых VoIP PBX

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

Ответить
maksimovkv
Сообщения: 5
Зарегистрирован: 18 ноя 2015, 11:32

kamailio настройка балансировки

Сообщение maksimovkv »

Добрый день!
Хочу собрать следующую схему. Пользователи регистрируются на kamailio, звонки от них от них балансируются на ноды астериска.
То есть приходит звонок от пользователя на kamailio, он посылает его на на одну из нод астериска .
Астериск принимает вызов, выполняет какое-то приложение если надо и отправляет вызов обратно к kamailio и он свою очередь отдает этот вызов конечно пользователю.
При тесте у меня получается что-то типа петли инвайтов.То есть инвайт от пользователя летит на камалио, он отправляет его на ноду, вызов возвращается и опять попадает в секцию инвайт и вызов опять уходит на астер, а не на конечного пользователя.Не могу понять как правильно это дело смашрутизировать, может нужно какие-то условия написать для каждых инвайтов или т.п.
Пересмотрел кучу конфигов, но не могу понять саму концепцию.
Вот что в конфиге
if (is_method("INVITE"))
{
record_route();
sl_send_reply("100","Trying");
ds_select_dst("1", "4");
forward();
xlog("L_NOTICE", "Balancing call to asterisk => $du, from $fU \n");
route(LOCATION);
route(RELAY);
}
}
maksimovkv
Сообщения: 5
Зарегистрирован: 18 ноя 2015, 11:32

Re: kamailio настройка балансировки

Сообщение maksimovkv »

Уже читал эту статью, сделано примерно тоже самое.Но почему-то инвайты которые приходят от нод попадают опять в секцию где описано балансировка и опять летят на эти же ноды, и в итоге получается петля.Как адресовать инвайты от нод, которые приходят от камалио конечным пользователем, не могу понять
if (is_method("INVITE"))
{
record_route();
sl_send_reply("100","Trying");
ds_select_dst("1", "4");
forward();

пришел инвайт на камалио и ушел на ноды.От нод идет инвайт и попадет сюда же и опять уходит на ноды.
Почему не уходит сюда
route(LOCATION);
route(RELAY);
}
}

секция
maksimovkv
Сообщения: 5
Зарегистрирован: 18 ноя 2015, 11:32

Re: kamailio настройка балансировки

Сообщение maksimovkv »

Разобрался, можно закрыть тему.
april22
Сообщения: 2187
Зарегистрирован: 09 июл 2012, 09:47

Re: kamailio настройка балансировки

Сообщение april22 »

напишите для потомков
Своими вопросами , вы загоняете меня в ГУГЛЬ.
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: kamailio настройка балансировки

Сообщение Samael28 »

Дайте угадаю, через что-то типа
if (ds_is_in_list("$si", ..) {
...
}
в смысле проверять, если адрес реквеста - одна из нод, тогда отсылаем на юзера? )
Мой профайл на Upwork
maksimovkv
Сообщения: 5
Зарегистрирован: 18 ноя 2015, 11:32

Re: kamailio настройка балансировки

Сообщение maksimovkv »

да верно, нужно было написать условие, если приходит инвайт приходит от нод, направлять его конечного пользователя.
На писал так
if (is_method("INVITE")) {
if(src_ip==ip_одной из нод & method=="INVITE"){
log("the message was sent from localhost!\n");
route(LOCATION);
route(RELAY);
}
else
{if(src_ip==ip_одной из нод & method=="INVITE"){
log("the message was sent from localhost!\n");
route(LOCATION);
route(RELAY);
}

С kamailio только разбираюсь , по началу было сложно понять саму концепцию.Вот как интересно будет работать перехват вызова в данной схеме, пока не понятно. Наверно надо использовать конкретный модуль для реализации.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: kamailio настройка балансировки

Сообщение virus_net »

Интересная тема. Сам давно хочу попробовать, но все руки не доходят.
Помимо перехватов как минимум есть ещё вопросы про очереди и работу BLF в такой схеме.
maksimovkv писал(а):звонки от них от них балансируются на ноды астериска.
А звонки к ним ?
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
maksimovkv
Сообщения: 5
Зарегистрирован: 18 ноя 2015, 11:32

Re: kamailio настройка балансировки

Сообщение maksimovkv »

Да даже если рассматривать какой то внутренний звонок.приходит вызов его нужно перехватить с другого аппарата - понятно что оба телефона должны быть в одной группе.
Где прописывается принадлежность того или иного юзера к группе, и как это сохранить при балансировке вызова.
На счет очереди - если на всех нодах поднять очередь, причем через базу - наверно все заработает, в том числе и синхронизация позиций в очереди, ведь для всех нод (астериск) она будет в базе.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH