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

您當(dāng)前的位置是:  首頁(yè) > 新聞 > 國(guó)內(nèi) >
 首頁(yè) > 新聞 > 國(guó)內(nèi) >

Kamailio/OpenSIPS學(xué)習(xí)筆記-如何使用RTP Proxy解決NAT問(wèn)題

2018-05-09 10:14:56   作者:james.zhu   來(lái)源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  NAT問(wèn)題是IP通信領(lǐng)域中經(jīng)常見(jiàn)到的問(wèn)題。通常情況下,NAT問(wèn)題主要是有振鈴無(wú)語(yǔ)音,或者出現(xiàn)單通問(wèn)題。因?yàn)榉⻊?wù)器端和客戶端各種NAT部署的不同,所以導(dǎo)致不同的NAT問(wèn)題,因此各種NAT問(wèn)題解決的方式也有所不同。筆者在以前的文章中討論了幾種常見(jiàn)的NAT的解決方法。在以前的文章中筆者已經(jīng)做過(guò)非常深入的討論,并且筆者已經(jīng)討論過(guò),目前大部分的NAT問(wèn)題可以通過(guò)STUN服務(wù)器結(jié)合媒體轉(zhuǎn)發(fā)服務(wù)器來(lái)解決。今天,我們專門(mén)討論如何使用開(kāi)源軟交換結(jié)合RTP Proxy來(lái)解決NAT問(wèn)題。
  1、為了驗(yàn)證NAT環(huán)境的測(cè)試效果,我們首先需要搭建一個(gè)簡(jiǎn)單的NAT測(cè)試環(huán)境這里,我們介紹幾種不同的NAT環(huán)境:
  • 服務(wù)器在數(shù)據(jù)中心,例如,阿里云等環(huán)境。用戶側(cè)在NAT中。
  • 在內(nèi)網(wǎng)環(huán)境下使用路由器創(chuàng)建不同的IP地址端來(lái)測(cè)試NAT環(huán)境,例如:192.168.XX,172.16.xx或者10.0.0.0等不同地址段。如果使用這樣的環(huán)境的話,我們需要設(shè)置use nat_uac_test() 。注意,這里的標(biāo)志可以根據(jù)不同的IP地址段進(jìn)行不同的檢測(cè)。用戶需要參考官方文檔做相應(yīng)的調(diào)整。
  • 在本地創(chuàng)建一個(gè)虛擬機(jī),設(shè)置為NAT環(huán)境,終端在此虛擬機(jī)環(huán)境中對(duì)服務(wù)器進(jìn)行呼叫測(cè)試。這是最簡(jiǎn)單的測(cè)試環(huán)境,可以模擬一個(gè)簡(jiǎn)單的NAT環(huán)境。
  2、現(xiàn)在我們配置一個(gè)基于RTP Proxy的環(huán)境測(cè)試NAT問(wèn)題。用戶需要幾個(gè)步驟來(lái)進(jìn)行測(cè)試配置。
  首先,用戶需要安裝在本機(jī)一個(gè)RTP Proxy中,通過(guò)執(zhí)行命令行就可以進(jìn)行安裝:apt-get install rtpproxy。然后對(duì)RTP Proxy進(jìn)行配置,修改配置文件/ etc / default / rtpproxy:
 。DJ(rèn)為rtpproxy
 。?刂撇遄。
  #CONTROL_SOCK = “UNIX:/var/run/rtpproxy/rtpproxy.sock”
 。R赨DP套接字上偵聽(tīng),請(qǐng)取消注釋以下行:
  CONTROL_SOCK = UDP:127.0.0.1:7890
 。鬟f給守護(hù)進(jìn)程的其他選項(xiàng)。
  EXTRA_OPTS =“ - l SERVER_IP”
  #此地址是IP服務(wù)器地址。
  修改配置以后,重新啟動(dòng)服務(wù)器:/etc/init.d/rtpproxy restart。
  。然后修改CFG文件支持我們?cè)O(shè)置的NAT環(huán)境加載所需模塊:
  • loadmodule“nathelper.so”
  • loadmodule“rtpproxy.so”
  • loadmodule“dialog.so”
  然后添加模塊支持參數(shù):
  • modparam( “usrloc”, “nat_bflag”, “NAT_FLAG”)
  • modparam(“注冊(cè)商”,“received_avp”,“$ avp(42)”)
  • modparam(“nathelper”,“received_avp”,“$ avp(42)”)
  • modparam(“rtpproxy”,“rtpproxy_sock”,“udp:127.0.0.1:7890”)
  • modparam(“nathelper”,“natping_interval”,30)
  • modparam(“nathelper”,“ping_nated_only”,1)
  • modparam(“nathelper”,“sipping_bflag”,“SIPPING_FLAG”)
  • modparam(“nathelper”,“sipping_from”,“sip:pinger@192.168.0.17”)
 。W⒁庑薷臑橛脩糇约旱姆⻊(wù)器地址。
  然后添加NAT檢測(cè):
  force_rport();
 。W⒁膺@里要設(shè)置為18,具體參數(shù)設(shè)置,參考官方文檔。
  if(nat_uac_test(“18”)){
  if(method ==“REGISTER”){
  fix_nated_register();
  } else {
  fix_nated_contact();
  }
  setflag(NAT_FLAG);
  }
  初始化一個(gè)請(qǐng)求,創(chuàng)建對(duì)話框:
  create_dialog();
  檢測(cè)是否設(shè)置標(biāo)志:
  if(isflagset(NAT_FLAG)){
  setbflag(NAT_BFLAG);
  setbflag(SIPPING_FLAG);
  };
  在INVITEs中開(kāi)啟支持helper路由方式:
  if(subst_uri('/(sip:。*); nat = yes / \ 1 /')){
  setbflag(NAT_BFLAG);
  };
  if(isflagset(NAT_FLAG)|| isbflagset(NAT_BFLAG)){
  路線(mediarelay);
  };
  添加媒體路由設(shè)置:
  路線[mediarelay] {
  if(is_method(“INVITE”)){
  if(has_body(“application / sdp”)){
  rtpproxy_engage();
  }
  }
  }
  設(shè)置轉(zhuǎn)發(fā)路由:
  onreply_route [handle_nat] {
  # - 重播塊路由 -
 。
  if(isbflagset(NAT_BFLAG)){
  append_hf(“P-hint:Onreply-route-fixcontact \ r \ n”);
  fix_nated_contact();
  }
  出口;
  }
  完成修改以后,用戶重新啟動(dòng)軟交換。
  3、配置完成后,如果配置成功的話,用戶可以通過(guò)以下幾種方式來(lái)做進(jìn)一步的測(cè)試:
  通過(guò)opensipsctl ul檢查終端注冊(cè)地址,通過(guò)CONTACT值和收到的地址消息。如果配置成功的話,NAT環(huán)境下顯示有不同的地址段。
  使用帶NAT的終端進(jìn)行注冊(cè)測(cè)試,這里需要關(guān)閉STUN,軟電話使用外網(wǎng)地址。
  使用帶NAT環(huán)境的軟電話進(jìn)行呼叫測(cè)試,查看呼叫狀態(tài)。
  軟電話使用等待按鍵重新創(chuàng)建re-invite,檢查呼叫的語(yǔ)音是否丟失。如果環(huán)境配置成功的話,re-invite以后語(yǔ)音不會(huì)丟失。
  4、在本講座中,我們介紹了一個(gè)如何通過(guò)軟交換結(jié)合RTP proxy實(shí)現(xiàn)簡(jiǎn)單NAT穿透的場(chǎng)景測(cè)試環(huán)境中用戶首先需要在本地安裝rtp代理,并且配置不同的地址段檢測(cè)來(lái)查詢NAT環(huán)境,最后通過(guò)CFG中的NAT檢測(cè),路由設(shè)置來(lái)協(xié)助帶NAT的終端實(shí)現(xiàn)注冊(cè)呼叫。這里再次說(shuō)明,我們這里搭建的NAT環(huán)境是一個(gè)NAT的示例,它的目的是幫助讀者了解NAT場(chǎng)景和其基本的解決思路。事實(shí)上,在實(shí)際生產(chǎn)環(huán)境中,NAT問(wèn)題是一個(gè)非常棘手的問(wèn)題,目前沒(méi)有一種解決方案可以解決所有的NAT問(wèn)題,不同NAT環(huán)境需要不同的配置環(huán)境和解決辦法來(lái)處理。
  參考資料:
  http://www.kamailio.org.cn/doku.php?id=dispatcher_dispatcher_load-balancer_module_released
  http://wiki.kolmisoft.com/index.php/Implementations


  關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的行業(yè)分享
  freepbx 技術(shù)論壇:www.ippbx.org.cn
  Asterisk, freepbx技術(shù)文檔: www.freepbx.org.cn
  歐米(Omni)智能客服解決方案
  融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
 
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題