Summary:ASTERISK-08890: chan_skinny doesn't periodically update time on phone
Reporter:pj (pj)Labels:
Date Opened:2007-02-26 14:43:31.000-0600Date Closed:2007-06-05 13:19:39
Versions:Frequency of
Environment:Attachments:( 0) skinny-time-update.txt
Description:chan_skinny updates time only when phone first registers with chan_skinny,
if date/time changes on asterisk, new time is never synchronized on skinny phone, disconnect/reconnect (ie. forced new registration with chan_skinny) is needed to update date/time on phone


tested on 7920
Comments:By: Anthony LaMantia-2 (anthonyl) 2007-03-25 14:56:17

what method are you using to update the time on the asterisk machine?

By: pj (pj) 2007-03-27 11:23:13

ntpdate+xntpd, but I think, this is irelevant for this issue,
problem is, that time/date update is send from chan_skinny to phone, only when it registers to chan_skinny, never more.

By: pj (pj) 2007-05-21 03:57:34

any progress on this issue?
or will be time/date update on skinny phones incorporated in patch for skinny keepalives, as reported in:
0008394: chan_skinny doesn't send keepalives

By: Damien Wedhorn (wedhorn) 2007-05-21 19:58:34

I don't think you should update the time with keepalives. I think the timing of keepalives is in the seconds range, way to often to send a time update. Does asterisk have a call for a time change that can be used?

If all else fails, you could probably stick it in the hangup code as part of the display update. I think it is required on the old phone (VIP30 and SP12) to make the display update correctly on hangup anyway.

By: pj (pj) 2007-05-22 03:18:29

currently time/date is updated on phone only once, when phone registers to chan_skinny (phone issues time/date request during registration process and chan_skinny responses to this request), I think, that this updates should be send activelly and periodically from asterisk to phone, because ci$co callmanager updates time/date on phones also quickly after time change on callmanager (even if phones are onhook).

By: Michiel van Baak (mvanbaak) 2007-05-30 11:03:16

Maybe an idea to do the time update in the do_housekeeping function ?

By: dea (dea) 2007-05-30 11:11:40

That's where I would put it.

Even the brute force approach of doing everytime housekeeping
is called would be fine.  Or we can add an argument to do_housekeeping
that allows selective updates.  So we could do an update in reaction
to a keep_alive request, but not for hangup events.

*** edit ***
Adding one line to do_housekeeping() adds this support:
   handle_time_date_req_message(NULL, s);

I put it at the end of the function.  The phone will get time
updates in response to a keep-alive (90 seconds-ish) or at the
end of a call.  If this is considered excessive, I can code up
some conditional triggers.

*** edit 2 ***
I'm not sure why it compiled the first time, but I found that
a foward declaration is also needed.  Patch attached

I also dropped an excessive clearing of the display which was re-added
in another patch I submitted.

By: pj (pj) 2007-06-01 18:36:10

time/date change update is now working fine, thanks! it is updated on phone almost immediatelly after time changes on asterisk, how often are this updates send to phones?

missed calls are still immediatelly cleared (not even seen) from display.
tested with your patch for this issue in combination with patch for:
0008394: chan_skinny doesn't send keepalives

By: dea (dea) 2007-06-01 22:45:23

Good and Bugger.  OK

Good that the time update is working.  To answer your question of how often,
anytime the channel response to a keep_alive for that device, anytime the
device goes on-hook from off-hook, and a couple other situations.

The call clearing is a seperate issue, and one I will tackle
this weekend or Monday.  It should not hold up this bug.  If I get it
fix and there's no bug open, I will open one for it.

By: pj (pj) 2007-06-02 02:34:36

I wrote about display clearing, because you wrote note here:
"I also dropped an excessive clearing of the display which was re-added..."
if you open new bugreport for display clearing, you can navigate bug marshal of
0007788: [branch] Cisco 7920 Phone Screen not Cleared on Call Complete
to close ticket, because it describes oposite issue, display was not cleared at all.

about time/date update: I'm not sure, but I think, that before this patch, colon betwen hours and mins was blinking, now is non blinking;-)
ad blinking colon, it's firmware "issue" with 3.0(2) is non blinking colon, with 3.0(0) colon is blinking ;-)

By: Michiel van Baak (mvanbaak) 2007-06-02 02:56:25

Did not patch my tree with this one, but I can confirm the colon between hours/minutes is blinking on my phones right now.

By: Michiel van Baak (mvanbaak) 2007-06-02 03:38:40

The time is indeed getting updated right after I changed the time on my server.
On my phones the colon between hours and minutes is still blinking.
need to re-read the comments before commenting on them ;)

can be committed if you ask me.

By: dea (dea) 2007-06-03 14:39:28

  I reconnected my 7920 to my CCM cluster, and it also clears
the 'X missed calls' after a very short period.  That appears to
just be how the phone works.  My 7940 connected to Asterisk keeps
that message on the screen until the phone is used for another call.

By: pj (pj) 2007-06-04 15:08:39

date/time update is now working fine,
missed calls clearing is probably firmware issue for 7920,
so I also vote for commit.

By: Jason Parker (jparker) 2007-06-05 13:19:38

Fixed in svn branches 1.4 and trunk in revisions 67421 and 67422.