目前尚不清楚如何在多线程环境中使用jain SIP堆栈。我需要从不同的线程创建多个SIP会话,例如,每个客户端都应该在自己的事务中进行。以下是几个选项:
SipProvider
接收和发送SIP请求,并在应用程序端进行多路复用。 SipProvider
不是线程安全的,因此发送请求需要正确锁定。SipProvider
和新的ListeningPoint
。这就是它现在对我有用的方式。但是,我真的不喜欢它。并且不清楚,SipStack线程是否安全SipStack
的新实例
答案 0 :(得分:2)
自从我想到JAIN-SIP(甚至是SIP甚至是Java)以来已经很长时间了,但是这里有:
创建堆栈时设置重入侦听器标志。 (查看javadocs)。指定线程池大小。当sip请求或响应出现时,堆栈可能会为您创建一个新线程并调用您的监听器。
您的关键部分是SipListener实现。您不应该永远阻止它 - 否则新的入站请求和响应将不会被路由到您阻止时正在处理的事务的sip侦听器。
希望能回答你的问题。快乐的黑客攻击。
多数民众赞成。
答案 1 :(得分:0)
为什么不使用SIP Servlets,它可以让您专注于您的应用程序逻辑并为您处理这些细节? 见http://code.google.com/p/sipservlets/