Pickup from hold

I’m trying to implement pickup from hold. This would be where party A puts a call on hold, and party B dials some features code then party A’s extension, thus picking up the call. I can implement a crude version of this using Bridge in feature codes, but as a call gets transferred around it becomes harder to pick which leg to bridge (to the person intercepting the line). Additionally I’m finding it nearly impossibly to determine if a call is on hold.

Has anyone implemented this? How did you determine if a channel was on hold? How did you manage wether to bridge the channel or the bridged channel?

Thanks.

This is called parking in Asterisk.

I understand, but I’ve been requested to do this as strictly pick up from hold as opposed to full blown the provided for parking utilities.

You can’t force a SIP phone off hold it it put itself on hold.

DIP being the most likely technology if none is specifiedl

That is true, but by my testing I can bridge a channel to the person intercepting’s channel when the original party did put it on hold.

My problem is determing if the channel is on hold or not. Bridging is plus or minus sorted out, it’s just figuring out if something is on hold.

I shouldn’t complain about managers who insist on doing things that are supported one way, but in a different way. They keep software developers employed!

The only way I know of getting that state is using CLI commands, i.e. you may need to shell out to asterisk -rx.

Are you the same person who asked for something similar a few weeks ago?

Haha, true true. And yes, I’m most certainly the same guy from before. I’ve expended a great deal of time on many fronts trying to make this work without success.

Can you elaborate on using asterisk -rx? I understand it basically lets me contain discrete CLI command output and operate on in a scripts. But more specifically how will help with my issues with hold?

Thanks.