[asterisk-dev] ToDo for chan_skinny

Dan Austin Dan_Austin at Phoenix.com
Mon Jun 4 14:04:23 MST 2007


Pavel wrote:
> another issue with 7912:
> when I pres "CallFWdAll" asterisk indicates it incorrectly 
> as Do Not Disturb, it is also indcated on phone display
>- but this text indication stays on display only until not 
> touched to phone (call placed, menu accessed etc.), but 
> feature is activated until next "CFwdAll" is pressed.

The CallFwdAll feature is coded as DND currently, and does
stay active until disabled.  There is a way to tell the phone
to display a line instance icon to indicate that it is forwarded,
but that is not implemented at this time.

A proper CFA process should be:
  1.  User presses CFA
  2.  Chan_skinny presents dialtone and waits to collect digits
  3.  If no digits are entered go on hook
  4.  As digits are entered, check their validity
  5.  Once a valid extension has been entered store it and
      Go onhook

That part is not too hard.  Now when a call comes in for the
device/line chan_skinny would need to see if CFA was set and
re-direct the number.  I'm not sure how that would look in
the code....

Dan

PJ



Pavel Jezek wrote:
> when I tested keepalive patch with other phone types, I discovered,
that:
> ci$co 7961 (and probably all never models 7941, 7911, 7921): is not 
> supported at all by chan_skinny, phone doesn't even register ci$co 
> 7912: when call rings-in, "End call" softkey button is displayed, but 
> doesn't working (firmware 8.0(3))
> PJ
>
>
>
>
>
> Dan Austin wrote:
>> Damien wrote:
>>  
>>> Simon Lockhart wrote:
>>>     
>> <Snip>
>>
>>  
>>>> I'm fairly certain that chan_skinny already replies to Keepalive 
>>>> messages from the phone (otherwise it wouldn't work at all).
>>>>
>>>> Th problem is that if the phone stops sending keepalives
>>>> (i.e. it goes away), then chan_skinny doesn't notice and
>>>> still tries sending calls to the now non-existent phone.
>>>>
>>>> Simon
>>>>       
>>>    My bad, it does too. Funny thing, it is one of the things that 
>>> calls do_housekeeping, the others being hangups. So I guess you 
>>> can't reliably use do_housekeeping to check if keepalives have been 
>>> received as it relies on receiving keepalives for do_housekeeping to

>>> be called.
>>>     
>>
>> All true.  The phone sends the keep-alive.  Chan_skinny
>> responds.  It looked like it should go in do_housekeeping,
>> but that won't work as it is not called unless it receives
>> a keep-alive.
>>
>> But I believe I did find the issue.  In get_input() the
>> code was using poll() with timeouts disabled.  Code to check
>> for a dropped connection looked for a timeout, it was also
>> in a section of code that was unlikely to be reached but
>> not impossible.
>>
>> IF the phone dropped while sending a request, the current
>> code would detect it and de-register the device.
>>
>> My fix was to add a timeout to the poll() call based on
>> the configured keep_alive value +10% to handle network
>> congestion, and to move the code that tested for timeouts
>> into a code path that would regularly be reached.
>>
>> Light testing has been positive (I have one 7940 and one
>> 7920).  Both have stayed registered overnight since I
>> implemented the patch, and unplugging the network from the
>> 7940 has it being de-registered in less than the 30 second
>> keep_alive I used for testing.
>>
>> Dan
>> _______________________________________________
>> --Bandwidth and Colocation provided by Easynews.com --
>>
>> asterisk-dev mailing list
>> To UNSUBSCRIBE or update options visit:
>>    http://lists.digium.com/mailman/listinfo/asterisk-dev
>>   
>
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev


More information about the asterisk-dev mailing list