Asterisk 对星号中SIP消息的任意响应?

Asterisk 对星号中SIP消息的任意响应?,asterisk,sip,Asterisk,Sip,我有一个IP电话,看起来都是标准的SIP,但当你拿起听筒时,它会向服务器发送“消息” 如果它收到一个“200OK”,那么它将继续正常工作,并使用有效的SIP,但如果它收到一个错误(星号最终会产生错误,因为它不是一个完全有效的序列,使它以“406NotAcceptable”响应),它将拒绝工作 是否有任何方法可以更改星号以响应特定用户的“消息”为“200 OK”,而无需从源代码中重建星号本身,或在两者之间添加任何类型的代理?我可以建议以下选项 1) 尝试设置消息的上下文 sip.conf exte

我有一个IP电话,看起来都是标准的SIP,但当你拿起听筒时,它会向服务器发送“消息”

如果它收到一个“200OK”,那么它将继续正常工作,并使用有效的SIP,但如果它收到一个错误(星号最终会产生错误,因为它不是一个完全有效的序列,使它以“406NotAcceptable”响应),它将拒绝工作


是否有任何方法可以更改星号以响应特定用户的“消息”为“200 OK”,而无需从源代码中重建星号本身,或在两者之间添加任何类型的代理?

我可以建议以下选项

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

extensions.conf

[messages]
exten => _XXX,1,Hangup

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

我可以建议以下选项

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

extensions.conf

[messages]
exten => _XXX,1,Hangup

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

虽然@arheops的响应不起作用,但它确实有助于为我指明正确的方向

手机发送的
信息几乎没有任何内容,甚至没有内容类型

<--- 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) ---

消息sip:1014@:5060;用户=电话SIP/2.0
Via:SIP/2.0/UDP:5060;分支=z9hG4bK2621781087c1096064fa949
从:“1014”;标签=2621781087c1096064fa949;fjline hunt=ML-141
致:
CSeq:1消息
电话号码:000621781087C1096064FA94900@
内容长度:0
最大前锋:70
用户代理:富士通SS-170A/B/C V02L001C06
---(9个标题0行)---
最后我发现了这个问题:

它表示,如果没有文本/纯文本的内容类型,Asterisk会立即拒绝消息

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

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

然而,传入的呼叫不起作用:它对Notify的响应是OK,但什么也不做,而Asterisk将呼叫重定向到语音邮件

我也不能检查语音邮件,因为它不会在带内或带外发送DTMF


长话短说:不要仅仅因为SIP手机便宜而且看起来很酷就在阴暗的二手电子产品销售中购买它,特定于供应商的协议可能是一个空谈。

虽然@arheops的回复不起作用,但它确实有助于为我指明正确的方向

手机发送的
信息几乎没有任何内容,甚至没有内容类型

<--- 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) ---

消息sip:1014@:5060;用户=电话SIP/2.0
Via:SIP/2.0/UDP:5060;分支=z9hG4bK2621781087c1096064fa949
从:“1014”;标签=2621781087c1096064fa949;fjline hunt=ML-141
致:
CSeq:1消息
电话号码:000621781087C1096064FA94900@
内容长度:0
最大前锋:70
用户代理:富士通SS-170A/B/C V02L001C06
---(9个标题0行)---
最后我发现了这个问题:

它表示,如果没有文本/纯文本的内容类型,Asterisk会立即拒绝消息

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

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

然而,传入的呼叫不起作用:它对Notify的响应是OK,但什么也不做,而Asterisk将呼叫重定向到语音邮件

我也不能检查语音邮件,因为它不会在带内或带外发送DTMF


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

消息的目的是什么,它的正文包含什么?你能配置手机在你拿起它时不发送信息吗?@Bucq身体是空的,不,我不能在手机上关闭它(否则我就这么做)。这几乎是供应商锁定。这部电话是为卫星电话系统设计的,所以我想他们只是用短信来检查是否有可用的线路,也就是说,如果响应正常,那么你可以打电话,不管怎样,与卫星的通信中断,这是富士通SS-170A,供在家里玩的人使用。这条信息的目的是什么,它的主体包含了什么?你能配置手机在你拿起它时不发送信息吗?@Bucq身体是空的,不,我不能在手机上关闭它(否则我就这么做)。这几乎是供应商锁定。这部电话是为卫星电话系统设计的,所以我想他们只是用短信来检查是否有可用的线路,也就是说,如果响应正常,那么你可以打电话,不管怎样,与卫星的通信中断,这是一款富士通SS-170A,适合那些在家里玩的人,可能是相关的:确实是这样。我没有重建星号,而是公然用一个十六进制编辑器修补了这一行,以回应“200OK”和一堆空格,它在紧要关头工作了。可能是相关的:的确如此。我没有重建asterisk,而是用一个十六进制编辑器公然修补了这行,以响应“200OK”和一堆空格,它在紧急情况下工作。在扩展设置中,put qualify=no,asterisk根本不会发送通知。您还可以在sip.conf.@arheops中将notify更改为选项,它不会破坏任何其他手机,如ATA186(在我的PBX上最常用的手机)?或者NOTIFY不是用于传入呼叫的消息?NOTIFY似乎有语音邮件信息,而不是呼叫…符合条件是分区选项。i、 e每扩展一次。请输入