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

Kamailio/OpenSIPS學(xué)習(xí)筆記-如何通過(guò)Serial Forking實(shí)現(xiàn)呼叫前轉(zhuǎn)

2018-04-23 13:45:25   作者:james.zhu    來(lái)源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  在軟交換的呼叫處理過(guò)程中,我們經(jīng)常會(huì)遇到呼叫失敗或轉(zhuǎn)第三方應(yīng)用的問(wèn)題。在實(shí)際電話系統(tǒng)的使用場(chǎng)景中,如果用戶呼叫某一個(gè)分機(jī)的話,此分機(jī)如果拒絕了此呼叫,則要求IPPBX做進(jìn)一步的處理,或者轉(zhuǎn)其他分機(jī)或者轉(zhuǎn)語(yǔ)音郵箱等。在今天的示例中,我們將使用開(kāi)源軟交換結(jié)合媒體服務(wù)器實(shí)現(xiàn)類似的功能需求。
  1、在本示例中,我們使用了AVP和Serial Forking,用戶需要?jiǎng)?chuàng)建兩個(gè)分機(jī),然后對(duì)接一個(gè)媒體服務(wù)器來(lái)進(jìn)行實(shí)驗(yàn)。在此實(shí)驗(yàn)中,我們需要執(zhí)行和配置相關(guān)的文件來(lái)保證環(huán)境能夠正常運(yùn)行。
  2、在配置流程中,用戶首先需要添加一個(gè)avp指向外部的媒體服務(wù)器和分機(jī)郵箱號(hào)碼。執(zhí)行的命令如下:
  opensipsctl avp add –T usr_preferences 1004@proxy_ip callfwd 0 sip:2345678@proxy_ip
  // 注意,這里的proxy_IP 是外部媒體服務(wù)器的地址,1004 支持了一個(gè)語(yǔ)音郵箱。用戶需要提前預(yù)設(shè)好此媒體服務(wù)器。
  在cfg文件中,添加需要加載avp 檢測(cè):
  if(avp_db_load("$ru","$avp(callfwd)")) {
  $ru=$avp(callfwd);
  xlog("forwarded to: $avp(callfwd)");
  }
  添加busy狀態(tài)檢測(cè)和處理流程:
  if (t_check_status("486")) {
  revert_uri();
  prefix("b"); # 表示通知系統(tǒng)播放狀態(tài)忙信息
  xlog("L_ERR","> 486 ruri=<$ru>");
  route(media);
  route(relay);
  exit;
  }
  // 處理無(wú)應(yīng)答流程:如果超時(shí)(408)或者臨時(shí)不在線(480)
  if (t_check_status("408") || t_check_status("480")) {
  revert_uri();
  prefix("u");# 表示播放無(wú)應(yīng)答消息提示
  xlog("L_ERR","> 480 ruri=<$ru>");
  route(media);
  route(relay);
  exit;
  }
  3、保存以上配置,如果配置成功的話,我們可以使用分機(jī)1000 呼叫1004進(jìn)行測(cè)試,此呼叫會(huì)轉(zhuǎn)到我們的媒體服務(wù)器網(wǎng)關(guān)。這里大家要注意,因?yàn),我們(cè)诘谝徊恐幸呀?jīng)指向了外部的媒體服務(wù)器。
  然后,我們可以進(jìn)行遇忙前轉(zhuǎn)的處理測(cè)試。用戶可以從1000分機(jī)呼叫1001,1001如果拒絕此呼叫后,會(huì)收到一個(gè) “486 Busy here”。這里,用戶可以很多免費(fèi)的軟電話進(jìn)行拒絕呼叫測(cè)試。
  如果用戶1004 呼叫1001時(shí),在一定時(shí)間內(nèi)沒(méi)有接聽(tīng),會(huì)轉(zhuǎn)向一個(gè)此時(shí)處理。超市以后則進(jìn)入到了語(yǔ)音郵箱留言。超時(shí)設(shè)置可以通過(guò)參數(shù):
  modparam(“tm”, “fr_inv_timeout”, 10) //  默認(rèn)為30秒。
  4、在本講座中,我們討論了關(guān)于如何使用開(kāi)源軟交換設(shè)置呼叫前轉(zhuǎn)的處理方式,包括超時(shí)處理和遇忙設(shè)置。在此示例中,我們重點(diǎn)使用了avp和狀態(tài)監(jiān)測(cè)的一些方法。同時(shí),需要用戶添加一個(gè)新的avp指向外部的媒體服務(wù)器。通過(guò)此示例,用戶可以使用軟交換和媒體服務(wù)器的語(yǔ)音郵箱集成實(shí)現(xiàn)呼叫前轉(zhuǎn)功能實(shí)現(xiàn)相對(duì)簡(jiǎn)單呼叫量大的需求。當(dāng)然,在具體的使用環(huán)境中,用戶的場(chǎng)景可能更加復(fù)雜,例如分機(jī)隨行等或者轉(zhuǎn)接其他分機(jī)或者移動(dòng)端等功能。這樣的需求需要和媒體服務(wù)器做進(jìn)一步的融合才能滿足。

 
  關(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é)任。

專題