• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            通過部署opensips, opensips-cp, rtpproxy, mediaproxy實現voip通話。測試可以通過安卓原生客戶端驗證,CSipSimple客戶端通話(撥打/接收)

            1.安裝opensips
            opensips需要編譯源碼安裝
            官網:http://opensips.org
            文件目錄:http://opensips.org/pub/opensips/1.11.2/src/

            wget http://opensips.org/pub/opensips/1.11.2/src/opensips-1.11.2_src.tar.gz
            tar xcf opensips-1.11.2_src.tar.gz
            cd opensips-1.11.2-tls/
            make menuconfig

            在menuconfig中選擇—>Configure Compile Options—> Configure Excluded Modules
            方向鍵向下滾動,按空格選中[*] db_mysql
            2014-07-10_160756
            按q鍵返回上一級,選擇—> Configure Install Prefix,輸入/回車表示安裝在/目錄下的配置目錄而不是/usr/local目錄下。
            2014-07-10_160954
            選擇 —> Save Changes 保存修改。
            2014-07-10_161200
            按q返回,選擇 —> Compile And Install OpenSIPS,回車安裝。
            安裝完成后會將配置文件放在/etc/opensips目錄下。運行文件在/sbin目錄下。
            如果出現依賴錯誤,先通過apt-get安裝依賴。

            2.配置opensips
            進入/etc/opensips目錄,運行osipsconfig命令

            cd /etc/opensips
            osipsconfig

            依次選擇—> Generate OpenSIPS Script —> Residential Script —> Configure Residential Script
            選中如下幾項
            [*] ENABLE_TCP
            [*] USE_ALIASES
            [*] USE_AUTH
            [*] USE_DBACC
            [*] USE_DBUSRLOC
            [*] USE_DIALOG
            [*] USE_NAT
            按q返回,選擇 —> Generate Residential Script 回車,生成新的配置文件。按q(三次)退出命令
            將新生成的opensips_residential_*.cfg文件重命名為opensips.cfg編輯

            mv opensips_residential_2014-7-10_16:19:22.cfg opensips.cfg
            vi opensips.cfg

            修改為如下內容

            debug=3
            log_stderror=no
            log_facility=LOG_LOCAL0

            fork=yes
            children=4

            /* uncomment the following lines to enable debugging */
            #debug=6
            #fork=no
            #log_stderror=yes

            /* uncomment the next line to enable the auto temporary blacklisting of 
               not available destinations (default disabled) */
            #disable_dns_blacklist=no

            /* uncomment the next line to enable IPv6 lookup after IPv4 dns 
               lookup failures (default disabled) */
            #dns_try_ipv6=yes

            /* comment the next line to enable the auto discovery of local aliases
               based on revers DNS on IPs */
            auto_aliases=no

            alias=xdty.org # 增加alias,修改為你的域名

            listen=udp:域名對應ip地址:6060   # CUSTOMIZE ME

            disable_tcp=no
            listen=tcp:域名對應ip地址:6060   # CUSTOMIZE ME 

            disable_tls=yes


            ####### Modules Section ########

            #set module path
            mpath="/lib64/opensips/modules/" # 增加一個斜杠

            #### SIGNALING module
            loadmodule "signaling.so"

            #### StateLess module
            loadmodule "sl.so"

            #### Transaction Module
            loadmodule "tm.so"
            modparam("tm""fr_timer"5)
            modparam("tm""fr_inv_timer"30)
            modparam("tm""restart_fr_on_each_reply"0)
            modparam("tm""onreply_avp_mode"1)

            #### Record Route Module
            loadmodule "rr.so"
            /* do not append from tag to the RR (no need for this script) */
            modparam("rr""append_fromtag"0)

            #### MAX ForWarD module
            loadmodule "maxfwd.so"

            #### SIP MSG OPerationS module
            loadmodule "sipmsgops.so"

            #### FIFO Management Interface
            loadmodule "mi_fifo.so"
            modparam("mi_fifo""fifo_name""/tmp/opensips_fifo")
            modparam("mi_fifo""fifo_mode", 0666)


            #### URI module
            loadmodule "uri.so"
            modparam("uri""use_uri_table"0)
            #增加這一行,不然報錯
            modparam("uri""db_url""mysql://opensips:opensipsrw@localhost/opensips") 

            #### MYSQL module
            loadmodule "db_mysql.so"

            #### USeR LOCation module
            loadmodule "usrloc.so"
            modparam("usrloc""nat_bflag""NAT")
            modparam("usrloc""db_mode",   2)
            modparam("usrloc""db_url",
                "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME

            #### REGISTRAR module
            loadmodule "registrar.so"
            modparam("registrar""tcp_persistent_flag""TCP_PERSISTENT")
            modparam("registrar""received_avp""$avp(received_nh)")
            /* uncomment the next line not to allow more than 10 contacts per AOR */
            #modparam("registrar", "max_contacts", 10)

            #### ACCounting module
            loadmodule "acc.so"
            /* what special events should be accounted ? */
            modparam("acc""early_media"0)
            modparam("acc""report_cancels"0)
            /* by default we do not adjust the direct of the sequential requests.
               if you enable this parameter, be sure the enable "append_fromtag"
               in "rr" module */
            modparam("acc""detect_direction"0)
            modparam("acc""failed_transaction_flag""ACC_FAILED")
            /* account triggers (flags) */
            modparam("acc""db_flag""ACC_DO")
            modparam("acc""db_missed_flag""ACC_MISSED")
            modparam("acc""db_url",
                "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME

            #### AUTHentication modules
            loadmodule "auth.so"
            loadmodule "auth_db.so"
            modparam("auth_db""calculate_ha1"yes)
            modparam("auth_db""password_column""password")
            modparam("auth_db""db_url",
                "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME
            modparam("auth_db""load_credentials""")

            #### ALIAS module
            loadmodule "alias_db.so"
            modparam("alias_db""db_url",
                "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME
                
            #### DIALOG module
            loadmodule "dialog.so"
            modparam("dialog""dlg_match_mode"1)
            modparam("dialog""default_timeout"21600)  # 6 hours timeout
            modparam("dialog""db_mode"2)
            modparam("dialog""db_url",
                "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME


            ####  NAT modules
            loadmodule "nathelper.so"
            modparam("nathelper""natping_interval"10)
            modparam("nathelper""ping_nated_only"1)
            modparam("nathelper""received_avp""$avp(received_nh)")

            loadmodule "rtpproxy.so"
            modparam("rtpproxy""rtpproxy_sock""udp:localhost:22222") # 修改端口

            #增加下邊這一段
            #### MediaProxy module
            loadmodule "mediaproxy.so"
            modparam("mediaproxy""disable"0)
            modparam("mediaproxy""mediaproxy_socket""/var/run/mediaproxy/dispatcher.sock")
            modparam("mediaproxy""mediaproxy_timeout"1000)
            modparam("mediaproxy""signaling_ip_avp""$avp(nat_ip)")
            modparam("mediaproxy""media_relay_avp""$avp(media_relay)")
            modparam("mediaproxy""ice_candidate""low-priority")

            修改opensipsctlrc文件

            vi opensipsctlrc

            去掉所有DB相關的注釋。

            SIP_DOMAIN=xdty.org
            DBENGINE=MYSQL
            DBHOST=localhost
            DBNAME=opensips
            DB_PATH="/usr/local/etc/opensips/dbtext"
            DBRWUSER=opensips
            DBRWPW="opensipsrw"
            DBROOTUSER="root"
            USERCOL="username"

            為opensips新建數據庫,增加域名及用戶

            opensipsdbctl create
            opensipsctl domain add xdty.org
            opensipsctl add 10000 123456
            opensipsctl add 10001 123456

            3.安裝rtpproxy并配置

            apt-get install rtpproxy
            vi /etc/default/rtpproxy

            修改為如下內容

            CONTROL_SOCK=udp:127.0.0.1:22222

            # Additional options that are passed to the daemon.
            EXTRA_OPTS=""
            LISTEN_ADDR=你的域名對應ip地址
            EXTRA_OPTS="-l ${LISTEN_ADDR}"

            啟動rtpproxy

            killall rtpproxy
            /etc/init.d/rtpproxy start

            如果rtpproxy啟動失敗,請檢查/etc/init.d/rtpproxy腳本DAEMON路徑是否正確,默認為DAEMON=/usr/sbin/$NAME,可能要改為DAEMON=/usr/bin/$NAME

            4.安裝并配置mediaproxy
            導入源密鑰,增加mediaproxy的源到/etc/apt/sources.list

            wget http://download.ag-projects.com/agp-debian-gpg.key 
            apt-key add agp-debian-gpg.key
            vi /etc/apt/sources.list

            最后位置添加

            deb    http://ag-projects.com/ubuntu precise main 
            deb-src http://ag-projects.com/ubuntu precise main

            安裝mediaproxy

            apt-get update
            apt-get install mediaproxy-dispatcher mediaproxy-relay mediaproxy-web-sessions

            進入/etc/mediaproxy/tls目錄,拷本密鑰文件,修改配置文件

            cd /etc/mediaproxy/tls/
            cp /usr/share/doc/mediaproxy-common/tls/* .
            cd ..
            vi config.ini

            修改為類似如下內容

            [Relay]
            dispatchers = 106.186.23.149
            passport = None
            relay_ip = 106.186.23.149
            port_range = 50000:60000
            log_level = DEBUG
            stream_timeout = 90
            on_hold_timeout = 7200
            reconnect_delay = 10
            traffic_sampling_period = 15
            [Dispatcher]
            socket_path = dispatcher.sock
            listen = 106.186.23.149
            listen_management = 106.186.23.149
            management_use_tls = yes
            passport = None

            management_passport = None
            log_level = DEBUG
            relay_timeout = 5
            [TLS]
            certs_path = tls
            verify_interval = 300
            [Database]
            [Radius]
            [OpenSIPS]
            socket_path = /var/run/opensips/socket
            max_connections = 10

            啟動mediaproxy服務

            media-dispatcher restart
            media-relay restart

            5.啟動服務并檢驗
            修改日志文件配置,是opensips的日志保存在/var/log/opensips.log

            touch /var/log/opensips.log
            chmod 777 /var/log/opensips.log
            vi /etc/rsyslog.d/opensips.conf

            增加如下內容

            local0.*             /var/log/opensips.log

            為opensips.log文件增加vim的顏色自動化

            vi ~/.vim/filetype.vim

            增加如下內容

            au BufNewfile,BufRead /var/log/* set filetype=messages

            重啟syslog服務,啟動opensips

            service rsyslog restart
            opensipsctl start

            如果啟動失敗,查看/var/log/opensips.log文件查找錯誤。

            服務啟動后,防火墻開啟tcp及udp的端口

            iptables -I INPUT -p tcp --dport 6060 -j ACCEPT
            iptables -I INPUT -p udp --dport 6060 -j ACCEPT
            iptables-save

            然后在http://www.yougetsignal.com/tools/open-ports/查看端口是否打開

            手機測試端安裝CSipSimple或其他sip客戶端測試。注意CSipSimple服務器輸入為類似xdty.org:6060 域名:端口的形式,撥打對方電話時直接輸入帳號名10001而不需要輸入域名。如果可以通話就表示配置成功了。

            或者使用原生的系統撥號盤,在設置->通話設置->互聯網電話設置|賬戶->接聽來電(勾選)|添加賬戶->保存。當顯示為”主賬戶。接聽電話”時即配置成功。撥打電話時需要加入類似郵箱地址的后綴即10001@xdty.org,如果不能輸入非數字字符可以粘貼或者添加一個新的聯系人,在“增加其他字段”中添加“互聯網電話”,輸入10001@xdty.org,之后點擊此聯系人撥打互聯網電話即可。

            下文增加網頁管理功能。

            6.安裝配置opensips-cp
            下載最新版本的opensips-cp,位置在http://sourceforge.net/projects/opensips-cp/
            可以根據INSTALL文件安裝,主要配置一些數據庫的操作。
            將文件解壓,復制到/var/www/目錄下重命名為opensips
            安裝一些依賴關系

            pear install MDB2#mysql
            pear install log

            更改權限

            chown www-data:www-data web -R

            進入config/tools/admin/add_admin/目錄,導入數據表

            mysql -Dopensips -p<ocp_admin_privileges.mysql
            mysql -uroot opensips
            INSERT INTO ocp_admin_privileges (username,password,ha1,available_tools,permissions) values ('admin','admin',md5('admin:admin'),'all','all');

            進入config/tools/system/cdrviewer/目錄

            mysql -Dopensips -p < cdrs.mysql
            mysql -Dopensips -p<opensips_cdrs.mysql

            進入cron_job目錄,修改文件配置數據庫信息

            vi generate-cdrs_mysql.sh

            注意,generate-cdrs_mysql.sh這個文件里的“call opensips_cdrs_1_6()”可能要改為“call opensips_cdrs()”,必須要與opensips_cdrs.mysql里定義的名稱一致。
            進入config/tools/system/smonitor/目錄,導入數據庫并添加定時任務。

            mysql -Dopensips -p < tables.mysql
            vi /etc/crontab
            */3 * * * * root /var/www/opensips/cron_job/generate-cdrs_mysql.sh
            * * * * * root php /var/www/opensips-cp/cron_job/get_opensips_stats.php > /dev/null

            打開瀏覽器訪問http://網址/opensips,使用admin/admin登錄,登錄后可以修改用戶名和密碼。

            參考資料:
            http://www.cnblogs.com/bjzhanghao/archive/2013/02/13/2910903.html
            http://www.docin.com/p-163183480.html
            http://www.linuxidc.com/Linux/2014-01/95847.htm

            Tags: mediaproxy opensips opensips web opensips-cp rtpproxy voip

            @import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2016-11-08 10:42 聶文龍 閱讀(2374) 評論(0)  編輯 收藏 引用
            热久久这里只有精品| 久久精品国产2020| 尹人香蕉久久99天天拍| 一本色道久久88综合日韩精品| 精品国产青草久久久久福利| 色婷婷狠狠久久综合五月| 国产69精品久久久久9999APGF| 亚洲熟妇无码另类久久久| 久久亚洲国产成人影院网站| 久久综合狠狠综合久久 | 热综合一本伊人久久精品| 久久99精品久久久久久动态图| 久久久精品日本一区二区三区| 亚洲国产精品无码久久久不卡 | 久久丫精品国产亚洲av不卡| 欧美777精品久久久久网| www性久久久com| 久久99国产综合精品免费| 最新久久免费视频| 一日本道伊人久久综合影| 性做久久久久久免费观看| 伊人久久精品影院| 国产精品久久久久久久人人看| 久久久久亚洲AV无码专区桃色 | 久久精品国产福利国产琪琪| 热久久国产精品| 亚洲中文字幕伊人久久无码 | 丁香狠狠色婷婷久久综合| 国产精品久久久天天影视| 精品久久8x国产免费观看| 狠狠综合久久综合中文88| 久久久久久久97| 久久精品成人欧美大片| 亚洲国产另类久久久精品黑人 | 久久九九免费高清视频| 久久夜色精品国产网站| 久久99这里只有精品国产| 精品久久人人爽天天玩人人妻| 精产国品久久一二三产区区别| 国产精品一区二区久久精品无码 | 色狠狠久久综合网|