1

我使用 SIP 协议向 GSM 号码拨打电话。

当我无法接通被叫号码时,我会收到 SIP 错误响应。

但在两种情况下,SIP 不响应任何错误代码。

  • 当被叫号码无法接通时,一些 GSM 运营商提供自动电话秘书服务。在这种情况下,通话似乎没问题。

  • 当被叫号码不再使用时,一些 GSM 运营商会提供带有自动代理的默认消息,其中显示“该号码不再使用......等等”。此外,在这种情况下,没有返回 SIP 错误代码。

很快我就遇到了自动应答代理的问题。怎么能理解在被叫号码的另一边,有“真人”而不是“自动”答录机?

为什么 GSM 运营商不返回任何代码表明“这是一台自动应答机”或“该号码不再可用”?为什么它没有 SIP 响应代码?或者有吗?

4

2 回答 2

3

对于语音邮件/电话秘书/自动应答代理的第一种情况,您将无法使用 SIP 来区分呼叫。相反,您必须有一些进程来监听媒体流 (RTP),并尝试检测人和录音之间的区别。一个例子是Asterisk 的 AMD 应用程序,但请注意它不是一门精确的科学。

对于第二种情况,您收到关于未使用号码等的录制消息。它们通常作为进度音提供,在 SIP 的情况下,作为 183 会话进度响应接收。关键点是您在呼叫中获得音频而呼叫没有被应答(带有 SIP 2xx 响应)。这样做的重点是,调用者不应该为收听记录的错误消息而付费。许多 PSTN 运营商将以相同的方式提供振铃指示,因此,如果您想检测正在进行的呼叫和收到错误指示的呼叫之间的差异,您将需要捕获和处理不是的 RTP 音频流一件容易的事。

于 2013-07-18T01:12:03.450 回答
2

RFC5359 有 SIP 服务示例。只需查看文档或单击下面的 URL 进行检查。 https://www.rfc-editor.org/rfc/rfc5359

看看下面的网址。有可用的 SIP 响应代码。 http://en.wikipedia.org/wiki/List_of_SIP_response_codes

它可以帮助您检查响应。

于 2013-07-16T11:45:32.443 回答