• <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
            <2016年11月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            常用鏈接

            留言簿(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 聶文龍 閱讀(2363) 評論(0)  編輯 收藏 引用
            久久久久亚洲Av无码专| 91久久香蕉国产熟女线看| 久久精品国产99国产精品| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 日韩人妻无码一区二区三区久久| 国产精品无码久久四虎| 久久精品国产91久久麻豆自制| 精品久久久噜噜噜久久久| 亚洲AV无码1区2区久久| 久久精品国产亚洲AV蜜臀色欲| 久久久久综合中文字幕| 久久无码国产| 久久嫩草影院免费看夜色| 久久午夜无码鲁丝片午夜精品| 国产精品免费久久| 国内精品欧美久久精品| 91性高湖久久久久| 国产午夜精品理论片久久| 久久99精品久久久久久9蜜桃| 久久精品无码专区免费| 久久性精品| 久久婷婷色综合一区二区| 怡红院日本一道日本久久 | 精品久久久久久久中文字幕| 国产精品一区二区久久精品无码 | 久久久久亚洲爆乳少妇无| 久久影院午夜理论片无码| 久久久久国产一区二区| 亚洲国产成人久久综合野外| 国产69精品久久久久APP下载| 一本一道久久综合狠狠老| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 国产成人久久精品二区三区| 91精品国产91久久久久久| 精品国产婷婷久久久| 久久久久亚洲AV成人网人人网站| 久久国产精品免费一区| 久久经典免费视频| 国产情侣久久久久aⅴ免费| 99精品久久久久久久婷婷| 九九精品久久久久久噜噜|