Summary:ASTERISK-18037: [patch] Add hold status with CEL and setting a channel var HOLDING via ast_moh_stop/start and potential res_musiconhold fixup.
Reporter:Shane Spencer (whardier)Labels:patch
Date Opened:2011-06-17 17:23:16Date Closed:
Versions:1.8.4 13.18.4 Frequency of
Environment:Linux 2.6 (Ubuntu 11.04)Attachments:( 0) cel_var_holding.patch
( 1) res_musiconhold.patch
Description:This may help call centers and phone system administrators who are compiling analytic information based on call hold times or need events based notification of a call being placed on hold.

I liked the idea of querying CEL database sources for hold time information.  In my workplace too many people hog phone calls and it's difficult to find a diplomatic solution that doesn't involve restricting call count.

On top of that I will be using ImportVar to check for the absence of a HOLDING channel variable for tagged channels in a list.  Doing so allows me to automate through generic user interfaces and AMI hooks actions to be done on an active conversation - transfers, spying, and using ChanSPY and Playback for automated audio delivery.  The goal here is to select the currently active call.

Using channel->moh_state might not work for what I want or be as predictable as I need it to be and it requires res_musiconhold to boot.

I'd prefer to write a helper function to query the channel var without using ImportVar but I wanted to get feedback first.

Also.. there is a potential problem with res_musiconhold where if there was a problem with initializing music on hold an event isn't passed to AMI, however when a call is removed from hold an event is sent regardless.
Comments:By: Leif Madsen (lmadsen) 2011-06-21 09:22:53.566-0500

"I'd prefer to write a helper function to query the channel var without using ImportVar but I wanted to get feedback first."

-- my suggestion is to bring this up on the asterisk-dev mailing list as well to get some of the feedback you're looking for. Discussions about approaches to problems should be discussed on the mailing list.

Thanks for taking the time to write out your thoughts and providing some patches!

By: Nic Colledge (nic) 2011-10-14 07:06:50.938-0500

Anything that adds more usefull information to CEL gets my vote, Ill download the patch and do a little testing. Im sure there are more people out there who will find hold-time very useful.

If you are using cel you may find this patch useful: ASTERISK-17940

By: Shane Spencer (whardier) 2011-10-17 11:20:35.755-0500

The CEL patch simply adds an entry.  I like using it for generating reports and understanding call handling within our organization.

Knowing if a channel is currently 'holding' has become amazingly useful now that we need to play back "Terms and Conditions" during a phone call.  I simply look for a channel that is NOT holding in a list of channels associated with a distinct grouping of calls inbound to specific extensions and then automate a chanspy call to play back the audio.  This lets me have a web trigger URL shortcut on peoples desktop that simply plays back the selected audio to both sides of the active bridge for a specific extension.

Any CEL fixups will make my life easier.. I'll test out the patch mentioned above.

By: Shane Spencer (whardier) 2011-10-17 11:25:53.242-0500

Sorry.. I meant to say that CEL makes post processing easier.. however adding the res_musiconhold fixup makes looking at current channel holding state easier since I can't rely on most CEL backends and the query time would be inconvenient.

Rely on is relative... I don't like racy scenarios (in computer land).

By: Marek Cervenka (cervajs) 2012-06-20 16:07:21.942-0500

can you please update patch for asterisk thanks