• <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è) > 資訊 > 文章精選 >

    OpenSIP學(xué)習筆記-如何通過(guò)控制界面添加多租戶(hù)用戶(hù)和用戶(hù)別名

    2021-01-25 09:00:02   作者: james.zhu   來(lái)源: Asterisk開(kāi)源派   評論:0  點(diǎn)擊:


      多租戶(hù)的SIP賬號和別名在電話(huà)系統中會(huì )經(jīng)常使用。一臺SIP服務(wù)器支持多個(gè)企業(yè)用戶(hù)的業(yè)務(wù),這也是我們經(jīng)常遇到的場(chǎng)景。另外,很多時(shí)候,因為分機號碼和分機用戶(hù)名稱(chēng)以及號碼長(cháng)度根據不同的場(chǎng)景設置方式也不同。今天,筆者針對OpenSIPS環(huán)境中的多租戶(hù)方式和別名設置做一個(gè)比較全面的介紹,讀者可以通過(guò)OpenSIPS界面Control Panel添加管理多租戶(hù)的用戶(hù)和別名。為了實(shí)現以上這兩種功能,我們大概需要經(jīng)過(guò)以下幾個(gè)步驟的配置,包括安裝mysql數據庫,配置cfg文件,創(chuàng )建用戶(hù)表等流程。
      說(shuō)明,筆者根據以前安裝流程來(lái)實(shí)現的OpenSIPS安裝配置,所以,默認環(huán)境和以下使用的很多命令仍然是按照默認環(huán)境來(lái)執行的。用戶(hù)需要首先確保安裝環(huán)境更新,以便能夠順利安裝必要的支持包。具體配置說(shuō)明,請參考:
      最完整快速的安裝方式安裝開(kāi)源OpenSIPS-3.1和CP控制界面-class 8
      1安裝mysql數據庫和JSON
      一般來(lái)說(shuō),SIP服務(wù)提供商或者企業(yè)電話(huà)系統的呼叫都需要經(jīng)過(guò)一定的數據庫安全認證。OpenSIPS 的SIP用戶(hù)可以使用無(wú)密碼的呼叫設置,但是為了保證其安全,絕大部分的場(chǎng)景中仍然需要用戶(hù)密碼設置。用戶(hù)需要首先確認支持包安裝成功,執行以下命令檢查:
      apt-get install opensips-mysql-module
      ls /usr/lib/x86_64-linux-gnu/opensips/modules/db_mysql.so
      安裝成功用戶(hù),然后安裝JSON接口支持包(因為界面系統需要通過(guò)此接口連接):
      apt-get install opensips-http-modules
      ls /usr/lib/x86_64-linux-gnu/opensips/modules/httpd.so
      2創(chuàng )建數據庫相關(guān)表
      用戶(hù)通過(guò)CLI命令安裝數據庫的表:
      opensips-cli -x database create opensips_new
      輸入DB URL:mysql://localhost。執行數據庫創(chuàng )建流程。注意,這里的數據庫用戶(hù)名稱(chēng)和密碼:opensips:opensipsrw,用戶(hù)也可以使用其他的用戶(hù)名稱(chēng),但是一定要注意在后續的其他配置中做相應修改保證其安全性。
      #mysql
      > CREATE USER 'opensips'@'localhost' IDENTIFIED BY 'opensipsrw';
      > GRANT ALL PRIVILEGES ON opensips.* TO 'opensips'@'localhost';
      > FLUSH PRIVILEGES;
      > QUIT
      3修改cfg文件支持注冊和呼叫請求流程
      數據庫和支持包安裝好以后,我們開(kāi)始配置和用戶(hù)注冊,呼叫相關(guān)的流程。opensips的cfg文件需要增加一些必要的配置。首先,cfg文件需要加載支持模塊:
      loadmodule "httpd.so"
      modparam("httpd", "port", 8080)  // GUI 端口
      loadmodule "mi_http.so"
      modparam("mi_http", "root", "json") // 支持json
      加載mysql 數據庫模塊:
      loadmodule "db_mysql.so"
      設置相關(guān)模塊的參數設置,注意mysql數據庫用戶(hù)名稱(chēng)和密碼
      modparam("usrloc", "working_mode_preset", "single-instance-sql-write-back")
      modparam("usrloc", "db_url",
      "mysql://opensips:opensipsrw@localhost/opensips")
      增加auth模塊對SIP用戶(hù)的支持,注意數據庫的用戶(hù)名稱(chēng)和密碼
      loadmodule "auth.so"
      loadmodule "auth_db.so"
      modparam("auth_db", "calculate_ha1", 1)
      modparam("auth_db", "password_column", "password")
      modparam("auth_db|uri", "db_url",
      "mysql://opensips:opensipsrw@localhost/opensips")
      modparam("auth_db", "load_credentials", "")
      在相關(guān)auth的檢查腳本中增加檢測:
      if (!proxy_authorize("", "subscriber")) {
      proxy_challenge("", "auth");
      exit;
      }
      if (!$au==$fU) {
      send_reply(403,"Forbidden auth ID");
      exit;
      }
      consume_credentials();
      if (!www_authorize("", "subscriber")) {
      www_challenge("", "auth");
      exit;
      }
      if (!$au==$tU) {
      send_reply(403,"Forbidden auth ID");
      exit;
      }
      配置文件修改以后,用戶(hù)保存配置文件,然后重新啟動(dòng)opensips服務(wù)器。
      4在opensips-cli 添加必要參數支持
      用戶(hù)編輯opensips-cli.cfg文件,添加數據庫的參數支持,注意數據庫用戶(hù)和密碼設置和創(chuàng )建數據庫時(shí)的匹配。
      database_url: mysql://opensips:opensipsrw@localhost
      database_name: opensips
      database_modules: ALL
      domain: sip.domain.com // 也可以是其他的domain,sip.freepbx.cn
      plain_text_passwords: true
      注意,如果還有opensips.org的話(huà),要刪除。通過(guò)CLI命令添加兩個(gè)SIP用戶(hù)和密碼:
      opensips-cli -x user add 1000 freepbx
      opensips-cli -x user add 1001 freepbx
      重新啟動(dòng)原來(lái)使用的兩個(gè)軟電話(huà)分機,重新注冊,測試雙方的呼叫。如果一切配置成功的話(huà),雙方的呼叫是成功的。如果用戶(hù)想刪除注冊信息的話(huà),也可以執行以下命令:
      opensips-cli -x mi ul_rm location XXXX // 刪除SIP賬號 XXXX
      或者使用dump命令檢查location的狀態(tài):
      opensips-cli -x mi ul_dump
      5OpenSIPS的多租戶(hù)配置支持
      很多時(shí)候,如果運營(yíng)商做IPPBX的運營(yíng)的話(huà),它們可能會(huì )在OpenSIPS平臺配置多租戶(hù)的SIP用戶(hù)帳戶(hù)支持不同的企業(yè)客戶(hù)。這里,一般的多租戶(hù)就是指對多個(gè)域名的支持,企業(yè)用戶(hù)通過(guò)自己的域名來(lái)定義用戶(hù),用戶(hù)具有不同域名下的SIP賬號。例如,1000:@sip.A.com和1000@sip.B.com 是完全不同的兩個(gè)SIP賬號,分別屬于兩個(gè)公司的SIP賬號。筆者這里不過(guò)多介紹關(guān)于多租戶(hù)運營(yíng)的優(yōu)缺點(diǎn),用戶(hù)可以通過(guò)網(wǎng)上資料來(lái)獲得一些背景知識。通過(guò)界面設置多租戶(hù)的SIP用戶(hù)帳戶(hù)需要修改幾個(gè)必要的配置文件。首先需要修改GUI配置文件的環(huán)境支持密碼為明文的密碼設置:
      通過(guò)vim 編輯以下文件:
      /var/www/html/opensips-cp/config/tools/users/user_management/local.inc.php
      Set $config->passwd_mode=0
      保存此文件。然后用戶(hù)需要修改cfg配置文件,增加相關(guān)的模塊加載和測試配置。
      loadmodule "domain.so"
      modparam("domain", "db_url",
      "mysql://opensips:opensipsrw@localhost/opensips") // 注意密碼
      modparam("domain", "db_mode", 1) # 使用catching
      modparam("auth_db|usrloc", "use_domain", 1)
      在opensips.cfg中增加其他的判斷腳本:
      ## authenticate and authorize
      #if(is_myself("$fd")) { /*no multidomain version*/
      if(is_from_local()) { /*multidomain version*/
      修改判斷設置:
      ##if (!is_myself("$rd")) {
      if (!is_uri_host_local()) {
      保存cfg配置文件,重新啟動(dòng)opensips,然后通過(guò)命令查看啟動(dòng)狀態(tài):
      systemctl status opensips
      如果有關(guān)于SIP賬號的domain錯誤的話(huà),用戶(hù)可能會(huì )注冊失敗。用戶(hù)可以刪除數據庫的location再次測試。如果前面的配置成功配置以后,用戶(hù)可以通過(guò)界面來(lái)添加不同的domain:
      每次添加domain以后,因為模塊使用了catched設置,用戶(hù)需要點(diǎn)擊”Reload on Server“ 服務(wù)器來(lái)重新加載模塊數據,從數據庫更新數據。
      用戶(hù)添加了doamin以后,也可以通過(guò)界面添加此域名下的多租戶(hù)的SIP賬號,例如1000,1001。
     
      用戶(hù)在注冊成功以后,如果管理員想查看contact的信息,可以點(diǎn)擊Contacts查看SIP的狀態(tài)消息:
      
      
      管理員也可以刪除contacts:
      
      6OpenSIPS添加SIP賬號用戶(hù)別名
      別名是SIP賬號中一種比較實(shí)用功能。在SIP平臺中,如果PSTN呼入以后,可以作為一個(gè)DID的轉發(fā)呼叫然后路由到SIP服務(wù)器的SIP賬號中。用戶(hù)也可以根據不同的業(yè)務(wù)組對SIP賬號定義不同的名稱(chēng)。簡(jiǎn)單來(lái)說(shuō),呼叫方呼叫目的地號碼時(shí)可以使用不同的簡(jiǎn)化的號碼或者其他別名進(jìn)行呼叫,而不呼叫原號碼。SIP賬號使用別名可以方便呼叫方撥號,也可以實(shí)現對呼入號碼的DID路由。在opensips的平臺環(huán)境中,別名的URL通過(guò)opensips轉譯成一個(gè)本地的SIP賬號,通過(guò)數據庫dbaliases lookup的查詢(xún)方式實(shí)現Alias-URI 和原始Original-URI的處理。
      如果需要通過(guò)opensips實(shí)現別名支持的話(huà),我們需要加載dbaliases和其相關(guān)的參數配置選項。打開(kāi)opensips.cfg 配置文件,添加別名數據庫的參數配置:
      loadmodule "alias_db.so"
      modparam("alias_db", "db_url",
      "mysql://opensips:opensipsrw@localhost/opensips") // 注意數據庫密碼
      #apply DB based aliases (uncomment to enable)
      alias_db_lookup("dbaliases");
      保存cfg文件,重新啟動(dòng)opensips,然后對SIP賬號1000添加別名。這里的別名可以是任意的號碼,號碼格式也可以通過(guò)界面配置文件進(jìn)行自定義的格式支持。用戶(hù)可以根據自己的業(yè)務(wù)需求對SIP 1000賬號添加一個(gè)別名,例如186XXX或者其他的號碼,方便記憶,發(fā)布使用管理即可。
      
      
      如果用戶(hù)需要對別名號碼實(shí)現號碼格式的驗證支持的話(huà),用戶(hù)可以修改php配置文件:
      vim:opensips-cp/config/tools/users/alias_management/local.inc.php
      $config->alias_format = "/^[0-9a-zA-Z]+/"; // 強制的號碼格式
      保存php文件,重新刷新界面就可以實(shí)現別名號碼格式的強制設置。
      修改了別名以后,我們使用另外一個(gè)SIP 賬號,例如1001,呼叫設置了別名為其他號碼的,例如186123。如果配置成功的話(huà),SIP 1000就會(huì )振鈴。說(shuō)明,SIP 1000支持的別名設置186123是成功的。
      以上是opensips的多租戶(hù)的實(shí)現方式,當然也可以通過(guò)SBC或者freesbc支持的不同的多租戶(hù)方式實(shí)現對內網(wǎng)IPPBX的內網(wǎng)管理方式。freesbc/prosbc作為一個(gè)多租戶(hù)的前端服務(wù)器,呼叫進(jìn)入以后,通過(guò)不同的域名路由到不同的內網(wǎng)的IPPBX,IPPBX各自獨立。外網(wǎng)SIP賬號通過(guò)域名方式加FreeSBC地址來(lái)實(shí)現注冊。
      freesbc多租戶(hù)IPPBX支持
      7總結
      本章節主要介紹了關(guān)于通過(guò)mysql數據庫實(shí)現SIP賬號認證的配置,多租戶(hù)設置和別名設置。為了實(shí)現以上的配置,opensips需要首先安裝mysql數據庫,創(chuàng )建數據庫和創(chuàng )建用戶(hù)表,并且需要在cfg文件中加載數據庫和相關(guān)的參數。為了實(shí)現多租戶(hù)的支持,opensips需要加載多租戶(hù)模塊,然后通過(guò)界面來(lái)創(chuàng )建一個(gè)多租戶(hù),然后按照多租戶(hù)來(lái)創(chuàng )建一個(gè)SIP賬號。最后,筆者介紹了關(guān)于別名的使用和其配置方式以及測試結果。通過(guò)以上比較詳細的介紹,希望opensips用戶(hù)能夠熟悉關(guān)于多租戶(hù)的實(shí)現和SIP別名的管理。
      參考資料:
      https://docs.telcobridges.com/tbwiki/FreeSBC:_Multiple_Domains/Hosted_PBXs_Configuration
      www.freesbc.cn
      www.opensips.org
      融合通信/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)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    相關(guān)閱讀:

    專(zhuān)題

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

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 简阳市| 安化县| 梅州市| 隆安县| 抚顺市| 旌德县| 宜阳县| 吉安市| 鄂伦春自治旗| 青神县| 湄潭县| 菏泽市| 双牌县| 萍乡市| 泰兴市| 庄河市| 横峰县| 于田县| 云梦县| 股票| 阳信县| 涞源县| 亳州市| 阳朔县| 岗巴县| 唐山市| 芜湖市| 泰和县| 五河县| 丰镇市| 兴国县| 仙游县| 蚌埠市| 昌江| 凯里市| 梅河口市| 湖州市| 泾源县| 南华县| 汨罗市| 绥化市| http://444 http://444 http://444 http://444 http://444 http://444