04-10-2012 04:30 AM - edited 03-21-2019 05:38 AM
Occassionally (once every week), our phones will not be able to register to our Asterisk server and no matter how many times we reboot, we cannot get it back online.
The only known solution so far, is to change the IP address of the phone to a new IP address and it will work again.
After we change the IP address on a phone and then it registers successfully.
I quickly do a SIP debug on the server and compare a working phone with a non-working phone.
I have found that the non-working phone is not sending the authorization header in the SIP REGISTER message.
How do we fix this issue? Please help.
Removed sensitive information
NON-WORKING PHONE
<--- SIP read from UDP://10.10.0.XX:5060 --->
REGISTER sip:sip.xxxxxx.local SIP/2.0
Via: SIP/2.0/UDP 10.10.0.XX:5060;branch=z9hG4bK-f227ef73
From: "$USER" <sip:121@sip.xxxxxxxx.local>;tag=1c8e82bd4927dd61o0
To: "$USER" <sip:121@sip.xxxxxxx.local>
Call-ID: 3a7f5cd3-b41bcabb@10.10.0.XX
CSeq: 63037 REGISTER
Max-Forwards: 70
Contact: "$USER" <sip:121@10.10.0.XX:5060>;expires=3600
User-Agent: Cisco/SPA504G-7.4.9c
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER, UPDATE
Supported: replaces
I get the following message back:
SIP/2.0 401 Unauthorized
WORKING PHONE
<--- SIP read from UDP://10.10.0.XX:5060 --->
REGISTER sip:sip.xxxxxxx.local SIP/2.0
Via: SIP/2.0/UDP 10.10.0.XX:5060;branch=z9hG4bK-962d9d90
From: "$USER" <sip:180@sip.xxxxxxx.local>;tag=186318f1a9471b3eo0
To: "$USER" <sip:180@sip.xxxxxxx.local>
Call-ID: d187e178-20a6065e@10.10.0.XX
CSeq: 46794 REGISTER
Max-Forwards: 70
Authorization: Digest username="180",realm="asterisk",nonce="0d2535c9",uri="sip:sip.xxxxxxx.local",algorithm=MD5,response="72cc8daedda50ec6f0868b51417f5d8f"
Contact: "$USER" <sip:180@10.10.0.XX:5060>;expires=3600
User-Agent: Cisco/SPA504G-7.4.9c
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER, UPDATE
Supported: replaces
I get the following message back:
SIP/2.0 200 OK
04-10-2012 08:07 AM
The phone not sending the authorization header in the first REGISTER request is correct behaviour. The phone should act on the 401 Unauthorized it receives by sending a new REGISTER request that contains the authorization header.
So is the phone responding on the 401 with a new REGISTER request? Or better question, is the phone receiving the 401 response from your Asterisk server? It looks like the phone is not receiving the response which results in a new REGISTER request after a while with still no authorization header. And that looks more like a network issue then a phone issue.
Can you capture a non working phone to see if the response is received?
Regards,
Bart Derks
04-10-2012 08:21 AM
Thanks Bart for your reply. I will try to capture the response from the phone. How should I go about that? I see there is a sip debug option on the SPA504G, how does that work?
Or should I be using a wireshark and do some port mirror sniffing to check out the packets at the port level?
Thanks in advance.
Fred
04-10-2012 10:15 AM
Wireshark will capture the packets between the SPA504G and the Asterisk server. Enable port mirroring on the switch.
What is the register timeout value set on the Asterisk sever? The phone should reregister when 20% of the timeout value is remaining.
Randy
04-10-2012 01:21 PM
After alot of testing, I've stumbled across this article which is very similar to my situation. So it's probably not the phone.
But there's no solution
04-10-2012 01:26 PM
I wonder if this is this, but I'm not using Fortigate routers
http://www.briandowney.net/blog/2011/03/30/fortigate-sipvoip/comment-page-1/#comment-442
04-10-2012 01:28 PM
This is also very similar
http://fonality.com/trixbox/forums/vendor-specific-unmoderated/linksys-cisco/unseen-problem
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide