Asterisk upgrade & Swyx peer

We recently upgraded from Asterisk 1.4.43 (compiled from source) to Asterisk 1.8.13 (Debian repo). Except for adding “insecure=invite” to our peers, the configuration is identical. All peers are able to connect to the new server, except this one Swyx client. If i tcpdump the customer’s IP, I can see that there are packets coming from them to us, but our Asterisk machines never replies. I was hoping anyone can tell me what is wrong with the following packet:

IP 1.2.3.4 is our IP.
IP 192.168.254.250 is customer’s Swyx box internal IP on their end.
IP 12.13.14.15 is their external IP
"asterisk2swyx" is the username.

<— SIP read from UDP:12.13.14.15:11213 —>
REGISTER sip:1.2.3.4 SIP/2.0
Via: SIP/2.0/UDP 192.168.254.250:65002;branch=z9hG4bK-d8754z-d441d3466063401f-1—d8754z-;rport
Max-Forwards: 70
Contact: sip:asterisk2swyx@192.168.254.250:65002
To: sip:asterisk2swyx@1.2.3.4
From: sip:asterisk2swyx@1.2.3.4
Call-ID: MzY3YjA3YjJhZDgwNjdkMGVmZjgwZjJiNTQ2ZmY4NWQ.
CSeq: 1668402520 REGISTER
Expires: 120
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, OPTIONS, INFO, SUBSCRIBE, UPDATE
User-Agent: Swyx LinkMgr/8.1.0.72
Content-Length: 0
<------------->

The answer should be in the log. You don’t seem to have a suitable logging level. Generally, you want at least verbose 5 and at least debug 5 and you want to make sure logger.conf actually results in everything being logged.

I have enabled debugging in logger.conf to file ‘full’, and this is what I got. The only error I see in there is “REGISTER request has no from tag”, is that indeed the problem?

I have googled for this error message, but I can’t find a direct solution to my problem. I hope anyone has some tips for me.

[Jan 30 12:05:23] VERBOSE[17815] chan_sip.c:
<— SIP read from UDP:12.13.14.15:11213 —>
REGISTER sip:1.2.3.4 SIP/2.0
Via: SIP/2.0/UDP 192.168.254.250:65002;branch=z9hG4bK-d8754z-df0c4239a41f4027-1—d8754z-;rport
Max-Forwards: 70
Contact: sip:asterisk2swyx@192.168.254.250:65002
To: sip:asterisk2swyx@1.2.3.4
From: sip:asterisk2swyx@1.2.3.4
Call-ID: YTQyM2U3ODY2MTIyYjlmY2NhYjQ4NjBiNTcyYmQ4OWM.
CSeq: 1759958648 REGISTER
Expires: 120
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, OPTIONS, INFO, SUBSCRIBE, UPDATE
User-Agent: Swyx LinkMgr/8.1.0.72
Content-Length: 0

<------------->
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 0 [ 35]: REGISTER sip:1.2.3.4 SIP/2.0
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 1 [ 95]: Via: SIP/2.0/UDP 192.168.254.250:65002;branch=z9hG4bK-d8754z-df0c4239a41f4027-1—d8754z-;rport
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 2 [ 16]: Max-Forwards: 70
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 3 [ 53]: Contact: sip:asterisk2swyx@192.168.254.250:65002
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 4 [ 41]: To: sip:asterisk2swyx@1.2.3.4
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 5 [ 43]: From: sip:asterisk2swyx@1.2.3.4
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 6 [ 53]: Call-ID: YTQyM2U3ODY2MTIyYjlmY2NhYjQ4NjBiNTcyYmQ4OWM.
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 7 [ 25]: CSeq: 1759958648 REGISTER
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 8 [ 12]: Expires: 120
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 9 [ 80]: Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, OPTIONS, INFO, SUBSCRIBE, UPDATE
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 10 [ 33]: User-Agent: Swyx LinkMgr/8.1.0.72
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Header 11 [ 17]: Content-Length: 0
[Jan 30 12:05:23] VERBOSE[17815] chan_sip.c: — (12 headers 0 lines) —
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: = Looking for Call ID: YTQyM2U3ODY2MTIyYjlmY2NhYjQ4NjBiNTcyYmQ4OWM. (Checking From) --From tag --To-tag
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: REGISTER request has no from tag, dropping callid: YTQyM2U3ODY2MTIyYjlmY2NhYjQ4NjBiNTcyYmQ4OWM. from: sip:asterisk2swyx@1.2.3.4
[Jan 30 12:05:23] DEBUG[17815] chan_sip.c: Invalid SIP message - rejected , no callid, len 515

I have found an issue with Cisco phones, where this message (“no from tag”) also occurs. The solution there seems to be using pedantic=yes. I’ve tried this for my Swyx peer, but that does not resolve the issue.

If pedantic is working correctly, setting it to yes is more likely to reject the request. Set it to no to not do the proper checks on tags.

Okay, I’ve tried both (but no is default anyway). Both don’t seem to matter.

I have just sniffed the old server (Asterisk 1.4). There isnt a “;tag” in the From message there either, but Asterisk 1.4 registers the peer just fine. (Same Swyx version/box)

Not having a tag on the From is a violation of a mandatory requirement of the SIP protocol. If pedantic=no doesn’t help, you will have to modify the Asterisk source code to tolerate that violation.

8.1.1.3 From

The From field MUST contain a new “tag” parameter, chosen by the UAC.
See Section 19.3 for details on choosing a tag.

It turns out that the “pedantic” setting in SIP.conf cannot be set on a per peer basis. It is system wide. The default setting has also changed from no to yes, and I was still using my 1.4 sip.conf, which documented the setting as beeing default no.

Excplicitly setting pedantic=no in sip.conf under [general] solved the issue. The peer registered.