如何在一定时间内终止SIP呼叫

时间:2016-02-04 08:47:39

标签: protocols sip sip-server

我已经写了一个处理SIP呼叫的服务。我想通过配置一些参数来配置修复时间或处理呼叫时间值来制定一些额外的功能来限制通话时间。 一旦建立了SIP呼叫,它将终止,最终用户的响应为CANCEL或BYE但在此之前,如果我想将其限制在某个固定时间,是否可能?如果我将时间固定为5分钟,一旦sip呼叫建立,即使最终用户不会结束呼叫,呼叫也应在5分钟后自动终止。 我已经通过expires标题,这似乎对此没有帮助。

2 个答案:

答案 0 :(得分:0)

一种选择是可以在客户端完成。在客户端,我们可以配置可配置的计时器。一旦呼叫开始,它就会启动,当它触发时终止呼叫。

其他选项是在服务器端执行相同的操作。

答案 1 :(得分:0)

是的,这是可能的。在服务器端通常更好,因为它通常与充电有关。就像用户用完钱一样,终止通话。

您需要打电话才能通过背靠背用户代理应用程序来处理。 B2BUA将启动一个计时器,该计时器在到期后将负责将BYE发送到双方以终止呼叫。您可以在Restcomm SIP Servlets上执行此操作,在https://github.com/RestComm/sip-servlets/tree/master/sip-servlets-examples/call-forwarding处有一个B2BUA示例。

如果你想在客户端上执行此操作,则需要控制客户端代码并实现类似的逻辑,即启动一个定时器,在它到期时发送BYE。