[asterisk-dev] State of parking code and bug 17680

Dan Austin Dan_Austin at Phoenix.com
Tue Jul 27 14:33:20 CDT 2010


I have been looking at bugid 17680 and see a number of issues-


1.        Chan_skinny is calling ast_masq_park_call assuming that ast_bridged_channel
will actually return the remote channel.  I am not sure why it does not,
but an easy fix would be to simply set a local variable to the result and
test it before calling ast_masq_park_call

2.       Chan_skinny is one of three channel drivers still using ast_masq_Park_call, the
rest seem to have a locally modified version of masq_park_call-
see sip_park & sip_park_thread.  Should chan_skinny follow that template?

My last question is sadly along the lines of C101, but I am running out of reasonable
google queries to teach myself what I need to fix bug 12324-

A skinny device has reasonable number of active calls that it can maintain at one time.
I believe that part of the issue with 12324 is that we do not track the current call count,
nor convey it to the phone.  The basic 7940 in Call Manager is identified as supporting
16 calls, so I am going to use that as a starting point for my example.

I would hate to assign a uint8_t[16] to the line structure to track the call slots, as
It seems a waste of space.  Would the following work and be reasonable from
a space a performance standpoint.

Add a uint16_t member to the device structure called callnumber

Track the calls with bitshifting (here's where my googling is failing)

for (int count=0; count < 16; count++) {
  if (!(device->callnumber & 1<< count)) {
         device->callnumber ^= 1<<count;
         break;
  }
}



More information about the asterisk-dev mailing list