【问题标题】:SIP send data during session progress会话过程中 SIP 发送数据
【发布时间】:2015-04-24 10:17:15
【问题描述】:

我有一个 SIP 门禁系统。我已经开发了注册和拨打电话的代码。

发出邀请后,我会立即获得会话进度,现在我需要在此会话期间发送数字字符代码。

我正在使用 Jain SIP 进行开发。

【问题讨论】:

  • 您需要如何发送数字代码?是带内(例如通过RTP事件或普通DTMF)还是带外(例如使用INFO方法)
  • 我想我可以使用 INFO 方法,我需要将代码作为 DTMF 信号发送。我必须将我的字符代码转换为 DTMF 信号并发送吗?
  • 嗯,这真的取决于对方的期望或您能够协商的内容。
  • 实际上,当我从他们提供的 SIP 电话或我的电话呼叫系统时,一旦会话开始,当我拨打例如 1111* 之类的代码时,它就会接受它。所以确定它接受 DTMF 信号。

标签: java session sip phone-call jain-sip


【解决方案1】:

send DTMF/Key presses 有一些不同的选择: 另一端可能期待电话事件RFC 4733 或只是发送 DTMF(不太可能,因为多次压缩语音会使 DTMF 识别变得困难)。

现在的问题是,传统上,虽然可以立即接收通信(例如,收听铃声或不收费的通知),但双向通信只能在 应答之后(在 SIP 中转换为200 好)。

在您的情况下,您使用的另一端、您的终端或提供商可能会强制执行该限制。

如果没有,那么您可以使用早期媒体(您可以查看RFC 3960 进行完整讨论。

基本上,接收端可以在 18x 临时响应(例如 183 呼叫进度)上发送 SDP 应答。交换之后,呼叫和被叫可以启动通信(并且可以是双向的)。

有两种可能:

  1. 主叫和被叫支持临时可靠响应(请参阅RFC 3262。在这种情况下,协商通过 PRACK 完成。协商的媒体可以使用 UPDATE 请求在 200 OK 之前修改。 p>

  2. calling 或被调用不支持临时可靠响应。 SDP Answer 仍然可以包含在 18x 中,但它不能更改 before 答案,并且 200 OK 必须携带完全相同的 SDP Answer。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2016-02-20
    • 1970-01-01
    • 2023-03-26
    • 2011-12-28
    • 2011-05-07
    相关资源
    最近更新 更多