0

我想借助 SIP 协议实现以下场景:

  • 我拨打号码 12345678990
  • 电话被拿起(--> 收到 200 ok 并发送回 ACK)
  • 我拨一个号码分机 23456#

我已经用 jain 实现了第一部分和第二部分。我怎样才能实现第三个?

我尝试了什么:

  • 我将 telURL 属性 postDial 设置为 23456# 但在这种情况下,我无法通过代理授权并拨打电话

  • 我厌倦了将这两个部分写成一个带有分隔符 * 和 # 并且根本没有分隔符的数字。

我还能做什么?

UPD:我发现

  • 出现问题是因为 sambol #

  • 带符号 # 代理身份验证。响应已发送但未处理。至少我没有看到 pocessResponce() 方法正在工作的日志消息。

4

2 回答 2

0

出于这些目的,我只使用了 SIP INFO 消息:每条消息都对应一个“23456#”字符串的符号。

于 2015-01-19T13:34:29.703 回答
0

从协议的角度来看,您不能在呼叫建立后拨号。

但是您可以发送 DTMF,以便由您正在通信的任何 UAS(例如 MRF 或语音邮件系统)检测/解析。

有不同的方式来传输 DMTF。

  1. 一种方法是使用 INFO,如RFC2976中所述的已接受答案中所示
  2. 另一种方法是在 RTP RFC4733中使用 DMTF 编码[我会说这是最常见的,因为这是端到端的,不需要遍历代理]
  3. 最后,DMTF 音调可以简单地带内传送。但是,对于某些编解码器,这可能会出现问题。

使用什么取决于您的 UAC 和您正在与之交谈的 UAS 或您已协商的 SDP 的功能。

于 2015-02-07T20:15:38.737 回答