freeswitch/conf/freeswitch.xml

801 lines
30 KiB
XML
Raw Normal View History

<?xml version="1.0"?>
<document type="freeswitch/xml">
<section name="configuration" description="Various Configuration">
<configuration name="switch.conf" description="Modules">
<settings>
<!--Most channels to allow at once -->
<param name="max-sessions" value="1000"/>
</settings>
Ringback (sponsored by Front Logic) This addition lets you set artifical ringback on a channel that is waiting for an originated call to be answered. the syntax is <action application="set" data="ringback=[data]"/> where data is either the full path to an audio file or a teletone generation script.. syntax of teletone scripts LEGEND: 0-9,a-d,*,# (standard dtmf tones) variables: c,r,d,v,>,<,+,w,l,L,% c (channels) - Sets the number of channels. r (rate) - Sets the sample rate. d (duration) - Sets the default tone duration. v (volume) - Sets the default volume. > (decrease vol) - factor to decrease volume by per frame (0 for even decrease across duration). < (increase vol) - factor to increase volume by per frame (0 for even increase across duration). + (step) - factor to step by used by < and >. w (wait) - default silence after each tone. l (loops) - number of times to repeat each tone in the script. L (LOOPS) - number of times to repeat the the whole script. % (manual tone) - a generic tone specified by a duration, a wait and a list of frequencies. standard tones can have custom duration per use with the () modifier 7(1000, 500) to generate DTMF 7 for 1 second then pause .5 seconds EXAMPLES UK Ring Tone [400+450 hz on for 400ms off for 200ms then 400+450 hz on for 400ms off for 2200ms] %(400,200,400,450);%(400,2200,400,450) US Ring Tone [440+480 hz on for 2000ms off for 4000ms] %(2000,4000,440,480) ATT BONG [volume level 4000, even decay, step by 2, # key for 60ms with no wait, volume level 2000, 350+440hz {us dialtone} for 940ms v=4000;>=0;+=2;#(60,0);v=2000;%(940,0,350,440) SIT Tone 913.8 hz for 274 ms with no wait, 1370.6 hz for 274 ms with no wait, 1776.7 hz for 380ms with no wait %(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7) ATTN TONE (phone's off the hook!) 1400+2060+2450+2600 hz for 100ms with 100ms wait %(100,100,1400,2060,2450,2600) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3408 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-11-19 01:05:06 +00:00
<!--Any variables defined here will be available in every channel, in the dialplan etc -->
<variables>
<variable name="uk-ring" value="%(400,200,400,450);%(400,2200,400,450)"/>
<variable name="us-ring" value="%(2000, 4000, 440.0, 480.0)"/>
<variable name="bong-ring" value="v=4000;>=0;+=2;#(60,0);v=2000;%(940,0,350,440)"/>
</variables>
</configuration>
<configuration name="modules.conf" description="Modules">
<modules>
<!-- Loggers (I'd load these first) -->
<load module="mod_console"/>
<!-- <load module="mod_syslog"/> -->
<!-- Multi-Faceted -->
<!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
<load module="mod_enum"/>
<!-- XML Interfaces -->
<!-- <load module="mod_xml_rpc"/> -->
<!-- <load module="mod_xml_curl"/> -->
<!-- Event Handlers -->
<!-- <load module="mod_cdr"/> -->
<!-- <load module="mod_event_multicast"/> -->
<!-- <load module="mod_event_socket"/> -->
<!-- <load module="mod_xmpp_event"/> -->
<!-- <load module="mod_zeroconf"/> -->
<!-- Directory Interfaces -->
<!-- <load module="mod_ldap"/> -->
<!-- Endpoints -->
<!-- <load module="mod_dingaling"/> -->
<!--<load module="mod_iax"/>-->
<load module="mod_portaudio"/>
<load module="mod_sofia"/>
<!-- <load module="mod_wanpipe"/> -->
<!-- <load module="mod_woomera"/> -->
<!-- Applications -->
<load module="mod_bridgecall"/>
<load module="mod_commands"/>
<load module="mod_conference"/>
<load module="mod_dptools"/>
<load module="mod_echo"/>
<!--<load module="mod_park"/>-->
<load module="mod_playback"/>
<!-- Dialplan Interfaces -->
<!-- <load module="mod_dialplan_directory"/> -->
<load module="mod_dialplan_xml"/>
<!-- Codec Interfaces -->
<load module="mod_g711"/>
<load module="mod_gsm"/>
<!-- <load module="mod_ilbc"/> -->
<load module="mod_l16"/>
<!-- <load module="mod_speex"/> -->
<!-- File Format Interfaces -->
<load module="mod_sndfile"/>
<load module="mod_native_file"/>
<!-- Timers -->
<load module="mod_softtimer"/>
<!-- Languages -->
<!-- <load module="mod_spidermonkey"/> -->
<!-- <load module="mod_perl"/> -->
<!-- ASR /TTS -->
<!-- <load module="mod_cepstral"/> -->
<!-- <load module="mod_rss"/> -->
</modules>
</configuration>
<configuration name="spidermonkey.conf" description="Spider Monkey JavaScript Plug-Ins">
<modules>
<load module="mod_spidermonkey_teletone"/>
<load module="mod_spidermonkey_core_db"/>
<!--<load module="mod_spidermonkey_odbc"/>-->
</modules>
</configuration>
<configuration name="event_multicast.conf" description="Multicast Event">
<settings>
<param name="address" value="225.1.1.1"/>
<param name="port" value="4242"/>
<param name="bindings" value="all"/>
</settings>
</configuration>
<configuration name="event_socket.conf" description="Socket Client">
<settings>
<param name="listen-ip" value="127.0.0.1"/>
<param name="listen-port" value="8021"/>
<param name="password" value="ClueCon"/>
</settings>
</configuration>
<configuration name="iax.conf" description="IAX Configuration">
<settings>
<param name="debug" value="0"/>
<!-- <param name="ip" value="1.2.3.4"> -->
<param name="port" value="4569"/>
<param name="dialplan" value="XML"/>
<param name="codec-prefs" value="PCMU@20i,PCMA,speex,L16"/>
<param name="codec-master" value="us"/>
<param name="codec-rates" value="8"/>
</settings>
</configuration>
<configuration name="console.conf" description="Console Logger">
<!-- pick a file name, a function name or 'all' -->
<!-- map as many as you need for specific debugging -->
<mappings>
<!-- <param name="log_event" value="DEBUG"/> -->
<param name="all" value="DEBUG"/>
</mappings>
</configuration>
<configuration name="sofia.conf" description="sofia Endpoint">
<profiles>
<profile name="mydomain1.com">
<registrations>
<!-- <registration name="asterlink">
<param name="register-scheme" value="Digest"/>
<param name="register-realm" value=""/>
<param name="register-username" value="1001"/>
<param name="register-password" value="nhy65tgb"/>
<param name="register-from" value="sip:1001@208.64.200.40"/>
<param name="register-to" value="sip:1001@conference.freeswitch.org"/>
<param name="register-proxy" value="sip:conference.freeswitch.org:5060"/>
<param name="register-frequency" value="20"/>
</registration> -->
</registrations>
<settings>
<param name="debug" value="1"/>
<param name="rfc2833-pt" value="101"/>
<param name="sip-port" value="5060"/>
<param name="dialplan" value="XML"/>
<param name="dtmf-duration" value="100"/>
<param name="codec-prefs" value="PCMU@20i"/>
<param name="codec-ms" value="20"/>
<param name="use-rtp-timer" value="true"/>
<param name="rtp-timer-name" value="soft"/>
<param name="rtp-ip" value="auto"/>
<param name="sip-ip" value="auto"/>
<!--Uncomment to set all inbound calls to no media mode-->
<!--<param name="inbound-no-media" value="true"/>-->
<!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok-->
<!--<param name="inbound-late-negotiation" value="true"/>-->
<!-- this lets anything register -->
<!-- comment the next line and uncomment one or both of the other 2 lines for call authentication -->
<param name="accept-blind-reg" value="true"/>
<!--<param name="auth-calls" value="true"/>-->
<!-- on authed calls, authenticate *all* the packets not just invite -->
<!--<param name="auth-all-packets" value="true"/>-->
<!-- optional ; -->
<!-- <param name="ext-rtp-ip" value="stun:stun.server.com"/>-->
<!-- <param name="ext-rtp-ip" value="100.101.102.103"/> -->
<!-- VAD choose one (out is a good choice); -->
<!-- <param name="vad" value="in"/> -->
<!-- <param name="vad" value="out"/> -->
<!-- <param name="vad" value="both"/> -->
<!--<param name="alias" value="sip:10.0.1.251:5555"/>-->
</settings>
</profile>
</profiles>
</configuration>
<configuration name="syslog.conf" description="Syslog Logger">
<!-- SYSLOG -->
<!-- emerg - system is unusable -->
<!-- alert - action must be taken immediately -->
<!-- crit - critical conditions -->
<!-- err - error conditions -->
<!-- warning - warning conditions -->
<!-- notice - normal, but significant, condition -->
<!-- info - informational message -->
<!-- debug - debug-level message -->
<settings>
<param name="ident" value="freeswitch"/>
<param name="facility" value="user"/>
<param name="format" value="${time} - ${message}"/>
<param name="level" value="debug,info,warning-alert"/>
</settings>
</configuration>
<configuration name="woomera.conf" description="Woomera Endpoint">
<settings>
<param name="debug" value="0"/>
</settings>
<interface>
<param name="host" value="localhost"/>
<param name="port" value="42420"/>
<param name="audio-ip" value="127.0.0.1"/>
<param name="dialplan" value="XML"/>
</interface>
</configuration>
<configuration name="wanpipe.conf" description="Sangoma Wanpipe Endpoint">
<settings>
<param name="debug" value="1"/>
<param name="dialplan" value="XML"/>
<param name="mtu" value="320"/>
<param name="dtmf-on" value="800"/>
<param name="dtmf-off" value="100"/>
<param name="supress-dtmf-tone" value="yes"/>
</settings>
<span>
<param name="span" value="1"/>
<param name="node" value="cpe"/>
<!-- <param name="switch" value="ni2"/> -->
<param name="switch" value="dms100"/>
<!-- <param name="switch" value="lucent5e"/> -->
<!-- <param name="switch" value="att4ess"/> -->
<!-- <param name="switch" value="euroisdn"/> -->
<!-- <param name="switch" value="gr303eoc"/> -->
<!-- <param name="switch" value="gr303tmc"/> -->
<param name="dp" value="national"/>
<!-- <param name="dp" value="international"/> -->
<!-- <param name="dp" value="local"/> -->
<!-- <param name="dp" value="private"/> -->
<!-- <param name="dp" value="unknown"/> -->
<param name="l1" value="ulaw"/>
<!-- <param name="l1" value="alaw"/> -->
<param name="bchan" value="1-23"/>
<param name="dchan" value="24"/>
<param name="dialplan" value="XML"/>
</span>
</configuration>
<configuration name="portaudio.conf" description="Soundcard Endpoint">
<settings>
New mod_portaudio (sponspred by eWorldCom http://www.eworldcom.hu/) This updates mod_portaudio to use the new v19 api and also contains major behavioural changes. This initial check-in should be tested to find any obscure use cases that lead to crashes etc... All of the old api interface commands are now depricated and any attempt to use them should cause a polite warning asking you to try the new single "pa" command. New Features: *) Mulitiple calls with hold/call switching. *) Inbound calls can play a ring file on specified device. (global and per call) *) Optional hold music for backgrounded calls. (global and per call) Example dialplan usage: <extension name="2000"> <condition field="destination_number" expression="^2000$"> <!--if the next 3 lines are omitted the defaults will be used from portaudio.conf--> <action application="set" data="pa_ring_file=/sounds/myring.wav"/> <action application="set" data="pa_hold_file=/sounds/myhold.wav"/> <action application="set" data="export_vars=pa_ring_file,pa_hold_file"/> <action application="bridge" data="portaudio"/> </condition> </extension> Example API interface usage: call extension 1000 > pa call 1000 call extension 1001 putting the other call on hold > pa call 1001 swap the calls between hold and active > pa switch view the current calls > pa list forground the call with id 1 > pa switch 1 background all calls > pa switch none send a dtmf string (1234) to the current call > pa dtmf 1234 answer the oldest unanswered inbound call > pa answer answer the call with id 1 > pa answer 1 hangup the active call > pa hangup hangup the call with id 1 > pa hangup 1 get device info > pa dump print usage summary > pa help USAGE: -------------------------------------------------------------------------------- pa help pa dump pa call <dest> [<dialplan> <cid_name> <cid_num> <rate>] pa answer [<call_id>] pa hangup [<call_id>] pa list pa switch [<call_id>|none] pa_dtmf <digit string> -------------------------------------------------------------------------------- The source of the portaudio v19 library will also be checked in for the sake of the build system. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3981 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-01-17 19:10:03 +00:00
<!-- indev, outdev, ringdev:
partial case sensitive string match on something in the name
or the device number prefixed with # eg "#1" (or blank for default) -->
<!-- device to use for input -->
<param name="indev" value=""/>
<!-- device to use for output -->
<param name="outdev" value=""/>
<!--device to use for inbound ring -->
<!--<param name="ringdev" value=""/>-->
<!--File to play as the ring sound -->
<!--<param name="ring-file" value="/sounds/ring.wav"/>-->
<!--Number of seconds to pause between rings -->
<!--<param name="ring-interval" value="5"/>-->
<!--file to play when calls are on hold-->
<!--<param name="hold-file" value="/sounds/holdmusic.wav"/>-->
<!--Timer to use for hold music (i'd leave this one commented)-->
<!--<param name="timer-name" value="soft"/>-->
<!--Default dialplan and caller-id info -->
<param name="dialplan" value="XML"/>
<param name="cid-name" value="FreeSwitch"/>
<param name="cid-num" value="5555551212"/>
New mod_portaudio (sponspred by eWorldCom http://www.eworldcom.hu/) This updates mod_portaudio to use the new v19 api and also contains major behavioural changes. This initial check-in should be tested to find any obscure use cases that lead to crashes etc... All of the old api interface commands are now depricated and any attempt to use them should cause a polite warning asking you to try the new single "pa" command. New Features: *) Mulitiple calls with hold/call switching. *) Inbound calls can play a ring file on specified device. (global and per call) *) Optional hold music for backgrounded calls. (global and per call) Example dialplan usage: <extension name="2000"> <condition field="destination_number" expression="^2000$"> <!--if the next 3 lines are omitted the defaults will be used from portaudio.conf--> <action application="set" data="pa_ring_file=/sounds/myring.wav"/> <action application="set" data="pa_hold_file=/sounds/myhold.wav"/> <action application="set" data="export_vars=pa_ring_file,pa_hold_file"/> <action application="bridge" data="portaudio"/> </condition> </extension> Example API interface usage: call extension 1000 > pa call 1000 call extension 1001 putting the other call on hold > pa call 1001 swap the calls between hold and active > pa switch view the current calls > pa list forground the call with id 1 > pa switch 1 background all calls > pa switch none send a dtmf string (1234) to the current call > pa dtmf 1234 answer the oldest unanswered inbound call > pa answer answer the call with id 1 > pa answer 1 hangup the active call > pa hangup hangup the call with id 1 > pa hangup 1 get device info > pa dump print usage summary > pa help USAGE: -------------------------------------------------------------------------------- pa help pa dump pa call <dest> [<dialplan> <cid_name> <cid_num> <rate>] pa answer [<call_id>] pa hangup [<call_id>] pa list pa switch [<call_id>|none] pa_dtmf <digit string> -------------------------------------------------------------------------------- The source of the portaudio v19 library will also be checked in for the sake of the build system. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3981 d0543943-73ff-0310-b7d9-9358b9ac24b2
2007-01-17 19:10:03 +00:00
<!--audio sample rate and interval -->
<param name="sample-rate" value="8000"/>
<param name="codec-ms" value="20"/>
</settings>
</configuration>
<configuration name="zeroconf.conf" description="Zeroconf Event Handler">
<settings>
<param name="publish" value="yes"/>
<param name="browse" value="_sip._udp"/>
</settings>
</configuration>
<configuration name="xmpp_event.conf" description="XMPP Event Handler">
<settings>
<param name="#debug" value="1"/>
<param name="jid" value="freeswitch@my.jabber.com/me"/>
<param name="passwd" value="mypass"/>
<param name="target-jid" value="freeswitch@reader.org/him"/>
</settings>
</configuration>
<configuration name="dialplan_directory.conf" description="Dialplan Directory">
<settings>
<param name="directory-name" value="ldap"/>
<param name="host" value="ldap.freeswitch.org"/>
<param name="dn" value="cn=Manager,dc=freeswitch,dc=org"/>
<param name="pass" value="test"/>
<param name="base" value="dc=freeswitch,dc=org"/>
</settings>
</configuration>
<configuration name="dingaling.conf" description="XMPP Jingle Endpoint">
<settings>
<param name="debug" value="0"/>
<param name="codec-prefs" value="PCMU"/>
</settings>
Presence and Chat Gateway Code This is some brand new stuff to gateway chat/presence/audio from one protocol to another So far it only works between google/jingle and SIP All I had to test the SIP end was X-Lite and Eyebeam and GoogleTalk on the jingle end. With this setup registered X-Lite's can chat with each other and call each other as well as X-Lite to GoogleTalk and GoogleTalk to X-Lite audio calls. Chat May also be done between X-Lite and jabber You'll also need a jabber server configured for component login so you can interface. We have only tested with jabberd2 so far. Configure DNS so srv records for jabber for your subdomain (fs.mydomain.com in the example) so the jabber records are pointed at your jabber server. RELEVANT CONFIGS <!-- Brian has no jingle support so send calls to him over to his iax url --> <extension name="bkw"> <condition field="destination_number" expression="^jingle\+brian@agents.cylynx.com$"> <action application="bridge" data="iax/guest@brianwest.homeunix.org/9184290404"/> </condition> </extension> <!-- Assumption is made here that both sip and jingle have the same profile/domain name as documented below --> <extension name="jingle2sip"> <condition field="source" expression="mod_dingaling"/> <condition field="destination_number" expression="^sip\+([^\@]+)\@(.*)$"> <action application="bridge" data="sofia/$2/$1%$2"/> </condition> </extension> <extension name="sip2jingle"> <condition field="source" expression="mod_sofia"/> <condition field="destination_number" expression="^jingle\+([^\@]+)\@(.*)$"> <action application="bridge" data="dingaling/sip+${sip_fromuser}@${sip_fromhost}/$1@$2"/> </condition> </extension> <configuration name="sofia.conf" description="sofia Endpoint"> <global_settings> <param name="log-level" value="0"/> </global_settings> <profiles> <profile name="fs.mydomain.com"> <registrations/> <settings> <param name="debug" value="1"/> <param name="rfc2833-pt" value="101"/> <param name="sip-port" value="5060"/> <param name="dialplan" value="XML"/> <param name="dtmf-duration" value="100"/> <param name="codec-prefs" value="PCMU"/> <param name="codec-ms" value="20"/> <param name="accept-blind-reg" value="true"/> <param name="manage-presence" value="true"/> <!--<param name="full-id-in-dialplan" value="true"/>--> <!--<param name="auth-calls" value="true"/>--> <!--<param name="auth-all-packets" value="true"/>--> <param name="use-rtp-timer" value="true"/> <param name="rtp-timer-name" value="soft"/> <param name="rtp-ip" value="100.200.100.200"/> <param name="sip-ip" value="fs.mydomain.com"/> </settings> </profile> </profiles> </configuration> <configuration name="dingaling.conf" description="XMPP Jingle Endpoint"> <settings> <param name="debug" value="0"/> <param name="codec-prefs" value="PCMU"/> </settings> <profile type="component"> <param name="name" value="fs.mydomain.com"/> <param name="password" value="secret"/> <param name="dialplan" value="XML"/> <param name="rtp-ip" value="208.64.200.42"/> <param name="server" value="jabber.freeswitch.org:5347"/> <!-- disable to trade async for more calls --> <param name="use-rtp-timer" value="true"/> <param name="exten" value="_auto_"/> <!--<param name="vad" value="both"/>--> </profile> </configuration> git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3115 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 06:17:00 +00:00
<!-- *NOTE* change <x-profile></x-profile> to <profile></profile> to enable -->
<!-- Client Profile (Original mode) -->
<x-profile type="client">
<param name="name" value="mydomain.com"/>
<param name="login" value="myjid@myserver.com/talk"/>
<param name="password" value="mypass"/>
<param name="dialplan" value="XML"/>
<param name="message" value="Jingle all the way"/>
<param name="rtp-ip" value="auto"/>
<param name="auto-login" value="true"/>
<param name="auto-reply" value="Press *Call* to call FreeSWITCH and be sure to come to ClueCon! http://www.cluecon.com"/>
<!-- SASL "plain" or "md5" -->
<param name="sasl" value="plain"/>
<!-- if the server where the jabber is hosted is not the same as the one in the jid -->
<!--<param name="server" value="alternate.server.com"/>-->
<!-- Enable TLS or not -->
<param name="tls" value="true"/>
<!-- disable to trade async for more calls -->
<param name="use-rtp-timer" value="true"/>
<!-- or -->
<!-- <param name="rtp-ip" value="auto"/> -->
<!-- <param name="ext-rtp-ip" value="stun:stun.server.com"/> -->
<!-- default extension (if one cannot be determined) -->
<param name="exten" value="888"/>
<!-- VAD choose one -->
<!-- <param name="vad" value="in"/> -->
<!-- <param name="vad" value="out"/> -->
<param name="vad" value="both"/>
Presence and Chat Gateway Code This is some brand new stuff to gateway chat/presence/audio from one protocol to another So far it only works between google/jingle and SIP All I had to test the SIP end was X-Lite and Eyebeam and GoogleTalk on the jingle end. With this setup registered X-Lite's can chat with each other and call each other as well as X-Lite to GoogleTalk and GoogleTalk to X-Lite audio calls. Chat May also be done between X-Lite and jabber You'll also need a jabber server configured for component login so you can interface. We have only tested with jabberd2 so far. Configure DNS so srv records for jabber for your subdomain (fs.mydomain.com in the example) so the jabber records are pointed at your jabber server. RELEVANT CONFIGS <!-- Brian has no jingle support so send calls to him over to his iax url --> <extension name="bkw"> <condition field="destination_number" expression="^jingle\+brian@agents.cylynx.com$"> <action application="bridge" data="iax/guest@brianwest.homeunix.org/9184290404"/> </condition> </extension> <!-- Assumption is made here that both sip and jingle have the same profile/domain name as documented below --> <extension name="jingle2sip"> <condition field="source" expression="mod_dingaling"/> <condition field="destination_number" expression="^sip\+([^\@]+)\@(.*)$"> <action application="bridge" data="sofia/$2/$1%$2"/> </condition> </extension> <extension name="sip2jingle"> <condition field="source" expression="mod_sofia"/> <condition field="destination_number" expression="^jingle\+([^\@]+)\@(.*)$"> <action application="bridge" data="dingaling/sip+${sip_fromuser}@${sip_fromhost}/$1@$2"/> </condition> </extension> <configuration name="sofia.conf" description="sofia Endpoint"> <global_settings> <param name="log-level" value="0"/> </global_settings> <profiles> <profile name="fs.mydomain.com"> <registrations/> <settings> <param name="debug" value="1"/> <param name="rfc2833-pt" value="101"/> <param name="sip-port" value="5060"/> <param name="dialplan" value="XML"/> <param name="dtmf-duration" value="100"/> <param name="codec-prefs" value="PCMU"/> <param name="codec-ms" value="20"/> <param name="accept-blind-reg" value="true"/> <param name="manage-presence" value="true"/> <!--<param name="full-id-in-dialplan" value="true"/>--> <!--<param name="auth-calls" value="true"/>--> <!--<param name="auth-all-packets" value="true"/>--> <param name="use-rtp-timer" value="true"/> <param name="rtp-timer-name" value="soft"/> <param name="rtp-ip" value="100.200.100.200"/> <param name="sip-ip" value="fs.mydomain.com"/> </settings> </profile> </profiles> </configuration> <configuration name="dingaling.conf" description="XMPP Jingle Endpoint"> <settings> <param name="debug" value="0"/> <param name="codec-prefs" value="PCMU"/> </settings> <profile type="component"> <param name="name" value="fs.mydomain.com"/> <param name="password" value="secret"/> <param name="dialplan" value="XML"/> <param name="rtp-ip" value="208.64.200.42"/> <param name="server" value="jabber.freeswitch.org:5347"/> <!-- disable to trade async for more calls --> <param name="use-rtp-timer" value="true"/> <param name="exten" value="_auto_"/> <!--<param name="vad" value="both"/>--> </profile> </configuration> git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3115 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 06:17:00 +00:00
</x-profile>
<!-- Component (Server to Server Login) -->
<x-profile type="component">
<!-- All traffic for *@sub.mydomain.com will come to you -->
<param name="name" value="sub.mydomain.com"/>
<param name="password" value="secret"/>
Presence and Chat Gateway Code This is some brand new stuff to gateway chat/presence/audio from one protocol to another So far it only works between google/jingle and SIP All I had to test the SIP end was X-Lite and Eyebeam and GoogleTalk on the jingle end. With this setup registered X-Lite's can chat with each other and call each other as well as X-Lite to GoogleTalk and GoogleTalk to X-Lite audio calls. Chat May also be done between X-Lite and jabber You'll also need a jabber server configured for component login so you can interface. We have only tested with jabberd2 so far. Configure DNS so srv records for jabber for your subdomain (fs.mydomain.com in the example) so the jabber records are pointed at your jabber server. RELEVANT CONFIGS <!-- Brian has no jingle support so send calls to him over to his iax url --> <extension name="bkw"> <condition field="destination_number" expression="^jingle\+brian@agents.cylynx.com$"> <action application="bridge" data="iax/guest@brianwest.homeunix.org/9184290404"/> </condition> </extension> <!-- Assumption is made here that both sip and jingle have the same profile/domain name as documented below --> <extension name="jingle2sip"> <condition field="source" expression="mod_dingaling"/> <condition field="destination_number" expression="^sip\+([^\@]+)\@(.*)$"> <action application="bridge" data="sofia/$2/$1%$2"/> </condition> </extension> <extension name="sip2jingle"> <condition field="source" expression="mod_sofia"/> <condition field="destination_number" expression="^jingle\+([^\@]+)\@(.*)$"> <action application="bridge" data="dingaling/sip+${sip_fromuser}@${sip_fromhost}/$1@$2"/> </condition> </extension> <configuration name="sofia.conf" description="sofia Endpoint"> <global_settings> <param name="log-level" value="0"/> </global_settings> <profiles> <profile name="fs.mydomain.com"> <registrations/> <settings> <param name="debug" value="1"/> <param name="rfc2833-pt" value="101"/> <param name="sip-port" value="5060"/> <param name="dialplan" value="XML"/> <param name="dtmf-duration" value="100"/> <param name="codec-prefs" value="PCMU"/> <param name="codec-ms" value="20"/> <param name="accept-blind-reg" value="true"/> <param name="manage-presence" value="true"/> <!--<param name="full-id-in-dialplan" value="true"/>--> <!--<param name="auth-calls" value="true"/>--> <!--<param name="auth-all-packets" value="true"/>--> <param name="use-rtp-timer" value="true"/> <param name="rtp-timer-name" value="soft"/> <param name="rtp-ip" value="100.200.100.200"/> <param name="sip-ip" value="fs.mydomain.com"/> </settings> </profile> </profiles> </configuration> <configuration name="dingaling.conf" description="XMPP Jingle Endpoint"> <settings> <param name="debug" value="0"/> <param name="codec-prefs" value="PCMU"/> </settings> <profile type="component"> <param name="name" value="fs.mydomain.com"/> <param name="password" value="secret"/> <param name="dialplan" value="XML"/> <param name="rtp-ip" value="208.64.200.42"/> <param name="server" value="jabber.freeswitch.org:5347"/> <!-- disable to trade async for more calls --> <param name="use-rtp-timer" value="true"/> <param name="exten" value="_auto_"/> <!--<param name="vad" value="both"/>--> </profile> </configuration> git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3115 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 06:17:00 +00:00
<param name="dialplan" value="XML"/>
<param name="rtp-ip" value="auto"/>
Presence and Chat Gateway Code This is some brand new stuff to gateway chat/presence/audio from one protocol to another So far it only works between google/jingle and SIP All I had to test the SIP end was X-Lite and Eyebeam and GoogleTalk on the jingle end. With this setup registered X-Lite's can chat with each other and call each other as well as X-Lite to GoogleTalk and GoogleTalk to X-Lite audio calls. Chat May also be done between X-Lite and jabber You'll also need a jabber server configured for component login so you can interface. We have only tested with jabberd2 so far. Configure DNS so srv records for jabber for your subdomain (fs.mydomain.com in the example) so the jabber records are pointed at your jabber server. RELEVANT CONFIGS <!-- Brian has no jingle support so send calls to him over to his iax url --> <extension name="bkw"> <condition field="destination_number" expression="^jingle\+brian@agents.cylynx.com$"> <action application="bridge" data="iax/guest@brianwest.homeunix.org/9184290404"/> </condition> </extension> <!-- Assumption is made here that both sip and jingle have the same profile/domain name as documented below --> <extension name="jingle2sip"> <condition field="source" expression="mod_dingaling"/> <condition field="destination_number" expression="^sip\+([^\@]+)\@(.*)$"> <action application="bridge" data="sofia/$2/$1%$2"/> </condition> </extension> <extension name="sip2jingle"> <condition field="source" expression="mod_sofia"/> <condition field="destination_number" expression="^jingle\+([^\@]+)\@(.*)$"> <action application="bridge" data="dingaling/sip+${sip_fromuser}@${sip_fromhost}/$1@$2"/> </condition> </extension> <configuration name="sofia.conf" description="sofia Endpoint"> <global_settings> <param name="log-level" value="0"/> </global_settings> <profiles> <profile name="fs.mydomain.com"> <registrations/> <settings> <param name="debug" value="1"/> <param name="rfc2833-pt" value="101"/> <param name="sip-port" value="5060"/> <param name="dialplan" value="XML"/> <param name="dtmf-duration" value="100"/> <param name="codec-prefs" value="PCMU"/> <param name="codec-ms" value="20"/> <param name="accept-blind-reg" value="true"/> <param name="manage-presence" value="true"/> <!--<param name="full-id-in-dialplan" value="true"/>--> <!--<param name="auth-calls" value="true"/>--> <!--<param name="auth-all-packets" value="true"/>--> <param name="use-rtp-timer" value="true"/> <param name="rtp-timer-name" value="soft"/> <param name="rtp-ip" value="100.200.100.200"/> <param name="sip-ip" value="fs.mydomain.com"/> </settings> </profile> </profiles> </configuration> <configuration name="dingaling.conf" description="XMPP Jingle Endpoint"> <settings> <param name="debug" value="0"/> <param name="codec-prefs" value="PCMU"/> </settings> <profile type="component"> <param name="name" value="fs.mydomain.com"/> <param name="password" value="secret"/> <param name="dialplan" value="XML"/> <param name="rtp-ip" value="208.64.200.42"/> <param name="server" value="jabber.freeswitch.org:5347"/> <!-- disable to trade async for more calls --> <param name="use-rtp-timer" value="true"/> <param name="exten" value="_auto_"/> <!--<param name="vad" value="both"/>--> </profile> </configuration> git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3115 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 06:17:00 +00:00
<param name="server" value="jabber.server.org:5347"/>
<!-- disable to trade async for more calls -->
<param name="use-rtp-timer" value="true"/>
Presence and Chat Gateway Code This is some brand new stuff to gateway chat/presence/audio from one protocol to another So far it only works between google/jingle and SIP All I had to test the SIP end was X-Lite and Eyebeam and GoogleTalk on the jingle end. With this setup registered X-Lite's can chat with each other and call each other as well as X-Lite to GoogleTalk and GoogleTalk to X-Lite audio calls. Chat May also be done between X-Lite and jabber You'll also need a jabber server configured for component login so you can interface. We have only tested with jabberd2 so far. Configure DNS so srv records for jabber for your subdomain (fs.mydomain.com in the example) so the jabber records are pointed at your jabber server. RELEVANT CONFIGS <!-- Brian has no jingle support so send calls to him over to his iax url --> <extension name="bkw"> <condition field="destination_number" expression="^jingle\+brian@agents.cylynx.com$"> <action application="bridge" data="iax/guest@brianwest.homeunix.org/9184290404"/> </condition> </extension> <!-- Assumption is made here that both sip and jingle have the same profile/domain name as documented below --> <extension name="jingle2sip"> <condition field="source" expression="mod_dingaling"/> <condition field="destination_number" expression="^sip\+([^\@]+)\@(.*)$"> <action application="bridge" data="sofia/$2/$1%$2"/> </condition> </extension> <extension name="sip2jingle"> <condition field="source" expression="mod_sofia"/> <condition field="destination_number" expression="^jingle\+([^\@]+)\@(.*)$"> <action application="bridge" data="dingaling/sip+${sip_fromuser}@${sip_fromhost}/$1@$2"/> </condition> </extension> <configuration name="sofia.conf" description="sofia Endpoint"> <global_settings> <param name="log-level" value="0"/> </global_settings> <profiles> <profile name="fs.mydomain.com"> <registrations/> <settings> <param name="debug" value="1"/> <param name="rfc2833-pt" value="101"/> <param name="sip-port" value="5060"/> <param name="dialplan" value="XML"/> <param name="dtmf-duration" value="100"/> <param name="codec-prefs" value="PCMU"/> <param name="codec-ms" value="20"/> <param name="accept-blind-reg" value="true"/> <param name="manage-presence" value="true"/> <!--<param name="full-id-in-dialplan" value="true"/>--> <!--<param name="auth-calls" value="true"/>--> <!--<param name="auth-all-packets" value="true"/>--> <param name="use-rtp-timer" value="true"/> <param name="rtp-timer-name" value="soft"/> <param name="rtp-ip" value="100.200.100.200"/> <param name="sip-ip" value="fs.mydomain.com"/> </settings> </profile> </profiles> </configuration> <configuration name="dingaling.conf" description="XMPP Jingle Endpoint"> <settings> <param name="debug" value="0"/> <param name="codec-prefs" value="PCMU"/> </settings> <profile type="component"> <param name="name" value="fs.mydomain.com"/> <param name="password" value="secret"/> <param name="dialplan" value="XML"/> <param name="rtp-ip" value="208.64.200.42"/> <param name="server" value="jabber.freeswitch.org:5347"/> <!-- disable to trade async for more calls --> <param name="use-rtp-timer" value="true"/> <param name="exten" value="_auto_"/> <!--<param name="vad" value="both"/>--> </profile> </configuration> git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3115 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 06:17:00 +00:00
<!-- "_auto_" means the extension will be automaticly set to the called jid -->
<param name="exten" value="_auto_"/>
<!--<param name="vad" value="both"/>-->
Presence and Chat Gateway Code This is some brand new stuff to gateway chat/presence/audio from one protocol to another So far it only works between google/jingle and SIP All I had to test the SIP end was X-Lite and Eyebeam and GoogleTalk on the jingle end. With this setup registered X-Lite's can chat with each other and call each other as well as X-Lite to GoogleTalk and GoogleTalk to X-Lite audio calls. Chat May also be done between X-Lite and jabber You'll also need a jabber server configured for component login so you can interface. We have only tested with jabberd2 so far. Configure DNS so srv records for jabber for your subdomain (fs.mydomain.com in the example) so the jabber records are pointed at your jabber server. RELEVANT CONFIGS <!-- Brian has no jingle support so send calls to him over to his iax url --> <extension name="bkw"> <condition field="destination_number" expression="^jingle\+brian@agents.cylynx.com$"> <action application="bridge" data="iax/guest@brianwest.homeunix.org/9184290404"/> </condition> </extension> <!-- Assumption is made here that both sip and jingle have the same profile/domain name as documented below --> <extension name="jingle2sip"> <condition field="source" expression="mod_dingaling"/> <condition field="destination_number" expression="^sip\+([^\@]+)\@(.*)$"> <action application="bridge" data="sofia/$2/$1%$2"/> </condition> </extension> <extension name="sip2jingle"> <condition field="source" expression="mod_sofia"/> <condition field="destination_number" expression="^jingle\+([^\@]+)\@(.*)$"> <action application="bridge" data="dingaling/sip+${sip_fromuser}@${sip_fromhost}/$1@$2"/> </condition> </extension> <configuration name="sofia.conf" description="sofia Endpoint"> <global_settings> <param name="log-level" value="0"/> </global_settings> <profiles> <profile name="fs.mydomain.com"> <registrations/> <settings> <param name="debug" value="1"/> <param name="rfc2833-pt" value="101"/> <param name="sip-port" value="5060"/> <param name="dialplan" value="XML"/> <param name="dtmf-duration" value="100"/> <param name="codec-prefs" value="PCMU"/> <param name="codec-ms" value="20"/> <param name="accept-blind-reg" value="true"/> <param name="manage-presence" value="true"/> <!--<param name="full-id-in-dialplan" value="true"/>--> <!--<param name="auth-calls" value="true"/>--> <!--<param name="auth-all-packets" value="true"/>--> <param name="use-rtp-timer" value="true"/> <param name="rtp-timer-name" value="soft"/> <param name="rtp-ip" value="100.200.100.200"/> <param name="sip-ip" value="fs.mydomain.com"/> </settings> </profile> </profiles> </configuration> <configuration name="dingaling.conf" description="XMPP Jingle Endpoint"> <settings> <param name="debug" value="0"/> <param name="codec-prefs" value="PCMU"/> </settings> <profile type="component"> <param name="name" value="fs.mydomain.com"/> <param name="password" value="secret"/> <param name="dialplan" value="XML"/> <param name="rtp-ip" value="208.64.200.42"/> <param name="server" value="jabber.freeswitch.org:5347"/> <!-- disable to trade async for more calls --> <param name="use-rtp-timer" value="true"/> <param name="exten" value="_auto_"/> <!--<param name="vad" value="both"/>--> </profile> </configuration> git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3115 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-10-20 06:17:00 +00:00
</x-profile>
</configuration>
<configuration name="xml_curl.conf" description="cURL XML Gateway">
<settings>
<!-- The url to a gateway cgi that can generate xml similar to
what's in this file only on-the-fly (leave it commented if you dont
need it) -->
<!-- one or more |-delim of configuration|directory|dialplan -->
<!--<param name="gateway-url" value="http://www.mydomain.com/test.cgi" bindings="dialplan"/>-->
<!-- set this to provide authentication credentials to the server -->
<!--<param name="gateway-credentials" value="muser:mypass"/>-->
</settings>
</configuration>
<configuration name="xml_rpc.conf" description="XML RPC">
<settings>
<!-- The port where you want to run the http service (default 8080) -->
<param name="http-port" value="8080"/>
<!-- if all 3 of the following params exist all http traffic will require auth -->
<param name="auth-realm" value="freeswitch"/>
<param name="auth-user" value="freeswitch"/>
<param name="auth-pass" value="works"/>
</settings>
</configuration>
<configuration name="rss.conf" description="RSS Parser">
<feeds>
<!-- Just download the files to wherever and refer to them here -->
<!-- <feed name="Slash Dot">/home/rss/rss.rss</feed> -->
<!-- <feed name="News Forge">/home/rss/newsforge.rss</feed> -->
</feeds>
</configuration>
<!-- None of these paths are real if you want any of these options you need to really set them up -->
<configuration name="conference.conf" description="Audio Conference">
<!-- Advertise certian presence on startup . -->
<advertise>
<room name="888@sub.mydomain.com" status="FreeSWITCH"/>
</advertise>
<!-- These are the default keys that map when you do not specify a caller control group -->
<!-- Note: none and default are reserved names for group names -->
<caller-controls>
<group name="default">
<control action="mute" digits="0"/>
<control action="deaf mute" digits="*"/>
<control action="energy up" digits="9"/>
<control action="energy equ" digits="8"/>
<control action="energy dn" digits="7"/>
<control action="vol talk up" digits="3"/>
<control action="vol talk zero" digits="2"/>
<control action="vol talk dn" digits="1"/>
<control action="vol listen up" digits="6"/>
<control action="vol listen zero" digits="5"/>
<control action="vol listen dn" digits="4"/>
<control action="hangup" digits="#"/>
</group>
</caller-controls>
<!-- Profiles are collections of settings you can reference by name. -->
<profiles>
<!--If no profile is specified it will default to "default"-->
<profile name="default">
<!-- Domain (for presence) -->
<param name="domain" value="sub.mydomain.com"/>
<!-- Sample Rate-->
<param name="rate" value="8000"/>
<!-- Number of milliseconds per frame -->
<param name="interval" value="20"/>
<!-- Energy level required for audio to be sent to the other users -->
<param name="energy-level" value="300"/>
<!-- Name of the caller control group to use for this profile -->
<!-- <param name="caller-controls" value="some name"/> -->
<!-- TTS Engine to use -->
<!--<param name="tts-engine" value="cepstral"/>-->
<!-- TTS Voice to use -->
<!--<param name="tts-voice" value="david"/>-->
<!-- If TTS is enabled all audio-file params beginning with -->
<!-- 'say:' will be considered text to say with TTS -->
<!-- Set a default path here so you can use relative paths in the other sound params-->
<!--<param name="sound-prefix" value="/soundfiles"/>-->
<!-- File to play to acknowledge succees -->
<!--<param name="ack-sound" value="beep.wav"/>-->
<!-- File to play to acknowledge failure -->
<!--<param name="nack-sound" value="beeperr.wav"/>-->
<!-- File to play to acknowledge muted -->
<!--<param name="muted-sound" value="muted.wav"/>-->
<!-- File to play to acknowledge unmuted -->
<!--<param name="unmuted-sound" value="unmuted.wav"/>-->
<!-- File to play if you are alone in the conference -->
<!--<param name="alone-sound" value="yactopitc.wav"/>-->
<!-- File to play when you join the conference -->
<!--<param name="enter-sound" value="welcome.wav"/>-->
<!-- File to play when you leave the conference -->
<!--<param name="exit-sound" value="exit.wav"/>-->
<!-- File to play when you ae ejected from the conference -->
<!--<param name="kicked-sound" value="kicked.wav"/>-->
<!-- File to play when the conference is locked -->
<!--<param name="locked-sound" value="locked.wav"/>-->
<!-- File to play when the conference is locked during the call-->
<!--<param name="is-locked-sound" value="is-locked.wav"/>-->
<!-- File to play when the conference is unlocked during the call-->
<!--<param name="is-unlocked-sound" value="is-unlocked.wav"/>-->
<!-- File to play to prompt for a pin -->
<!--<param name="pin-sound" value="pin.wav"/>-->
<!-- File to play to when the pin is invalid -->
<!--<param name="bad-pin-sound" value="invalid-pin.wav"/>-->
<!-- Conference pin -->
<!--<param name="pin" value="12345"/>-->
<!-- Default Caller ID Name for outbound calls -->
<param name="caller-id-name" value="FreeSWITCH"/>
<!-- Default Caller ID Number for outbound calls -->
<param name="caller-id-number" value="8777423583"/>
</profile>
</profiles>
</configuration>
<configuration name="enum.conf" description="ENUM Module">
<settings>
<param name="default-root" value="e164.org"/>
</settings>
<routes>
<route service="E2U+SIP" regex="sip:(.*)" replace="sofia/test/$1"/>
<route service="E2U+IAX2" regex="iax2:(.*)" replace="iax/$1"/>
<route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/jingle/$1"/>
</routes>
</configuration>
<configuration name="ivr.conf" description="IVR menus">
<menus>
<menu name="main"
greet-long="/soundfiles/greet-long.wav"
greet-short="/soundfiles/greet-short.wav"
invalid-sound="/soundfiles/invalid.wav"
exit-sound="/soundfiles/exit.wav" timeout ="15" max-failures="3">
<entry action="menu-exit" digits="*"/>
<entry action="menu-sub" digits="2" param="menu2"/>
<entry action="menu-exec-api" digits="3" param="api arg"/>
<entry action="menu-play-sound" digits="4" param="/soundfiles/4.wav"/>
<entry action="menu-back" digits="5"/>
<entry action="menu-call-transfer" digits="7" param="888"/>
<entry action="menu-sub" digits="8" param="menu8"/>>
</menu>
<menu name="menu8"
greet-long="/soundfiles/greet-long.wav"
greet-short="/soundfiles/greet-short.wav"
invalid-sound="/soundfiles/invalid.wav"
exit-sound="/soundfiles/exit.wav"
timeout ="15"
max-failures="3">
<entry action="menu-back" digits="#"/>
<entry action="menu-play-sound" digits="4" param="/soundfiles/4.wav"/>
<entry action="menu-top" digits="*"/>
</menu>
<menu name="menu2"
greet-long="/soundfiles/greet-long.wav"
greet-short="/soundfiles/greet-short.wav"
invalid-sound="/soundfiles/invalid.wav"
exit-sound="/soundfiles/exit.wav"
timeout ="15"
max-failures="3">
<entry action="menu-back" digits="#"/>
<entry action="menu-play-sound" digits="4" param="/soundfiles/4.wav"/>
<entry action="menu-top" digits="*"/>
</menu>
</menus>
</configuration>
</section>
<section name="dialplan" description="Regex/XML Dialplan">
<!-- Valid fields in conditions: -->
<!-- "dialplan, caller_id_name, ani, ani2, caller_id_number, -->
<!-- rdnis, destination_number, uuid, source, context, chan_name" -->
<!-- *NOTE* The special context name 'any' will match any context -->
<context name="default">
<extension name="556"> <!-- demo phrases -->
<condition field="destination_number" expression="^556$">
<action application="answer"/>
<action application="sleep" data="1000"/>
<action application="phrase" data="spell,${caller_id_name}"/>
<action application="phrase" data="spell-phonetic,${caller_id_name}"/>
<action application="phrase" data="timespec,12:45:15"/>
<action application="phrase" data="saydate,0"/>
<action application="phrase" data="msgcount,130"/>
<action application="phrase" data="ip-addr,66.250.68.194"/>
<action application="phrase" data="saydate,$strepoch(2006-03-23 7:23)"/>
<!--<action application="phrase" data="timeleft,3:30"/>-->
</condition>
</extension>
<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>
<!-- Call the FreeSWITCH conference via SIP -->
<!--<extension name="FreeSWITCH Conference SIP">-->
<!--<condition field="destination_number" expression="^888$">-->
<!--<action application="bridge" data="sofia/test/888@conference.freeswitch.org"/>-->
<!--</condition>-->
<!--</extension> -->
<!-- Call the FreeSWITCH conference via IAX -->
<!--<extension name="FreeSWITCH Conference IAX">-->
<!--<condition field="destination_number" expression="^8888$">-->
<!--<action application="bridge" data="iax/guest@conference.freeswitch.org/888"/>-->
<!--</condition>-->
<!--</extension>-->
<extension name="testmusic">
<condition field="destination_number" expression="^1234$">
Ringback (sponsored by Front Logic) This addition lets you set artifical ringback on a channel that is waiting for an originated call to be answered. the syntax is <action application="set" data="ringback=[data]"/> where data is either the full path to an audio file or a teletone generation script.. syntax of teletone scripts LEGEND: 0-9,a-d,*,# (standard dtmf tones) variables: c,r,d,v,>,<,+,w,l,L,% c (channels) - Sets the number of channels. r (rate) - Sets the sample rate. d (duration) - Sets the default tone duration. v (volume) - Sets the default volume. > (decrease vol) - factor to decrease volume by per frame (0 for even decrease across duration). < (increase vol) - factor to increase volume by per frame (0 for even increase across duration). + (step) - factor to step by used by < and >. w (wait) - default silence after each tone. l (loops) - number of times to repeat each tone in the script. L (LOOPS) - number of times to repeat the the whole script. % (manual tone) - a generic tone specified by a duration, a wait and a list of frequencies. standard tones can have custom duration per use with the () modifier 7(1000, 500) to generate DTMF 7 for 1 second then pause .5 seconds EXAMPLES UK Ring Tone [400+450 hz on for 400ms off for 200ms then 400+450 hz on for 400ms off for 2200ms] %(400,200,400,450);%(400,2200,400,450) US Ring Tone [440+480 hz on for 2000ms off for 4000ms] %(2000,4000,440,480) ATT BONG [volume level 4000, even decay, step by 2, # key for 60ms with no wait, volume level 2000, 350+440hz {us dialtone} for 940ms v=4000;>=0;+=2;#(60,0);v=2000;%(940,0,350,440) SIT Tone 913.8 hz for 274 ms with no wait, 1370.6 hz for 274 ms with no wait, 1776.7 hz for 380ms with no wait %(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7) ATTN TONE (phone's off the hook!) 1400+2060+2450+2600 hz for 100ms with 100ms wait %(100,100,1400,2060,2450,2600) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3408 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-11-19 01:05:06 +00:00
<!-- Request a certain tone/file to be played while you wait for the call to be answered-->
<action application="set" data="ringback=${us-ring}"/>
<!--<action application="set" data="ringback=/home/ring.wav"/>-->
<action application="bridge" data="sofia/test/1234@conference.freeswitch.org"/>
</condition>
</extension>
<!-- Enter an existing conference -->
<extension name="1000">
<condition field="destination_number" expression="^1000$">
<action application="conference" data="freeswitch"/>
</condition>
</extension>
<!-- Start a dynamic conference and call someone at the same time -->
<extension name="2000">
<condition field="destination_number" expression="^2000$">
<action application="conference" data="bridge:mydynaconf:sofia/test/1234@conference.freeswitch.org"/>
</condition>
</extension>
<!-- extensions starting with 4, all the numbers after 4 form a numeric filename -->
<!-- continue="true" means keep looking for more extensions to match -->
<!-- *NOTE* The entire dialplan is parsed ONCE when the call starts -->
<!-- so any call info acquired after the various actions cannot -->
<!-- be taken into consideration. -->
<!-- The first match will play a beep and the second one plays -->
<!-- the desired file. This is for demo purposes both actions -->
<!-- could have been under the same <extension> tag as well. -->
<extension name="playsound1" continue="true">
<condition field="source" expression="mod_sofia"/>
<condition field="destination_number" expression="^4(\d+)">
<action application="playback" data="/var/sounds/beep.gsm"/>
</condition>
</extension>
<extension name="playsound2">
<condition field="source" expression="mod_sofia"/>
<condition field="destination_number" expression="^4(\d+)">
<action application="playback" data="/root/$1.raw"/>
</condition>
</extension>
<!-- send everything with a certian RDNIS to Wanpipe ISDN -->
<extension name="To PRI">
<condition field="rdnis" expression="8881231234"/>
<condition field="destination_number" expression="(.*)">
<action application="bridge" data="wanpipe/a/a/$1"/>
</condition>
</extension>
<!-- Call *MUST* originate from mod_iax and also be dialing ext 9999-->
<extension name="9999">
<condition field="source" expression="mod_iax"/>
<condition field="destination_number" expression="9999">
<action application="playback" data="/var/sounds/beep.gsm"/>
</condition>
</extension>
</context>
</section>
<section name="directory" description="User Directory">
<!--the domain or ip (the right hand side of the @ in the addr-->
<domain name="jabber.org">
<!--the user id (the left hand side of the @ in the addr-->
<user id="stpeter">
<params>
<!-- omit password for authless registration -->
<param name="password" value="mypass"/>
</params>
<vcard xmlns='vcard-temp'>
<FN>Peter Saint-Andre</FN>
<N>
<FAMILY>Saint-Andre</FAMILY>
<GIVEN>Peter</GIVEN>
<MIDDLE/>
</N>
<NICKNAME>stpeter</NICKNAME>
<URL>http://www.jabber.org/people/stpeter.php</URL>
<BDAY>1966-08-06</BDAY>
<ORG>
<ORGNAME>Jabber Software Foundation</ORGNAME>
<ORGUNIT>Jabber Software Foundation</ORGUNIT>
</ORG>
<TITLE>Executive Director</TITLE>
<ROLE>Patron Saint</ROLE>
<TEL><WORK/><VOICE/><NUMBER>303-308-3282</NUMBER></TEL>
<TEL><WORK/><FAX/><NUMBER/></TEL>
<TEL><WORK/><MSG/><NUMBER/></TEL>
<ADR>
<WORK/>
<EXTADD>Suite 600</EXTADD>
<STREET>1899 Wynkoop Street</STREET>
<LOCALITY>Denver</LOCALITY>
<REGION>CO</REGION>
<PCODE>80202</PCODE>
<CTRY>USA</CTRY>
</ADR>
<TEL><HOME/><VOICE/><NUMBER>303-555-1212</NUMBER></TEL>
<TEL><HOME/><FAX/><NUMBER/></TEL>
<TEL><HOME/><MSG/><NUMBER/></TEL>
<ADR>
<HOME/>
<EXTADD/>
<STREET/>
<LOCALITY>Denver</LOCALITY>
<REGION>CO</REGION>
<PCODE>80209</PCODE>
<CTRY>USA</CTRY>
</ADR>
<EMAIL><INTERNET/><PREF/><USERID>stpeter@jabber.org</USERID></EMAIL>
<JABBERID>stpeter@jabber.org</JABBERID>
<DESC>
More information about me is located on my
personal website: http://www.saint-andre.com/
</DESC>
</vcard>
</user>
</domain>
</section>
<!-- phrases section (under development still) -->
<section name="phrases" description="Speech Phrase Management">
<macros>
<language name="en" sound_path="/snds" tts_engine="cepstral" tts_voice="david">
<macro name="msgcount">
<input pattern="(.*)">
<match>
<action function="execute" data="sleep(1000)"/>
<action function="play-file" data="vm-youhave.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="vm-messages.wav"/>
<!-- or -->
<!--<action function="speak-text" data="you have $1 messages"/>-->
</match>
</input>
</macro>
<macro name="saydate">
<input pattern="(.*)">
<match>
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
</match>
</input>
</macro>
<macro name="timespec">
<input pattern="(.*)">
<match>
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
</match>
</input>
</macro>
<macro name="ip-addr">
<input pattern="(.*)">
<match>
<action function="say" data="$1" method="iterated" type="ip_address"/>
<action function="say" data="$1" method="pronounced" type="ip_address"/>
</match>
</input>
</macro>
<macro name="spell">
<input pattern="(.*)">
<match>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="spell-phonetic">
<input pattern="(.*)">
<match>
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
</match>
</input>
</macro>
<macro name="tts-timeleft">
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
<!-- If the function "break" is encountered all parsing will cease -->
<input pattern="(\d+):(\d+)">
<match>
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
<action function="break"/>
</match>
<nomatch>
<action function="speak-text" data="That input was invalid."/>
</nomatch>
</input>
<input pattern="(\d+) min (\d+) sec">
<match>
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
</match>
<nomatch>
<action function="speak-text" data="That input was invalid."/>
</nomatch>
</input>
</macro>
</language>
<language name="fr" sound_path="/var/sounds/lang/fr/jean" tts_engine="cepstral" tts_voice="jean-pierre">
<macro name="msgcount">
<input pattern="(.*)">
<match>
<action function="play-file" data="tuas.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="messages.wav"/>
</match>
</input>
</macro>
<macro name="timeleft">
<input pattern="(\d+):(\d+)">
<match>
<action function="speak-text" data="il y a $1 minutes et de $2 secondes de restant"/>
</match>
</input>
</macro>
</language>
</macros>
</section>
</document>