簡介
運行商爲我們提供瞭如下4中呼叫轉移場景:
1、無條件呼叫轉移:不管當前手機處於何種狀態,來電都會被轉移到指定的電話號碼上。在使用這種呼叫轉移時應當非常小心,如果啓用了這種呼叫轉移,你可就永遠也接不着電話了,而且自己的手機不會有任何反應。
2、遇忙呼叫轉移:這種呼叫轉移方式很有用。例如,如果某個銷售人員業務比較多時,恰好身邊有另一部座機,可以將該呼叫轉移號設置爲座機號。這樣在自己用手機接電話或打電話時恰巧有來電,會直接轉移到座機上,這樣就不會漏掉重要的電話了。該呼叫轉移方式也在拒接時進行來電轉移,因此,可以利用這種呼叫轉移方式實現來電攔截功能。也就是說,當來電時,用程序迅速將電話掛斷,這是根據設置的轉移電話號碼不同,對方會聽到“電話已停機”、“電話已關機”、“號碼是空號”和“正在通話中”4種語音答覆。
3、無應答時呼叫轉移:如果某種原因沒有接聽電話來電,知道一定時間後信號中斷來進行轉移。
4、無法接通時呼叫轉移:當信號不在服務器、沒有信號或關機時進行呼叫轉移。
上述4種呼叫轉移方式都要在撥號盤通過特殊號碼來設置。不僅如此,還可以通過特殊號碼取消呼叫轉移以及查詢某種呼叫轉移是否已啓用。上述4種呼叫轉移方式對應的特殊號碼如下所示:
功能 | 設置 | 取消 | 查詢 |
---|---|---|---|
始終進行呼叫轉移 | **21*電話號碼# | ##21# | *#21# |
佔線時進行呼叫轉移 | **67*電話號碼# | ##67# | *#67# |
無應答時呼叫轉移 | **61*電話號碼# | ##61# | *#61# |
無法接通時呼叫轉移 | **62*電話號碼# | ##62# | *#62# |
Android 實現
設置佔線時呼叫轉移號碼的代碼如下:
Intent callIntent=new Intent(Intent.ACTION_CALL,Uri.parse(Uri.encode("tel:**67*12345678910#")));
startActivity(callIntent);
取消佔線時呼叫轉移號碼的代碼如下:
Intent callIntent=new Intent(Intent.ACTION_CALL,Uri.parse(Uri.encode("tel:##67#")));
startActivity(callIntent);
查詢佔線時呼叫轉移號碼的代碼如下:
Intent callIntent=new Intent(Intent.ACTION_CALL,Uri.parse(Uri.encode("tel:*#67#")));
startActivity(callIntent);
無條件呼叫前轉
無條件前轉屬於被叫側業務,是指允許用戶將所有來話無條件的轉接到預先設定的前轉方上,或前轉到語音郵箱。
每一個通話所允許前轉的最大次數不超過5次。前轉的計數包括所有的前轉類型。
對於一般的主、被叫用戶號碼,都可以做爲前轉目的號碼,但是爲了防止惡意呼叫,對於一些特殊的公衆服務號碼,如110,119,120等,不能被設置爲呼叫前轉的目的號碼。
除特服號碼外,用戶已設置的呼叫限制號碼也不能被設置成呼叫前轉目的號碼。
1-2)UE_A發送Invite請求,呼叫UE_B.
3)S-CSCF檢測UE_B有呼叫前轉業務,將請求轉發給AS
4-6)AS執行無條件轉移業務邏輯,給UE_A發送通知音,告訴UE_A呼叫被轉移
7-8)AS向UE_C發送呼叫請求,添加History-Info頭域
History-Info頭域說明:
History-Info:<sip:[email protected]>;index=1,<sip:[email protected]?Reason=SIP;cause=302>;index=1.1
當前示例的History-Info含有兩個條目,sip:[email protected]指明最初的被叫方是UE_B,sip:[email protected]指明後面呼叫指向UE_C。
URI中的Reason=SIP;cause=302屬性,指明當前呼叫是由無條件前轉觸發的。如果cause=408指明是無應答前轉,如果cause=486指明是遇忙前轉。
index屬性是用來表示呼叫歷史的層次及不同層次的深度的,概念上比較容易混亂,我的理解如下:
紅1.藍1.綠3.黃1
在上圖這個示例裏,紅色到藍色轉移了一次,之後從藍色向綠色轉移了一次,之後綠色轉移了3次,其中2次自身轉向自身,第3次轉移到黃色,黃色爲最終的轉移目的地。
3GPP 協議
3GPP 24.604詳細規定了無條件呼叫前轉的流程,可前往查看。
參考資料
《IMS網絡PSTN仿真業務技術要求(事件訂閱機制)V1.2_markup120717(目錄刷新)》
《IMS網絡呼叫前轉業務技術要求》
《RFC4244》
《RFC3326》