<?xml version="1.0" ?>
<document type="freeswitch/xml">
    <X-PRE-PROCESS cmd="set" data="auto_answer=false" />
    <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}" />
    <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh" />
    <X-PRE-PROCESS cmd="set" data="codec_prefs=G722,G726-40,G726-32,G726-24,G726-16,PCMU,PCMA" />
    <X-PRE-PROCESS cmd="set" data="outbound_caller_name=Q-Tel" />
    <X-PRE-PROCESS cmd="set" data="outbound_caller_id=3038675309" />
    <X-PRE-PROCESS cmd="set" data="default_gateway=default" />
    <X-PRE-PROCESS cmd="set" data="us-ring=%(2000, 4000, 440.0, 480.0)" />
    <X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;&gt;=2;+=.1;%(1400,0,350,440)" />
    <X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)" />
    <section name="configuration" description="Various Configuration">
        <configuration name="local_stream.conf" description="stream files from local dir">
            <directory name="moh/48000" path="$${base_dir}/sounds/music/48000">
                <param name="rate" value="48000" />
                <param name="shuffle" value="true" />
                <param name="channels" value="1" />
                <param name="interval" value="10" />
                <param name="timer-name" value="soft" />
            </directory>
        </configuration>
        <configuration name="logfile.conf" description="File Logging">
            <settings>
                <param name="rotate-on-hup" value="true" />
                <param name="logfile" value="/var/log/freeswitch/freeswitch.log" />
            </settings>
            <profiles>
                <profile name="default">
                    <settings>
                        <param name="rollover" value="5048576" />
                        <param name="discard_old" value="true" />
                    </settings>
                    <mappings>
                        <map name="all" value="debug,info,alert,crit,err" />
                    </mappings>
                </profile>
            </profiles>
        </configuration>
        <configuration name="modules.conf" description="Modules">
            <modules>
                <load module="mod_logfile" />
                <load module="mod_commands" />
                <load module="mod_dptools" />
                <load module="mod_dialplan_xml" />
                <load module="mod_sofia" />
            </modules>
        </configuration>
        <configuration name="post_load_modules.conf" description="Modules">
            <modules />
        </configuration>
        <configuration name="sofia.conf" description="sofia Endpoint">
            <global_settings>
                <param name="log-level" value="0" />
                <param name="auto-restart" value="true" />
                <param name="debug-presence" value="0" />
            </global_settings>
            <profiles>
                <profile name="softphone">
                    <gateways>
                        <X-PRE-PROCESS cmd="include" data="/var/run/freeswitch/gateways.xml" />
                    </gateways>
                    <settings>
                        <param name="user-agent-string" value="Q-Sys SoftPhone-5.1" />
                        <param name="username" value="Q-Sys-SoftPhone" />
                        <param name="debug" value="true" />
                        <param name="sip-trace" value="true" />
                        <param name="context" value="public" />
                        <param name="dialplan" value="XML" />
                        <param name="liberal-dtmf" value="true" />
                        <param name="use-rtp-timer" value="true" />
                        <param name="rtp-timer-name" value="soft" />
                        <param name="hold-music" value="$${hold_music}" />
                        <param name="apply-nat-acl" value="rfc1918" />
                        <param name="manage-presence" value="false" />
                        <param name="max-proceeding" value="1000" />
                        <param name="nonce-ttl" value="60" />
                        <param name="auth-calls" value="false" />
                        <param name="auth-all-packets" value="true" />
                        <param name="rtp-timeout-sec" value="0" />
                        <param name="rtp-hold-timeout-sec" value="0" />
                        <param name="vad" value="none" />
                        <param name="disable-register" value="true" />
                        <param name="challenge-realm" value="auto_from" />
                        <param name="extension-in-contact" data="true" />
                        <param name="enable-3pcc" value="true" />
                        <!-- POSSIBLY EXTENSION SPECIFIC -->
                        <param name="dtmf-duration" value="100" />
                        <!-- UNUSED - DELETE? -->
                        <!--<param name="NDLB-force-rport" value="true"/>-->
                        <!--<param name="media-option" value="bypass-media-after-att-xfer"/>-->
                        <!--<param name="enable-timer" value="false"/>-->
                        <!--<param name="enable-100rel" value="true"/>-->
                        <!--<param name="minimum-session-expires" value="120"/>-->
                        <!--<param name="bitpacking" value="aal2"/> -->
                        <!--<param name="session-timeout" value="120"/>-->
                        <!--set to 'greedy' if you want your codec list to take precedence, or 'scrooge' -->
                        <!--<param name="inbound-codec-negotiation" value="scrooge"/> -->
                        <!-- if you want to send any special bind params of your own -->
                        <!--<param name="bind-params" value="transport=udp"/>-->
                        <!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok-->
                        <!--<param name="inbound-late-negotiation" value="true"/> -->
                        <!--<param name="accept-blind-reg" value="true"/> -->
                        <!--<param name="accept-blind-auth" value="true"/> -->
                        <param name="suppress-cng" value="true" />
                        <!--<param name="NDLB-broken-auth-hash" value="true"/>-->
                        <!--<param name="NDLB-received-in-nat-reg-contact" value="true"/>-->
                        <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip}"/> -->
                        <!-- <param name="ext-sip-ip" value="$${external_sip_ip}"/> -->
                        <!--<param name="disable-rtp-auto-adjust" value="true"/>-->
                        <!--<param name="inbound-use-callid-as-uuid" value="true"/>-->
                        <!--<param name="outbound-use-uuid-as-callid" value="true"/>-->
                        <!--<param name="auto-rtp-bugs" data="clear"/>-->
                        <param name="sip-port" value="5060" />
                        <param name="rfc2833-pt" value="101" />
                        <param name="dtmf-type" value="rfc2833" />
                        <param name="stun-enabled" value="false" />
                        <param name="codec-prefs" value="G722,G726-32,PCMU,PCMA" />
                        <param name="rtp-ip" value="10.99.128.67" />
                        <param name="sip-ip" value="10.99.128.67" />
                    </settings>
                </profile>
            </profiles>
        </configuration>
        <configuration name="switch.conf" description="Core Configuration">
            <settings>
                <param name="colorize-console" value="true" />
                <param name="max-sessions" value="1000" />
                <param name="sessions-per-second" value="1000" />
                <param name="loglevel" value="debug" />
                <param name="dump-cores" value="yes" />
                <param name="rtp-start-port" value="16384" />
                <param name="rtp-end-port" value="16484" />
            </settings>
            <variables>
                <variable name="force_local_ip_v4" value="10.99.128.67" />
            </variables>
        </configuration>
    </section>
    <section name="dialplan" description="Regex/XML Dialplan">
        <context name="default">
            <extension name="codec_and_sip_uri">
                <condition field="destination_number" expression="^sip:(.*):(.*)$">
                    <action application="bridge" data="{absolute_codec_string=$1}sofia/softphone/$2" />
                </condition>
            </extension>
            <extension name="sip_uri">
                <condition field="destination_number" expression="^sip:(.*)$">
                    <action application="bridge" data="sofia/softphone/$1" />
                </condition>
            </extension>
            <extension name="codec_and_number">
                <condition field="destination_number" expression="^(.*):(.*)@(.*)$">
                    <action application="bridge" data="{absolute_codec_string=$1}sofia/gateway/$3/$2" />
                </condition>
            </extension>
            <extension name="number">
                <condition field="destination_number" expression="^(.*)@(.*)$">
                    <action application="bridge" data="sofia/gateway/$2/$1" />
                </condition>
            </extension>
            <extension name="number">
                <condition field="destination_number" expression="^(.*)$">
                    <action application="bridge" data="sofia/gateway/${default_gateway}/$1" />
                </condition>
            </extension>
        </context>
        <context name="public">
            <extension name="public_extensions">
                <condition field="${sip_gateway}" expression="^(.+)$">
                    <action application="qtel" data="${sip_gateway}" />
                    <anti-action application="qtel" data="${destination_number}" />
                </condition>
            </extension>
        </context>
    </section>
</document>
