nicknomo
Happy-IT-Guy
- Joined
- Mar 5, 2009
- Messages
- 63
- Reaction score
- 12
UPDATE:
Now with a Yealink APP:
http://pbxinaflash.com/community/index.php?threads/yealink-app-for-picking-up-calls-on-hold.14759/
I was wondering if anyone had any input on this approach. What I've been working on is being able to grab a call that is on hold on another extension in asterisk. This is usually needed when you didn't have the foresight to park a call, and you or someone else ends up wanting to pick it up on another extension.
There doesn't appear to be any channel variables that indicate a call is on hold... there is only hold events, but you'd need to constantly monitor the system to keep track of them. Neither FreePBX nor Elastix currently have any methods for picking up a held call, and I could not find any built in application within asterisk that natively does this.. What I ended up noticing was that calls on hold has the write format of "slin", and I've leveraged that to isolate calls on hold.
What I ended up doing was using "core show channels" and "core show channel" to see what was in use by the extension we want to steal the call from. I'd go down the list and look for channels that belong to SIP/{$extension}. I'd then look at who they are bridged with, and use "core show channel" on those bridged channels to see the "write format". If its playing a wav file (hence the signed linear write format), then I take the call.
I'm curious to hear from the rest of you if you can see any problems with this approach? It appears to work OK in testing, but its with a limited number of calls.
Now with a Yealink APP:
http://pbxinaflash.com/community/index.php?threads/yealink-app-for-picking-up-calls-on-hold.14759/
I was wondering if anyone had any input on this approach. What I've been working on is being able to grab a call that is on hold on another extension in asterisk. This is usually needed when you didn't have the foresight to park a call, and you or someone else ends up wanting to pick it up on another extension.
There doesn't appear to be any channel variables that indicate a call is on hold... there is only hold events, but you'd need to constantly monitor the system to keep track of them. Neither FreePBX nor Elastix currently have any methods for picking up a held call, and I could not find any built in application within asterisk that natively does this.. What I ended up noticing was that calls on hold has the write format of "slin", and I've leveraged that to isolate calls on hold.
What I ended up doing was using "core show channels" and "core show channel" to see what was in use by the extension we want to steal the call from. I'd go down the list and look for channels that belong to SIP/{$extension}. I'd then look at who they are bridged with, and use "core show channel" on those bridged channels to see the "write format". If its playing a wav file (hence the signed linear write format), then I take the call.
I'm curious to hear from the rest of you if you can see any problems with this approach? It appears to work OK in testing, but its with a limited number of calls.