日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

开源sip客户端 linux,开源SIP服务器 Kamailio

發布時間:2023/12/15 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开源sip客户端 linux,开源SIP服务器 Kamailio 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Kamailio是一個開源的SIP服務器,原名OpenSER。

Kamailio項目誕生于2005年7月,它是從德國FhG FOKUS研究所主導的SIP Express Router(SER)項目組分裂出來的。新項目建立的目標是創建一個開放的開發環境,以建立一個強大的可擴展的開源SIP服務器。最初,新項目命名為OpenSer,后來因為商標侵權問題,在2008年7月28號,重命名為Kamailio(另外一個分枝是OpenSips)。

Kamailio的官方主頁是http://www.kamailio.org 。1.5.x前的版本,其源碼托管在sourceforge.net的SVN庫上。從3.0.0版開始,源碼托管在sip-router.org的GIT庫上。

2008年11月,Kamailio和SER的開發團隊再度攜手合作,整合兩個SIP服務應用項目。整合結束后發布的V3.0.0版,在同一源碼樹包含了這兩個應用。換句話說,從源碼角度,Kamailio和SER已經合并為一個應用。不同的地方僅是編譯時選擇的名字和缺省配置的加載模塊而已。

不同于PBX,KAMAILIO是個純粹的SIP服務器,它可以作為PROXY、注冊服務器、重定向服務器,也可作為簡單的PRESENCE服務器,其本身并不處理RTP,可能通過RTPPROXY來處理RTP的NAT問題。

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.

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

總結

以上是生活随笔為你收集整理的开源sip客户端 linux,开源SIP服务器 Kamailio的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。