Summary:ASTERISK-07393: [patch] Skinny hold not implemented
Reporter:Damien Wedhorn (wedhorn)Labels:
Date Opened:2006-07-24 23:01:34Date Closed:2006-09-17 17:24:50
Versions:Frequency of
Environment:Attachments:( 0) chan_skinny-hold.diff
( 1) hold1.diff
( 2) hold2.diff
( 3) hold4.diff
Description:Code has not been implemented for chan_skinny hold functionality.


Attached is a patch to trunk (chan_skinny rev 38042) that introduces basic hold and moh functionality. Hold plays moh and stops rtp to the device, unhold stops moh and restarts rtp to the device.

Error handling is pretty much non-existant, need to add additional code to allow the device to be hung up while a call is on hold and to change status indicators etc. Tested on 30vip.
Comments:By: Jason Parker (jparker) 2006-07-25 10:30:58

I will test this on a couple devices tonight, and if it works, this will be committed to trunk (I'll override the post 1.4..  This *is* a new "feature", but I'm going to call the lack of the feature a bug.)  Please keep patches like these coming. ;)

By: Jason Parker (jparker) 2006-07-25 12:21:33

After talking to Russell Bryant, this patch is slightly wrong.  He recently modified the way hold is handled across channel drivers (which you may have seen, since I assume this patch was written before his changes were committed).  Instead of the channel calling start_moh on the bridged channel, it should queue a HOLD/UNHOLD event, which would be passed to the other side(s?), and then be handled in that channel drivers _indicate function.  I can go ahead and fix this up if you'd like, or you can take a peek at svn revision 37988 and see what exactly needs to change.  Let me know if you'd like to make these changes..

By: Damien Wedhorn (wedhorn) 2006-07-25 17:02:14

Added hold2.diff which applies to the original trunk. This doesn't fix the new HOLD/UNHOLD arrangements but adds the ability to onhook/offhook and then unhold a held call, and adds status indication on the holding device.

North, happy for you to fix up the new handling.

By: Jason Parker (jparker) 2006-07-25 17:38:40

Uploaded new patch to queue hold/unhold events, and adds mohsuggest.  Also adds support for hold softkey.  Patch is completely untested (hey, at least it compiles).

By: Damien Wedhorn (wedhorn) 2006-07-27 05:14:59

Uploaded another patch (hold4.diff). This one uses ast_queue_control rather than moh_start. Should work for both soft and hard hold buttons. Hold and unhold are their own procs.

I tried pushing everything into skinny_indicate, but the ast_queue_control doesn't actually seem to pass control to skinny_indicate, although it does start the moh. Interestingly, even if you remove the moh_start from skinny_indicate, the moh starts, so it doesn't seem to do anything (wrt HOLD and UNHOLD anyway).

Edit: should have read previous note (this excludes moh suggest), but any ideas why skinny_indicate isn't called?

By: Serge Vecher (serge-v) 2006-09-01 14:41:24


By: Jason Parker (jparker) 2006-09-17 17:24:50

Committed to svn trunk revision 43111.  Thanks!