欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

您當前的位置是:  首頁 > 新聞 > 國內(nèi) >
 首頁 > 新聞 > 國內(nèi) >

Kamailio/OpenSIPS學(xué)習(xí)筆記-如何通過軟交換呼叫PSTN

2018-04-08 10:31:03   作者:james.zhu    來源:CTI論壇   評論:0  點擊:


  通過軟交換呼叫PSTN是非常普遍的一個功能,但是呼叫不同的目的地號碼需要對其分機權(quán)限做一個簽權(quán)管理。一般的業(yè)務(wù)控制包括,系統(tǒng)僅允許某些分機呼叫本地,系統(tǒng)允許其他特別分機呼叫外地長途,系統(tǒng)也可能還允許一些特殊用戶可以呼叫某些國家的國際長途。如何實現(xiàn)對分機的呼叫控制是一個軟交換和媒體服務(wù)器必須具有的一個功能。在媒體服務(wù)器中,我們可以通過撥號規(guī)則對其撥號位段進行判斷來進行呼叫權(quán)限控制,在軟交換的呼叫流程中也可以支持類似的功能。今天,我們就通過一個配置實例來實現(xiàn)對其呼叫權(quán)限的控制。
  1、在Kamalio或者OpenSIPS中,如果需要實現(xiàn)對其呼叫路由進行權(quán)限控制,可以通過兩個模塊來實現(xiàn)。這兩個模塊是:Permission 和 Group 模塊。
  Permission 模塊主要負責提供基于ACL的權(quán)限管理,例如呼叫路由,注冊權(quán)限,URL權(quán)限,地址權(quán)限,可信任請求等進行權(quán)限判斷管理。
  Group 模塊主要對成員屬性進行管理,通過數(shù)據(jù)庫對其成員進行管理。
  通過以上兩個主要的模塊就可以實現(xiàn)分機管理,可以判斷是否允許本地呼叫,長途呼叫或國際長途呼叫等功能。測試環(huán)境包括:opensips 軟交換, Asterisk 和語音卡配置的freepbx或Asterisk媒體服務(wù)器。
  2、為了通過以上兩個模塊對呼叫路由權(quán)限進行管理,我們需要設(shè)置一些配置,加載相應(yīng)的模塊測試來支持具體的業(yè)務(wù)設(shè)置。
  首先,管理員需要在配置文件中加載需要的模塊:
  loadmodule "permissions.so"
  loadmodule "group.so"
  然后加載模塊以后,用戶需要配置相應(yīng)的模塊參數(shù):
  modparam("permissions", "db_url",
  "mysql://opensips:opensipsrw@localhost/opensips")
  modparam("group", "db_url",
  "mysql://opensips:opensipsrw@localhost/opensips")
  注意,以上配置文件是筆者配置的數(shù)據(jù)庫用戶和密碼,用戶需要修改為自己的配置賬號,否則會出現(xiàn)數(shù)據(jù)庫連接錯誤。
  cfg配置文件需要添加到配置,檢查呼叫源地址狀態(tài):
  if(!check_source_address(“0”)){
  if (!proxy_authorize("", "subscriber")) {
  proxy_challenge("", "0");
  exit;
  }
  if (!db_check_from()) {
  sl_send_reply("403","Forbidden auth ID");
  exit;
  }
  }
  最后,在本cfg的配置中,檢查呼出的號碼匹配,判斷是否允許本地呼叫,外地長途呼叫和國際長途呼叫業(yè)務(wù)。注意,此代碼中的通配符用戶可以根據(jù)自己的呼叫撥號規(guī)則來進行修改,以便支持用戶自己的呼叫號碼匹配。
  #撥打一個7位數(shù)的本地號碼, 這里的本地城市是0755,用戶可以修改為自己的城市區(qū)號,如果其他位數(shù)本地號碼的話,
  if ($rU=~"^[2-9][0-9]{6}$") {
  if (db_is_user_in("credentials","local")) {
  prefix(“0755”);
  route(4); // 路由到route(4)
  exit;
  } else {
  sl_send_reply("403", "No permissions for local calls");
  exit;
  }
  }
  # 允許呼叫長途電話,例如1+區(qū)號+用戶號碼
  if (uri=~"^sip:1[0-9][0-9][0-9][2-9][0-9]{6}@") {
  if (db_is_user_in("credentials","ld")) {
  route(4); // 路由到 route(4)
  exit;
  } else {
  sl_send_reply("403", "No permissions for long distance");
  exit;
  }
  }
  #國際呼叫,允許呼叫011國際區(qū)號號碼
  if (uri=~"^sip:011[0-9]*@") {
  if (db_is_user_in("credentials","int")) {
  strip(3);
  route(4); // 路由到route(4)
  exit;
  } else {
  sl_send_reply("403", "No permissions for international
  calls");
  exit;
  }
  }
  ## 通過網(wǎng)關(guān)呼出的路由規(guī)則
  route[4] {
  # 路由到網(wǎng)關(guān)地址,測試環(huán)境中,這里的地址是Asterisk+sangoma 語音板卡的地址,用戶也可以使用其他的媒體服務(wù)器呼出。
  rewritehostport("ip_and_port_of_the_gateway");
  route(1);
  }
  完成相關(guān)cfg文件后,用戶需要通過ACL添加不同分機(1000和1001)來進行呼叫測試。具體的執(zhí)行步驟如下:
  • opensipsctl acl grant 1000@domain local // 本地呼叫
  • opensipsctl acl grant 1000@domain ld // 長途呼叫
  • opensipsctl acl grant 1000@domain int // 國際呼叫
  • opensipsctl acl grant 1001@domain local // 僅允許本地呼叫
  3、配置成功以后,用戶就可以使用分機1000進行測試,分機1000可以分別撥打本地電話,長途電話,和國際長途來進行測試。如果配置成功,媒體服務(wù)器或者IPPBX呼出配置正常的話,用戶可以聽到對端的語音響應(yīng)。用戶也可以使用分機1001進行呼叫測試,撥打本地號碼和其他的長途號碼。如果配置成功的話,分機1001 僅能允許實現(xiàn)本地呼叫,因為在ACL設(shè)置中,此號碼僅允許實現(xiàn)local call的呼叫。
  筆者再次提醒讀者,我們使用的是e164的N7規(guī)范,本地號碼一般視為七位數(shù)號碼。另外,用戶呼叫到asterisk IPPBX以后,筆者做了一個撥號規(guī)則的調(diào)整,對國際長途業(yè)務(wù)進行語音播放,沒有真正呼叫國際長途號碼。
  另外,此實例僅是一個根據(jù)不同號碼實現(xiàn)的呼叫權(quán)限管理的cfg配置路由。用戶可以根據(jù)實際的業(yè)務(wù)需求做進一步的拓展來滿足不同用戶不同國家的呼叫。實際生產(chǎn)環(huán)境中,用戶可以根據(jù)一些用戶的需求實現(xiàn)幾種部署方式:
  根據(jù)號碼權(quán)限或均衡負載的要求,軟交換可以路由到不同的IPPBX IP地址。
  可以根據(jù)時間和資費不同路由到不同的落地資源
  ippbx或者媒體服務(wù)器可以支持其他的解決方案,例如freepbx+sangoma 語音板卡或sangoma 網(wǎng)關(guān),freeswitch加sangoma 語音板卡或網(wǎng)關(guān)都可以實現(xiàn)落地呼叫。
  4、在本章節(jié)的介紹中,我們結(jié)合開源軟交換和媒體服務(wù)器或IPPBX實現(xiàn)對不同分機號碼進行呼叫權(quán)限管理的實例。在本實例中,我們使用了兩個軟交換重要的模塊permission和group來分別實現(xiàn)ACL管理和成員的管理。在配置文件中,用戶需要針對不同的號碼進行號碼匹配,然后路由到落地的Asterisk服務(wù)器。在實際生產(chǎn)環(huán)境中,用戶也可能添加不同的媒體服務(wù)器實現(xiàn)更多的業(yè)務(wù)拓展和均衡負載的要求,用戶可以針對不同的策略添加最終媒體服務(wù)器的IP地址來實現(xiàn)。
  總之,使用permission和group可以輕松實現(xiàn)對分機號碼的權(quán)限管理,而且也相對比較靈活,支持更好的拓展。筆者希望本實例可以給讀者提供一個正確的思路,讀者可以根據(jù)自己的實際環(huán)境結(jié)合業(yè)務(wù)的需求做進一步的研究。
  參考資料:
  http://www.kamailio.org.cn/doku.phpid=group_user-groups_module_with_db-backend_released
  http://www.kamailio.org.cn/doku.phpid=permissions_permissions_control_module_released
  關(guān)注微信公眾號:asterisk-cn,獲得有價值的行業(yè)分享
  freepbx 技術(shù)論壇:www.ippbx.org.cn
  Asterisk, freepbx技術(shù)文檔: www.freepbx.org.cn
  融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
【免責聲明】本文僅代表作者本人觀點,與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

專題