开源 SIP 服务器 Kamailio

开源 SIP 服务器 Kamailio

GPLv2
C/C++
Linux
2009-06-01
红薯

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.

On Nov 04, 2008, Kamailio and SIP Express Router have started the SIP Router Project.

Kamailio 诞生于 2005 年 7 月,它是从德国 FhG FOKUS 研究所主导的 SIP Express Router(SER) 项目组分裂出来的。新项目建立的目标是创建一个开放的开发环境,以建立一个强大的可扩展的开源 SIP 服务器。Kamailio 是个纯粹的 SIP 服务器,它可以作为 PROXY、注册服务器、重定向服务器,也可作为简单的 PRESENCE 服务器。

Web links

  • Home page with new project name: http://www.kamailio.org

  • Home page with old project name: http://www.openser-project.org

  • SourceForge.net Project page: http://sourceforge.net/projects/openser/

Features

  • SIP proxy/registrar/redirect server (RFC3261, RFC3263)

  • UDP/TCP/TLS/SCTP support

  • Transactional stateful proxy

  • Modular architecture

  • Programmable configuration file

  • ENUM support

  • Call Processing Language (CPL)

  • Gateway to sms or xmpp

  • Authentication, authorization and accounting via Radius or database

  • NAT traversal system

  • Least cost routing

  • Load balancing

  • Carrier routing

  • Multiple database backends: MySQL, Postgres, Oracle, BDB or flat files

  • SIMPLE Presence Server (IETF SIMPLE extensions - rich presence)

  • Dialog Info Presence - SLA/BLA

  • XCAP and RLS

  • Presence User Agent

  • Dialog Stateful Proxy

  • Instant Messaging

    • Offline message storage

    • Instant messaging conferencing

  • SNMP support

  • Perl Programming Interface

  • Java SIP Servlet Application server

  • Over 80 modules (extensions)

Documentation

  • Main Documentation Page - http://www.kamailio.org/docs/

  • Dokuwiki Page - http://www.kamailio.org/dokuwiki/

我们使用Kamailio主要用在SIP dispatcher server,即SIP redirect server
安装及配置手册如下

一.安装
1.依赖包:
libmysqlclient & libz (zlib) :mysql DB support (the db_mysql module) Shared libraries

                        MySQL-shared-5.1.32-0.glibc23.i386.rpm

                        MySQL-devel-community-5.1.32-0.rhel5.i386.rpm


libxml2:cpl-c (Call Processing Language) or the presence modules (presence and pua*)
libperl:perl scripting from you config file (perl module)
2.源代码安装
make,make modules,make install
或者make all,make install
参考:
3.启动:kamctl start
4.重启:kamctl restart
5.监控服务状态:kamctl moni
6.MySQL配置:
1)安装:
edit Makefile.var files to include the MySQL module
vim Makefile.vars
Uncomment the next line in the file:
MODS_MYSQL=on
cp /usr/local/lib/mysql/libmysqlclient.so.16 /usr/lib

Edit now /usr/local/etc/kamailio/kamctlrc and add:
DBENGINE=MYSQL
SIP_DOMAIN=pryko.com
6.1 创建数据库:kamdbctl create
6.2管理员登录:user 'admin' with password ' openserrw '
6.3 添加用户:kamctl add
6.4 默认值:database url, users and passwords
  - DEFAULT_DB_URL="mysql://opensips:opensipsrw@localhost/opensips"
  - r/w user: openser; passwd: openserrw
  - r/o user: openserro; passwd: openserro

二.配置
1.配置文件 kamailio.cfg
/usr/local/etc/kamailio/kamailio.cfg
2.配置文件 kamctlrc
/usr/local/etc/kamailio/kamctlrc

三.脚本
参考文档:
Kamailio Wiki
http://www.kamailio.com/dokuwiki
Cookbooks and Reference
http://www.kamailio.com/dokuwiki/doku.php/core-cookbook:1.5.x
Kamalio 1.5.x Module Functions Index
http://www.kamailio.com/dokuwiki/doku.php/modules:1.5.x:index-functions


四.负载均衡Load Balancing
参考:http://www.kamailio.org/dokuwiki/doku.php/asterisk:load-balancing-and-ha
4.1配置文件 kamailio.cfg
loadmodule("dispatcher.so")
modparam("dispatcher", "list_file", "/usr/local/etc/kamailio/dispatcher.list")
modparam("dispatcher", "force_dst", 1)
4.2 ---dispatcher.list----文件
# group sip addresses of your * units
1 sip:221.5.152.171:5060
1 sip:221.5.152.170:5060
4.3 kamctl命令:kamctl dispatcher show
-- command 'dispatcher' - manage dispatcher
  * Examples:  dispatcher addgw 1 sip:1.2.3.1:5050 1 'outbound gateway'
  *            dispatcher addgw 2 sip:1.2.3.4:5050 3 ''
  *            dispatcher rmgw 4
dispatcher show ..................... show dispatcher gateways
dispatcher reload ................... reload dispatcher gateways
dispatcher dump ..................... show in memory dispatcher gateways
dispatcher addgw
            .......................... add gateway
dispatcher rmgw................ delete gateway

查看载入的配置:kamctl dispatcher dump
修改后重新载入配置:kamctl dispatcher reload

 

如需使用,需安装MySQL-client-community-5.1.32-0.rhel5.i386.rpm
否则报错:ERROR: This command requires a database engine - none was loaded



五.与Asterisk对接负载均衡
注意事项:sip.conf
注释如下行
;canreinvite=no ; Asterisk by default tries to redirect

Asterisk#1  10.10.10.56
配置sip.conf
[5000]
type=friend
;username=5000
secret=5000_phone2
callerid=5000
qualify=yes ; Qualify peer is no more than 2000 ms away
nat=no ; This phone is natted
host=dynamic ; This device registers with us
;canreinvite=no ; Asterisk by default tries to redirect
配置extension.conf
[default]
exten => 6000,1,Dial(SIP/6000@10.10.10.57,60)
exten => 5000,1,Dial(SIP/5000,60)

Asterisk#2  10.10.10.57
配置sip.conf
[6000]
type=friend
;username=6000
secret=6000_phone2
callerid=6000
qualify=yes ; Qualify peer is no more than 2000 ms away
nat=no ; This phone is natted
host=dynamic ; This device registers with us
;canreinvite=no ; Asterisk by default tries to redirect
配置extension.conf
[default]
exten => 6000,1,Dial(SIP/6000,60)
exten => 5000,1,Dial(SIP/5000@10.10.10.136,60)

Kamailio 10.10.10.136
配置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","To Many Hops");
  drop();
};
ds_select_dst("1", "0");
forward();
}
配置dispatcher.list
# line format
# setit(integer) destination(sip uri) flags (integer, optional)
1 sip:10.10.10.56:5060

测试
登录10.10.10.57上的6000,登录10.10.10.56上的5000
从6000呼叫5000,会呼叫10.10.10.136上的5000,10.136重定向到10.56

六.按号码段重定向网关
配置kamailio.cfg
使用正则表达式
route{
        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops");
                exit;
        }
if (uri=~"^sip:5[0-9]+@10.10.10.136$") {
  if (is_method("INVITE")) {
  ds_select_dst("1", "0");
  forward();
  exit;
  }
}
if (uri=~"^sip:8[0-9]+@10.10.10.136$") {
  if (is_method("INVITE")) {
  ds_select_dst("2", "0");
  forward();
  exit;
  }
}
sl_send_reply("404","Not here");
exit;
}
配置dispatcher.list
# line format
# setit(integer) destination(sip uri) flags (integer, optional)
1 sip:10.10.10.56:5060 #1
2 sip:10.10.10.54:5060

测试
登录10.10.10.57上的6000,登录10.10.10.56上的5000
从6000呼叫5000,会呼叫10.10.10.136上的5000,10.136重定向到10.56
从6000呼叫8002,会呼叫10.10.10.136上的8002,10.136重定向到10.54

加载中

评论(0)

暂无评论

Kamailio 5.2.1 发布,开源 SIP 服务器

Kamailio v5.2.1 已发布,更新内容主要是代码和文档的修复,是最新的稳定版本。新版保留了配置文件和数据库模式的兼容,你不需要改动任何内容就可以更新。 Kamailio v5.2.1 基于最新版本的 ...

01/17 07:32

Kamailio 5.2.0 发布,开源 SIP 服务器

Kamailio v5.2.0 已发布,这是 5.xy 系列中的第三个主要版本,历经九个月的开发和大约两个月的测试,包含大量新功能和改进。 总的来说,新版本为 70 多个现有模块带来了 6 个新模块及功能改进...

2018/11/29 07:11

Kamailio 5.1.6 发布,开源 SIP 服务器

Kamailio SIP Server v5.1.6 稳定版已发布,该版本是一个小版本更新,包括自 v5.1.5 以来的代码和文档修复。保留了配置文件和数据库模式的兼容性,这意味着您不需要更改任何内容以进行更新。...

2018/10/07 07:28

开源 SIP 服务器 Kamailio v5.1.4 ,常规维护版本

Kamailio SIP Server v5.1.4 稳定版已发布,该版本是一个小版本更新,包括自 v5.1.3 以来的代码和文档修复。保留了配置文件和数据库模式的兼容性,这意味着您不需要更改任何内容以进行更新。...

2018/06/06 07:20

Kamailio 5.1.2 发布,开源 SIP 服务器

Kamailio SIP Server v5.1.2 stable 已发布,这是一个小的更新版本,包括自 v5.1.1 以来的代码和文档修复。 配置文件和数据库模式的兼容性被保留,这意味着你不需要改变任何东西来更新。 Ka...

2018/03/02 07:42

Kamailio 5.0.6 发布,开源 SIP 服务器

Kamailio SIP Server v5.0.6 stable 已发布,这是一个小的更新版本,包括自 v5.0.5 以来的代码和文档修复。 配置文件和数据库模式的兼容性被保留,这意味着你不需要改变任何东西来更新。 Ka...

2018/02/28 07:54

Kamailio v4.4.7 发布,开源 SIP 服务器

Kamailio SIP Server v4.4.7 stable 已发布,这是一个小的更新版本,包括自 v4.4.6 以来的代码和文档修复。 配置文件和数据库模式的兼容性被保留,这意味着你不需要改变任何东西来更新。 Ka...

2018/02/27 07:30

Kamailio v5.1.1 发布,开源 SIP 服务器

Kamailio 诞生于 2005 年 7 月,它是从德国 FhG FOKUS 研究所主导的 SIP Express Router(SER) 项目组分裂出来的。新项目建立的目标是创建一个开放的开发环境,以建立一个强大的可扩展的开源 ...

2018/01/23 07:23

开源 SIP 服务器 Kamailio v5.0.5 发布,常规维护版本

Kamailio SIP Server v5.0.5 稳定版已发布,该版本是一个小版本更新,包括自 v5.0.4 以来的代码和文档修复。保留了配置文件和数据库模式的兼容性,这意味着您不需要更改任何内容以进行更新。...

2017/12/20 07:45

Kamailio v5.1.0 发布,开源 SIP 服务器

Kamailio v5.1.0 发布。主要更新内容如下: Kamailio Embedded Interface (KEMI) framework offers now most of the functions available in the native configuration file. A tutorial is ...

2017/12/12 07:37

没有更多内容

加载失败,请刷新页面

2
回答
kamailio server上的contact数量

终端注册kamailio server,进行呼叫。由于一些原因,比如网络切换,或者终端异常终止,重复注册,在kamailio server上,每个AOR上...

2014/09/22 12:42
54
回答
5000元悬赏解决sip呼叫不通和单通的问题

有效时间:2014年9月30日 1)环境搭建步骤: a) 在公网安装Centos 6.5; b) 从http://turnserver.open-sys....

2014/09/09 13:40
1
回答
kamailio-3.2.0_src.tar源代码编译时出现的错误

不知道哪位大侠能给给我看看kamailio编译时出现的错误,错误信息如: Makefile:363: config.mak: No such file o...

2011/12/05 17:14

没有更多内容

加载失败,请刷新页面

没有更多内容

kamailio安装

## 1 下载 [kamailio 源码tar包](http://www.kamailio.org/pub/kamailio/latest/src/) 依赖: git client: apt-get install git - it is recommended to have a recent version, if your Li...

2015/07/28 15:18
527
0
从Git安装Kamailio v4.3.x

###声明 - 本文内容主要翻译自[Kamailio v4.3.x官方安装与配置教程](http://www.kamailio.org/wiki/install/4.3.x/git)。 ###安装环境和版本 - 操作系统:Ubuntu 12.04.5 64bit - Kamailio:...

2015/09/06 15:33
267
1
kamailio 配置 mediaproxy(备忘)

1.环境:阿里云Debian 8.04 64位系统,防火墙默认开启,数据库mysql 防火墙充许所有的请求 2.默认已经安装了kamailio,配置连mysql数据库,添加用户,不会的可以根据官方文档: http://www.k...

2016/08/25 14:46
120
0
kamailio配置rtpproxy(备忘)

1.环境:阿里云Debian 8.04 64位系统,防火墙默认开启,数据库mysql,防火墙充许所有的请求 2.默认已经安装了kamailio,配置连mysql数据库,添加用户,不会的可以根据官方文档: http://www.k...

2016/08/25 14:49
596
0
将Kamailio日志存到专门的日志文件

操作系统:Ubuntu 12.04.5 LTS 64bit Kamailio版本:4.3.x 本文的目标是将Kamailio的日志存到专门的日志文件(`/var/log/kamailio.log`)。 1. 首先确认Kamailio的配置文件里有下面这一行: ...

2015/10/20 09:40
290
0
基于sip的网络电话项目--说说(1)

公司近期上线了一个项目--是基于voip的网络电话的构建 体验地址 该项目使用真实的电话号码注册,没有好友观念,只要知道对方的电话号码就可以拨号过去,当然前提是对方也安装了该软件并注册了...

2014/07/02 12:55
730
1
Kamailio 公网 安装指南 遇到的问题

我是按照 http://blog.csdn.net/yetyongjin/article/details/8106997 在公网安装的 Kamailio ,一开始无法是用csipsimple注册,注册信息提示是403 forbidden...

2014/03/20 09:57
620
0
实现点对点通话 turn stun ice kamailio 的关系

研究了将近几个月的voip,总结出来一下相关概念的知识,特此分享一下。如果有错误还请大家多多指教。 我们先说为什么要讲 turn stun ice kamailio之间的关系,因为点对点通话是基于ip的音频流...

2014/07/02 11:31
423
0
FreeSWITCH最简易教程

FreeSWITCH 教程 windows

2015/12/29 11:17
628
0
WebRTC 浏览器端一对一通话快速解决方案

WebRTC 一对一视频通话,信令服务器,打动服务器

2016/01/27 12:19
162
2

没有更多内容

加载失败,请刷新页面

返回顶部
顶部