[Freeswitch-users] Forked dialing and CDRs

Rupa Schomaker (lists) freeswitch-users at lists.rupa.com
Tue Aug 5 08:25:45 PDT 2008


I'm using XML CDRs, posting to a rails app to capture and display CDR
records.

Incoming calls are forked to both internal extensions and external cell
phones.  The mapping is looked up in the DB via a javascript call which
hands back a dialstring similar to:

2008-08-05 10:09:21 [INFO] mod_dptools.c:862 log_function()
dial_string={ignore_early_media=true}sofia/internal/101%192.168.1.20,sofia/internal/102%192.168.1.20,sofia/loopback/CELL%192.168.1.20:5061

The sofia/internal/##%domain works as expected.  I get one CDR with
everything stacked up in the XML.

The sofia/loopback/##@domain:5061 generates a new CDR.  This is expected
but is a pain in the rear since it means that I have to cross-correlated
 log entries to show the one that one the race and suppress/roll up the
rest.

Ok, so why don't I do:

sofia/gateway/mygateway/cellnumber%domain ?

Because I want to do other work before dialing out the gateway and to
centralize the work done for that dialout.  Specifically, I do real-time
rating to determine which actual gateway to route the call through and
also handle failover if a particular gateway doesn't terminate the call
with an expected error code.

There is a level of abstraction missing here I think.

The transfer application does exactly what I want to do.  I give it a
context and a # and it routes the call as expected.  But transfer can't
handle forked dialing.  For that I need bridge.

The bridge application can fork but requires too much knowledge about
the transport/gateway/etc.

Thoughts?





More information about the FreeSWITCH-users mailing list