SIP 分叉

2018-12-28 18:32 更新

有時(shí),代理服務(wù)器將單個(gè)SIP呼叫轉(zhuǎn)發(fā)到多個(gè)SIP端點(diǎn)。這個(gè)過(guò)程被稱為分叉。這里單個(gè)呼叫可以同時(shí)響鈴多個(gè)端點(diǎn)。

使用SIP分叉,您可以讓您的桌面電話與手機(jī)上的軟件電話或SIP電話同時(shí)響鈴,從而可以輕松地從任一設(shè)備接聽(tīng)電話。

一般來(lái)說(shuō),在辦公室里,假設(shè)老板無(wú)法接聽(tīng)電話或離開(kāi),SIP分機(jī)允許秘書(shū)接聽(tīng)電話他的分機(jī)。

如果有一個(gè)有狀態(tài)的代理可用,因?yàn)樗枰獔?zhí)行和響應(yīng)從它收到的許多,分叉將是可能的。

我們有兩種類(lèi)型的分叉 -

  • 平行分叉
  • 順序分叉

平行分叉

在這種情況下,代理服務(wù)器將把INVITE分叉到例如兩個(gè)設(shè)備(UA2,UA3)。兩個(gè)設(shè)備將產(chǎn)生180響鈴,并且接收呼叫的任何人將產(chǎn)生200 OK。首先到達(dá)發(fā)起者的響應(yīng)(假設(shè)UA2)將與UA2建立會(huì)話。對(duì)于其他響應(yīng),將觸發(fā)CANCEL。

Parallel Forking

如果發(fā)起者同時(shí)接收到這兩個(gè)響應(yīng),則基于q值,它將轉(zhuǎn)發(fā)響應(yīng)。

順序分叉

在這種情況下,代理服務(wù)器將INVITE分叉到一個(gè)設(shè)備(UA2)。如果UA2在那時(shí)不可用或忙,則代理將它分配到另一個(gè)設(shè)備(UA3)。

Sequential Forking

分支 - ID和標(biāo)簽

分支標(biāo)識(shí)幫助代理匹配對(duì)分叉請(qǐng)求的響應(yīng)。沒(méi)有分支ID,代理服務(wù)器將無(wú)法了解分叉響應(yīng)。分支標(biāo)識(shí)將在Via標(biāo)頭中可用。

標(biāo)簽由UAC使用以區(qū)分來(lái)自不同UAS的多個(gè)最終響應(yīng)。UAS無(wú)法解析請(qǐng)求是否已分叉。因此,它需要添加一個(gè)標(biāo)簽。

代理還可以添加標(biāo)簽,如果它生成最終響應(yīng),他們從來(lái)不插入標(biāo)簽到請(qǐng)求或響應(yīng)他們轉(zhuǎn)發(fā)。

也有可能單個(gè)請(qǐng)求也可以由多個(gè)代理服務(wù)器分叉。因此,fork的代理將向它創(chuàng)建的分支添加自己的唯一ID。

呼叫支路和呼叫ID

呼叫支路是指兩個(gè)用戶代理之間的一對(duì)一信令關(guān)系。呼叫ID是參考呼叫的SIP消息中攜帶的唯一標(biāo)識(shí)符。呼叫是呼叫線路的集合。

UAC通過(guò)發(fā)送INVITE開(kāi)始。由于分叉,它可以從不同的UA接收多個(gè)200OK。每個(gè)對(duì)應(yīng)于相同呼叫中的不同呼叫支路。

因此,呼叫是一組呼叫支路。呼叫支路是指UA之間的端到端連接。

呼叫支路的兩個(gè)方向上的CSeq空間是獨(dú)立的。 在單個(gè)方向上,序列號(hào)對(duì)于每個(gè)事務(wù)遞增。

Call Leg Id

語(yǔ)音郵件

對(duì)于企業(yè)用戶來(lái)說(shuō),語(yǔ)音郵件是非常普遍的。這是一個(gè)電話應(yīng)用程序。談到圖片,當(dāng)被叫方不可用或無(wú)法接收呼叫時(shí),PBX將通知主叫方留下語(yǔ)音消息。

如果被叫方的號(hào)碼不可達(dá),用戶代理將獲得3xx響應(yīng)或重定向到語(yǔ)音郵件服務(wù)器。然而,需要某種SIP分機(jī)來(lái)向語(yǔ)音郵件系統(tǒng)指示要使用哪個(gè)郵箱 - 即,播放哪個(gè)問(wèn)候語(yǔ)以及在哪里存儲(chǔ)所記錄的消息。有兩種方法來(lái)實(shí)現(xiàn)這一點(diǎn) -

  • 通過(guò)使用SIP頭字段擴(kuò)展

  • 通過(guò)使用Request-URI來(lái)發(fā)信號(hào)通知這個(gè)信息

假設(shè)用戶sip:Tom@tutorialspoint.com在sip:voicemail.w3cschool.cn有一個(gè)語(yǔ)音郵件系統(tǒng),它提供語(yǔ)音郵件,當(dāng)轉(zhuǎn)發(fā)到語(yǔ)音郵件服務(wù)器時(shí),INVITE的Request-URI可能看起來(lái)像 -

sip:voicemail.tutorialspoint.com;target = sip:Tom@tutorialspoint.com;cause = 486

下圖顯示了Request-URI如何攜帶郵箱標(biāo)識(shí)符和原因(這里為486)。

SIP Voicemail
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)