2011-08-31 112 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