1) The xml_curl now has a more enterprise config where it can have more than 1
url configured so you could have failover. (*note the syntax change*)
2) dialplan modules now take an extra arguement making it possible to pass runtime params to
them. This is now used in mod_dialplan_xml to allow an alternate file path to be specified.
dialplans were already stackable meaning you can configure a sofia profile, for example,
to use enum followed by the default XML dialplan.
e.g. <param name="dialplan" value="enum,XML"/>
From now on, you can also specify :param after each dialplan name to allow param
to be passed to the module. mod_dialplan_xml uses this param as a way to override
where it looks for the dialplan making it possible to stack mutiple calls to the XML dialplan.
e.g. <param name="dialplan" value="XML:/some/xml/file.xml,XML"/>
With this you can search the local file file.xml first and if there is still no match
the hunt will move on to the standard XML using the onboard XML registry and or the external
gateways.
*NOTE* this alternate path does not use the external bindings but it does parse the #includes etc.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4066 d0543943-73ff-0310-b7d9-9358b9ac24b2
mod_enum can be used as a dialplan app, an api call from the console or as a dialplan interface.
Dialplan Interface:
put enum as the dialplan parameter in an endpoint module
i.e. instead of "XML" set it to "enum" or "enum,XML" for fall through.
Dialplan App:
This example will do a lookup and set the a variable that is the proper
dialstring to call all of the possible routes in order of preference according to
the lookup and the order of the routes in the enum.conf section.
<extension name="tollfree">
<condition field="destination_number" expression="^(18(0{2}|8{2}|7{2}|6{2})\d{7})$">
<action application="enum" data="$1"/>
<action application="bridge" data="${enum_auto_route}"/>
</condition>
</extension>
You can also pick an alrernate root:
<action application="enum" data="$1 myroot.org"/>
API command:
at the console you can say:
enum <number> [<root>]
The root always defaults to the one in the enum.conf section.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3494 d0543943-73ff-0310-b7d9-9358b9ac24b2
This adds the | to the originate syntax
making it possible to put a list of urls to call and attempt
to call them one at a time until one of them is successful or there
are none of them left
The original & delimited list is valid for each step in the | separated
list
Example
sofia/test-int/3920@10.3.3.104|sofia/test-int/3910@10.3.3.104&sofia/test-int/3920@10.3.3.104
first call 1 location and if that results in a failure, try 2 at once on the next go
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2996 d0543943-73ff-0310-b7d9-9358b9ac24b2
Transfers work better when both legs of the call live in thier own channel eg bridged calls
A -> B where you want a to make B -> C
when you route a call to an IVR or playback app you are not really bridging you have
A all alone executing the script so it's hard to transfer that.
I do have it aparently working but it's goofy and you are better off
putting your IVR on it's own switch so they are all inbound calls
then you have A -> B -> IVR
now A can happily transfer B who can stay on line with IVR without stopping
the execution. You can also accomplish this by calling in a loop back to the same box
if you dont want to have 2 boxes.
Also the beginning effort at bridging calls with no media is here
set this magic variable in your dialplan to convince mod_sofia
to pass A's sdp as it's own to B and return B's sdp back to A on 200 or 183
<action application="set" data="no_media=true"/>
<action application="bridge" data="sofia/id@host.com"/>
You will need a new sofia tarball for this version
There is a bunch of other odds and ends added like a function or 2 etc
Oh,
And don't be suprised if it introduces all kinds of bugs!
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2992 d0543943-73ff-0310-b7d9-9358b9ac24b2
This is the primary commit to add bugs to the core (media bugs that is)
Media bugs are kind of like what ChanSpy is in Asterisk only cooler (I wrote ChanSpy too so I can say that)
Here is an example of using them to record a call by the higher level switch_ivr functionality passed
up to the dialplan via mod_playback.
The call will be recorded while the some.wav plays then stop for the rest of the call (when some_other.wav plays)
The bugs may have bugs since this is 1 day's work so happy hunting ......
<extension name="42">
<condition field="destination_number" expression="^42$">
<action application="set" data="RECORD_TITLE=recording test"/>
<action application="set" data="RECORD_ARTIST=FreeSWITCH"/>
<action application="record_session" data="/tmp/rtest.wav"/>
<action application="playback" data="/tmp/some.wav"/>
<action application="stop_record_session" data="/tmp/rtest.wav"/>
<action application="playback" data="/tmp/some_other.wav"/>
</condition>
</extension>
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2588 d0543943-73ff-0310-b7d9-9358b9ac24b2
**ATTENTION** you will need to libs/jrtplib/.complete ; make installall
to get it to compile on existing builds as the jrtplib required changes.
Added teletone DTMF to mod_wanpipe and rfc2933 DTMF to mod_exosip
Added temporary poor man's daemon
freeswitch -nc > /var/log/freeswitch.log
then it will await a HUP
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@659 d0543943-73ff-0310-b7d9-9358b9ac24b2