Как настроить kamailio для переадресации звонков без регистрации и замены в шапке - PullRequest
0 голосов
/ 10 декабря 2018

Я хотел бы создать публичный sip-шлюз для приема звонков без регистрации через uri, например, sip: random_login@sip.public.ip

frontend: kamailio 5.0 + mariadb 10.0 (192.168.30.150):два сервера звездочки 11 для балансировки нагрузки (192.168.30.1,192.168.30.2)

Добавить в базу данных kamailio мои серверы звездочки

insert into dispatcher (setid,destination,attrs) values (1,"sip:192.168.30.1:5060","weight=50");
insert into dispatcher (setid,destination,attrs) values (2,"sip:192.168.30.2:5060","weight=50");

Добавить в базу данных kamailio новую таблицу

create table my_trunk (
  id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  alias varchar(32) DEFAULT NULL,
  trunk_id int(11) UNSIGNED DEFAULT NULL,
  dispatcher_id int(10) UNSIGNED DEFAULT NULL,
  PRIMARY KEY (id)
); 

И заполните его

insert into my_trunk (alias,trunk_id,dispatcher_id) values ('test1',1,1);
insert into my_trunk (alias,trunk_id,dispatcher_id) values ('test2',2,2);

Настройте kamailio для использования sqlops и диспетчерских модулей

# ----------------- setting dispatch module parameters ---------------
loadmodule "dispatcher.so"
modparam("dispatcher", "db_url", "mysql://kamailio:kamailiorw@localhost/kamailio")
modparam("dispatcher", "ds_ping_interval", 30)

loadmodule "sqlops.so"
modparam("sqlops","sqlcon","ca=>mysql://kamailio:kamailiorw@localhost/kamailio")

Я хочу получить запрос INVITE, замените заголовок и перенаправьте его на сервер звездочекс новым заголовком

В kamailio.cfg замените

# account only INVITEs
if ( is_method("INVITE") ) {
    setflag(FLT_ACC); # do accounting
}

на

# account only INVITEs
if ( is_method("INVITE") ) {
    setflag(FLT_ACC); # do accounting
        sql_query("ca", "select dispatcher_id,trunk_id from my_trunk where alias='$tU'","ra");
        $var(ds_force_dst) = $dbr(ra=>[0,0]);
        $var(trunk_id) = $dbr(ra=>[0,1]);

        ds_select_dst($var(ds_force_dst),"4");
        sl_send_reply("100","Trying");
        forward();
        exit();

}

Вызов переадресован, но я не знаю, как заменить На заголовок на 000-$ var (trunk_id) перед пересылкой

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете использовать модуль UAC, который помогает заменить, изменяет SIP URI.

Предложить: посмотреть режим восстановления.может быть полезно для вас

UAC модуль

...