通知SIP代理调用已结束

通知SIP代理调用已结束,sip,Sip,如果呼叫完成,SIP“BYE”消息通常直接从一个SIP用户代理传递到另一个SIP用户代理。如果呼叫已结束,SIP代理、交换机或exchange如何监控 如果代理对某个呼叫感兴趣(特别是想知道是),它会通过添加一个头请求将其添加到SIP路由中 SIP RFC演示了头的使用,但简单地说,是建立请求的对话框(如INVITE,refere,等等),这些请求通过各种代理传递给被叫方。它们将自己添加到对话框的管线集。当被调用方构造其响应或发送其自己的in-dialog请求时,它会将这些服务器的URI添加到它

如果呼叫完成,SIP“BYE”消息通常直接从一个SIP用户代理传递到另一个SIP用户代理。如果呼叫已结束,SIP代理、交换机或exchange如何监控

如果代理对某个呼叫感兴趣(特别是想知道是),它会通过添加一个头请求将其添加到SIP路由中

SIP RFC演示了头的使用,但简单地说,是建立请求的对话框(如
INVITE
refere
,等等),这些请求通过各种代理传递给被叫方。它们将自己添加到对话框的管线集。当被调用方构造其响应或发送其自己的in-dialog请求时,它会将这些服务器的URI添加到它作为
Route
头发送的消息中。(我跳过了一些关于
路由
头和
请求URI
和RFC2543兼容性的毛茸茸的细节。)


或者,UA可以配置为使用特定的代理链:当它发送其INVITE时,它将使用
路由
头(以及
请求URI
)来强制消息移动特定的路由。

如果您没有实现自己的代理,而是尝试配置一个,您应该寻找的选项在技术上是“对话有状态的”,有时是“调用有状态的”模式,而不是“事务有状态的”。我正在实现自己的代理。如果我使用记录路由头,这是否意味着代理除了重新发送BYE消息之外还要承担更多的责任?没有什么特别的,只是像via处理这样的常见责任。责任在于可用性:这种代理的中断会中断正在进行的呼叫的信令。(reINVITEs、信息中的DTMF等)如果没有正确处理,丢失BYE消息可能会破坏您的计费。还要注意的是,SIP端点只需离开并且从不发送(或响应)BYE,就可能会使您的计费出错。(断电、连接中断等)通常,VoIP服务使用某种方法,使用无更改重新邀请或其他机制定期采样呼叫是否仍然有效。您还可以监视媒体流的两个方向,并确定如果在一个方向上没有媒体“太长”,则呼叫已丢失。但是,这种方法在某些有效的用例中会失败。您可以通过使用B2BUA来提高计费的可靠性-您有一个“代理”信令和媒体的用户代理,而不是代理。这样你就不会有“再见失踪”的问题了。。。但要正确地实现这样一件事可能很棘手。