[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