kamailio设置

Kamailio是一个开源的SIP服务器,原名OpenSER.

Kamailio is an Open Source, GPL2, SIP Server Routing Platform. It is written in C for Linux/Unix plaforms and focuses on performance, flexibility and security. 

kamailio(OpenSER)源码安装说明:

1.    untar src package to /usr/local/src/kamailio 

2.    vi Makefile.vars to enable mysql and presence modules

## Compile MySQL modules - debian-require: libmysqlclient-dev

MODS_MYSQL=on 

## Compile Presence modules - debian-require: libxml2-dev libcurl3-dev

MODS_PRESENCE=on 

3.    make install 

4.    cd /usr/local/etc/kamailio

# *** To enamble mysql execute:

     sed -i 's/#m#//g' kamailio.cfg

# *** To enamble presence server execute:

     sed -i 's/#p#//g' kamailio.cfg 

5.    vi /usr/local/etc/kamctlrc

SIP_DOMAIN=wangxf.com

DBENGINE=MYSQL

DBHOST=localhost

DBNAME=openser

DB_PATH="/usr/local/etc/kamailio/dbtext"

DBRWUSER=openser

DBRWPW="openserrw"

DBROUSER=openserro

DBROPW=openserro

DBROOTUSER="root" 

6.    install mysql server 

7.    cd /usr/local/sbin

//create database tables

kamdbctl create 

8.    //start kamailio service

kamctl start 

9.    //monitor kamailio

kamctl moni

注:如果不使用数据库,可以省略2.4.5.6.7步骤

kamailio(OpenSER)转发配置,主要由dispatcher模块负责,大致对应于sipXecs中的dialplan,其中的uri部分是正则表达式

目标:

         打给5900的电话转发到第一组的第一台服务器

         打给400的电话转发到第二组的第二台服务器

打给500的电话在第二组的服务器间轮训 

1. 编写/usr/local/etc/kamailio/dispatcher.list

################################################################################

# line format

# group  sip addresses of your * units

     1       sip:192.168.90.67:15060

     1       sip:192.168.90.68:15060

     2       sip:192.168.90.222:5150

     2       sip:192.168.90.223:5150

#####注意这里配置了2组sip服务器,每组有2个成员,下面的转发配置中会用到此设置###### 


2. 修改/usr/local/etc/kamailio/kamailio.cfg

################################################################################

...

loadmodule "dispatcher.so"

modparam("dispatcher", "list_file", "/usr/local/etc/kamailio/dispatcher.list")

 #####

route {

         if (!mf_process_maxfwd_header("10")) {

                   sl_send_reply("483","Too Many Hops");

                   exit;

         } 

         if (method=="INVITE" && uri=~"sip:5900@.*")

         {

                   ds_select_dst("1", "0"); #转发到第一组的第一台

                   forward();

                   exit;

         }

         if (method=="INVITE" && uri=~"sip:400@.*") 

         {

                   ds_select_dst("2", "1");   #转发到第二组的第二台

                   forward();

                   exit;

         } 

         if (method=="INVITE" && uri=~"sip:500@.*") 

         {

                   ds_select_dst("2", "2");   #在第二组轮训

                   forward();

                   exit;

         } 

         ...

}

###

转自:http://blog.youkuaiyun.com/askcyg/article/details/4742741

### Kamailio SIP服务器简介 Kamailio 是一款基于 SIP 协议的开源服务器软件,最初名为 OpenSER,在 VoIP 和实时通信领域具有广泛应用。其主要功能包括但不限于语音通话、视频会议以及即时消息传递等服务[^2]。 #### 主要特性 - **高性能**:通过模块化架构实现高效的大规模并发处理能力。 - **可扩展性**:内置大量模块供开发者按需启用或自定义开发新功能。 - **灵活性**:兼容多种协议(如 SIP, RTSP, HTTP),适应不同应用场景下的需求变化。 - **安全性保障**:集成 TLS/IPSec 加密技术来保护数据传输过程中的隐私与安全[^2]. --- ### 安装部署指南 为了成功安装并运行 Kamailio ,需要完成如下几个方面的准备工作: #### 软件依赖项 确保目标机器已预先安装好必要的库文件及其头文件版本;例如 libmysqlclient-dev 或 postgresql-server-dev-all 这些数据库驱动程序对于后续连接外部存储至关重要[^2]。 #### 编译选项设置 下载源码包之后进入解压后的目录执行 `./configure` 命令时可以指定额外参数来自定义编译行为,比如开启特定的功能模块或者调整路径配置等等: ```bash ./configure --enable-tls --with-mysql ... make all sudo make install ``` > 注:以上仅为示例命令片段,请依据实际环境做出适当修改后再操作! --- ### 配置实例解析 默认情况下,Kamailio 使用 `/etc/kamailio/kamailio.cfg` 文件作为核心启动脚本之一 。下面给出一段简单的路由逻辑演示如何区分来电类型并做相应转发处理: ```kamailio if (is_method("INVITE")) { t_relay(); } elseif(is_method("REGISTER")){ save("location"); }else{ sl_send_reply("405","Method Not Allowed"); } ``` 此段伪代码展示了当接收到 INVITE 请求时将其继续沿链路发送出去;如果是 REGISTER 类型则更新本地位置表记录用户当前可达地址信息;除此之外其余未匹配的方法均返回错误响应告知客户端不被允许访问[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值