4

我编写了一个可以与 PBX 通信的软电话(由 SIPp 模拟)。为此,我使用 java 的 jain-sip 框架。我的问题是,jain-sip 会自动发送 sip 消息。例如,在收到 RE-INVITE 消息后,我的程序会发回 OK 消息,但 jain-sip 会自动发回 TRYING 消息。为什么???

Jain-sip 还会自动发送一些 OK 消息。请参阅下面的呼叫流程(PBX 正在向我的软件电话应用程序发送邀请消息)

  • 邀请 -->
  • <-- 尝试
  • <-- 铃声
  • <-- OK/SDP(端口号 2000)
  • 确认 -->
  • 在端口 2000 上发送 RTP

  • 重新邀请 -->

  • <-- 尝试
  • <-- OK/SDP(端口号 2002)
  • 确认 -->
  • 在端口 2002 上发送 RTP
  • <-- OK/SDP (port number 2000) // jain-sip 自动发送此消息!!!
  • 确认 -->
  • 在端口 2000 上发送 RTP // 现在 rtp 数据转到错误的端口
  • <-- OK/SDP (port number 2000) // 再次 jain-sip 自动发送 ok 消息
  • 确认 -->
  • 在端口 2000 上发送 RTP // rtp 数据转到错误的端口
  • 再见-->
  • <-- 好的

为什么 jain-sip 会自动发送消息?我做错了什么,或者是否可以禁用自动发送 sip 消息?

4

2 回答 2

3

我发现可以通过将参数“javax.sip.AUTOMATIC_DIALOG_SUPPORT”设置为“off”来停止自动发送消息。我也知道,为什么 jain-sip 有时会自动发送一条 TRYING 消息。当我的软件电话应用程序需要太长时间才能将 OK 消息发送回 PBX 时,就会发生这种情况。我仍然不明白的是自动发送我在上面的呼叫流程中描述的 OK 消息。也许有人知道?

于 2011-11-30T10:13:00.193 回答
0

对于 200 OK,我不确定,但 JAIN SIP 似乎无法理解远程方发送的 ACK 并且它将重新传输为第一次 INVITE 生成的 OK。

您可以通过标题查看交易 ID 来检查。否则,您可以查看 JAIN-SIP 堆栈的日志。

于 2012-02-07T07:22:35.220 回答