2011-08-31 84 views
1

如果呼叫結束,SIP「BYE」消息通常從一個SIP用戶代理直接發送到另一個SIP用戶代理。如果通話結束,SIP代理,交換機或交換機如何監控?通知SIP代理呼叫已結束

回答

2

如果某個代理對某個呼叫感興趣 - 尤其是想知道BYE - 它會通過添加一個Record-Route頭部來請求添加到SIP路由。

SIP RFC有some example call flows說明頭的使用,但簡要地說,在去往被調用者路由的對話建立請求(如INVITE,REFER等)通過各種代理。這些自己添加到對話框的路由集。當被調用者構造響應 - 或發送自己的對話中請求時 - 它將這些服務器的URI添加到它作爲Route標題發送的消息中。 (我跳過周圍Route標題一些毛狀細節和Request-URI和RFC 2543兼容)

備選地,UA可以被配置成使用代理服務器的一個特定的鏈:當它發送其INVITE時,它將使用Route頭(和Request-URI)強制消息傳輸特定的路由。

+0

如果你沒有實現自己的代理,但試圖配置一個,你應該尋找的選項在技術上是「對話狀態」,有時候通俗的「調用狀態」模式超越「事務有狀態」。 – Szocske

+0

我正在實施我自己的代理。如果我使用Record-Route頭,除了重新發送BYE消息外,這是否意味着更多的代理責任? – dronus

+1

沒什麼特別的,只是像通過處理通常的責任。責任在於可用性:這種代理的中斷破壞了正在進行的呼叫的信令。 (reINVITEs,INFO中的DTMF等)如果不正確,丟失BYE信息可能會損壞您的帳單。 – Szocske