【问题标题】:Arbitrary response for SIP message in Asterisk?Asterisk中SIP消息的任意响应?
【发布时间】:2018-11-15 22:41:10
【问题描述】:

我有一部IP电话,看起来都是标准的SIP,但是当你拿起接收器时,它会向服务器发送“MESSAGE”。

如果它收到“200 OK”,那么它会继续正常工作,并且似乎使用有效的 SIP,但是如果它收到错误(Asterisk 最终会产生错误,因为它不是一个有效的序列,使它响应“406 Not Acceptable”),它根本拒绝工作。

有没有什么方法可以改变 Asterisk 以响应特定用户的“MESSAGE”“200 OK”,而无需从源重建 Asterisk 本身,或在其间添加任何类型的代理?

【问题讨论】:

  • MESSAGE 消息的目的是什么,它的正文包含什么?你能把手机配置成在你拿起它时不发送消息吗?
  • @Bucq 身体是空的,不,我不能在手机上关闭它(否则我会这样做)。这几乎是供应商锁定。这款手机是为卫星电话系统设计的,所以我认为他们只是使用 MESSAGE 来检查是否有可用的线路,即如果响应正常,那么您可以拨打电话,以及其他任何与卫星的通信被打乱了,所以不行。
  • 富士通 SS-170A 适合在家玩的人

标签: asterisk sip


【解决方案1】:

我可以建议以下选项

1) 尝试设置消息上下文 sip.conf

accept_outofcall_message = yes
outofcall_message_context = messages
auth_message_requests = no

extensions.conf

[messages]
exten => _XXX,1,Hangup

2) 在星号之前将 kamailio 设置为代理,在 kamailio 上创建消息循环,在 kamailio 上注册您的设备。

【讨论】:

  • 确实如此。我没有重建星号,而是用十六进制编辑器公然修补该行以响应“200 OK”和一堆空格,并且它在紧要关头工作。
【解决方案2】:

虽然@arheops 的回复没有奏效,但它确实有助于为我指明正确的方向。

手机发送的 MESSAGE 几乎没有任何内容,甚至没有 Content-Type。

<--- SIP read from UDP:<Phone External IP>:5060 --->
MESSAGE sip:1014@<Server Internal IP>:5060;user=phone SIP/2.0
Via: SIP/2.0/UDP <Phone Internal IP>:5060;branch=z9hG4bK2621781087c1096064fa949
From: "1014" <sip:1014@<Server Internal IP>:5060;user=phone>;tag=2621781087c1096064fa949;fjline-hunt=ML-141
To: <sip:1014@<Server Internal IP>:5060;user=phone>
CSeq: 1 MESSAGE
Call-ID: 00062621781087c1096064fa94900@<Phone Internal IP>
Content-Length: 0
Max-Forwards: 70
User-Agent: Fujitsu SS-170A/B/C V02L001C06

<------------->
--- (9 headers 0 lines) ---

最后我发现了这个问题:Asterisk incoming message gives: 415 unsupported media type

这表明如果没有 text/plain 的内容类型,Asterisk 会立即拒绝消息。

当然,正确的方法是确实克隆 Asterisk 并从源代码重建它,但考虑到时间限制(和懒惰),我只是使用 Hopper 在“text/plain”之后找到字符串文字的偏移量,并且只是让它以200 OK(末尾的一堆空格)响应。

现在我可以很容易地用这个电话给任何人打电话!

然而,来电不起作用:它以 OK 响应通知,但什么也不做,并且 Asterisk 将呼叫重定向到语音信箱。

而且我也无法检查语音邮件,因为它不会在带内或带外发送 DTMF。

长话短说:不要仅仅因为 SIP 电话便宜且看起来很酷,就在二手电子产品的阴暗处购买它,供应商特定的协议可以是 PITA。

【讨论】:

  • 将qualify=no 放在扩展设置中,星号根本不会发送通知。您也可以在 sip.conf 中将 notify 更改为选项。
  • @arheops,它不会破坏任何其他电话,例如 ATA186(在我的 PBX 上最常用)吗?还是 NOTIFY 不是用于来电的消息?似乎 NOTIFY 有语音邮件信息而不是电话......
  • 限定是部分选项。即每个扩展名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多