• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當(dāng)前的位置是:  首頁 > 新聞 > 國內(nèi) >
     首頁 > 新聞 > 國內(nèi) >

    kamailio/OpenSIPS 學(xué)習(xí)筆記-如何實現(xiàn)IPPBX均衡負載

    2018-05-03 10:00:32   作者:james.zhu    來源:Asterisk開源派   評論:0  點擊:


      IPPBX的目前企業(yè)通信中最為常用的通信設(shè)備,IPPBX負責(zé)整個企業(yè)內(nèi)部呼叫和呼入呼出等相關(guān)的通信功能。很多企業(yè)IPPBX支持了云的安裝部署方式。如果作企業(yè)IPPBX的運營,運營商平臺必須可以實現(xiàn)多個企業(yè)IPPBX的均衡負載,保證IPPBX的正常工作。開源軟交換OpenSIPS或kamailio就可以幫助運營商針對IPPBX做均衡負載。本次分享重點介紹如何使用OpenSIPS結(jié)合IPPBX實現(xiàn)多臺IPPBX的均衡負載。
      1、在本次分享中,測試環(huán)境包括:opensips支持dispatch 和 balancer 模塊,兩臺完全一樣的IPPBX和相同的用戶賬號和密碼。注冊用戶可以同時注冊到兩臺IPPBX(Asterisk,FreePBX或者FreeSWITCH都可以實現(xiàn)),另外,如果對PSTN進行呼叫的話(必須支持PSTN的接入設(shè)備),呼叫則會根據(jù)均衡負載規(guī)則調(diào)度到不同的IPPBX。
      2、在測試呼叫之前,我們首先配置腳本文件和界面配置。首先,需要在cfg文件中,加載dispatcher和均衡負載模塊:
      loadmodule "dispatcher.so"modparam("dispatcher","db_url","mysql://opensips:opensipsrw@localhost/opensips")modparam("dispatcher","dst_avp","$avp(1)")modparam("dispatcher","grp_avp","$avp(2)")modparam("dispatcher","cnt_avp","$avp(3)")
      加載loadbalance 模塊:
      loadmodule "load_balancer.so"modparam("load_balancer", "db_url","mysql://opensips:opensipsrw@localhost/opensips") # 修改到相應(yīng)的用戶密碼modparam("load_balancer", "probing_method", "OPTIONS")modparam("load_balancer", "probing_interval", 30)
      添加調(diào)度注冊機制:
      使用調(diào)度注冊請求檢測if(is_method("REGISTER")) {if (!ds_select_dst("1", "2","f")) { # 強制使用了 To-URIsl_send_reply("500","No route to PBX");exit;}
      xlog("--- destination selected $du \n");t_on_failure("REGISTER_FAILOVER");route(RELAY);}
      # 調(diào)度注冊請求結(jié)束if ($rU==NULL) {# request with no Username in RURIsl_send_reply("484","Address Incomplete");exit;}
      # 添加對其他請求的均衡負載處理if ( !load_balance("1","channel")) {send_reply("500","No Destination available");exit;}
      t_on_failure("GW_FAILOVER");
      # 請求路由失敗的管理failure_route[GW_FAILOVER] {if (t_was_cancelled()) {exit;}
      # failure detection with redirect to next available trunkif (t_check_status("(408)|([56][0-9][0-9])")) {xlog("Failed trunk $rd/$du detected \n");if ( load_balance("1","channel") ) {t_on_failure("GW_FAILOVER");t_relay();exit;}
      send_reply("500","All GW are down");}
      }
      然后,通過界面添加均衡負載設(shè)置:
      最后,通過界面添加dispatch的模塊設(shè)置:
      3、如果以上配置環(huán)境配置成功的話,用戶可以分別進行以下測試:
    • 使用軟電話呼叫任意一個號碼,例如186XXXX。此時,第一個呼叫會路由到第一個IPPBX出局。因為我們是測試環(huán)境,IPPBX可以設(shè)置一個語音提示,對呼入的呼叫播放語音,提示用戶已經(jīng)呼入到第一個IPPBX。
    • 置于此呼叫為等待狀態(tài),使用另外的軟電話呼叫同樣的號碼,如果配置成功的話,呼叫會進入到第二臺IPPBX,第二臺IPPBX播放另外不同的語音提示。
    • 用戶也可以使用不同的軟電話分別進行注冊和重新注冊測試,用戶通過sngrep來檢測注冊的IP地址。如果配置成功的話,用戶可能會發(fā)現(xiàn),重新注冊流程總是注冊到被同一個軟電話終端注冊過的服務(wù)器。
      這里的測試環(huán)境相對比較簡單,我們僅通過此示例提供了均衡負載的思路和一個簡單的配置環(huán)境。當(dāng)然,如果用戶需要做運營級的產(chǎn)品,可能還要考慮很多非常有挑戰(zhàn)性的因素,這些因素包括:
    • 如何使用虛擬IP地址做路由處理。
    • 如何設(shè)置心跳來判斷IPPBX是否正常工作。
    • 如何設(shè)置號碼路由呼叫不同的落地資源。
    • 如何保證呼叫接通狀態(tài)?因為這里的loadbanlance是無狀態(tài)設(shè)置模式(stateless),必須保證用戶可以路由到可工作的IPPBX。
    • 如何實現(xiàn)注冊數(shù)據(jù)庫和用戶的數(shù)據(jù)同步設(shè)置。
    • 是否考慮使用最新的OpenSIPS cluster 模塊來進行設(shè)置。
    • PSTN 接入設(shè)備的逃生處理。
      4、在以上的分享中,我們首先介紹了實現(xiàn)此測試需要的環(huán)境,然后介紹了cfg文件配置和相應(yīng)的界面配置(添加loadbalance和dispatch模塊)。最后,根據(jù)配置環(huán)境,用戶分別使用軟電話實現(xiàn)對其兩臺IPPBX的呼叫測試。兩臺IPPBX通過軟交換的均衡負載設(shè)置對呼叫進行了不同的路由管理設(shè)置,然后進入到IPPBX,對終端播放一個語音提示。最后,如果用戶需要部署真正的生產(chǎn)環(huán)境時需要考慮的幾個因素。
      參考資料:
      http://www.kamailio.org.cn/doku.php?id=dispatcher_dispatcher_load-balancer_module_released
      http://wiki.kolmisoft.com/index.php/Implementations


      關(guān)注微信公眾號:asterisk-cn,獲得有價值的行業(yè)分享
      freepbx 技術(shù)論壇:www.ippbx.org.cn
      Asterisk, freepbx技術(shù)文檔: www.freepbx.org.cn
      歐米(Omni)智能客服解決方案
      融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com

    【免責(zé)聲明】本文僅代表作者本人觀點,與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

    專題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 黔南| 蕲春县| 自治县| 沾益县| 青川县| 常山县| 鸡西市| 贺兰县| 视频| 阿荣旗| 尉氏县| 林口县| 永修县| 高淳县| 陇西县| 革吉县| 南岸区| 安丘市| 嵩明县| 突泉县| 海宁市| 水城县| 南通市| 元江| 平陆县| 晋州市| 藁城市| 厦门市| 孝义市| 罗平县| 慈溪市| 横峰县| 九台市| 定州市| 奉新县| 齐齐哈尔市| 广水市| 天祝| 远安县| 五寨县| 阿巴嘎旗| http://444 http://444 http://444 http://444 http://444 http://444