中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

您當(dāng)前的位置是:  首頁 > 資訊 > 文章精選 >
 首頁 > 資訊 > 文章精選 >

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

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


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






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

相關(guān)閱讀:

專題

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