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