2

目前尚不清楚如何在多线程环境中使用 jain SIP 堆栈。我需要从不同的线程创建多个 SIP 会话,例如每个客户端都应该在自己的事务中进行。下面是几个选项:

  • 使用 singleSipProvider接收和发送 SIP 请求,并在应用程序端进行多路复用。SipProvider不是线程安全的,因此发送请求需要适当的锁定。
  • 为每个客户创造新的SipProvider和新的。ListeningPoint这就是它现在对我有用的方式。然而,我真的不喜欢它。而且还不清楚 SipStack 是否线程安全
  • SipStack为每个客户创建新实例
4

2 回答 2

2

很久没有想到 JAIN-SIP(甚至 SIP 甚至 Java),但这里有:

  1. 创建堆栈时设置可重入侦听器标志。(查找javadocs)。指定线程池大小。当 sip 请求或响应出现时,堆栈可能会为您创建一个新线程并调用您的侦听器。

  2. 您的关键部分是 SipListener 实现。您不应该永远在其中阻塞 - 否则新的入站请求和响应将不会被路由到您阻塞时正在处理的事务的 sip 侦听器。

希望这能回答你的问题。快乐的黑客。

就是这样。

于 2013-10-29T15:42:52.120 回答
0

为什么不使用 SIP Servlets,它可以让您专注于应用程序逻辑并为您处理这些细节?请参阅http://code.google.com/p/sipservlets/

于 2013-09-16T12:39:38.320 回答