• <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>
    您當前的位置是:  首頁(yè) > 資訊 > 文章精選 >
     首頁(yè) > 資訊 > 文章精選 >

    OpenSIPS學(xué)習筆記-cluster集群模塊配置-集群注冊配置示例-3

    2021-03-29 13:33:01   作者:james.zhu    來(lái)源:Asterisk開(kāi)源派   評論:0  點(diǎn)擊:


      在關(guān)于OpenSIPS學(xué)習筆記中的前幾個(gè)章節中,筆者詳細說(shuō)明了關(guān)于集群模塊的使用和各種業(yè)務(wù)場(chǎng)景。很多讀者看完以前的文章就提出要做OpenSIPS集群,這讓筆者非常無(wú)語(yǔ)。集群僅是一個(gè)比較寬泛的概念,它可以支持很多具體的業(yè)務(wù)場(chǎng)景的集群,而且針對不同的集群方案,其部署和使用的模塊都非常不同,因此,如果非常寬泛地討論這些問(wèn)題就沒(méi)有任何意義。其中,在集群部署中,通過(guò)OpenSIPS集群注冊是最常用的OpenSIPS或者Kamailio平臺應用場(chǎng)景之一。關(guān)于集群和其他模塊說(shuō)明,讀者可以參考:
      OpenSIPS學(xué)習筆記-cluster集群模塊配置-dialog集群機制設置-集群節點(diǎn)環(huán)境配置示例-2
      用戶(hù)通過(guò)注冊綁定共享的方式,支持SIP賬號通過(guò)OpenSIPS部署的各個(gè)節點(diǎn)實(shí)現SIP注冊功能。OpenSIPS的集群模塊來(lái)保證每個(gè)SIP注冊對其他節點(diǎn)的廣播,另外,因為集群模塊中的每個(gè)節點(diǎn)可以支持同一類(lèi)型數據的能力,因此,這種集群加節點(diǎn)共享的處理能力可以自動(dòng)實(shí)現一個(gè)高可靠性部署方式,一個(gè)節點(diǎn)出現故障,其他節點(diǎn)可以支持SIP注冊進(jìn)行工作。下面,筆者使用一個(gè)簡(jiǎn)單全共享配置示例介紹如何配置集群注冊示例和簡(jiǎn)單測試流程。
      配置前說(shuō)明:
    • 已經(jīng)創(chuàng )建好節點(diǎn)實(shí)例,并且保證幾個(gè)實(shí)例之間互通互聯(lián),開(kāi)啟相應的端口。此要求在上一個(gè)章節中已經(jīng)說(shuō)明
    • 已經(jīng)安裝好OpenSIPS 的控制界面
    • 需要SIP用戶(hù)端預先準備好安裝軟電話(huà)或者物理話(huà)機
    • 為了保持內網(wǎng)的連通性,節點(diǎn)均在僅在同一云平臺同一區域
      配置集群注冊示例需要大概經(jīng)過(guò)以下幾個(gè)步驟:
      第一步,每個(gè)節點(diǎn)的用戶(hù)需要訪(fǎng)問(wèn)控制界面,設置flags 為“seed”模式。從seed字面意思我們也可以大概的含義,就是為了節點(diǎn)那個(gè)找到相應的傳播節點(diǎn),這樣做的目的是為了集群模塊配合各個(gè)節點(diǎn)能夠正常成功啟動(dòng),確保每個(gè)節點(diǎn)在找到相應互相支持的節點(diǎn)后才能確認為一個(gè)正常狀態(tài)的節點(diǎn)。完成了集群模塊的成功啟動(dòng)以后,節點(diǎn)之間才真正能夠互聯(lián)互通,互相廣播。因此,這一步是非常重要的一步,用戶(hù)必須確保此步驟成功設置(需要配合后續配置文件的設置)。
      然后,用戶(hù)需要編輯OpenSIPS的cfg配置文件,修改相應的配置參數。這里,一定要注意自己的集群ID,node-ID和自己表示的node-ID,參考前面章節的配置說(shuō)明,這里修改為全共享設置。
    • modparam("usrloc", "location_cluster", __CLUSTER_ID__)
    • modparam("usrloc", "working_mode_preset", "full-sharing-cluster")
      通過(guò)”full-sharing-cluster“ 實(shí)現對其他節點(diǎn)進(jìn)行廣播。
      接下來(lái),在各個(gè)節點(diǎn)修改為自己相應的配置以后,各個(gè)節點(diǎn)需要完成集群同步,因此節點(diǎn)需要重新啟動(dòng)自己的實(shí)例。
      第四步,各個(gè)節點(diǎn)用戶(hù)分別創(chuàng )建一個(gè)獨立的SIP用戶(hù)。為了保持測試的完整性,用戶(hù)通過(guò)OpenSIPS 控制界面或者CLI 命令根據節點(diǎn)不同創(chuàng )建不同的user和subscriber, 例如1X01, 這里X表示集群中的node ID,如果在節點(diǎn)3,就是1301。 注意,在上次文章中,我們示例創(chuàng )建了4個(gè)節點(diǎn)。為了簡(jiǎn)單測試,我們的密碼使用的也是1X01密碼。
      通過(guò)SIP 1000(以前創(chuàng )建的SIP賬號),進(jìn)行注冊測試。SIP 1000重新注冊,通過(guò)CLI命令檢查其地址狀態(tài):
      watch -n0.5 'timeout 1 opensips-cli -x mi ul_dump | grep "AOR\":\|Contact\":"'
      如果一切配置成功的話(huà),從本地節點(diǎn)可以看到其他的SIP賬號,例如, 1201,1301,甚至于1401等節點(diǎn)的SIP賬號使用不同終端注冊的狀態(tài): 
     
      如果節點(diǎn)在“seed”節點(diǎn)時(shí),用戶(hù)可以執行集群同步命令查看狀態(tài),返回狀態(tài)應該是OK狀態(tài)。
      opensips-cli -x mi ul_cluster_sync
      在呼叫測試流程,我們簡(jiǎn)單測試其中一種情況。測試通過(guò)非注冊節點(diǎn)進(jìn)行呼叫。用戶(hù)可以使用SIP 1000對1X01等其他SIP用戶(hù)帳戶(hù)進(jìn)行呼叫,然后用戶(hù)1X01對1000SIP用戶(hù)帳戶(hù)進(jìn)行呼叫,通過(guò)命令sngrep觀(guān)察其呼叫流程。如果呼叫到一個(gè)1X01在非注冊節點(diǎn)的呼叫時(shí),本地節點(diǎn)的呼叫會(huì )直接呼叫到1X01終端,不經(jīng)過(guò)注冊節點(diǎn)。通過(guò)不同SIP終端進(jìn)行不同的并發(fā)呼叫,通過(guò)命令sngrep抓取呼叫路徑。確保所有節點(diǎn)都介入了呼叫,在各個(gè)節點(diǎn)通過(guò)命令查看所有節點(diǎn)的呼叫跟蹤記錄。測試集群中每個(gè)節點(diǎn)數據同步的可持續性場(chǎng)景中,需要每個(gè)節點(diǎn)都重新啟動(dòng)OpenSIPS,從其中一個(gè)節點(diǎn)數據同步到其他的節點(diǎn)中。其中,具有“seed”狀態(tài)的節點(diǎn)負責執行節點(diǎn)數據的同步。在同步數據時(shí)一定要注意,同步數據初始總是一個(gè)為空的狀態(tài),這樣可以保證集群數據都是絕對干凈的數據狀態(tài),否則,所有數據可能發(fā)生沖突。因為同步不同節點(diǎn)的數據的處理流程比較復雜,用戶(hù)可以通過(guò)查看5555端口的數據進(jìn)行跟蹤:
      ngrep -tqd any -W byline -il '^((?!clusterer-internal).)*$' port 5555
      不同節點(diǎn)示例需要根據是否是“seed” 節點(diǎn)來(lái)執行不同的命令完成特別操作,所以節點(diǎn)之間的協(xié)同必須一致。如果是在“seed” 節點(diǎn),用戶(hù)執行:
      service opensips restart
      opensips-cli -x mi ul_dump
      opensips-cli -x mi ul_cluster_sync
      opensips-cli -x mi ul_dump
      經(jīng)過(guò)命令查詢(xún),確保全部數據成功同步處理,查看其狀態(tài):
     
      如果是其他節點(diǎn)的實(shí)例,執行以下命令:
    • service opensips restart
    • opensips-cli -x mi ul_dump
      確保已經(jīng)收到同步數據,同步成功。
      最后,在本文章中筆者重點(diǎn)分享了如何在OpenSIPS中實(shí)現集群注冊的配置示例。筆者通過(guò)幾個(gè)主要的步驟分享了如何配置控制界面設置,如何修改cfg配置文件,加載配置參數以及如何進(jìn)行集群測試和節點(diǎn)同步中需要注意的一些問(wèn)題。
      因為資源有限,筆者在測試環(huán)境中肯定存在很多不足之處,包括云平臺,跨國家地域之間的跨平臺測試和終端網(wǎng)絡(luò )等測試,這些測試需要更多的集群環(huán)境和不同的測試點(diǎn)才能完成。這里僅是一個(gè)拋磚引玉,希望對計劃做基于OpenSIPS對計劃做SIP集群注冊的用戶(hù)有一定幫助。
      參考資料:
      www.OpenSIPS.org
      www.hiastar.com
    • 關(guān)于A(yíng)sterisk文檔,參考:www.asterisk.org.cn
    • 融合通信/IPPBX/FreePBX商業(yè)解決方案:www.hiastar.com
    • 最新Asterisk完整中文用戶(hù)手冊詳解:www.asterisk.org.cn
    • Freepbx/FreeSBC技術(shù)文檔: www.freepbx.org.cn
    • 如何使用免費會(huì )話(huà)邊界控制器-FreeSBC,qq技術(shù)分享群:334023047
    • 關(guān)注微信公眾號:asterisk-cn,獲得有價(jià)值的通信行業(yè)技術(shù)分享
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    CTI論壇會(huì )員企業(yè)

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 石嘴山市| 新营市| 克东县| 沅江市| 嘉善县| 深水埗区| 丰台区| 敦煌市| 新安县| 华宁县| 洛阳市| 休宁县| 博罗县| 五原县| 望城县| 江口县| 和政县| 东安县| 饶平县| 高安市| 宁国市| 集安市| 漾濞| 墨竹工卡县| 金坛市| 津南区| 新丰县| 宜兴市| 高雄市| 南京市| 玉林市| 图片| 从化市| 景泰县| 常山县| 马关县| 白水县| 龙井市| 汉寿县| 来宾市| 连州市| http://444 http://444 http://444 http://444 http://444 http://444