[Freeswitch-users] Hangup and wait for connection after dialed extension is busy.
mayamatakeshi
mayamatakeshi at gmail.com
Thu Oct 21 01:03:52 UTC 2021
On Wed, Oct 20, 2021 at 11:14 PM Paweł Femur Wojtal <freeswitch at femur.pl>
wrote:
>
> Hello!
>
> Imagine the situation.
>
> I call internal extension. It is busy. So I press *0 and hangup. When
> leg B finishes its connection, freeswitch calls us both and bridges.
>
> How do I get such functionality? I will be grateful for any suggestion.
>
Maybe someone knows an easier way but if I needed something like this, I
would try:
- send the call to a lua script after the bridge fails due to BUSY
(channel variable last_bridge_hangup_cause==USER_BUSY)
- ask the user to confirm if he/she wants to get a callback
- if yes, find the UUID of the extension call. This could be obtained
from channel variables (probably originate_signal_bond or originated_legs)
if not, I would use Freeswitch.dbh (
https://freeswitch.org/confluence/display/FREESWITCH/Lua+API+Reference) to
search for the extension that is busy.
- set a hangup hook to be execute when the extension call terminates (
https://freeswitch.org/confluence/display/FREESWITCH/api_hangup_hook)
- the hook would be a lua script that would make the callback to you and
after answer try to call the extension.
obs:
- if the hangup hook fails to be set, it could be because the call ended
while we were doing the processing so I would execute the callback right
away).
- in the callback, before calling the extension I would ask for
confirmation again as by that time you might not want to call the extension
anymore
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20211021/de844abd/attachment.html>
More information about the FreeSWITCH-users
mailing list