[Freeswitch-users] Is there any way to loop a dialplan?
Mark Sobkow
m.sobkow at marketelsystems.com
Mon Feb 22 12:20:10 PST 2010
Let me explain what it is I'm trying to do. Maybe there's another way
to achieve it.
When an operator dials in to the log-in line (e.g. Extension 6000), I
use play_and_get_digits to collect the operator's PIN. I then need to
be able to fire up some Erlang (or Javascript) to verify the PIN, and
after verification, put the call into a park state, collecting the
UUID. I then need to fire an event to Erlang passing along the parked
UUID and the operator's PIN so that Erlang can direct received customer
calls to the operators based on relatively complex criteria that won't
fit in a dialplan.
The catch is that when I get a customer call, I collect their info via
IVR menus, park the call, and fire an event to Erlang with the UUID of
the parked call and info collected from the IVR. Erlang analyses the
info, selects an operator who is free, and bridges the calls.
The problem I'm having is figuring out a way to get the operator leg to
go back into a park state after handling the customer's call. Ideally I
want the operator to be presented with a short IVR to collect info about
how the call was handled, but I can do that through a custom application
GUI if I need to. Regardless, once an operator logs in, they need to
_stay_ logged in until they explicityly log out, but I can't figure out
how I'm supposed to do that without some sort of looping capability.
One thing I was thinking that might work is to set up a set of "dummy"
extensions that I can have Erlang dial and bridge which contain a
dialplan fragment to collect the IVR call result, park the call, and
issue the operator PIN and parked UUID again to Erlang. That way
between Erlang events and the dialplan fragment I end up with an
effective "loop". (Though I've yet to figure out how I can break out of
that loop. Maybe it'll have to be an IVR option for logging out.)
Sample code/dialplans would be good, but for now I'll settle for knowing
whether I'm at least on the right track for how to implement this beast.
Note that I only want to drop into Javascript if I can't figure out how
to do it with dialplans and Erlang.
Thanks for any ideas and suggestions.
--
Mark Sobkow
Senior Developer
MarkeTel Multi-Line Dialing Systems LTD.
428 Victoria Ave
Regina, SK S4N-0P6
Toll-Free: 800-289-8616-X533
Local: 306-359-6893-X533
Fax: 306-359-6879
Email: m.sobkow at marketelsystems.com
Web: http://www.marketelsystems.com
More information about the FreeSWITCH-users
mailing list