sip服務器的搭建


     我們都知道使用VOIP網絡電話,需要連接上sip服務器,這樣用戶之間才可以通信。
     在這里,我就簡單介紹下如何搭建sip服務器。 在windows系統下可搭建minisipserver,其官網為http://www.myvoipapp.com/,我們可以從中選取對應的版本,具體配置步驟見http://jingyan.baidu.com/article/03b2f78c744ab55ea237aef3.html。當然我們也可以下載Linux版本,安裝和使用教程見http://www.myvoipapp.com/docs/mss_services/linux/index.html,我就不再贅述。
     這里我着重講解下如何在ubuntu下搭建O pensSIPS服務器,OpenSIPS是一個成熟的開源SIP服務器,除了提供基本的SIP代理及SIP路由功能外,還提供了一些應用級的功能。OpenSIPS的結構非常靈活,其核心路由功能完全通過腳本來實現,可靈活定制各種路由策略,可靈活應用於語音、視頻通信、IM以及Presence等多種應用。同時OpenSIPS性能上是目前最快的SIP服務器之一,可用於電信級產品構建。憑借其可擴展、模塊化的系統架構,OpenSIPS提供了一個高度靈活的、用戶可配置的路由引擎,可以為voice、video、IM和 presence等服務提供強大高效的路由、鑒權、NAT、網關協議轉化等功能。由於其穩定高效等特點,OpenSIPS已經被諸多電信運營商應用在自己的網絡體系中。

一.前提條件:

(1)mysql已經配置好

1 sudo apt-get install mysql-server 2 sudo apt-get isntall mysql-client 3 sudo apt-get install libmysqlclient-dev

(2)如果找不到curses.h,安裝sudo apt-get install libncurses5-dev

二.安裝:

1. 下載 opensips
我使用的是1.8版本,即可以git下來
 git clone https://github.com/OpenSIPS/opensips.git -b 1.8 opensips_1_8

2. 解壓后,進入opensips目錄

    make all  ,如果出錯,一般是缺少一些編譯工具,直接sudo apt-get install xxx(相應的工具)
    make install
可能設置到權限不足的問題,為了省事,我們不妨在root用戶下進行操作

三.配置

1.opensips數據庫
   cd /usr/local/etc/opensips/查看發現有三個文件,分別是opensips.cfg opensipsctlrc osipsconsolerc,然后vim將其對應的ip地址修改成自己主機上的。

2.開啟數據庫
   /usr/local/sbin/opensipsdbctl create 
   如果出現以下錯誤
    “ERROR: could not load the script in /usr/local/lib/opensips/opensipsctl/opensipsdbctl.mysql for database engine MYSQL
     ERROR: database engine not loaded - tried 'MYSQL'”
     則
1 cd /usr/local/lib64/opensips/opensipsctl/
2 cp $(你的opensips目錄)/scrips/*.mysql  ./
3 mkdir mysql
4 cp  $(你的opensips目錄)/scrips/mysql/*.sql ./mysql
5 cd /usr/local/share/opensips
6 cp $(你的opensips目錄)/scrips/*.mysql  ./
7 mkdir mysql
8 cp  $(你的opensips目錄)/scrips/mysql/*.sql ./mysql
如果ubuntu是32位的話,則為/usr/local/lib/opensips/opensipsctl
    成功后,會有兩個選項,全選y
3.察看設置是否正確
   /usr/local/sbin/opensipsctl -c

四.使用

1.開啟opensips服務
   /usr/local/sbin/opensipsctl start
   關閉stop 重啟restart
    這里我遇到了ERROR: PID file/var/run/opensips.pid does not exist -- OpenSIPS start failed. 的問題。在這里使用tail -n 20 /var/log/syslog,可以查看錯誤原因,我發現是權限的問題,因而要sudo /usr/local/sbin/opensipsctl start 。
     
2.添加sip用戶
    /usr/local/sbin/opensipsctl  add username password   如:/usr/local/sbin/opensipsctl add 100 100
     可以使用/usr/local/sbin/opensipsctl  rm 100刪除用戶。

如果出現ERROR: domain unknown: use usernames with domain or set default domain in SIP_DOMAIN,說明環境變量未配置,所以vim /etc/environment,在里面寫入SIP_DOMAIN="你的IP Domain",而后再source下即可

默認的數據庫用戶為opensips,密碼為opensipsrw,當然你也可以設置成對應的用戶,直接在/usr/local/etc/opensips的配置文件修改對應的DBRWUSER,DBRWPW
                               
3.查看sip用戶
     可以使用mysql -u root -p而后輸入你的密碼,就能夠通過show databases;查看數據庫,再使用use opensips;並且show tables;就可以查看opensips數據庫里的表格,最后使用select * from subscriber;便能夠查看添加的sip用戶情況
4.可隨意找一款網絡電話進行測試,如sipdroid或linphone,設置用戶信息,發現仍然連接不上,這到底是什么原因呢?我查了很久,才發現是由於對應默認的端口5060未打開,因而使用sudo ufw allow 5060。再次測試,總算連接成功,而后就可以愉快地進行通話嘍!!!下面就是我測試成功的結果:
           
 
注意:如若不是公網IP,手機與服務器要確保在同一區域網里
 
   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM