【问题标题】:sip "100 trying" instead of "180 ringing"啜饮“100 次尝试”而不是“180 次响铃”
【发布时间】:2011-12-21 21:24:31
【问题描述】:

我使用 Microsoft Unified Communications 和 c# 开发软件。我使用 IMVoipSample 作为代码库。作为 voip 后端,我使用星号。一切都很好,我可以注册、拨打电话、接听/拒绝来电。有一件事我无法解决。

当我拨打第 3 方软件电话时,它会得到应答:

SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.168.250.29:5060;branch=z9hG4bK786d156c;rport=5060
Contact: <sip:6011@192.168.246.203:45134;rinstance=7af05ded7e7e49e6>
To: <sip:6011@192.168.246.203:45134;rinstance=7af05ded7e7e49e6>;tag=9a00d038
From: "6012"<sip:6012@192.168.250.29>;tag=as66995cd4
Call-ID: 7cebe5d1060b11452571a22e0e2cb919@192.168.250.29
CSeq: 102 INVITE
User-Agent: X-Lite release 1002tx stamp 29712
Content-Length: 0

但是当我打电话给我的 IMVoipSample 手机时,会有一个回答:

SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.246.203:45134;branch=z9hG4bK-d87543-71570d1c6127bc7a-1--d87543-;received=192.168.246.203;rport=45134
From: "6011"<sip:6011@192.168.250.29>;tag=18345648
To: "6012"<sip:6012@192.168.250.29>
Call-ID: fd7f305d6520cd53YjQ2ZDJmMDAwZDE0YmUwMjRlMGFmM2NmODg5OGM1ODQ.
CSeq: 2 INVITE
Server: Asterisk PBX 1.6.2.9-2
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Contact: <sip:6012@192.168.250.29>
Content-Length: 0

我有一个三星officeserv pbx,它连接到星号,我可以拨打软电话,反之亦然。但是拨打软电话和我的 IMVoipSample 电话的音频区别在于没有正常的连接蜂鸣声,只有静音。我想这是因为“尝试 100 次”而不是 “180 漂洗”。 所以问题是: 我需要在客户端设置额外的振铃信号吗?

【问题讨论】:

  • 有趣。 第 3 方软件电话IMVoipSample 是否都在同一台机器上运行,使用同一个帐户?只是好奇。如果没有 180 Ringing,Asterisk 将不会继续。尝试使用sip.conf 中的progressinband 参数,看看它是如何工作的。
  • 是的,他们在同一台机器上工作,此外在一台机器上还有 2 个 3rd 方软件电话用于测试目的。他们也使用不同的帐户。我还尝试使用 progressinband 参数。对我来说没关系。

标签: sip asterisk uccapi


【解决方案1】:

1xx 响应是信息响应,在 100 Trying 的情况下是可选的。 SIP 用户代理服务器 (UAS) 通常会在收到 INVITE 请求时立即响应 100 Trying 响应,让用户代理客户端 (UAC) 知道他们正在处理请求并避免重传。稍后,他们将在 100 Trying 响应之后出现 180 Ringing 或 183 Session Progress。一旦有人或某物接听电话,就需要发送 2xx 响应,通常是 200 Ok。

如果您的软件电话软件仅生成 100 Trying 响应,而不是随后的 180 Ringing 响应,那么我猜您错过了一步。至少,如果软件电话有问题并且由于没有什么可以响铃而无法生成响铃响应,它应该生成 4xx 错误响应。

【讨论】:

  • “180 Ringing”只是一个标题吗?需要真正的哔哔声吗?
  • 180 响铃是响应状态码。它对于 SIP 响应是强制性的,但不是标头。就哔声而言,SIP 层不参与产生它们。在 180 响应的情况下,接收它的设备负责生成进度音。在 183 Session Progress 响应的情况下,被叫设备向主叫设备发起一个早期媒体 RTP 流,其中包含它想要播放的任何音频来指示进度。
【解决方案2】:

好吧,我通过在星号的 sip.conf 中显式添加振铃解决了我的问题

exten => _6.,1,Ringing
exten => _6.,n,Dial(SIP/${EXTEN:0}).

但是@sipwiz 给出了问题根源的详细描述

【讨论】:

  • ${EXTEN:0} 与 ${EXTEN} 相同。此外,您应该小心使用该方法,因为无论被叫设备如何响应,您都会收到振铃指示。例如,如果被叫设备不可访问或离线,则呼叫者仍会收到错误的振铃指示。一般来说,建议不要使用带有 Asterisk 的人工振铃指示。
  • 好吧,感谢您指出 ${EXTEN},我不知道。我打电话给未登录的应用程序,但出现“SIP/2.0 503 Service Unavailable”。所以看起来还可以
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2010-10-16
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
相关资源
最近更新 更多