[asterisk-dev] Linksys SPA962 losing registration
Jeff LaCoursiere
jeff at jeff.net
Mon Sep 7 20:18:47 CDT 2009
Update:
After finding this issue: 15084
I started looking at the logic in "handle_request_notify()" and don't
understand why I am not getting one or the other of "489 Bad Event" or
"200 OK", as surely the code must follow one branch or the other of this:
if (strcmp(event, "refer")) {
[snip]
transmit_response(p, "489 Bad event", req);
res = -1;
} else {
[snip a bunch of tests and a switch that shouldn't apply]
/* Confirm that we received this packet */
transmit_response(p, "200 OK", req);
};
But instead I get no response at all, which is surely the difference
between the two versions. I am willing to bet that 1.4.18 sent the 489.
I am trying a quick patch before this code:
if (strcmp(event, "keep-alive") == 0) {
ast_log(LOG_NOTICE, "Jeff's NOTIFY keep-alive reponse comes into play...\n");
transmit_response(p, "200 OK", req);
}
But I don't think this is going to be executed. Any suggestions?
Thanks!
j
On Tue, 8 Sep 2009, Jeff LaCoursiere wrote:
>
> Hi,
>
> Upgraded a location from 1.4.18 to 1.4.26.2 a few days ago, and immediately
> had issues with Linksys SPA962 phones (firmware 6.1.3a) losing their
> registration every 30 seconds.
>
> A SIP trace shows that they register, send six or seven NOTIFY keep-alive
> messages with what appears to be exponential backoff timing between them,
> then send a REGISTER request again.
>
> It would seem that the phones expect a response to the NOTIFY keep-alives.
> Has this changed between 1.4.18 and 1.4.26.2? I have been digging in
> chan_sip.c but I have to admit I am fairly lost. Would be happy to try and
> hack in a response if someone might point me to the routine that receives the
> NOTIFY message and decides what to do with it.
>
> Would also welcome any theory if mine is off track!
>
> There are about 300 of these phones in play. Some of them simply blink
> "orange" for a moment until the re-registration succeeds. Some of them
> lose registration entirely until reboot (don't have a trace of that yet).
>
> Here is a summary of the trace:
>
> ----------------------------------------------------------------------------
>
> TIME Linksys to asterisk Asterisk to Linksys
>
> 12:36:51 REGISTER REQUEST 3705759a
> 12:36:51 100 TRYING
> 12:36:51 [stale nonce log]
> 12:36:51 401 UNAUTHORIZED
> 12:36:51 [use nonce 50a821de]
>
> 12:36:51 REGISTER REQUEST 50a821de
> 12:36:51 100 TRYING
> 12:36:51 102 OPTIONS
> 12:36:51 200 OK
> 12:36:51 200 OK
>
> 12:36:53 NOTIFY Messages-Waiting
> no
> 12:36:53 200 OK
>
> 12:37:01 NOTIFY Keep-alive
>
> 12:37:02 NOTIFY Keep-alive
>
> 12:37:03 NOTIFY Keep-alive
>
> 12:37:05 NOTIFY Keep-alive
>
> 12:37:09 NOTIFY Keep-alive
>
> 12:37:13 NOTIFY Keep-alive
>
> 12:37:17 NOTIFY Keep-alive
>
> 12:37:17 REGISTER REQUEST 50a821de
> 12:37:17 100 TRYING
> 12:37:17 [stale nonce log]
> 12:37:17 401 UNAUTHORIZED
> 12:37:17 [use nonce 6e7159fe]
>
> 12:37:17 REGISTER REQUEST 6e7159fe
> 12:37:17 100 TRYING
> 12:37:17 102 OPTIONS
> 12:37:17 200 OK
> 12:37:17 200 OK
>
> 12:37:26 NOTIFY Messages-Waiting
> no
> 12:37:26 200 OK
>
> 12:37:27 NOTIFY Keep-alive
>
> 12:37:28 NOTIFY Keep-alive
>
> 12:37:29 NOTIFY Keep-alive
>
> 12:37:31 NOTIFY Keep-alive
>
> 12:37:35 NOTIFY Keep-alive
>
> 12:37:39 NOTIFY Keep-alive
>
> 12:37:43 NOTIFY Keep-alive
>
> 12:37:43 REGISTER REQUEST 6e7159fe
> 12:37:43 100 TRYING
> 12:37:43 [stale nonce log]
> 12:37:43 401 UNAUTHORIZED
> 12:37:43 [use nonce 657eea74]
>
> 12:37:43 REGISTER REQUEST 657eea74
> 12:37:43 100 TRYING
> 12:37:43 102 OPTIONS
> 12:37:43 200 OK
> 12:37:43 200 OK
>
> 12:37:48 NOTIFY Messages-Waiting
> no
>
> ----------------------------------------------------------------------------
>
> Cheers,
>
> j
>
More information about the asterisk-dev
mailing list