<?xml version="1.0"?>

<document type="freeswitch/xml">
  <section name="dialplan" description="Regex/XML Dialplan">

<!--bah-->
<!-- 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="9998">
    <condition field="destination_number" expression="^9998$|^ext\+2005|^ext\+2001">
      <action application="answer"/>
      <!--<action application="delay_echo" data="10000"/>-->
      <action application="playback" data="/ram/swimp16.wav"/>
    </condition>
  </extension>

  <extension name="9999">
    <condition field="destination_number" expression="^9999">
      <action application="answer"/>
      <action application="hangup"/>
    </condition>
  </extension>


  <extension name="2021">
    <!--<condition field="network_addr" expression="^10\.200\.50\.100$"/>-->
    <condition field="destination_number" expression="^(2021)$">
      <action application="start_dtmf_generate"/>
      <action application="bridge" data="sofia/internal/9999@10.200.50.42"/>
    </condition>
  </extension>


  <extension name="2020">
    <!--<condition field="network_addr" expression="^10\.200\.50\.100$"/>-->
    <condition field="destination_number" expression="^(2020)$">
      <action application="set" data="foo=%lt;foo%gt;"/>
      <action application="set" data="bypass_media=true"/>
      <action application="eval" data="${foo}"/>
      <action application="bridge" data="sofia/internal/9999@10.200.50.42"/>
    </condition>
  </extension>



  <extension name="limit_exceeded">
    <condition field="destination_number" expression="^limit_exceeded$">
      <action application="speak" data="cepstral|david|you are over the fucking call limit you moron"/>
    </condition>
  </extension>

  <extension name="conftest">
    <condition field="destination_number" expression="^conftest$">
      <action application="conference" data="test@default"/>
    </condition>
  </extension>
  
  <extension name="x">
    <condition field="destination_number" expression="^spy\+(.*)$">
      <action application="eavesdrop" data="$1"/>
    </condition>
  </extension>
  

  <extension name="1234">
    <condition field="destination_number" expression="^1234$">
      <action application="answer"/>
      <action application="set" data="record_rate=16000"/>
      <action application="record" data="/tmp/rtest.wav"/>
    </condition>
  </extension>


  <extension name="500">
    <condition field="destination_number" expression="^500$">
      <action application="answer"/>
      <action application="javascript" data="odbc.js"/>
    </condition>
  </extension>


  <extension name="1235">
    <condition field="destination_number" expression="^1235$">
      <action application="answer"/>
      <!--<action application="playback" data="shout://mp3.ihets.org/wfyihd132"/>-->
      <action application="playback" data="local_stream://cool"/>
    </condition>
  </extension>

  
  <extension name="9999">
    <condition field="destination_number" expression="^9999$">
      <!--<action application="record_session" data="/tmp/wtf.wav"/>-->
      <!--<action application="bridge" data="sofia/default/8005551212@tollfreegateway.com"/>-->
      <action application="bridge" data="sofia/default/1236@conference.freeswitch.org"/>
    </condition>
  </extension>

  <extension name="9997">
    <condition field="destination_number" expression="^9997$">
      <!--<action application="bridge" data="sofia/default/1235@conference.freeswitch.org"/>-->
      <!--<action application="socket" data="localhost:8084 async"/>-->
      <action application="respond" data="484 Address Incomplete"/>
      
    </condition>
  </extension>


  <extension name="421234">
    <condition field="destination_number" expression="421234">
      <action application="answer"/>
      <action application="info"/>
    </condition>
  </extension>




  <extension name="park">
    <condition field="destination_number" expression="^5(\d+)$">
      <action application="fifo" data="$1 in undef /ram/swimp.raw"/>
    </condition>
  </extension>

  <extension name="unpark">
    <condition field="destination_number" expression="^6(\d+)$">
      <action application="answer"/>
      <action application="fifo" data="$1 out nowait"/>
    </condition>
  </extension>


  <extension name="7070">
    <condition field="destination_number" expression="^7070$">
      <action application="bridge" data="$sofia_contact(default/tony@destroyer.freeswitch.org)"/>
    </condition>
  </extension>


  <extension name="ISN_Lookup">
    <condition field="destination_number" expression="^([0-9]*)\*([0-9]*)$">
      <action application="enum" data="$1 $2.freenum.org"/>
      <action application="log" data="${enum_auto_route}"/>
      <action application="info" data="${enum_auto_route}"/>
      <!--<action application="bridge" data="${enum_auto_route}"/>-->
    </condition>
  </extension>

  <extension name="7771">
    <condition field="destination_number" expression="^7771$">
      <action application="answer"/>
      <action application="set" data="voicemail_authorized=${sip_authorized}"/>
      <action application="voicemail" data="check demo $${domain} ${sip_mailbox}"/>
    </condition>
  </extension>

  <extension name="7772">
    <condition field="destination_number" expression="^7772$">
      <action application="answer"/>
      <action application="voicemail" data="demo $${domain} ${sip_mailbox}"/>
    </condition>
  </extension>

  <extension name="7773">
    <condition field="destination_number" expression="^7773$">
      <action application="answer"/>
      <action application="set" data="voicemail_authorized=true"/>
      <action application="voicemail" data="check demo $${domain} 1000"/>
    </condition>
  </extension>

  <extension name="7774">
    <condition field="destination_number" expression="^7774$">
      <action application="answer"/>
      <action application="voicemail" data="demo $${domain} 1000"/>
    </condition>
  </extension>


  <extension name="7775">
    <condition field="destination_number" expression="^7775$">
      <action application="answer"/>
      <action application="voicemail" data="demo $${domain} 2000"/>
    </condition>
  </extension>



  <extension name="7776">
    <condition field="destination_number" expression="^7776$">
      <action application="answer"/>
      <!--<action application="set" data="voicemail_authorized=true"/>-->
      <action application="voicemail" data="check auth demo $${domain} 2000"/>
    </condition>
  </extension>


  <extension name="7777">
    <condition field="destination_number" expression="^7777$">
      <action application="answer"/>
      <action application="voicemail" data="demo $${domain} 2000"/>
    </condition>
  </extension>

  <extension name="7778">
    <condition field="destination_number" expression="^7778$">
      <action application="answer"/>
      <action application="set" data="tts_engine=openmrcp:openmrcp-v1"/>
      <action application="set" data="tts_voice=English-Female4"/>
      <action application="set" data="cache_speech_handles=true"/>
      <action application="speak" data="testing 1234, this is a test"/>
      <action application="clear_speech_cache"/>
    </condition>
  </extension>


  <extension name="7779">
    <condition field="destination_number" expression="^7779$">
      <action application="answer"/>
      <action application="park"/>
    </condition>
  </extension>


  <extension name="8000">
    <condition field="destination_number" expression="^8000$">
      <action application="answer"/>
      <action application="set" data="playback_terminators=#"/>
      <action application="playback" data="/ram/swimp.raw"/>
    </condition>
  </extension>



  <extension name="8001">
    <condition field="destination_number" expression="^8001$">
      <action application="answer"/>
      <action application="eval" data="^${sip_to_user}$"/>
      <action application="playback" data="/ram/swimp.raw"/>
    </condition>
  </extension>


  <extension name="3331">
    <condition field="destination_number" expression="^3331$">
      <!--<action application="fifo" data="test in /ram/swimp.raw"/>-->
      <action application="fifo" data="test in undef /ram/swimp.raw"/>
    </condition>
  </extension>

  <extension name="3332">
    <condition field="destination_number" expression="^3332$">
      <action application="fifo" data="test out wait undef /ram/swimp.raw"/>
    </condition>
  </extension>

  <extension name="3333">
    <condition field="destination_number" expression="^3333$">
      <action application="answer"/>
      <action application="delay_echo" data="2000"/>
    </condition>
  </extension>

  <extension name="2015">
    <condition field="destination_number" expression="2015">
      <action application="perl" data="do '/usr/local/freeswitch/scripts/cool.pl'; print \$@"/>
    </condition>
  </extension>

  <extension name="2014">
    <condition field="destination_number" expression="2014">
      <action application="answer"/>
      <action application="playback" data="tone_stream://path=/tmp/test.tone"/>
    </condition>
  </extension>


  <extension name="2016">
    <condition field="destination_number" expression="^2016$">
      <action application="fifo" data="5900@$${domain} out nowait"/>
    </condition>
  </extension>


  <extension name="2017">
    <condition field="destination_number" expression="^2017$">
      <action application="answer"/>
      <action application="playback" data="/ram/swimp2.raw"/>
    </condition>
  </extension>


  <extension name="2018">
    <condition field="destination_number" expression="^2018$">
      <action application="answer"/>
      <action application="gentones" data="1234567890|2"/>
    </condition>
  </extension>


  <extension name="9195">
    <condition field="destination_number" expression="^9195$">>
      <action application="answer"/>
      <action application="playback" data="/tmp/tone2.wav"/>
      <action application="playback" data="/tmp/tone2.wav"/>
      <action application="playback" data="/tmp/tone2.wav"/>
    </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>

<!--
  <extension name="2001">
    <condition field="destination_number" expression="2001">
      <action application="set" data="effective_caller_id_name=ClueCon"/>
      <action application="set" data="effective_caller_id_number=42"/>
      <action application="javascript" data="chatback.js"/>
    </condition>
  </extension>
-->


  <extension name="2002">
    <condition field="destination_number" expression="2002">
      <action application="set" data="exec_after_bridge_app=park"/>
      <action application="bridge" data="sofia/default/42@conference.freeswitch.org"/>
    </condition>
  </extension>



  <extension name="International">
    <condition field="destination_number" expression="^00+\d*$">
      <action application="set" data="effective_caller_id_number=0854778965"/>
      <action application="bridge" data="sofia/gateway/tollfreeexpress.com/$0@sip.mygateway.com"/>
    </condition>
  </extension>

  <extension name="6161">
    <condition field="destination_number" expression="^(6161)$">
      <!--<action application="playback" data="local_stream://cool"/>-->
      <action application="answer"/>
      <action application="sleep" data="1000"/>
      <action application="speak" data="cepstral|diane|You have called" />
      <action application="phrase" data="spell,$1"/> 
    </condition>
  </extension>
  
  <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="42">
    <condition field="destination_number" expression="^42$">
      <!--<action application="tone_detect" data="test 350,440 r +100 hangup normal_clearing"/>-->
      <!--<action application="tone_detect" data="test 1100 r +100 hangup normal_clearing"/>-->
      <!--<action application="set" data="bypass_media=true"/>-->
      <action application="bridge" data="sofia/default/1235@conference.freeswitch.org"/>

    </condition>
  </extension>

  <extension name="41">
    <condition field="destination_number" expression="^41$">
      <!--<action application="tone_detect" data="test 350,440 r +100 hangup normal_clearing"/>-->
      <!--<action application="tone_detect" data="test 1100 r +100 hangup normal_clearing"/>-->
      <!--<action application="set" data="bypass_media=true"/>-->
      <action application="bridge" data="sofia/default/1234@conference.freeswitch.org"/>

    </condition>
  </extension>

  <extension name="43">
    <condition field="destination_number" expression="^43$">
      <action application="gentones" data="%(400,200,400,450);%(400,2200,400,450);|5"/>

    </condition>
  </extension>


  <extension name="44">
    <condition field="destination_number" expression="^44$">
      <action application="bridge" data="sofia/default/90@70.64.128.50"/>

    </condition>
  </extension>


  <extension name="9192">
    <condition field="destination_number" expression="^9192$">
      <action application="set" data="stream_prebuffer=200000"/>
      <action application="playback" data="shout://mp3.ihets.org/wfyihd132"/>
    </condition>
  </extension>


  <extension name="9194">
    <condition>
      <action application="answer"/>
      <action application="playback" data="/ram/swimp.raw"/>
    </condition>
  </extension>


  <extension name="9193">
    <condition>
      <action application="bridge" data="sofia/default/me%destroyer.freeswitch.org"/>
    </condition>
  </extension>

  <extension name="us_national">
    <condition field="destination_number" expression="^1?([2-9]\d\d[2-9]\d{6})$">
      <action application="set" data="dest=$1"/>
    </condition>
    <condition field="${sip_authorized}" expression="true">
      <anti-action application="reject" data="407"/>
      <action application="eval" data="sofia/$${domain}/1${dest}@207.210.228.173"/>
    </condition>
  </extension>



  <extension name="3010">
    <condition field="destination_number" expression="^3010$">
      <action application="bridge" data="dingaling/$${domain}/tony.n800@gmail.com"/>
    </condition>
  </extension>


  <extension name="4444">
    <condition field="destination_number" expression="^4444$">
      <action application="bridge" data="sofia/gateway/213.160.242.135/91316356"/>
    </condition>
  </extension>

  <extension name="3040">
    <condition field="destination_number" expression="^3040$">
      <action application="send_dtmf" data="5551212@1000+1234@5000"/>
      <action application="sleep" data="5000"/>
      <action application="queue_dtmf" data="5551212@1000+1234@5000"/>
      <action application="javascript" data="dtmftest.js /ram/swimp.raw"/>
    </condition>
  </extension>

  <extension name="2010">
    <condition field="destination_number" expression="^2010$">
      <!--<action application="javascript" data="o.js"/>-->
      <!--<action application="export" data="nolocal:cool=true"/>-->
      <action application="event" data="test1=true, test2 =  yes, test3=   wtf"/>
    </condition>
  </extension>

  <extension name="2011">
    <condition field="destination_number" expression="^2011$">
      <action application="eval" data="Test\${this}shit"/>
      <action application="eval" data="\${test}Test\\${this}shit"/>
      <action application="reject" data="499 You Suck!"/>
    </condition>
  </extension>


  <extension name="2012">
    <condition field="destination_number" expression="^2012$">
      <action application="javascript" data="vmu.js"/>
      <!--<action application="bridge" data="{sip_auto_answer=true}sofia/default/1234@conference.freeswitch.org"/>-->
    </condition>
  </extension>



  <extension name="2013">
    <condition field="destination_number" expression="^2013$">
      <action application="bridge" data="sofia/default/tony"/>
    </condition>
  </extension>




  <extension name="2002">
    <condition field="destination_number" expression="^2002$">
      <action application="bridge" data="sofia/gateway/tollfreeexpress.com/14149361212"/>
      <!--<action application="javascript" data="tone.js"/>-->
    </condition>
  </extension>


  <extension name="2003">
    <condition field="destination_number" expression="^20033$">
      <!--<action application="execute_extension" data="2003"/>-->
      <!--<action application="set" data="jitterbuffer_msec=400"/>-->
      <action application="answer"/>
      <action application="playback" data="/ram/swimp_big.raw"/>
    </condition>
  </extension>



  <extension name="2004">
    <condition field="destination_number" expression="^2004$">
      <action application="set" data="ringback=/ram/fucked.wav"/>
      <action application="bridge" data="sofia/$${domain}/1234@conference.freeswitch.org"/>
    </condition>
  </extension>


  <extension name="2005">
    <condition field="destination_number" expression="2005">
      <action application="set" data="RECORD_STEREO=true"/>
      <action application="record_session" data="/nfs/sounds/stereo.mp3"/>
      <action application="playback" data="/ram/swimp.raw"/>
      <!--<action application="bridge" data="sofia/$${domain}/1237@conference.freeswitch.org;transport=tcp"/>-->
      <!--<action application="javascript" data="tone.js"/>-->
    </condition>
  </extension>

  <extension name="2006">
    <condition field="destination_number" expression="2006">
      <!--<action application="set" data="bypass_media=true"/>-->
      <action application="start_dtmf_generate"/>
      <action application="bridge" data="sofia/$${domain}/42@conference.freeswitch.org"/>
    </condition>
  </extension>


  <extension name="2007">
    <condition field="destination_number" expression="2007">
      <action application="set" data="conference_auto_outcall_caller_id_name=pissed off boss"/>
      <action application="set" data="conference_auto_outcall_caller_id_number=666"/>
      <action application="set" data="conference_auto_outcall_timeout=60"/>
      <action application="set" data="conference_auto_outcall_flags=none"/>
      
      <action application="set" data="conference_auto_outcall_announce=say:youze in trubble now, mista"/>
      <action application="conference_set_auto_outcall" data="sofia/gateway/tollfreeexpress.com/14149361212"/>
      <action application="conference_set_auto_outcall" data="sofia/$${domain}/888@conference.freeswitch.org"/>
      <action application="conference" data="cool@default"/>
    </condition>
  </extension>



  <!-- Call the FreeSWITCH conference via SIP -->
  <!--<extension name="FreeSWITCH Conference SIP">-->
  <!--<condition field="destination_number" expression="^888$">-->
  <!--<action application="bridge" data="sofia/$${domain}/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="set_codec" continue="true">
    <condition field="source" expression="mod_portaudio">
      <action application="set" data="absolute_codec_string=PCMU"/>
      <action application="set" data="export_vars=absolute_codec_string"/>
    </condition>
  </extension>
-->

  <extension name="testmusic">
    <condition field="destination_number" expression="^1234$">
      <!-- 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/$${domain}/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/$${domain}/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/pri/a/a/$1"/>
    </condition>
  </extension>




</context>
  </section>
</document>

