[asterisk-dev] AMI call on hold (new topic)

Olle E. Johansson oej at edvina.net
Wed Jan 6 04:55:43 CST 2010


6 jan 2010 kl. 11.40 skrev Chris Mylonas:

> I would like to request an AMI command for placing a call on hold.  I understand that "Hold" is done with SIP messages, but if we could get an AMI command to do something similar (without having to transfer calls to a queue or to a park extension, and keep the call on the handset) that would be awesome!!

From a SIP standpoint, we accept being put on hold by a remote device, but we never put another device on hold. What's happening from a technichal standpoint is that we receive a hold request and we alert the pbx and the pbx will play musiconhold on the bridged channel - if it's configured to do that.

Now, an AMI command can send a AST_CONTROL_HOLD message to a channel and force musiconhold until the channel is released from hold. What do we now do with the other end of the bridge? It might still send voice frames.

In order to implement this, we need to find out what to do with a channel without a bridge, one that's involved in a bridge and one that is not in up state at all (ringing).

A transfer is more clean, because then you will have to make a decision about what to do with each call.

Another option would be to implement a SIP remote hold option, where we actually request a hold on a SIP call, and send a AST_CONTROL_HOLD frame across the bridge. This can also be done in ISDN I guess, but I can't answer for the rest of the channels.

In this case you would send ami_hold action on a channel where you want Asterisk to request a hold and entertain the other end of the bridge with music (if there's a bridge).

So, what's your opinion on this long essay? What do you really want to do? :-)

/O


More information about the asterisk-dev mailing list