]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
conf: add config files to module directories
authorKen Rice <krice@tollfreegateway.com>
Fri, 16 Mar 2012 03:58:01 +0000 (03:58 +0000)
committerTravis Cross <tc@traviscross.com>
Sat, 24 Mar 2012 04:51:08 +0000 (04:51 +0000)
The idea here is that the config files in the module directories will
serve as the canonical documentation of all module configuration
options.

83 files changed:
src/mod/applications/mod_abstraction/conf/autoload_configs/abstraction.conf.xml [new file with mode: 0644]
src/mod/applications/mod_blacklist/conf/autoload_configs/blacklist.conf.xml [new file with mode: 0644]
src/mod/applications/mod_callcenter/conf/autoload_configs/callcenter.conf.xml [new file with mode: 0644]
src/mod/applications/mod_cidlookup/conf/autoload_configs/cidlookup.conf.xml [new file with mode: 0644]
src/mod/applications/mod_conference/conf/autoload_configs/conference.conf.xml [new file with mode: 0644]
src/mod/applications/mod_conference/conf/dialplan/conference_dialplan.xml [new file with mode: 0644]
src/mod/applications/mod_db/conf/autoload_configs/db.conf.xml [new file with mode: 0644]
src/mod/applications/mod_distributor/conf/autoload_configs/distributor.conf.xml [new file with mode: 0644]
src/mod/applications/mod_distributor/conf/dialplan/distributor.xml [new file with mode: 0644]
src/mod/applications/mod_easyroute/conf/autoload_configs/easyroute.conf.xml [new file with mode: 0644]
src/mod/applications/mod_easyroute/conf/dialplan/easyroute.xml [new file with mode: 0644]
src/mod/applications/mod_enum/conf/autoload_configs/enum.conf.xml [new file with mode: 0644]
src/mod/applications/mod_enum/conf/dialplan/99999_enum.xml [new file with mode: 0644]
src/mod/applications/mod_fifo/conf/autoload_configs/fifo.conf.xml [new file with mode: 0644]
src/mod/applications/mod_fifo/conf/dialplan/fifo.xml [new file with mode: 0644]
src/mod/applications/mod_hash/conf/autoload_configs/hash.conf.xml [new file with mode: 0644]
src/mod/applications/mod_hash/conf/dialplan/hash.xml [new file with mode: 0644]
src/mod/applications/mod_httapi/conf/autoload_configs/httapi.conf.xml [moved from src/mod/applications/mod_httapi/httapi.conf.xml with 100% similarity]
src/mod/applications/mod_httapi/docs/mod_httapi_doc.txt [moved from src/mod/applications/mod_httapi/mod_httapi_doc.txt with 100% similarity]
src/mod/applications/mod_http_cache/conf/autoload_configs/http_cache.conf.xml [new file with mode: 0644]
src/mod/applications/mod_http_cache/conf/dialplan/http_cache.xml [new file with mode: 0644]
src/mod/applications/mod_ladspa/conf/dialplan/00_ladspa.xml [new file with mode: 0644]
src/mod/applications/mod_ladspa/docs/README [new file with mode: 0644]
src/mod/applications/mod_lcr/conf/autoload_configs/lcr.conf.xml [new file with mode: 0644]
src/mod/applications/mod_lcr/conf/dialplan/lcr.xml [new file with mode: 0644]
src/mod/applications/mod_limit/conf/autoload_configs/limit.conf.xml [new file with mode: 0644]
src/mod/applications/mod_limit/conf/dialplan/limit.xml [new file with mode: 0644]
src/mod/applications/mod_memcache/conf/autoload_configs/memcache.conf.xml [new file with mode: 0644]
src/mod/applications/mod_memcache/conf/dialplan/memcache.xml [new file with mode: 0644]
src/mod/applications/mod_mongo/conf/autoload_configs/mongo.conf.xml [new file with mode: 0644]
src/mod/applications/mod_nibblebill/conf/autoload_configs/nibblebill.conf.xml [new file with mode: 0644]
src/mod/applications/mod_nibblebill/conf/dialplan/nibblebill.xml [new file with mode: 0644]
src/mod/applications/mod_osp/conf/osp.conf.xml [new file with mode: 0644]
src/mod/applications/mod_redis/conf/autoload_configs/redis.conf.xml [new file with mode: 0644]
src/mod/applications/mod_rss/conf/autoload_configs/rss.conf.xml [new file with mode: 0644]
src/mod/applications/mod_rss/conf/dialplan/rss.xml [new file with mode: 0644]
src/mod/applications/mod_rss/script/news.js [new file with mode: 0644]
src/mod/applications/mod_snom/conf/dialplan/snom_demo.xml [new file with mode: 0644]
src/mod/applications/mod_spandsp/conf/autoload_configs/spandsp.conf.xml [new file with mode: 0644]
src/mod/applications/mod_spandsp/conf/config.FS0 [new file with mode: 0644]
src/mod/applications/mod_spandsp/conf/dialplan/spandsp.xml [new file with mode: 0644]
src/mod/applications/mod_valet_parking/conf/dialplan/valet_parking.xml [new file with mode: 0644]
src/mod/applications/mod_vmd/conf/dialplan/vmd.xml [new file with mode: 0644]
src/mod/applications/mod_vmd/scripts/vmd.js [new file with mode: 0644]
src/mod/applications/mod_vmd/scripts/vmd.lua [new file with mode: 0644]
src/mod/applications/mod_voicemail/conf/autoload_configs/voicemail.conf.xml [new file with mode: 0644]
src/mod/applications/mod_voicemail/conf/dialplan/voicemail.xml [new file with mode: 0644]
src/mod/applications/mod_voicemail/conf/notify-voicemail.tpl [new file with mode: 0644]
src/mod/applications/mod_voicemail/conf/voicemail.tpl [new file with mode: 0644]
src/mod/applications/mod_voicemail_ivr/conf/autoload_configs/voicemail_ivr.conf.xml [new file with mode: 0644]
src/mod/asr_tts/mod_cepstral/conf/cepstral.conf.xml [new file with mode: 0644]
src/mod/dialplans/mod_dialplan_asterisk/conf/extensions.conf [new file with mode: 0644]
src/mod/endpoints/mod_alsa/conf/autoload_configs/alsa.conf.xml [new file with mode: 0644]
src/mod/endpoints/mod_portaudio/conf/autoload_configs/portaudio.conf.xml [new file with mode: 0644]
src/mod/endpoints/mod_rtmp/conf/autoload_configs/rtmp.conf.xml [new file with mode: 0644]
src/mod/endpoints/mod_skinny/conf/autoload_configs/skinny.conf.xml [new file with mode: 0644]
src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns.xml [new file with mode: 0644]
src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/20-Demo.xml [new file with mode: 0644]
src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/20-Local_extension.xml [new file with mode: 0644]
src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/90-External.xml [new file with mode: 0644]
src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/99-Default_Drop.xml [new file with mode: 0644]
src/mod/endpoints/mod_skinny/conf/directory/default/skinny-example.xml [new file with mode: 0644]
src/mod/endpoints/mod_skinny/conf/skinny_profiles/internal.xml [new file with mode: 0644]
src/mod/endpoints/mod_sofia/conf/sip_profiles/external.xml [new file with mode: 0644]
src/mod/endpoints/mod_sofia/conf/sip_profiles/external/example.xml [new file with mode: 0644]
src/mod/endpoints/mod_sofia/conf/sip_profiles/internal-ipv6.xml [new file with mode: 0644]
src/mod/endpoints/mod_sofia/conf/sip_profiles/internal.xml [new file with mode: 0644]
src/mod/endpoints/mod_sofia/conf/sip_profiles/internal/example.xml [new file with mode: 0644]
src/mod/event_handlers/mod_cdr_csv/conf/autoload_configs/cdr_csv.conf.xml [new file with mode: 0644]
src/mod/event_handlers/mod_cdr_mongodb/conf/autoload_configs/cdr_mongodb.conf.xml [new file with mode: 0644]
src/mod/event_handlers/mod_cdr_pg_csv/conf/autoload_configs/cdr_pg_csv.conf.xml [new file with mode: 0644]
src/mod/event_handlers/mod_cdr_pg_csv/scripts/create.sql [moved from src/mod/event_handlers/mod_cdr_pg_csv/create.sql with 100% similarity]
src/mod/event_handlers/mod_cdr_sqlite/conf/autoload_configs/cdr_sqlite.conf.xml [new file with mode: 0644]
src/mod/event_handlers/mod_erlang_event/conf/autoload_configs/erlang_event.conf.xml [new file with mode: 0644]
src/mod/event_handlers/mod_event_multicast/conf/autoload_configs/event_multicast.conf.xml [new file with mode: 0644]
src/mod/event_handlers/mod_event_socket/conf/autoload_configs/event_socket.conf.xml [new file with mode: 0644]
src/mod/event_handlers/mod_json_cdr/conf/autoload_configs/json_cdr.conf.xml [new file with mode: 0644]
src/mod/loggers/mod_console/conf/autoload_configs/console.conf.xml [new file with mode: 0644]
src/mod/loggers/mod_logfile/conf/autoload_configs/logfile.conf.xml [new file with mode: 0644]
src/mod/loggers/mod_syslog/conf/autoload_configs/syslog.conf.xml [new file with mode: 0644]
src/mod/xml_int/mod_xml_cdr/conf/autoload_configs/xml_cdr.conf.xml [new file with mode: 0644]
src/mod/xml_int/mod_xml_curl/conf/autoload_configs/xml_curl.conf.xml [new file with mode: 0644]
src/mod/xml_int/mod_xml_rpc/conf/autoload_configs/xml_rpc.conf.xml [new file with mode: 0644]

diff --git a/src/mod/applications/mod_abstraction/conf/autoload_configs/abstraction.conf.xml b/src/mod/applications/mod_abstraction/conf/autoload_configs/abstraction.conf.xml
new file mode 100644 (file)
index 0000000..d4b1dfd
--- /dev/null
@@ -0,0 +1,5 @@
+<configuration name="abstraction.conf" description="Abstraction">
+<apis>
+       <api name="user_name" description="Return Name for extension" syntax="<exten>" parse="(.*)" destination="user_data" argument="$1@default var effective_caller_id_name"/>
+</apis>
+</configuration>
diff --git a/src/mod/applications/mod_blacklist/conf/autoload_configs/blacklist.conf.xml b/src/mod/applications/mod_blacklist/conf/autoload_configs/blacklist.conf.xml
new file mode 100644 (file)
index 0000000..a981ebb
--- /dev/null
@@ -0,0 +1,11 @@
+<configuration name="mod_blacklist.conf" description="Blacklist module">
+<lists>
+       <!--
+               Example blacklist, the referenced file contains blacklisted items, one entry per line
+
+               NOTE: make sure the file exists and is readable by FreeSWITCH.
+
+       <list name="example" filename="/usr/local/freeswitch/conf/blacklists/example.list"/>
+       -->
+</lists>
+</configuration>
diff --git a/src/mod/applications/mod_callcenter/conf/autoload_configs/callcenter.conf.xml b/src/mod/applications/mod_callcenter/conf/autoload_configs/callcenter.conf.xml
new file mode 100644 (file)
index 0000000..a069413
--- /dev/null
@@ -0,0 +1,38 @@
+<configuration name="callcenter.conf" description="CallCenter">
+  <settings>
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+    <!--<param name="dbname" value="/dev/shm/callcenter.db"/>-->
+  </settings>
+
+  <queues>
+
+    <queue name="support@default">
+      <param name="strategy" value="longest-idle-agent"/>
+      <param name="moh-sound" value="$${hold_music}"/>
+      <!--<param name="record-template" value="$${base_dir}/recordings/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>-->
+      <param name="time-base-score" value="system"/>
+      <param name="max-wait-time" value="0"/>
+      <param name="max-wait-time-with-no-agent" value="0"/>
+      <param name="max-wait-time-with-no-agent-time-reached" value="5"/>
+      <param name="tier-rules-apply" value="false"/>
+      <param name="tier-rule-wait-second" value="300"/>
+      <param name="tier-rule-wait-multiply-level" value="true"/>
+      <param name="tier-rule-no-agent-no-wait" value="false"/>
+      <param name="discard-abandoned-after" value="60"/>
+      <param name="abandoned-resume-allowed" value="false"/>
+    </queue>
+
+  </queues>
+
+<!-- WARNING: Configuration of XML Agents will be updated into the DB upon restart. -->
+<!-- WARNING: Configuration of XML Tiers will reset the level and position if those were supplied. -->
+<!-- WARNING: Agents and Tiers XML config shouldn't be used in a multi FS shared DB setup (Not currently supported anyway) -->
+  <agents>
+    <!--<agent name="1000@default" type="callback" contact="[call_timeout=10]user/1000@default" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />-->
+  </agents>
+  <tiers>
+    <!-- If no level or position is provided, they will default to 1.  You should do this to keep db value on restart. -->
+    <!-- <tier agent="1000@default" queue="support@default" level="1" position="1"/> -->
+  </tiers>
+
+</configuration> 
diff --git a/src/mod/applications/mod_cidlookup/conf/autoload_configs/cidlookup.conf.xml b/src/mod/applications/mod_cidlookup/conf/autoload_configs/cidlookup.conf.xml
new file mode 100644 (file)
index 0000000..a30f9f5
--- /dev/null
@@ -0,0 +1,33 @@
+<configuration name="cidlookup.conf" description="cidlookup Configuration">
+  <settings>
+    <!-- comment out url to not setup a url based lookup -->
+    <param name="url" value="http://query.voipcnam.com/query.php?api_key=MYAPIKEY&number=${caller_id_number}"/>
+
+    <!-- comment out whitepages-apikey to not use whitepages.com, you must
+         get an API key from http://developer.whitepages.com/ -->
+    <param name="whitepages-apikey" value="MYAPIKEY"/>
+
+    <!-- set to false to not cache (in memcache) results from the url query -->
+    <param name="cache" value="true"/>
+    <!-- expire is in seconds -->
+    <param name="cache-expire" value="86400"/>
+
+    <param name="odbc-dsn" value="phone:phone:phone"/>
+
+    <!-- comment out sql to not setup a database (directory) lookup -->
+    <param name="sql" value="
+     SELECT name||' ('||type||')' AS name 
+      FROM phonebook p JOIN numbers n ON p.id = n.phonebook_id
+      WHERE n.number='${caller_id_number}' 
+      LIMIT 1
+      "/>
+    <!-- comment out citystate-sql to not setup a database (city/state) 
+         lookup -->
+    <param name="citystate-sql" value="
+     SELECT ratecenter||' '||state as name
+      FROM npa_nxx_company_ocn
+      WHERE npa = ${caller_id_number:1:3} AND nxx = ${caller_id_number:4:3}
+      LIMIT 1
+      "/>
+  </settings>
+</configuration>
diff --git a/src/mod/applications/mod_conference/conf/autoload_configs/conference.conf.xml b/src/mod/applications/mod_conference/conf/autoload_configs/conference.conf.xml
new file mode 100644 (file)
index 0000000..5a906f9
--- /dev/null
@@ -0,0 +1,209 @@
+<!-- http://wiki.freeswitch.org/wiki/Mod_conference --> 
+<!-- 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 certain presence on startup . -->
+  <advertise>
+    <room name="3001@$${domain}" 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.  Disabled if dist-dtmf member flag is set. -->       
+  <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">
+      <!-- Directory to drop CDR's 
+          'auto' means $PREFIX/logs/conference_cdr/<confernece_uuid>.cdr.xml
+          a non-absolute path means $PREFIX/logs/<value>/<confernece_uuid>.cdr.xml
+          absolute path means <value>/<confernece_uuid>.cdr.xml
+      -->
+      <!-- <param name="cdr-log-dir" value="auto"/> -->
+      
+      <!-- Domain (for presence) -->
+      <param name="domain" value="$${domain}"/>
+      <!-- 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"/>
+
+      <!--Can be | delim of waste|mute|deaf|dist-dtmf waste will always transmit data to each channel
+          even during silence.  dist-dtmf propagates dtmfs to all other members, but channel controls
+         via dtmf will be disabled. -->
+      <!--<param name="member-flags" value="waste"/>-->
+
+      <!-- Name of the caller control group to use for this profile -->
+      <!-- <param name="caller-controls" value="some name"/> -->
+      <!-- Name of the caller control group to use for the moderator in this profile -->
+      <!-- <param name="moderator-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 -->
+      <!-- Override the default path here, after which you use relative paths in the other sound params -->
+      <!-- Note: The default path is the conference's first caller's sound_prefix -->
+      <!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
+      <!-- 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="conference/conf-muted.wav"/>
+      <!-- File to play to acknowledge unmuted -->
+      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
+      <!-- File to play if you are alone in the conference -->
+      <param name="alone-sound" value="conference/conf-alone.wav"/>
+      <!-- File to play endlessly (nobody will ever be able to talk) -->
+      <!--<param name="perpetual-sound" value="perpetual.wav"/>-->
+      <!-- File to play when you're alone (music on hold)-->
+      <param name="moh-sound" value="$${hold_music}"/>
+      <!-- File to play when you join the conference -->
+      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
+      <!-- File to play when you leave the conference -->
+      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
+      <!-- File to play when you ae ejected from the conference -->
+      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
+      <!-- File to play when the conference is locked -->
+      <param name="locked-sound" value="conference/conf-locked.wav"/>
+      <!-- File to play when the conference is locked during the call-->
+      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
+      <!-- File to play when the conference is unlocked during the call-->
+      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
+      <!-- File to play to prompt for a pin -->
+      <param name="pin-sound" value="conference/conf-pin.wav"/>
+      <!-- File to play to when the pin is invalid -->
+      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
+      <!-- Conference pin -->
+      <!--<param name="pin" value="12345"/>-->
+      <!--<param name="moderator-pin" value="54321"/>-->
+      <!-- Max number of times the user can be prompted for PIN -->
+      <!--<param name="pin-retries" value="3"/>-->
+      <!-- Default Caller ID Name for outbound calls -->
+      <param name="caller-id-name" value="$${outbound_caller_name}"/>
+      <!-- Default Caller ID Number for outbound calls -->
+      <param name="caller-id-number" value="$${outbound_caller_id}"/>
+      <!-- Suppress start and stop talking events -->
+      <!-- <param name="suppress-events" value="start-talking,stop-talking"/> -->
+      <!-- enable comfort noise generation -->
+      <param name="comfort-noise" value="true"/>
+      <!-- Uncomment auto-record to toggle recording every conference call. -->
+      <!-- Another valid value is   shout://user:pass@server.com/live.mp3   -->
+      <!--
+      <param name="auto-record" value="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
+      -->
+
+      <!-- IVR digit machine timeouts -->
+      <!-- How much to wait between DTMF digits to match caller-controls -->
+      <!-- <param name="ivr-dtmf-timeout" value="500"/> -->
+      <!-- How much to wait for the first DTMF, 0 forever -->
+      <!-- <param name="ivr-input-timeout" value="0" /> -->
+      <!-- Delay before a conference is asked to be terminated -->
+      <!-- <param name="endconf-grace-time" value="120" /> -->
+    </profile>
+
+    <profile name="wideband">
+      <param name="domain" value="$${domain}"/>
+      <param name="rate" value="16000"/>
+      <param name="interval" value="20"/>
+      <param name="energy-level" value="300"/>
+      <!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
+      <param name="muted-sound" value="conference/conf-muted.wav"/>
+      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
+      <param name="alone-sound" value="conference/conf-alone.wav"/>
+      <param name="moh-sound" value="$${hold_music}"/>
+      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
+      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
+      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
+      <param name="locked-sound" value="conference/conf-locked.wav"/>
+      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
+      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
+      <param name="pin-sound" value="conference/conf-pin.wav"/>
+      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
+      <param name="caller-id-name" value="$${outbound_caller_name}"/>
+      <param name="caller-id-number" value="$${outbound_caller_id}"/>
+      <param name="comfort-noise" value="true"/>
+      <!--<param name="tts-engine" value="flite"/>-->
+      <!--<param name="tts-voice" value="kal16"/>-->
+    </profile>
+
+    <profile name="ultrawideband">
+      <param name="domain" value="$${domain}"/>
+      <param name="rate" value="32000"/>
+      <param name="interval" value="20"/>
+      <param name="energy-level" value="300"/>
+      <!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
+      <param name="muted-sound" value="conference/conf-muted.wav"/>
+      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
+      <param name="alone-sound" value="conference/conf-alone.wav"/>
+      <param name="moh-sound" value="$${hold_music}"/>
+      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
+      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
+      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
+      <param name="locked-sound" value="conference/conf-locked.wav"/>
+      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
+      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
+      <param name="pin-sound" value="conference/conf-pin.wav"/>
+      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
+      <param name="caller-id-name" value="$${outbound_caller_name}"/>
+      <param name="caller-id-number" value="$${outbound_caller_id}"/>
+      <param name="comfort-noise" value="true"/>
+      <!--<param name="tts-engine" value="flite"/>-->
+      <!--<param name="tts-voice" value="kal16"/>-->
+    </profile>
+
+    <profile name="cdquality">
+      <param name="domain" value="$${domain}"/>
+      <param name="rate" value="48000"/>
+      <param name="interval" value="10"/>
+      <param name="energy-level" value="300"/>
+      <!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
+      <param name="muted-sound" value="conference/conf-muted.wav"/>
+      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
+      <param name="alone-sound" value="conference/conf-alone.wav"/>
+      <param name="moh-sound" value="$${hold_music}"/>
+      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
+      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
+      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
+      <param name="locked-sound" value="conference/conf-locked.wav"/>
+      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
+      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
+      <param name="pin-sound" value="conference/conf-pin.wav"/>
+      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
+      <param name="caller-id-name" value="$${outbound_caller_name}"/>
+      <param name="caller-id-number" value="$${outbound_caller_id}"/>
+      <param name="comfort-noise" value="true"/>
+    </profile>
+
+    <profile name="sla">
+      <param name="domain" value="$${domain}"/>
+      <param name="rate" value="16000"/>
+      <param name="interval" value="20"/>
+      <param name="caller-controls" value="none"/>
+      <param name="energy-level" value="200"/>
+      <param name="moh-sound" value="silence"/>
+      <param name="comfort-noise" value="true"/>
+    </profile>
+
+  </profiles>
+</configuration>
diff --git a/src/mod/applications/mod_conference/conf/dialplan/conference_dialplan.xml b/src/mod/applications/mod_conference/conf/dialplan/conference_dialplan.xml
new file mode 100644 (file)
index 0000000..1c86ad8
--- /dev/null
@@ -0,0 +1,31 @@
+       <!--
+               start a dynamic conference with the settings of the "default" conference profile in conference.conf.xml
+       -->
+       <extension name="nb_conferences">
+               <condition field="destination_number" expression="^(30\d{2})$">
+                       <action application="answer"/>
+                       <action application="conference" data="$1-${domain_name}@default"/>
+               </condition>
+       </extension>
+
+       <extension name="wb_conferences">
+               <condition field="destination_number" expression="^(31\d{2})$">
+                       <action application="answer"/>
+                       <action application="conference" data="$1-${domain_name}@wideband"/>
+               </condition>
+       </extension>
+
+       <extension name="uwb_conferences">
+               <condition field="destination_number" expression="^(32\d{2})$">
+                       <action application="answer"/>
+                       <action application="conference" data="$1-${domain_name}@ultrawideband"/>
+               </condition>
+       </extension>
+
+       <!-- MONO 48kHz conferences -->
+       <extension name="cdquality_conferences">
+               <condition field="destination_number" expression="^(33\d{2})$">
+                       <action application="answer"/>
+                       <action application="conference" data="$1-${domain_name}@cdquality"/>
+               </condition>
+       </extension>
diff --git a/src/mod/applications/mod_db/conf/autoload_configs/db.conf.xml b/src/mod/applications/mod_db/conf/autoload_configs/db.conf.xml
new file mode 100644 (file)
index 0000000..abc6c0c
--- /dev/null
@@ -0,0 +1,5 @@
+<configuration name="db.conf" description="LIMIT DB Configuration">
+  <settings>
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+  </settings>
+</configuration>
diff --git a/src/mod/applications/mod_distributor/conf/autoload_configs/distributor.conf.xml b/src/mod/applications/mod_distributor/conf/autoload_configs/distributor.conf.xml
new file mode 100644 (file)
index 0000000..a03b1ee
--- /dev/null
@@ -0,0 +1,10 @@
+<configuration name="distributor.conf" description="Distributor Configuration">
+  <lists>
+    <!-- every 10 calls to test you will get foo1 once and foo2 9 times...yes NINE TIMES! -->
+    <!-- this is not the same as 100 with 10 and 90 that would do foo1 10 times in a row then foo2 90 times in a row -->
+    <list name="test" total-weight="10">
+      <node name="foo1" weight="1"/>
+      <node name="foo2" weight="9"/>
+    </list>
+  </lists>
+</configuration>
diff --git a/src/mod/applications/mod_distributor/conf/dialplan/distributor.xml b/src/mod/applications/mod_distributor/conf/dialplan/distributor.xml
new file mode 100644 (file)
index 0000000..95f322a
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<include>  
+  <extension name="test gateway distro">
+      <condition field="destination_number" expression="^(.*)$">
+          <action application="bridge" data="sofia/gateway/${distributor(test)}/$1"/>
+      </condition>
+   </extension>
+</include>
diff --git a/src/mod/applications/mod_easyroute/conf/autoload_configs/easyroute.conf.xml b/src/mod/applications/mod_easyroute/conf/autoload_configs/easyroute.conf.xml
new file mode 100644 (file)
index 0000000..350a509
--- /dev/null
@@ -0,0 +1,28 @@
+<configuration name="easyroute.conf" description="EasyRoute Module">
+  <settings>
+    <!-- These are kind Obvious -->
+    <param name="db-username" value="root"/>
+    <param name="db-password" value="password"/>
+    <param name="db-dsn" value="easyroute"/>
+
+    <!-- Default Technology and profile -->
+    <param name="default-techprofile" value="sofia/default"/>
+    
+    <!-- IP or Hostname of Default Route -->
+    <param name="default-gateway" value="192.168.66.6"/>
+
+    <!-- Number of times to retry ODBC connection on connection problems, default is 120 -->
+    <param name="odbc-retries" value="120"/>
+
+    <!-- Customer Query. Use this with Care!!! We are not responsible if you mess
+         This up!!! Query *MUST* return columns in the following order!
+        gateway varchar(128) - contains destination gateway host:port pair (ex: 192.168.1.1:5060 )
+        group varchar(128) - contains optional group name
+        call_limit varchar(16) - contains optional call limit
+        tech_prefix varchar(128) - tech prefix used to build dial string (ex: sofia/default )
+        acctcode varchar(128) - used to set channel variable acctcode for logging into the CDRs
+        destination_number varchar(16) - Number returning for the query for building the dial string. (ex: 18005551212) 
+        See Documentation on the Wiki for further information -->
+    <!-- <param name="custom-query" value="call  FS_GET_SIP_LOCATION(%s);"/> -->
+  </settings>
+</configuration>
diff --git a/src/mod/applications/mod_easyroute/conf/dialplan/easyroute.xml b/src/mod/applications/mod_easyroute/conf/dialplan/easyroute.xml
new file mode 100644 (file)
index 0000000..001d7ad
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<include>
+       <!-- This example will test the limit value for the DID number being checked -->
+       <!-- If over limit, send 503 -->
+       <extension name="easyroute">
+               <condition field="destination_number" expression="^1?(\d{10})$" break="on-true">
+                       <action application="easyroute" data="$1"/>
+                       <action application="limit" data="db easyroute ${easy_group} ${easy_limit} LE-$1"/>
+                       <action application="bridge" data="${easy_dialstring}"/>
+               </condition>
+       </extension>
+
+       <extension name="easyroute_limit_exceeded">
+               <condition field="destination_number" expression="^LE-(\d{10})$" break="on-true">
+                       <action application="respond" data="503 Buzz Off You Ran Out of Channels"/>
+               </condition>
+       </extension>
+
+       <!-- Simple example - just grab the dialstring and send the call -->
+       <extension name="easyroute">
+               <condition field="destination_number" expression="^1?(\d{10})$" break="on-true">
+                       <action application="set" data="dialstring={easyroute($1 dialstring)"/>
+                       <action application="bridge" data="${easy_dialstring}"/>
+               </condition>
+       </extension>
+
+<include>
diff --git a/src/mod/applications/mod_enum/conf/autoload_configs/enum.conf.xml b/src/mod/applications/mod_enum/conf/autoload_configs/enum.conf.xml
new file mode 100644 (file)
index 0000000..0304d0d
--- /dev/null
@@ -0,0 +1,13 @@
+<configuration name="enum.conf" description="ENUM Module">
+  <settings>
+    <param name="default-root" value="e164.org"/>
+    <param name="default-isn-root" value="freenum.org"/>
+    <param name="query-timeout" value="10"/>
+    <param name="auto-reload" value="true"/>
+  </settings>
+
+  <routes>
+    <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/${use_profile}/$1"/>
+    <!--<route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/$${xmpp_server_profile}/$1"/>-->
+  </routes>
+</configuration>
diff --git a/src/mod/applications/mod_enum/conf/dialplan/99999_enum.xml b/src/mod/applications/mod_enum/conf/dialplan/99999_enum.xml
new file mode 100644 (file)
index 0000000..4f436b2
--- /dev/null
@@ -0,0 +1,8 @@
+<include>
+       <extension name="enum">
+               <condition field="${module_exists(mod_enum)}" expression="true"/>
+               <condition field="destination_number" expression="^(.*)$">
+                       <action application="transfer" data="$1 enum"/>
+               </condition>
+       </extension>
+</include>
diff --git a/src/mod/applications/mod_fifo/conf/autoload_configs/fifo.conf.xml b/src/mod/applications/mod_fifo/conf/autoload_configs/fifo.conf.xml
new file mode 100644 (file)
index 0000000..b1db4dd
--- /dev/null
@@ -0,0 +1,10 @@
+<configuration name="fifo.conf" description="FIFO Configuration">
+  <settings>
+    <param name="delete-all-outbound-member-on-startup" value="false"/>
+  </settings>
+  <fifos>
+    <fifo name="cool_fifo@$${domain}" importance="0">
+      <!--<member timeout="60" simo="1" lag="20">{member_wait=nowait}user/1005@$${domain}</member>-->
+    </fifo>
+  </fifos>
+</configuration>
diff --git a/src/mod/applications/mod_fifo/conf/dialplan/fifo.xml b/src/mod/applications/mod_fifo/conf/dialplan/fifo.xml
new file mode 100644 (file)
index 0000000..b85e792
--- /dev/null
@@ -0,0 +1,19 @@
+       <!-- 
+               Parking extensions... transferring calls to 5900 will park them in a queue.
+       -->
+       <extension name="park">
+               <condition field="destination_number" expression="^5900$">
+                       <action application="set" data="fifo_music=$${hold_music}"/>
+                       <action application="fifo" data="5900@${domain_name} in"/>
+               </condition>
+       </extension>
+
+       <!-- 
+               Parking pickup extension.  Calling 5901 will pickup the call.
+       -->
+       <extension name="unpark">
+               <condition field="destination_number" expression="^5901$">
+                       <action application="answer"/>
+                       <action application="fifo" data="5900@${domain_name} out nowait"/>
+               </condition>
+       </extension>
diff --git a/src/mod/applications/mod_hash/conf/autoload_configs/hash.conf.xml b/src/mod/applications/mod_hash/conf/autoload_configs/hash.conf.xml
new file mode 100644 (file)
index 0000000..95b7928
--- /dev/null
@@ -0,0 +1,6 @@
+<configuration name="hash.conf" description="Hash Configuration">
+  <remotes>
+       <!-- List of hosts from where to pull usage data -->
+       <!-- <remote name="Test1" host="10.0.0.10" port="8021" password="ClueCon" interval="1000" /> -->
+  </remotes>
+</configuration>
diff --git a/src/mod/applications/mod_hash/conf/dialplan/hash.xml b/src/mod/applications/mod_hash/conf/dialplan/hash.xml
new file mode 100644 (file)
index 0000000..b998867
--- /dev/null
@@ -0,0 +1,7 @@
+       <extension name="hash_demo">
+               <condition field="destination_number" expression="^hash_demo$">
+                       <action application="hash" data="insert/realm/key/value"/>
+                       <action application="hash" data="delete/realm/key"/>
+                       <action application="set" data="var=${hash(select/realm/key)}"/>
+               </condition>
+       </extension>
diff --git a/src/mod/applications/mod_http_cache/conf/autoload_configs/http_cache.conf.xml b/src/mod/applications/mod_http_cache/conf/autoload_configs/http_cache.conf.xml
new file mode 100644 (file)
index 0000000..4150d64
--- /dev/null
@@ -0,0 +1,8 @@
+<configuration name="http_cache.conf" description="HTTP GET cache">
+  <settings>
+    <param name="max-urls" value="10000"/>
+    <param name="location" value="$${base_dir}/http_cache"/>
+    <param name="default-max-age" value="86400"/>
+  </settings>
+</configuration>
+
diff --git a/src/mod/applications/mod_http_cache/conf/dialplan/http_cache.xml b/src/mod/applications/mod_http_cache/conf/dialplan/http_cache.xml
new file mode 100644 (file)
index 0000000..860fc66
--- /dev/null
@@ -0,0 +1,7 @@
+<include>
+       <extension "http_cache_demo">
+               <condition field="destination_number" expression="^(.*)$">
+                       <action application="playback" data="${http_get(http://myserver.yo/media/hello_world.wav)}"/>
+               </condition>
+       </extension>
+</include>
diff --git a/src/mod/applications/mod_ladspa/conf/dialplan/00_ladspa.xml b/src/mod/applications/mod_ladspa/conf/dialplan/00_ladspa.xml
new file mode 100644 (file)
index 0000000..a26b193
--- /dev/null
@@ -0,0 +1,77 @@
+<include>
+  
+  <X-PRE-PROCESS cmd="set" data="AT_EPENT1=0 0 0 -1 -1 0 -1 0 -1 -1 0 -1"/>
+  <X-PRE-PROCESS cmd="set" data="AT_EPENT2=1 1 1 -1 -1 1 -1 1 -1 -1 1 -1"/>
+  <X-PRE-PROCESS cmd="set" data="AT_CPENT1=0 -1 -1 0 -1 0 0 0 -1 -1 0 -1"/>
+  <X-PRE-PROCESS cmd="set" data="AT_CPENT2=1 -1 -1 1 -1 1 1 1 -1 -1 1 -1"/>
+  <X-PRE-PROCESS cmd="set" data="AT_CMAJ1=0 -1 0 0 -1 0 -1 0 0 -1 0 -1"/>
+  <X-PRE-PROCESS cmd="set" data="AT_CMAJ2=1 -1 1 1 -1 1 -1 1 1 -1 1 -1"/>
+  <X-PRE-PROCESS cmd="set" data="AT_BBLUES=1 -1 1 -1 -1 1 -1 1 1 1 -1 -1"/>
+  <X-PRE-PROCESS cmd="set" data="ATGPENT2=-1 1 -1 1 -1 1 -1 -1 1 -1 1 -1"/>
+  
+  <extension name="101"> 
+    <condition field="destination_number" expression="^101$"> 
+      <!-- AUTOTALENT DEFAULTS -->
+
+      <!--
+      <action application="set" data="AT_TUNE=440"/>
+      <action application="set" data="AT_FIXED=0"/>
+      <action application="set" data="AT_PULL=0"/>
+      <action application="set" data="AT_A=0"/>
+      <action application="set" data="AT_Bb=-1"/>
+      <action application="set" data="AT_B=0"/>
+      <action application="set" data="AT_C=0"/>
+      <action application="set" data="AT_Db=-1"/>
+      <action application="set" data="AT_D=0"/>
+      <action application="set" data="AT_Eb=-1"/>
+      <action application="set" data="AT_E=0"/>
+      <action application="set" data="AT_F=0"/>
+      <action application="set" data="AT_Gb=-1"/>
+      <action application="set" data="AT_G=0"/>
+      <action application="set" data="AT_Ab=-1"/>
+      <action application="set" data="AT_AMOUNT=1"/>
+      <action application="set" data="AT_SMOOTH=0"/>
+      <action application="set" data="AT_SHIFT=0"/>
+      <action application="set" data="AT_OUTSCALE=0"/>
+      <action application="set" data="AT_LFODEPTH=0"/>
+      <action application="set" data="AT_LFORATE=5"/>
+      <action application="set" data="AT_LFOSHAPE=0"/>
+      <action application="set" data="AT_LFOSYMM=0"/>
+      <action application="set" data="AT_LFOQUANT=0"/>
+      <action application="set" data="AT_FCORR=0"/>
+      <action application="set" data="AT_FWARP=0"/>
+      <action application="set" data="AT_MIX=1"/>
+      -->
+
+
+      <action application="set" data="AT_TUNE=440"/>
+      <action application="set" data="AT_FIXED=0"/>
+      <action application="set" data="AT_PULL=0"/>
+
+      <action application="set" data="AT_AMOUNT=1"/>
+      <action application="set" data="AT_SMOOTH=0"/>
+      <action application="set" data="AT_SHIFT=1"/>
+      <action application="set" data="AT_OUTSCALE=0"/>
+      <action application="set" data="AT_LFODEPTH=0"/>
+      <action application="set" data="AT_LFORATE=5"/>
+      <action application="set" data="AT_LFOSHAPE=0"/>
+      <action application="set" data="AT_LFOSYMM=0"/>
+      <action application="set" data="AT_LFOQUANT=0"/>
+      <action application="set" data="AT_FCORR=0"/>
+      <action application="set" data="AT_FWARP=0"/>
+      <action application="set" data="AT_MIX=1"/>
+
+      <!-- you have to download the ladspa package and the desired plugins from their desired site -->
+
+
+      <action application="set"><![CDATA[ladspa_params=${AT_TUNE} ${AT_FIXED} ${AT_PULL} ${AT_EPENT2} ${AT_AMOUNT} ${AT_SMOOTH} ${AT_SHIFT} ${AT_OUTSCALE} ${AT_LFODEPTH} ${AT_LFORATE} ${AT_LFOSHAPE} ${AT_LFOSYMM} ${AT_LFOQUANT} ${AT_FCORR} ${AT_FWARP} ${AT_MIX}]]></action>
+      
+      <action application="ladspa_run" data="r|autotalent||${ladspa_params}"/>
+      <action application="ladspa_run" data="r|tap_chorusflanger||"/>
+      <action application="ladspa_run" data="r|phasers_1217.so|autoPhaser|"/>
+      <action application="bridge" data="sofia/internal/888@conference.freeswitch.org"/>
+
+      </condition> 
+  </extension> 
+
+</include>
diff --git a/src/mod/applications/mod_ladspa/docs/README b/src/mod/applications/mod_ladspa/docs/README
new file mode 100644 (file)
index 0000000..3a6337d
--- /dev/null
@@ -0,0 +1,4 @@
+mod_ladspa is a module that allow to use Linux Audio Developer's Simple Plugin API inside freeswitch in realtime. 
+see http://wiki.freeswitch.org/wiki/Mod_ladspa for installation and configuration documentation.
+
+Please Note Currently this module only works on Linux.
diff --git a/src/mod/applications/mod_lcr/conf/autoload_configs/lcr.conf.xml b/src/mod/applications/mod_lcr/conf/autoload_configs/lcr.conf.xml
new file mode 100644 (file)
index 0000000..9d106d4
--- /dev/null
@@ -0,0 +1,89 @@
+<configuration name="lcr.conf" description="LCR Configuration">
+  <settings>
+    <param name="odbc-dsn" value="freeswitch-mysql:freeswitch:Fr33Sw1tch"/>
+<!--    <param name="odbc-dsn" value="freeswitch-pgsql:freeswitch:Fr33Sw1tch"/> -->
+  </settings>
+  <profiles>
+    <profile name="default">
+      <param name="id" value="0"/>
+      <param name="order_by" value="rate,quality,reliability"/>
+    </profile>
+    <profile name="qual_rel">
+      <param name="id" value="1"/>
+      <param name="order_by" value="quality,reliability"/>
+    </profile>
+    <profile name="rel_qual">
+      <param name="id" value="2"/>
+      <param name="order_by" value="reliability,quality"/>
+    </profile>
+<!-- 
+  Some samples of how to do custom SQL:
+
+    =============================================================
+    PostgreSQL with contrib prefix module which supports fast
+    prefix queries.  Ideal option.
+    =============================================================
+    <profile name="pg_prefix">
+      <param name="custom_sql" value="
+SELECT l.digits AS lcr_digits,
+       c.carrier_name AS lcr_carrier_name,
+       l.${lcr_rate_field} as lcr_rate_field,
+       cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
+       l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
+       l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
+  FROM lcr l
+    JOIN carriers c ON l.carrier_id=c.id
+    JOIN carrier_gateway cg ON c.id=cg.carrier_id
+  WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
+    AND digits_prefix @> %q
+    AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
+  ORDER BY digits DESC, ${lcr_rate_field}, random();
+      "/>
+    </profile>
+
+    =============================================================
+    PostgreSQL with contrib prefix module which supports fast
+    prefix queries.  Ideal option.  Alternate syntax which requies
+    a session but allows variable substitution.
+    =============================================================
+    <profile name="pg_prefix2">
+      <param name="custom_sql" value="
+SELECT l.digits AS lcr_digits,
+       c.carrier_name AS lcr_carrier_name,
+       l.${lcr_rate_field} as lcr_rate_field,
+       cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
+       l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
+       l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
+  FROM lcr l
+    JOIN carriers c ON l.carrier_id=c.id
+    JOIN carrier_gateway cg ON c.id=cg.carrier_id
+  WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
+    AND digits_prefix @> '${lcr_query_digits}'
+    AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
+  ORDER BY digits DESC, ${lcr_rate_field}, random();
+      "/>
+    </profile>
+
+    =============================================================
+    Demonstrates use of computed inlist.
+    =============================================================
+    <profile name="inlist">
+      <param name="custom_sql" value="
+SELECT l.digits AS lcr_digits,
+       c.carrier_name AS lcr_carrier_name,
+       l.${lcr_rate_field} as lcr_rate_field,
+       cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
+       l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
+       l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
+  FROM lcr l
+    JOIN carriers c ON l.carrier_id=c.id
+    JOIN carrier_gateway cg ON c.id=cg.carrier_id
+  WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
+    AND digits IN (${lcr_query_expanded_digits})
+    AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
+  ORDER BY digits DESC, ${lcr_rate_field}, random();
+      "/>
+    </profile>
+-->
+  </profiles>
+</configuration>
diff --git a/src/mod/applications/mod_lcr/conf/dialplan/lcr.xml b/src/mod/applications/mod_lcr/conf/dialplan/lcr.xml
new file mode 100644 (file)
index 0000000..48feb6a
--- /dev/null
@@ -0,0 +1,8 @@
+<include>      
+       <extension name="Outbound to PSTN 11 Digits">
+               <condition field="destination_number" expression="^(1[2-9][0-9]{2}[2-9]{7})$">
+                       <action application="lcr" data="$1"/>
+                       <action application="bridge" data="${lcr_auto_route}"/>
+               </condition>
+       </extension>
+</include>
diff --git a/src/mod/applications/mod_limit/conf/autoload_configs/limit.conf.xml b/src/mod/applications/mod_limit/conf/autoload_configs/limit.conf.xml
new file mode 100644 (file)
index 0000000..26b0f85
--- /dev/null
@@ -0,0 +1,5 @@
+<configuration name="limit.conf" description="LIMIT Configuration">
+  <settings>
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+  </settings>
+</configuration>
diff --git a/src/mod/applications/mod_limit/conf/dialplan/limit.xml b/src/mod/applications/mod_limit/conf/dialplan/limit.xml
new file mode 100644 (file)
index 0000000..5641c4b
--- /dev/null
@@ -0,0 +1,14 @@
+<include>
+       <extension name="limit_exceeded">
+               <condition field="destination_number" expression="^limit_exceeded$">
+                       <action application="playback" data="/sounds/overthelimit.wav"/>
+                       <action application="hangup"/>
+               </condition>
+       </extension>
+
+       <extension name="limit" continue="true">
+               <condition>
+                       <action application="limit" data="db $${domain} ${sip_auth_username} ${max_calls}"/>
+               </condition>
+       </extension> 
+</include>
diff --git a/src/mod/applications/mod_memcache/conf/autoload_configs/memcache.conf.xml b/src/mod/applications/mod_memcache/conf/autoload_configs/memcache.conf.xml
new file mode 100644 (file)
index 0000000..dc0173f
--- /dev/null
@@ -0,0 +1,6 @@
+<configuration name="memcache.conf" description="memcache Configuration">
+  <settings>
+    <!-- comma sep list of servers: eg:  localhost,otherhost:port,anotherone -->
+    <param name="memcache-servers" value="localhost"/>
+  </settings>
+</configuration>
diff --git a/src/mod/applications/mod_memcache/conf/dialplan/memcache.xml b/src/mod/applications/mod_memcache/conf/dialplan/memcache.xml
new file mode 100644 (file)
index 0000000..4758d0e
--- /dev/null
@@ -0,0 +1,9 @@
+<include>
+       <extension name="memcache_examples">
+               <condition field="destination_number" expression="^memcache$">
+                       <action application="set" data="foo=${memcache(get key)}"/>
+                       <action application="set" data="ignore=${memcache(set key value)}"/>
+                       <action application="set" data="ignore=${memcache(set key ${channel_var})}"/>
+               </condition>
+       </extension>
+</include>
diff --git a/src/mod/applications/mod_mongo/conf/autoload_configs/mongo.conf.xml b/src/mod/applications/mod_mongo/conf/autoload_configs/mongo.conf.xml
new file mode 100644 (file)
index 0000000..8423645
--- /dev/null
@@ -0,0 +1,20 @@
+<configuration name="mongo.conf">
+  <settings>
+    <!-- 
+      connection-string handles different ways to connect to mongo
+      samples:
+         server:port
+         foo/server:port,server:port   SET
+    -->
+    <param name="connection-string" value="127.0.0.1:27017"/>
+    <param name="min-connections" value="10"/>
+    <param name="max-connections" value="100"/>
+
+<!--
+    <param name="map" value="function() { emit(this.a, 1); }"/>
+    <param name="reduce" value="function(key, values) { return Array.sum(values); }"/>
+    <param name="finalize" value="function(key, value) { return value;}"/>
+-->
+
+  </settings>
+</configuration>
diff --git a/src/mod/applications/mod_nibblebill/conf/autoload_configs/nibblebill.conf.xml b/src/mod/applications/mod_nibblebill/conf/autoload_configs/nibblebill.conf.xml
new file mode 100644 (file)
index 0000000..ed1c933
--- /dev/null
@@ -0,0 +1,50 @@
+<configuration name="nibblebill.conf" description="Nibble Billing">
+  <settings>
+    <!-- See http://wiki.freeswitch.org/wiki/Mod_nibblebill for help with these options -->
+
+    <!-- Information for connecting to your database -->
+    <param name="db_username" value="bandwidth.com"/>
+    <param name="db_password" value="password"/>
+    <param name="db_dsn" value="bandwidth.com"/>
+
+    <!-- The database table where your CASH column is located -->
+    <param name="db_table" value="accounts"/>
+
+    <!-- The column name where we store the value of the account -->
+    <param name="db_column_cash" value="cash"/>
+
+    <!-- The column name for the unique ID identifying the account -->
+    <param name="db_column_account" value="id"/>
+
+    <!-- Custom SQL for loading current balance - overrides column names
+         channel vars are interpreted.
+         field nibble_balance is used for balance info
+
+    <param name="custom_sql_lookup" value="SELECT cash AS nibble_balance FROM accounts WHERE account_code='${nibble_account}'"/>
+    -->
+
+    <!-- Custom SQL for loading current balance - overrides column names
+         channel vars are interpreted.
+         nibble_increment is the amount to update
+
+    <param name="custom_sql_save" value="UPDATE accounts SET cash=cash-${nibble_increment} WHERE account_code='${nibble_account}'"/>
+    -->
+
+
+    <!-- Default heartbeat interval. Set to 'off' for no heartbeat (i.e. bill only at end of call) -->
+    <param name="global_heartbeat" value="60"/>
+
+    <!-- By default, warn a caller when their balance is at $5.00. You can set this to a negative number. -->
+    <param name="lowbal_amt" value="5"/>
+    <param name="lowbal_action" value="play ding"/>
+
+    <!-- By default, terminate a caller when their balance hits $0.00. You can set this to a negative number. -->
+    <param name="nobal_amt" value="0"/>
+    <param name="nobal_action" value="hangup"/>
+
+    <!-- If a call goes beyond a certain dollar amount, flag or terminate it -->
+    <param name="percall_max_amt" value="100"/>
+    <param name="percall_action" value="hangup"/>
+
+  </settings>
+</configuration>
diff --git a/src/mod/applications/mod_nibblebill/conf/dialplan/nibblebill.xml b/src/mod/applications/mod_nibblebill/conf/dialplan/nibblebill.xml
new file mode 100644 (file)
index 0000000..3f52093
--- /dev/null
@@ -0,0 +1,27 @@
+<include>
+
+       <extension name="tollfree800">
+               <condition field="destination_number" expression="^1{0,1}(800\d{7})$">
+                       <action application="set" data="nibble_account=${accountcode}"/>
+                       <action application="set" data="nibble_rate=0"/>
+                       <action application="bridge" data="sofia/gateway/bandwidth.com/$1"/>
+               </condition>
+       </extension>
+
+       <extension name="special919rate">
+               <condition field="destination_number" expression="^1{0,1}(919\d{7})$">
+                       <action application="set" data="nibble_account=${accountcode}"/>
+                       <action application="set" data="nibble_rate=0.07"/>
+                       <action application="bridge" data="sofia/gateway/bandwidth.com/$1"/>
+               </condition>
+       </extension>
+
+       <extension name="domestic">
+               <condition field="destination_number" expression="^(1{0,1}\d{10})$">
+                       <action application="set" data="nibble_account=${accountcode}"/>
+                       <action application="set" data="nibble_rate=0.05"/>
+                       <action application="bridge" data="sofia/gateway/bandwidth.com/$1"/>
+               </condition>
+       </extension>
+
+</include>
diff --git a/src/mod/applications/mod_osp/conf/osp.conf.xml b/src/mod/applications/mod_osp/conf/osp.conf.xml
new file mode 100644 (file)
index 0000000..b320dbb
--- /dev/null
@@ -0,0 +1,53 @@
+<configuration name="osp.conf" description="OSP Module Configuration">
+       <settings>
+               <!-- Debug info flag -->
+               <param name="debug-info" value="disabled"/>
+               <!-- Log level for debug info -->
+               <param name="log-level" value="info"/>
+               <!-- Crypto hareware accelerate is disabled by default -->
+               <param name="crypto-hardware" value="disabled"/>
+               <!-- SIP settings -->
+               <param name="sip" module="sofia" profile="external"/>
+               <!-- H.323 settings -->
+               <!-- <param name="h323" module="h323" profile="external"/> -->
+               <!-- IAX settings -->
+               <!-- <param name="iax" module="iax" profile="external"/> -->
+               <!-- Skype settings -->
+               <!-- <param name="skype" module="skypopen" profile="external"/> -->
+               <!-- Default destination protocol -->
+               <param name="default-protocol" value="sip"/>
+       </settings>
+
+       <profiles>
+       <!-- Default OSP profile -->
+               <profile name="default">
+                       <!-- Service point URLs, up to 8 allowed -->
+                       <!-- <param name="service-point-url" value="http://osptestserver.transnexus.com:5045/osp"/> -->
+                       <!-- <param name="service-point-url" value="https://127.0.0.1:1443/osp"/> -->
+                       <param name="service-point-url" value="http://127.0.0.1:5045/osp"/>
+
+                       <!-- FreeSWITCH IP address for OSP -->
+                       <param name="device-ip" value="127.0.0.1:5080"/>
+
+                       <!-- SSL lifetime in seconds -->
+                       <param name="ssl-lifetime" value="300"/>
+                       <!-- HTTP max connections, 1~1000 -->
+                       <param name="http-max-connections" value="20"/>
+                       <!-- HTTP persistence in seconds -->
+                       <param name="http-persistence" value="60"/>
+                       <!-- HTTP retry delay in seconds, 0~10 -->
+                       <param name="http-retry-delay" value="0"/>
+                       <!-- HTTP retry limit, 0~100 -->
+                       <param name="http-retry-limit" value="2"/>
+                       <!-- HTTP timeout in milliseconds, 200~60000 -->
+                       <param name="http-timeout" value="10000"/>
+
+                       <!-- OSP work mode, direct or indirect -->
+                       <param name="work-mode" value="direct"/>
+                       <!-- OSP service type, voice or npquery -->
+                       <param name="service-type" value="voice"/>
+                       <!-- Max number of destinations -->
+                       <param name="max-destinations" value="12"/>
+               </profile>
+       </profiles>
+</configuration>
diff --git a/src/mod/applications/mod_redis/conf/autoload_configs/redis.conf.xml b/src/mod/applications/mod_redis/conf/autoload_configs/redis.conf.xml
new file mode 100644 (file)
index 0000000..1a1f474
--- /dev/null
@@ -0,0 +1,7 @@
+<configuration name="redis.conf" description="mod_redis Configuration">
+  <settings>
+    <param name="host" value="localhost"/>
+    <param name="port" value="6379"/>
+    <param name="timeout" value="10000"/>
+  </settings>
+</configuration>
diff --git a/src/mod/applications/mod_rss/conf/autoload_configs/rss.conf.xml b/src/mod/applications/mod_rss/conf/autoload_configs/rss.conf.xml
new file mode 100644 (file)
index 0000000..f8c4f6d
--- /dev/null
@@ -0,0 +1,7 @@
+<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>
diff --git a/src/mod/applications/mod_rss/conf/dialplan/rss.xml b/src/mod/applications/mod_rss/conf/dialplan/rss.xml
new file mode 100644 (file)
index 0000000..3cd2b17
--- /dev/null
@@ -0,0 +1,7 @@
+<include>
+       <extension name="rss">
+               <condition field="destination_number" expression="^rss$">
+                       <action application="rss"/>
+               </condition>
+       </extension>
+</include>
diff --git a/src/mod/applications/mod_rss/script/news.js b/src/mod/applications/mod_rss/script/news.js
new file mode 100644 (file)
index 0000000..d6dea0d
--- /dev/null
@@ -0,0 +1,12 @@
+if (session.ready()) {
+   session.answer();
+   session.speak("cepstral","David","Please wait while we refresh the RSS feeds.")
+
+   fetchURLFile("http://weather.yahooapis.com/forecastrss?p=60610","rss/weather.rss");
+   fetchURLFile("http://rss.news.yahoo.com/rss/topstories","rss/yahootop.rss");
+   fetchURLFile("http://rss.news.yahoo.com/rss/science","rss/yahoosci.rss");
+   fetchURLFile("http://rss.news.yahoo.com/rss/business","rss/yahoobus.rss");
+   fetchURLFile("http://rss.news.yahoo.com/rss/entertainment","rss/yahooent.rss");
+   fetchURLFile("http://rss.slashdot.org/Slashdot/slashdot","rss/slashdot.rss");
+   fetchURLFile("http://www.freeswitch.org/xml.php","rss/freeswitch.rss");
+}
diff --git a/src/mod/applications/mod_snom/conf/dialplan/snom_demo.xml b/src/mod/applications/mod_snom/conf/dialplan/snom_demo.xml
new file mode 100644 (file)
index 0000000..aac6e8c
--- /dev/null
@@ -0,0 +1,16 @@
+<include>              
+       <extension name="snom-demo-1">
+               <condition field="destination_number" expression="^9000$">
+                       <!-- <key> <light> <label> <user> <host> <profile> <action_name> <action> -->
+                       <action application="eval" data="${snom_bind_key(2 on DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message api+uuid_transfer ${uuid} 9001)}"/>
+                       <action application="playback" data="$${hold_music}"/>
+               </condition>
+       </extension>
+
+       <extension name="snom-demo-2">
+               <condition field="destination_number" expression="^9001$">
+                       <action application="eval" data="${snom_bind_key(2 off DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message notused)}"/>
+                       <action application="transfer" data="3000"/>
+               </condition>
+       </extension>
+</include>
diff --git a/src/mod/applications/mod_spandsp/conf/autoload_configs/spandsp.conf.xml b/src/mod/applications/mod_spandsp/conf/autoload_configs/spandsp.conf.xml
new file mode 100644 (file)
index 0000000..6f062cc
--- /dev/null
@@ -0,0 +1,108 @@
+<configuration name="spandsp.conf" description="SpanDSP config">
+    <modem-settings>
+<!--
+    total-modems set to N will create that many soft-modems.  
+    If you use them with Hylafax you need the following for each one numbered 0..N:
+
+    1) A line like this in /etc/inittab:
+
+      f0:2345:respawn:/usr/lib/fax/faxgetty /dev/FS0
+
+    2) copy conf/config.FS0 to /var/spool/hylafax/etc (or wherver the appropriate dir is on your system)
+
+    Subsequent modem configs would incrment the 0 to 1 and so on.
+
+-->
+      <param name="total-modems" value="0"/>
+
+      <!-- Default context and dialplan to use on inbound calls from the modems -->
+      <param name="context" value="default"/>
+      <param name="dialplan" value="XML"/>
+
+      <!-- Extra tracing for debugging -->
+      <param name="verbose" value="false"/>
+    </modem-settings>
+
+    <fax-settings>
+       <param name="use-ecm"           value="true"/>
+       <param name="verbose"           value="false"/>
+       <param name="disable-v17"       value="false"/>
+       <param name="ident"             value="SpanDSP Fax Ident"/>
+       <param name="header"            value="SpanDSP Fax Header"/>
+
+       <param name="spool-dir"         value="/tmp"/>
+       <param name="file-prefix"       value="faxrx"/>
+    </fax-settings>
+
+    <descriptors>
+
+     <!-- These tones are defined in Annex to ITU Operational Bulletin No. 781 - 1.II.2003 -->
+     <!-- Various Tones Used in National Networks (According to ITU-T Recommendation E.180)(03/1998) -->
+
+     <!-- North America -->
+     <descriptor name="1">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="500" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="950" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="480" freq2="620" min="224" max="272"/>
+         <element freq1="0" freq2="0" min="224" max="272"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="480" freq2="620" min="464" max="516"/>
+         <element freq1="0" freq2="0" min="464" max="516"/>
+       </tone>
+     </descriptor>
+
+     <!-- United Kingdom -->
+     <descriptor name="44">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="500" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="950" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="400" freq2="0" min="368" max="416"/>
+         <element freq1="0" freq2="0" min="336" max="368"/>
+         <element freq1="400" freq2="0" min="256" max="288"/>
+         <element freq1="0" freq2="0" min="512" max="544"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="400" freq2="0" min="352" max="384"/>
+         <element freq1="0" freq2="0" min="352" max="384"/>
+         <element freq1="400" freq2="0" min="352" max="384"/>
+         <element freq1="0" freq2="0" min="352" max="384"/>
+       </tone>
+     </descriptor>
+
+     <!-- Germany -->
+     <descriptor name="49">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="500" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="900" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="425" freq2="0" min="224" max="272"/>
+         <element freq1="0" freq2="0" min="224" max="272"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="425" freq2="0" min="464" max="516"/>
+         <element freq1="0" freq2="0" min="464" max="516"/>
+       </tone>
+     </descriptor>
+   </descriptors>
+
+</configuration>
+
diff --git a/src/mod/applications/mod_spandsp/conf/config.FS0 b/src/mod/applications/mod_spandsp/conf/config.FS0
new file mode 100644 (file)
index 0000000..5310142
--- /dev/null
@@ -0,0 +1,78 @@
+CountryCode:           1
+AreaCode:              800
+FAXNumber:             +1.800.555.1212
+LongDistancePrefix:    1
+InternationalPrefix:   011
+DialStringRules:       etc/dialrules
+ServerTracing:         0xFFF
+SessionTracing:                0xFFF
+RecvFileMode:          0600
+LogFileMode:           0600
+DeviceMode:            0600
+RingsBeforeAnswer:     1
+SpeakerVolume:         off
+GettyArgs:             "-h %l dx_%s"
+LocalIdentifier:       "FS"
+TagLineFont:           etc/lutRS18.pcf
+TagLineFormat:         "From %%l|%c|Page %%P of %%T"
+MaxRecvPages:          200
+#
+#
+# Modem-related stuff: should reflect modem command interface
+# and hardware connection/cabling (e.g. flow control).
+#
+ModemType:             Class1          # use this to supply a hint
+
+#
+# Enabling this will use the hfaxd-protocol to set Caller*ID
+#
+#ModemSetOriginCmd:    AT+VSID="%s","%d"
+
+#
+# If "glare" during initialization becomes a problem then take
+# the modem off-hook during initialization, and then place it
+# back on-hook when done.
+#
+#ModemResetCmds:       "ATH1\nAT+VCID=1"       # enables CallID display
+#ModemReadyCmds:       ATH0
+
+Class1AdaptRecvCmd:    AT+FAR=1
+Class1TMConnectDelay:  400             # counteract quick CONNECT response
+
+#
+# If you have trouble with V.17 receiving or sending,
+# you may want to enable one of these, respectively.
+#
+#Class1RMQueryCmd:      "!24,48,72,96"  # enable this to disable V.17 receiving
+#Class1TMQueryCmd:      "!24,48,72,96"  # enable this to disable V.17 sending
+
+#
+# You'll likely want Caller*ID display (also displays DID) enabled.
+#
+ModemResetCmds:                AT+VCID=1       # enables CallID display
+
+#
+# The pty does not support changing parity.
+#
+PagerTTYParity:                none
+
+#
+# If you are "missing" Caller*ID data on some calls (but not all)
+# and if you do not have adequate glare protection you may want to
+# not answer based on RINGs, but rather enable the CallIDAnswerLength
+# for NDID, disable AT+VCID=1 and do this:
+#
+#RingsBeforeAnswer: 0
+#ModemRingResponse: AT+VRID=1
+
+# Uncomment DATE and TIME if you really want them, but you probably don't.
+#CallIDPattern:          "DATE="
+#CallIDPattern:          "TIME="
+CallIDPattern:          "NMBR="
+CallIDPattern:          "NAME="
+CallIDPattern:         "ANID="
+#CallIDPattern:          "USER="       # username provided by call
+#CallIDPattern:          "PASS="       # password provided by call
+#CallIDPattern:          "CDID="       # DID context in call
+CallIDPattern:          "NDID="
+#CallIDAnswerLength:   4
diff --git a/src/mod/applications/mod_spandsp/conf/dialplan/spandsp.xml b/src/mod/applications/mod_spandsp/conf/dialplan/spandsp.xml
new file mode 100644 (file)
index 0000000..1bff1b7
--- /dev/null
@@ -0,0 +1,26 @@
+    <extension name="fax_receive">
+      <condition field="destination_number" expression="^9178$">
+        <action application="answer" />
+        <action application="playback" data="silence_stream://2000"/>
+        <action application="rxfax" data="/tmp/rxfax.tif"/>
+        <action application="hangup"/>
+      </condition>
+    </extension>
+
+    <extension name="fax_transmit">
+      <condition field="destination_number" expression="^9179$">
+        <action application="txfax" data="/tmp/txfax.tif"/>
+        <action application="hangup"/>
+      </condition>
+    </extension>
+
+    <extension name="fax_receive">
+      <condition field="destination_number" expression="^9978$">
+        <action application="answer" />
+        <action application="playback" data="silence_stream://2000"/>
+        <action application="set" data="fax_enable_t38_request=true"/>
+        <action application="set" data="fax_enable_t38=true"/>
+        <action application="rxfax" data="/tmp/FAX-${uuid}.tif"/>
+        <action application="hangup"/>
+      </condition>
+    </extension>
diff --git a/src/mod/applications/mod_valet_parking/conf/dialplan/valet_parking.xml b/src/mod/applications/mod_valet_parking/conf/dialplan/valet_parking.xml
new file mode 100644 (file)
index 0000000..4767a33
--- /dev/null
@@ -0,0 +1,24 @@
+<include>
+    <!--
+         Valet park retrieval, works with valet_park extension below.
+         Retrieve a valet parked call by dialing 6000 + park number + #
+    -->
+    <extension name="valet_park">
+      <condition field="destination_number" expression="^(6000)$">
+        <action application="answer"/>
+        <action application="valet_park" data="valet_parking_lot ask 1 11 10000 ivr/ivr-enter_ext_pound.wav"/>
+      </condition>
+    </extension>
+
+    <!--
+         Valet park 6001-6099.  Blind x-fer to 6001, 6002, etc. to valet park the call.
+         Dial 6001, 6002, etc. to retrieve a call that is already valet parked.
+         After call is retrieved, park extension is free for another call.
+    -->
+    <extension name="valet_park">
+      <condition field="destination_number" expression="^(60\d[1-9])$">
+        <action application="answer"/>
+        <action application="valet_park" data="valet_parking_lot $1"/>
+      </condition>
+    </extension>
+</include>
diff --git a/src/mod/applications/mod_vmd/conf/dialplan/vmd.xml b/src/mod/applications/mod_vmd/conf/dialplan/vmd.xml
new file mode 100644 (file)
index 0000000..fee36f5
--- /dev/null
@@ -0,0 +1,12 @@
+<include>
+       <extension name="vmdtest">
+               <condition field="destination_number" expression="^vmd(\d{10})$">
+                       <action application="answer"/>
+                       <action application="info"/>
+                       <action application="vmd"/>
+                       <action application="sleep" data="25000"/>
+                       <action application="info"/> <!-- Look for chan var "vmd_detect" here -->
+                       <action application="hangup"/>
+               </condition>
+       </extension>
+</include>
diff --git a/src/mod/applications/mod_vmd/scripts/vmd.js b/src/mod/applications/mod_vmd/scripts/vmd.js
new file mode 100644 (file)
index 0000000..7f7e5d2
--- /dev/null
@@ -0,0 +1,27 @@
+function onInput(s, type, obj, arg)
+{
+       try
+       {
+               if(type == "dtmf")
+               {
+                       console_log("info", "DTMF digit: "+s.name+" ["+obj.digit+"] len ["+obj.duration+"]\n");
+               }
+               else if(type == "event" && session.getVariable("vmd_detect") == "TRUE")
+               {
+                       console_log("info", "Voicemail Detected\n");
+               }
+               
+       }
+       catch(e)
+       {
+               console_log("err", e + "\n");
+       }
+       return true;
+}
+
+session.answer();
+session.execute("vmd", "start");
+while(session.ready())
+{
+       session.streamFile(argv[0], onInput);
+}
diff --git a/src/mod/applications/mod_vmd/scripts/vmd.lua b/src/mod/applications/mod_vmd/scripts/vmd.lua
new file mode 100644 (file)
index 0000000..ca6a9f8
--- /dev/null
@@ -0,0 +1,17 @@
+local human_detected = false;
+local voicemail_detected = false;
+
+function onInput(session, type, obj)
+    if type == "dtmf" and obj['digit'] == '1' and human_detected == false then
+        human_detected = true;
+        return "break";
+    end
+
+    if type == "event" and voicemail_detected == false then
+        voicemail_detected = true;
+        return "break";
+    end
+end
+
+session:setInputCallback("onInput");
+session:execute("vmd","start");
diff --git a/src/mod/applications/mod_voicemail/conf/autoload_configs/voicemail.conf.xml b/src/mod/applications/mod_voicemail/conf/autoload_configs/voicemail.conf.xml
new file mode 100644 (file)
index 0000000..ff46836
--- /dev/null
@@ -0,0 +1,70 @@
+<configuration name="voicemail.conf" description="Voicemail">
+  <settings>
+  </settings>
+  <profiles>
+    <profile name="default">
+      <param name="file-extension" value="wav"/>
+      <param name="terminator-key" value="#"/>
+      <param name="max-login-attempts" value="3"/>
+      <param name="digit-timeout" value="10000"/>
+      <param name="min-record-len" value="3"/>
+      <param name="max-record-len" value="300"/>
+      <param name="max-retries" value="3"/>
+      <param name="tone-spec" value="%(1000, 0, 640)"/>
+      <param name="callback-dialplan" value="XML"/>
+      <param name="callback-context" value="default"/>
+      <param name="play-new-messages-key" value="1"/>
+      <param name="play-saved-messages-key" value="2"/>
+      <param name="login-keys" value="0"/>
+      <param name="main-menu-key" value="0"/>
+      <param name="config-menu-key" value="5"/>
+      <param name="record-greeting-key" value="1"/>
+      <param name="choose-greeting-key" value="2"/>
+      <param name="change-pass-key" value="6"/>
+      <param name="record-name-key" value="3"/>
+      <param name="record-file-key" value="3"/>
+      <param name="listen-file-key" value="1"/>
+      <param name="save-file-key" value="2"/>
+      <param name="delete-file-key" value="7"/>
+      <param name="undelete-file-key" value="8"/>
+      <param name="email-key" value="4"/>
+      <param name="pause-key" value="0"/>
+      <param name="restart-key" value="1"/>
+      <param name="ff-key" value="6"/>
+      <param name="rew-key" value="4"/>
+      <param name="skip-greet-key" value="#"/>
+      <param name="previous-message-key" value="1"/>
+      <param name="next-message-key" value="3"/>
+      <param name="skip-info-key" value="*"/>
+      <param name="repeat-message-key" value="0"/>
+      <param name="record-silence-threshold" value="200"/>
+      <param name="record-silence-hits" value="2"/>
+      <param name="web-template-file" value="web-vm.tpl"/>
+      <param name="db-password-override" value="false"/>
+      <param name="allow-empty-password-auth" value="true"/>
+      <!-- if you need to change the sample rate of the recorded files e.g. gmail voicemail player -->
+      <!--<param name="record-sample-rate" value="11025"/>-->
+      <!-- the next two both must be set for this to be enabled
+           the extension is in the format of <dest> [<dialplan>] [<context>]
+       -->
+      <param name="operator-extension" value="operator XML default"/>
+      <param name="operator-key" value="9"/>
+      <param name="vmain-extension" value="vmain XML default"/>
+      <param name="vmain-key" value="*"/>
+      <!-- playback created files as soon as they were recorded by default -->
+      <!--<param name="auto-playback-recordings" value="true"/>-->
+      <email>
+       <param name="template-file" value="voicemail.tpl"/>
+       <param name="notify-template-file" value="notify-voicemail.tpl"/>
+       <!-- this is the format voicemail_time will have -->
+        <param name="date-fmt" value="%A, %B %d %Y, %I %M %p"/>
+        <param name="email-from" value="${voicemail_account}@${voicemail_domain}"/>
+      </email>
+      <!--<param name="storage-dir" value="/tmp"/>-->
+      <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+      <!--<param name="record-comment" value="Your Comment"/>-->
+      <!--<param name="record-title" value="Your Title"/>-->
+      <!--<param name="record-copyright" value="Your Copyright"/>-->
+    </profile>
+  </profiles>
+</configuration> 
diff --git a/src/mod/applications/mod_voicemail/conf/dialplan/voicemail.xml b/src/mod/applications/mod_voicemail/conf/dialplan/voicemail.xml
new file mode 100644 (file)
index 0000000..bb2991e
--- /dev/null
@@ -0,0 +1,20 @@
+<include>
+       <!-- This is a _VERY_ abbreviated demo for voicemail. A better demo would be useful -->
+
+       <!-- voicemail main extension -->
+       <extension name="vmain">
+               <condition field="destination_number" expression="^vmain$|^4000$|^\*98$">
+                       <action application="answer"/>
+                       <action application="sleep" data="1000"/>
+                       <action application="voicemail" data="check default ${domain_name}"/>
+               </condition>
+       </extension>
+
+       <extension name="Local_Voicemail">
+               <condition field="destination_number" expression="^(10[01][0-9])$">
+                       <action application="export" data="dialed_extension=$1"/>
+                       <action application="export" data="domain=default"/>
+                       <action application="bridge" data="loopback/app=voicemail:default ${domain_name} ${dialed_extension}"/>
+               </condition>
+       </extension>
+</include>
diff --git a/src/mod/applications/mod_voicemail/conf/notify-voicemail.tpl b/src/mod/applications/mod_voicemail/conf/notify-voicemail.tpl
new file mode 100644 (file)
index 0000000..365faa2
--- /dev/null
@@ -0,0 +1,44 @@
+From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}>
+Date: ${RFC2822_DATE}
+To: <${voicemail_notify_email}>
+Subject: Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}
+X-Priority: ${voicemail_priority}
+X-Mailer: FreeSWITCH
+
+Content-Type: multipart/alternative; 
+       boundary="000XXX000"
+
+--000XXX000
+Content-Type: text/plain; charset=ISO-8859-1; Format=Flowed
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+Created: ${voicemail_time}
+From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}>
+Duration: ${voicemail_message_len}
+Account: ${voicemail_account}@${voicemail_domain}
+
+--000XXX000
+Content-Type: text/html; charset=ISO-8859-1
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}</title>
+<meta content="text/html; charset=iso-8859-1" http-equiv="content-type"/>
+</head>
+<body>
+
+<font face=arial>
+<b>Message From "${voicemail_caller_id_name}" <A HREF="tel:${voicemail_caller_id_number}">${voicemail_caller_id_number}</A></b><br>
+<hr noshade size=1>
+Created: ${voicemail_time}<br>
+Duration: ${voicemail_message_len}<br>
+Account: ${voicemail_account}@${voicemail_domain}<br>
+</font>
+
+</body>
+</html>
+--000XXX000--
diff --git a/src/mod/applications/mod_voicemail/conf/voicemail.tpl b/src/mod/applications/mod_voicemail/conf/voicemail.tpl
new file mode 100644 (file)
index 0000000..2774b78
--- /dev/null
@@ -0,0 +1,44 @@
+From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}>
+Date: ${RFC2822_DATE}
+To: <${voicemail_email}>
+Subject: Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}
+X-Priority: ${voicemail_priority}
+X-Mailer: FreeSWITCH
+
+Content-Type: multipart/alternative; 
+       boundary="000XXX000"
+
+--000XXX000
+Content-Type: text/plain; charset=ISO-8859-1; Format=Flowed
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+Created: ${voicemail_time}
+From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}>
+Duration: ${voicemail_message_len}
+Account: ${voicemail_account}@${voicemail_domain}
+
+--000XXX000
+Content-Type: text/html; charset=ISO-8859-1
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}</title>
+<meta content="text/html; charset=iso-8859-1" http-equiv="content-type"/>
+</head>
+<body>
+
+<font face=arial>
+<b>Message From "${voicemail_caller_id_name}" <A HREF="tel:${voicemail_caller_id_number}">${voicemail_caller_id_number}</A></b><br>
+<hr noshade size=1>
+Created: ${voicemail_time}<br>
+Duration: ${voicemail_message_len}<br>
+Account: ${voicemail_account}@${voicemail_domain}<br>
+</font>
+
+</body>
+</html>
+--000XXX000--
diff --git a/src/mod/applications/mod_voicemail_ivr/conf/autoload_configs/voicemail_ivr.conf.xml b/src/mod/applications/mod_voicemail_ivr/conf/autoload_configs/voicemail_ivr.conf.xml
new file mode 100644 (file)
index 0000000..529509a
--- /dev/null
@@ -0,0 +1,208 @@
+<configuration name="voicemail_ivr.conf" description="Voicemail IVR">
+<profiles>
+       <profile name="default">
+               <settings>
+                       <param name="IVR-Maximum-Attempts" value="3" />
+                       <param name="IVR-Entry-Timeout" value="3000" />
+                       <param name="Record-Format" value="wav" />
+                       <!--<param name="Record-Sample-Rate" value="8000" />-->
+                       <param name="Record-Silence-Hits" value="4" />
+                       <param name="Record-Silence-Threshold" value="200" />
+                       <param name="Record-Maximum-Length" value="30" />
+                       <!--<param name="Record-Minimum-Length" value="3" />-->
+                       <param name="Exit-Purge" value="true" />
+                       <param name="Password-Mask" value="XXX." />
+                       <param name="User-Mask" value="X." />
+
+               </settings>
+               <apis>
+                       <api name="auth_login" value="vm_fsdb_auth_login" />
+                       <api name="msg_list" value="vm_fsdb_msg_list" />
+                       <api name="msg_count" value="vm_fsdb_msg_count" />
+                       <api name="msg_delete" value="vm_fsdb_msg_delete" />
+                       <api name="msg_undelete" value="vm_fsdb_msg_undelete" />
+                       <api name="msg_save" value="vm_fsdb_msg_save" />
+                       <api name="msg_purge" value="vm_fsdb_msg_purge" />
+                       <api name="msg_get" value="vm_fsdb_msg_get" />
+                       <api name="msg_forward" value="vm_fsdb_msg_forward" />
+                       <api name="pref_greeting_set" value="vm_fsdb_pref_greeting_set" />
+                       <api name="pref_recname_set" value="vm_fsdb_pref_recname_set" />
+                       <api name="pref_password_set" value="vm_fsdb_pref_password_set" />
+               </apis>
+               <menus>
+                       <menu name="std_authenticate">
+                       <phrases>
+                               <phrase name="fail_auth" value="fail_auth@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                       </keys>
+                       </menu>
+
+                       <menu name="std_authenticate_ask_user">
+                       <phrases>
+                               <phrase name="instructions" value="enter_id@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_authenticate_ask_password">
+                       <phrases>
+                               <phrase name="instructions" value="enter_pass@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_main_menu">
+                       <phrases>
+                               <phrase name="msg_count" value="message_count@mtvoicemail" />
+                               <phrase name="say_date" value="say_date_event@mtvoicemail" />
+                               <phrase name="say_msg_number" value="say_message_number@mtvoicemail" />
+                               <phrase name="menu_options" value="menu@mtvoicemail" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="new_msg:std_navigator" variable="VM-Key-Play-New-Messages" />
+                               <key dtmf="2" action="saved_msg:std_navigator" variable="VM-Key-Play-Saved-Messages" />
+                               <key dtmf="5" action="menu:std_preference" variable="VM-Key-Config-Menu"/>
+                               <key dtmf="#" action="return" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_navigator">
+                       <settings>
+                               <!--<param name="Nav-Action-On-Delete" value="next_msg" />-->
+                       </settings>
+                       <phrases>
+                               <phrase name="msg_count" value="message_count@voicemail_ivr" />
+                               <phrase name="say_date" value="say_date_event@voicemail_ivr" />
+                               <phrase name="say_msg_number" value="say_message_number@voicemail_ivr" />
+                               <phrase name="menu_options" value="listen_file_check@voicemail_ivr" />
+                               <phrase name="ack" value="ack@voicemail_ivr" />
+                               <phrase name="play_message" value="play_message@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="skip_intro" variable="VM-Key-Main-Listen-File" />
+                               <key dtmf="6" action="next_msg" variable="VM-Key-Main-Next-Msg" />
+                               <key dtmf="4" action="prev_msg" />
+                               <key dtmf="7" action="delete_msg" variable="VM-Key-Main-Delete-File" /> <!-- Same key for undelete if it already deleted -->
+                               <key dtmf="8" action="menu:std_forward" variable="VM-Key-Main-Forward" />
+                               <key dtmf="3" action="save_msg" variable="VM-Key-Main-Save-File" />
+                               <key dtmf="2" action="callback" variable="VM-Key-Main-Callback" />
+                               <key dtmf="5" action="menu:std_preference" />
+                               <key dtmf="#" action="return" /> <!-- TODO Might Conflict with future fast-forward -->
+                       </keys>
+                       </menu>
+
+                       <menu name="std_preference">
+                       <phrases>
+                               <phrase name="menu_options" value="config_menu@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="menu:std_record_greeting_with_slot" variable="VM-Key-Record-Greeting" />
+                               <key dtmf="2" action="menu:std_select_greeting_slot" variable="VM-Key-Choose-Greeting" />
+                               <key dtmf="3" action="menu:std_record_name" variable="VM-Key-Record-Name" />
+                               <key dtmf="6" action="menu:std_set_password" variable="VM-Key-Change-Password" />
+                               <key dtmf="#" action="return" variable="VM-Key-Main-Menu" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_record_greeting">
+                       <phrases>
+                               <phrase name="instructions" value="record_greeting@voicemail_ivr" />
+                               <phrase name="play_recording" value="play_recording@voicemail_ivr" />
+                               <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+                               <key dtmf="3" action="save" variable="VM-Key-Save-File" />
+                               <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+                               <key dtmf="#" action="skip_instruction" />
+                       </keys>
+                       </menu>
+
+
+                       <menu name="std_record_name">
+                       <phrases>
+                               <phrase name="instructions" value="record_name@voicemail_ivr" />
+                               <phrase name="play_recording" value="play_recording@voicemail_ivr" />
+                               <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+                               <key dtmf="3" action="save" variable="VM-Key-Save-File" />
+                               <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+                               <key dtmf="#" action="skip_instruction" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_record_message">
+                       <phrases>
+                               <phrase name="instructions" value="record_message@voicemail_ivr" />
+                               <phrase name="play_recording" value="play_recording@voicemail_ivr" />
+                               <phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+                               <key dtmf="3" action="save" variable="VM-Key-Save-File" />
+                               <key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+                               <key dtmf="#" action="skip_instruction" />
+                       </keys>
+                       </menu>                 
+
+                       <menu name="std_forward_ask_prepend">
+                       <phrases>
+                               <phrase name="menu_options" value="forward_ask_prepend@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="1" action="prepend" variable="VM-Key-Prepend" />
+                               <key dtmf="8" action="forward" variable="VM-Key-Forward" />
+                               <key dtmf="#" action="return" variable="VM-Key-Return" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_forward_ask_extension">
+                       <phrases>
+                               <phrase name="instructions" value="forward_ask_extension@voicemail_ivr" />
+                               <phrase name="ack" value="ack@voicemail_ivr" />
+                               <phrase name="invalid_extension" value="invalid_extension@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+
+                       <menu name="std_select_greeting_slot">
+                       <phrases>
+                               <phrase name="instructions" value="choose_greeting@voicemail_ivr" />
+                               <phrase name="invalid_slot" value="choose_greeting_fail@voicemail_ivr" />
+                               <phrase name="selected_slot" value="greeting_selected@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                       </keys>
+                       </menu>
+
+                       <menu name="std_record_greeting_with_slot">
+                       <phrases>
+                               <phrase name="instructions" value="choose_greeting@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                       </keys>
+                       </menu>
+
+                       <menu name="std_set_password">
+                       <phrases>
+                               <phrase name="instructions" value="enter_pass@voicemail_ivr" />
+                       </phrases>
+                       <keys>
+                               <key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+                       </keys>
+                       </menu>
+               </menus>
+       </profile>
+</profiles>
+</configuration>
+
+
diff --git a/src/mod/asr_tts/mod_cepstral/conf/cepstral.conf.xml b/src/mod/asr_tts/mod_cepstral/conf/cepstral.conf.xml
new file mode 100644 (file)
index 0000000..cf4aa92
--- /dev/null
@@ -0,0 +1,12 @@
+<configuration name="cepstral.conf" description="Cepstral TTS configuration">\r
+  <settings>\r
+    <!--\r
+        Possible encodings:\r
+        * utf-8\r
+        * us-ascii\r
+        * iso8859-1 (default)\r
+        * iso8859-15\r
+    -->\r
+    <param name="encoding" value="utf-8"/>\r
+  </settings>\r
+</configuration>
\ No newline at end of file
diff --git a/src/mod/dialplans/mod_dialplan_asterisk/conf/extensions.conf b/src/mod/dialplans/mod_dialplan_asterisk/conf/extensions.conf
new file mode 100644 (file)
index 0000000..f2c922e
--- /dev/null
@@ -0,0 +1,21 @@
+[default]
+
+; Things you're used to....
+exten => music,n,Dial(SIP/1234@conference.freeswitch.org|120)
+
+exten => _1XXXXX,n,set(cool=${EXTEN})
+exten => _1XXXXX,n,set(myvar=true)
+exten => _1XXXXX,n,Goto(default|music)
+exten => 2137991400/1000,n,Goto(default|music)
+
+
+; Some new magic you can do....
+exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,enum($1)
+exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,bridge(${enum_auto_route})
+
+; instead of exten, put anything about the call you would rather match on.
+; either the names of a field in caller_profile or a string of variables to expand.
+caller_id_number => 2137991400,n,Goto(default|music) 
+${sip_from_user} => bill,n,Goto(default|music)
+
+
diff --git a/src/mod/endpoints/mod_alsa/conf/autoload_configs/alsa.conf.xml b/src/mod/endpoints/mod_alsa/conf/autoload_configs/alsa.conf.xml
new file mode 100644 (file)
index 0000000..e589aca
--- /dev/null
@@ -0,0 +1,12 @@
+<configuration name="alsa.conf" description="Soundcard Endpoint">
+  <settings>
+    <!--Default dialplan and caller-id info -->
+    <param name="dialplan" value="XML"/>
+    <param name="cid-name" value="N800 Alsa"/>
+    <param name="cid-num" value="5555551212"/>
+
+    <!--audio sample rate and interval -->
+    <param name="sample-rate" value="8000"/>
+    <param name="codec-ms" value="20"/>
+  </settings>
+</configuration>
diff --git a/src/mod/endpoints/mod_portaudio/conf/autoload_configs/portaudio.conf.xml b/src/mod/endpoints/mod_portaudio/conf/autoload_configs/portaudio.conf.xml
new file mode 100644 (file)
index 0000000..02c21ef
--- /dev/null
@@ -0,0 +1,218 @@
+<configuration name="portaudio.conf" description="Soundcard Endpoint">
+  <settings>
+    <!-- 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"/>-->
+    <!--Enable or Disable dual_streams-->
+    <!--<param name="dual-streams" value="true"/>-->
+
+    <!--file to play when calls are on hold-->
+    <param name="hold-file" value="$${hold_music}"/>
+    <!--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="$${outbound_caller_name}"/>
+    <param name="cid-num" value="$${outbound_caller_id}"/>
+
+    <!--audio sample rate and interval -->
+    <param name="sample-rate" value="48000"/>
+    <param name="codec-ms" value="20"/>
+  </settings>
+
+  <!-- 
+       mod_portaudio "streams"
+
+       The portaudio streams were introduced to support multiple devices and multiple channels in mod_portaudio.
+       For example, if you have a sound card that supports multiple channels or have multiple sound cards and you
+       want to use them at the same time, you can do it configuring streams and endpoints here.
+
+       A "stream" is just a logical container for some settings required by portaudio in order to stream audio and
+       define a friendly name for that configuration. Streams in itself do not do anything else than contain configs. 
+       Once you have your streams defined you can proceed to define "endpoints". Go to the "<endpoints>" section 
+       for more information on endpoints.
+
+       You can use the command "pa shstreams" (portaudio shared streams) to show the configured streams.
+  -->
+  <streams>
+       <!--
+       In this example we define 2 streams, one for a usb audio device and another for the usual Mac defaults
+       The name="" attribute in the <stream> tag must uniquely identify the stream configuration and can be
+       later used when creating endpoints in the "instream" and "outstream" parameters of the endpoint.
+       -->
+
+       <!-- This sample "usb1" configuration was tested with a USB Griffin iMic device -->
+       <stream name="usb1">
+               <!-- 
+                       Which device to use for input in this stream 
+                       The value for this parameter must be either in the form '#devno', 
+                       for example '#2' for device number 2, or 'device-name', like 'iMic USB audio system'
+                       The output of command "pa devlist" will show you device names and numbers as enumerated
+                       by portaudio.
+               -->
+               <param name="indev" value="#2" />
+
+               <!-- 
+                       Same as the indev but for output. In this case the device is capable of input and output
+                       Some devices are capable of input only or output only (see the default example)
+               -->
+               <param name="outdev" value="#2" />
+
+               <!-- The sample rate to use for this stream -->
+               <param name="sample-rate" value="48000" />
+
+               <!-- 
+                       Size of the packets in milliseconds. The smaller the number the less latency you'll have
+                       The minimum value is 10ms 
+               -->
+               <param name="codec-ms" value="10" />
+
+               <!-- 
+                       How many channels to open for this stream.
+                       If you're device is stereo, you can choose 2 here. However, bear in mind that then
+                       your left and right channels will be separated and when creating endpoints you will have
+                       to either choose the left or right channel. This may or may not be what you want. This separation
+                       means that you can have 2 separate FreeSWITCH calls, listening to one of them in your left channel
+                       and the other in the right chanel.
+               -->
+               <param name="channels" value="2" />
+       </stream>
+
+       <!-- This default stream was tested using the default Macbook Pro input/output devices -->
+       <stream name="default">
+               <!-- The default system input device -->
+               <param name="indev" value="#0" />
+               <!-- The default system output device -->
+               <param name="outdev" value="#1" />
+               <!-- CD quality sampling rate ftw -->
+               <param name="sample-rate" value="48000" />
+               <!-- Low latency -->
+               <param name="codec-ms" value="10" />
+               <!-- Choosing 1 channel allows to hear in both left-right channel when using a headset -->
+               <param name="channels" value="1" />
+       </stream>
+  </streams>
+
+  <!-- 
+       mod_portaudio "endpoints"
+
+       Endpoints is a way to define the input and output that a given portaudio channel will use.
+       There is a lot of flexibility. You can create endpoints which are "send-only", which means
+       audio will be read from FreeSWITCH and sent down to the provided stream, but no audio will
+       be read from that stream and only silence provided back to FreeSWITCH.
+
+               send-only endpoint:
+                       (FS CORE) ->-> audio ->-> sound-card-x
+
+       You can also create a read-only endpoint.
+
+               read-only-endpoint:
+                       (FS CORE) <-<- audio <-<- sound-card-x
+
+       And of course you can create a bidirectional endpoint:
+               bidirectional-endpoint:
+                       (FS CORE) <-> audio <-> sound-card-x
+
+       You can also define a stream which uses only the left or only the right channel of a given device stream.
+       This means you can have 2 SIP calls connected to the same device haring one call in your left ear and
+       the other call to your right ear :-)
+
+       The name="parameter" of the endpoint allows you to use it in the FreeSWITCH dial plan to dial, ie:
+
+       <action application="bridge" data="portaudio/endpoint/usb1out-left" />
+
+       You can use the command "pa endpoints" to show the configured endpoints.
+  -->
+  <endpoints>
+
+       <!-- 
+               An endpoint is a handle name to refer to a configuration that determines where to read media from 
+               and write media to. The endpoint can use any input/output stream combination for that purpose as 
+               long as the streams match the sampling rate and codec-ms (see <streams> XML tag).
+               You can also omit the instream or the outstream parameter (but obviously not both).
+       -->
+
+       <!-- 
+               Configuration for a "default" bidirectional endpoint that uses the default stream defined previously in
+               the <streams> section.
+        -->
+       <endpoint name="default">
+               <!-- 
+                       The instream, outstream is the name of the stream and channel to use. The stream
+                       name is the same you configured in the <streams> section. This parameters follow 
+                       the syntax <stream-name>:<channel index>. You can omit either the outstream
+                       or the instream, but not both! The channel index is zero-based and must be consistent 
+                       with the number of channels available for that stream (as configured in the <stream> section).
+                       You cannot use index 1 if you chose channels=1 in the stream configuration.
+               -->
+               <param name="instream" value="default:0" />
+               <param name="outstream" value="default:0" />
+       </endpoint>
+
+       <!-- 
+               This endpoint uses the USB stream defined previously in the <streams> section and
+               is 'send-only' or 'output-only' and uses the channel index 0 (left channel in a stereo device) 
+       -->
+       <endpoint name="usb1out-left">
+               <param name="outstream" value="usb1:0" />
+       </endpoint>
+
+       <!-- 
+               This endpoint uses the USB stream defined previously in the <streams> section and
+               is 'send-only' or 'output-only' and uses the channel index 1 (right channel in a stereo device) 
+       -->
+       <endpoint name="usb1out-right">
+               <param name="outstream" value="usb1:1" />
+       </endpoint>
+
+       <!-- 
+               This endpoint uses the USB stream defined previously in the <streams> section and
+               is 'receive-only' or 'input-only' and uses the channel index 0 (left channel in a stereo device) 
+       -->
+       <endpoint name="usb1in-left">
+               <param name="instream" value="usb1:0" />
+       </endpoint>
+
+       <!-- 
+               This endpoint uses the USB stream defined previously in the <streams> section and
+               is 'receive-only' or 'input-only' and uses the channel index 1 (right channel in a stereo device) 
+       -->
+       <endpoint name="usb1in-right">
+               <param name="instream" value="usb1:1" />
+       </endpoint>
+
+       <!-- 
+               This endpoint uses the USB stream defined previously in the <streams> section and
+               is 'bidirectional' or 'send-receive' and uses the channel index 0 (left channel in a stereo device) 
+       -->
+       <endpoint name="usb1-left">
+               <param name="instream" value="usb1:0" />
+               <param name="outstream" value="usb1:0" />
+       </endpoint>
+
+       <!-- 
+               This endpoint uses the USB stream defined previously in the <streams> section and
+               is 'bidirectional' or 'send-receive' and uses the channel index 1 (right channel in a stereo device) 
+       -->
+       <endpoint name="usb1-right">
+               <param name="instream" value="usb1:1" />
+               <param name="outstream" value="usb1:1" />
+       </endpoint>
+
+  </endpoints>
+
+</configuration>
+
diff --git a/src/mod/endpoints/mod_rtmp/conf/autoload_configs/rtmp.conf.xml b/src/mod/endpoints/mod_rtmp/conf/autoload_configs/rtmp.conf.xml
new file mode 100644 (file)
index 0000000..d5d2788
--- /dev/null
@@ -0,0 +1,17 @@
+<configuration name="rtmp.conf" description="RTMP Endpoint">
+  <profiles>
+       <profile name="default">
+               <settings>
+                       <param name="bind-address" value="0.0.0.0:1935" />
+                       <param name="context" value="public" />
+                       <param name="dialplan" value="XML" />
+                       <!-- If this is set to true, no unauthenticated inbound calls will be allowed -->
+                       <param name="auth-calls" value="true" />
+                       <!-- How much time should the clients buffer the media stream (miliseconds) -->
+                       <param name="buffer-len" value="50" />
+                       <!-- Sets the maximum size of outbound RTMP chunks -->
+                       <param name="chunksize" value="512" />
+               </settings>
+       </profile>
+  </profiles>
+</configuration>
diff --git a/src/mod/endpoints/mod_skinny/conf/autoload_configs/skinny.conf.xml b/src/mod/endpoints/mod_skinny/conf/autoload_configs/skinny.conf.xml
new file mode 100644 (file)
index 0000000..6a878fc
--- /dev/null
@@ -0,0 +1,6 @@
+<configuration name="skinny.conf" description="Skinny Endpoints">
+  <profiles>
+    <X-PRE-PROCESS cmd="include" data="../skinny_profiles/*.xml"/>
+  </profiles>
+</configuration>
+
diff --git a/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns.xml b/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns.xml
new file mode 100644 (file)
index 0000000..9f5786d
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    NOTICE:
+
+    This context is used for skinny to match dialed number
+
+    The special applications:
+    - skinny-process tells skinny to process the call (route, set call forwarding, ...)
+    - skinny-drop tells skinny to drop the call
+    - skinny-wait tells skinny to wait 'data' seconds for more numbers before drop
+-->
+<!-- http://wiki.freeswitch.org/wiki/Mod_skinny -->
+<include>
+  <context name="skinny-patterns">
+    <!--
+    Wait 10 seconds for another digit by default
+    -->
+    <extension name="Default">
+      <condition>
+        <action application="skinny-wait" data="10"/>
+      </condition>
+    </extension>
+
+    <!--
+       You can place files in the skinny-patterns directory to get included.
+    -->
+    <X-PRE-PROCESS cmd="include" data="skinny-patterns/*.xml"/>
+    
+  </context>
+</include>
diff --git a/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/20-Demo.xml b/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/20-Demo.xml
new file mode 100644 (file)
index 0000000..f696581
--- /dev/null
@@ -0,0 +1,8 @@
+<include>
+  <extension name="Demo">
+    <condition field="destination_number" expression="^(9[0-9]{3})$">
+      <action application="skinny-process"/>
+    </condition>
+  </extension>
+</include>
+
diff --git a/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/20-Local_extension.xml b/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/20-Local_extension.xml
new file mode 100644 (file)
index 0000000..9ad5651
--- /dev/null
@@ -0,0 +1,13 @@
+<include>
+  <extension name="Local_Extension">
+    <condition field="destination_number" expression="^(10[01][0-9])$">
+      <action application="skinny-process"/>
+    </condition>
+  </extension>
+  <extension name="Local_Extension_Skinny">
+    <condition field="destination_number" expression="^(11[01][0-9])$">
+      <action application="skinny-process"/>
+    </condition>
+  </extension>
+</include>
+
diff --git a/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/90-External.xml b/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/90-External.xml
new file mode 100644 (file)
index 0000000..50d6c37
--- /dev/null
@@ -0,0 +1,8 @@
+<include>
+  <extension name="External">
+    <condition field="destination_number" expression="^(0[0-9]{10,})$">
+      <action application="skinny-process"/>
+    </condition>
+  </extension>
+</include>
+
diff --git a/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/99-Default_Drop.xml b/src/mod/endpoints/mod_skinny/conf/dialplan/skinny-patterns/99-Default_Drop.xml
new file mode 100644 (file)
index 0000000..897fd8f
--- /dev/null
@@ -0,0 +1,9 @@
+<include>
+  <!-- drop long dialed number -->
+  <extension name="Default_Drop">
+    <condition field="destination_number" expression="^(.{14,})$">
+      <action application="skinny-drop"/>
+    </condition>
+  </extension>
+</include>
+
diff --git a/src/mod/endpoints/mod_skinny/conf/directory/default/skinny-example.xml b/src/mod/endpoints/mod_skinny/conf/directory/default/skinny-example.xml
new file mode 100644 (file)
index 0000000..357eb72
--- /dev/null
@@ -0,0 +1,35 @@
+<include>
+ <user id="SEP001120AABBCC">
+   <params>
+    <!-- for devices requesting firmware via SCCP, like ATA186
+    <param name="skinny-firmware-version" value="ATA030101SCCP04"
+    <param name="skinny-soft-key-set-set" value="default"
+    -->
+    <param name="foo" value="bar"/>
+   </params>
+   <skinny>
+    <buttons>
+      <!--
+      position: 1..
+      type: one of line, speed-dial
+      label: button label
+      -->
+      <!--
+      value is the directory number (or user)
+      caller-name is shown to the calling party during call
+      -->
+      <button position="1" type="Line" label="Line 1" value="1101" caller-name="Calling as 1101"/>
+      <button position="3" type="Line" label="Shared Line 10" value="1110" caller-name="Calling as 1110"/>
+      <!--
+      value is the directory number to call
+      -->
+      <button position="5" type="SpeedDial" label="Call 1001" value="1001"/>
+      <!--
+      value is the URL
+      -->
+      <button position="6" type="ServiceUrl" label="Some URL" value="http://phone-xml.berbee.com/menu.xml"/>
+    </buttons>
+   </skinny>
+  </user>
+</include>
+
diff --git a/src/mod/endpoints/mod_skinny/conf/skinny_profiles/internal.xml b/src/mod/endpoints/mod_skinny/conf/skinny_profiles/internal.xml
new file mode 100644 (file)
index 0000000..0ca4ed0
--- /dev/null
@@ -0,0 +1,37 @@
+<profile name="internal">
+  <settings>
+    <param name="domain" value="$${domain}"/>
+    <param name="ip" value="$${local_ip_v4}"/>
+    <param name="port" value="2000"/>
+    <param name="patterns-dialplan" value="XML"/>
+    <param name="patterns-context" value="skinny-patterns"/>
+    <param name="dialplan" value="XML"/>
+    <param name="context" value="default"/>
+    <param name="keep-alive" value="60"/>
+    <param name="date-format" value="D/M/Y"/>
+    <param name="odbc-dsn" value=""/>
+    <param name="debug" value="4"/>
+    <param name="auto-restart" value="true"/>
+  </settings>
+  <soft-key-set-sets>
+    <soft-key-set-set name="default">
+      <soft-key-set name="KeySetOnHook" value="SoftkeyNewcall,SoftkeyRedial"/>
+      <soft-key-set name="KeySetConnected" value="SoftkeyEndcall,SoftkeyHold,SoftkeyNewcall,SoftkeyTransfer"/>
+      <soft-key-set name="KeySetOnHold" value="SoftkeyNewcall,SoftkeyResume,SoftkeyEndcall"/>
+      <soft-key-set name="KeySetRingIn" value="SoftkeyAnswer,SoftkeyEndcall,SoftkeyNewcall"/>
+      <soft-key-set name="KeySetOffHook" value=",SoftkeyRedial,SoftkeyEndcall"/>
+      <soft-key-set name="KeySetConnectedWithTransfer" value="SoftkeyEndcall,SoftkeyHold,SoftkeyNewcall,SoftkeyTransfer"/>
+      <soft-key-set name="KeySetDigitsAfterDialingFirstDigit" value="SoftkeyBackspace,,SoftkeyEndcall"/>
+      <!-- <soft-key-set name="KeySetConnectedWithConference" value=""/> -->
+      <soft-key-set name="KeySetRingOut" value=",,SoftkeyEndcall,SoftkeyTransfer"/>
+      <soft-key-set name="KeySetOffHookWithFeatures" value=",SoftkeyRedial,SoftkeyEndcall"/>
+      <soft-key-set name="KeySetInUseHint" value="SoftkeyNewcall,SoftkeyRedial"/>
+    </soft-key-set-set>
+  </soft-key-set-sets>
+  <device-types>
+    <device-type id="Cisco ATA 186">
+        <param name="firmware-version" value="ATA030101SCCP04"/>
+    </device-type>
+  </device-types>
+</profile>
+
diff --git a/src/mod/endpoints/mod_sofia/conf/sip_profiles/external.xml b/src/mod/endpoints/mod_sofia/conf/sip_profiles/external.xml
new file mode 100644 (file)
index 0000000..a709cbb
--- /dev/null
@@ -0,0 +1,95 @@
+<profile name="external">
+  <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files --> 
+  <!-- This profile is only for outbound registrations to providers -->
+  <gateways>
+    <X-PRE-PROCESS cmd="include" data="external/*.xml"/>
+  </gateways>
+
+  <aliases>
+    <!-- 
+    <alias name="outbound"/>
+    <alias name="nat"/>
+    -->
+  </aliases>
+
+  <domains>
+    <domain name="all" alias="false" parse="true"/>
+  </domains>
+
+  <settings>
+    <param name="debug" value="0"/>
+       <!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
+       <!-- <param name="shutdown-on-fail" value="true"/> -->
+    <param name="sip-trace" value="no"/>
+    <param name="sip-capture" value="no"/>        
+    <param name="rfc2833-pt" value="101"/>
+    <!-- RFC 5626 : Send reg-id and sip.instance -->
+    <!--<param name="enable-rfc-5626" value="true"/> -->
+    <param name="sip-port" value="$${external_sip_port}"/>
+    <param name="dialplan" value="XML"/>
+    <param name="context" value="public"/>
+    <param name="dtmf-duration" value="2000"/>
+    <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
+    <param name="outbound-codec-prefs" value="$${outbound_codec_prefs}"/>
+    <param name="hold-music" value="$${hold_music}"/>
+    <param name="rtp-timer-name" value="soft"/>
+    <!--<param name="enable-100rel" value="true"/>-->
+    <!--<param name="disable-srv503" value="true"/>-->                
+    <!-- This could be set to "passive" -->
+    <param name="local-network-acl" value="localnet.auto"/>
+    <param name="manage-presence" value="false"/>
+
+    <!-- used to share presence info across sofia profiles 
+        manage-presence needs to be set to passive on this profile
+        if you want it to behave as if it were the internal profile 
+        for presence.
+    -->
+    <!-- Name of the db to use for this profile -->
+    <!--<param name="dbname" value="share_presence"/>-->
+    <!--<param name="presence-hosts" value="$${domain}"/>-->
+    <!--<param name="force-register-domain" value="$${domain}"/>-->
+    <!--all inbound reg will stored in the db using this domain -->
+    <!--<param name="force-register-db-domain" value="$${domain}"/>-->
+    <!-- ************************************************* -->
+
+    <!--<param name="aggressive-nat-detection" value="true"/>-->
+    <param name="inbound-codec-negotiation" value="generous"/>
+    <param name="nonce-ttl" value="60"/>
+    <param name="auth-calls" value="false"/>
+    <!--
+       DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
+    -->
+    <param name="rtp-ip" value="$${local_ip_v4}"/>
+    <param name="sip-ip" value="$${local_ip_v4}"/>
+    <param name="ext-rtp-ip" value="auto-nat"/>
+    <param name="ext-sip-ip" value="auto-nat"/>
+    <param name="rtp-timeout-sec" value="300"/>
+    <param name="rtp-hold-timeout-sec" value="1800"/>
+    <!--<param name="enable-3pcc" value="true"/>-->
+
+    <!-- TLS: disabled by default, set to "true" to enable -->
+    <param name="tls" value="$${external_ssl_enable}"/>
+    <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
+    <param name="tls-only" value="false"/>
+    <!-- additional bind parameters for TLS -->
+    <param name="tls-bind-params" value="transport=tls"/>
+    <!-- Port to listen on for TLS requests. (5081 will be used if unspecified) -->
+    <param name="tls-sip-port" value="$${external_tls_port}"/>
+    <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
+    <param name="tls-cert-dir" value="$${external_ssl_dir}"/>
+    <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
+    <param name="tls-passphrase" value=""/>
+    <!-- Verify the date on TLS certificates -->
+    <param name="tls-verify-date" value="true"/>
+    <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
+    <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
+    <param name="tls-verify-policy" value="none"/>
+    <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
+    <param name="tls-verify-depth" value="2"/>
+    <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
+    <param name="tls-verify-in-subjects" value=""/>
+    <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
+    <param name="tls-version" value="$${sip_tls_version}"/>
+
+  </settings>
+</profile>
diff --git a/src/mod/endpoints/mod_sofia/conf/sip_profiles/external/example.xml b/src/mod/endpoints/mod_sofia/conf/sip_profiles/external/example.xml
new file mode 100644 (file)
index 0000000..70668a9
--- /dev/null
@@ -0,0 +1,38 @@
+<include>
+  <!--<gateway name="asterlink.com">-->
+  <!--/// account username *required* ///-->
+  <!--<param name="username" value="cluecon"/>-->
+  <!--/// auth realm: *optional* same as gateway name, if blank ///-->
+  <!--<param name="realm" value="asterlink.com"/>-->
+  <!--/// username to use in from: *optional* same as  username, if blank ///-->
+  <!--<param name="from-user" value="cluecon"/>-->
+  <!--/// domain to use in from: *optional* same as  realm, if blank ///-->
+  <!--<param name="from-domain" value="asterlink.com"/>-->
+  <!--/// account password *required* ///-->
+  <!--<param name="password" value="2007"/>--> 
+  <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
+  <!--<param name="extension" value="cluecon"/>-->
+  <!--/// proxy host: *optional* same as realm, if blank ///-->
+  <!--<param name="proxy" value="asterlink.com"/>-->
+  <!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
+  <!--<param name="register-proxy" value="mysbc.com"/>-->
+  <!--/// expire in seconds: *optional* 3600, if blank ///-->
+  <!--<param name="expire-seconds" value="60"/>-->
+  <!--/// do not register ///-->
+  <!--<param name="register" value="false"/>-->
+  <!-- which transport to use for register -->
+  <!--<param name="register-transport" value="udp"/>-->
+  <!--How many seconds before a retry when a failure or timeout occurs -->
+  <!--<param name="retry-seconds" value="30"/>-->
+  <!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
+  <!--<param name="caller-id-in-from" value="false"/>-->
+  <!--extra sip params to send in the contact-->
+  <!--<param name="contact-params" value="tport=tcp"/>-->
+  <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
+  <!--<param name="ping" value="25"/>-->
+  <!--</gateway>-->
+  <!--rfc5626 : Abilitazione rfc5626 ///-->
+  <!--<param name="rfc-5626" value="true"/>-->
+  <!--rfc5626 : extra sip params to send in the contact-->
+  <!--<param name="reg-id" value="1"/>-->
+</include>
diff --git a/src/mod/endpoints/mod_sofia/conf/sip_profiles/internal-ipv6.xml b/src/mod/endpoints/mod_sofia/conf/sip_profiles/internal-ipv6.xml
new file mode 100644 (file)
index 0000000..ee27a24
--- /dev/null
@@ -0,0 +1,130 @@
+<profile name="internal-ipv6">
+  <!--
+      This is an example of a sofia profile setup to listen on IPv6.
+  -->
+  <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
+  <!--aliases are other names that will work as a valid profile name for this profile-->
+  <settings>
+    <!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
+    <param name="debug" value="0"/>
+    <param name="sip-trace" value="no"/>
+    <param name="context" value="public"/>
+    <param name="rfc2833-pt" value="101"/>
+    <!-- port to bind to for sip traffic -->
+    <param name="sip-port" value="$${internal_sip_port}"/>
+    <param name="dialplan" value="XML"/>
+    <param name="dtmf-duration" value="2000"/>
+    <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
+    <param name="outbound-codec-prefs" value="$${global_codec_prefs}"/>
+    <param name="use-rtp-timer" value="true"/>
+    <param name="rtp-timer-name" value="soft"/>
+    <!-- ip address to use for rtp -->
+    <param name="rtp-ip" value="$${local_ip_v6}"/>
+    <!-- ip address to bind to -->
+    <param name="sip-ip" value="$${local_ip_v6}"/>
+    <param name="hold-music" value="$${hold_music}"/>
+    <!--<param name="enable-100rel" value="false"/>-->
+    <!--<param name="disable-srv503" value="true"/>-->
+    <param name="apply-inbound-acl" value="domains"/>
+    <!--<param name="apply-register-acl" value="domains"/>-->
+    <!--<param name="dtmf-type" value="info"/>-->
+    <param name="record-template" value="$${recordings_dir}/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
+    <!--enable to use presence and mwi -->
+    <param name="manage-presence" value="true"/>
+    <!-- This setting is for AAL2 bitpacking on G726 -->
+    <!-- <param name="bitpacking" value="aal2"/> -->
+    <!--max number of open dialogs in proceeding -->
+    <!--<param name="max-proceeding" value="1000"/>-->
+    <!--session timers for all call to expire after the specified seconds -->
+    <!--<param name="session-timeout" value="1800"/>-->
+    <!--<param name="multiple-registrations" value="true"/>-->
+    <!--set to 'greedy' if you want your codec list to take precedence -->
+    <param name="inbound-codec-negotiation" value="generous"/>
+    <!-- if you want to send any special bind params of your own -->
+    <!--<param name="bind-params" value="transport=udp"/>-->
+    <!--<param name="unregister-on-options-fail" value="true"/>-->
+
+    <!-- TLS: disabled by default, set to "true" to enable -->
+    <param name="tls" value="$${internal_ssl_enable}"/>
+    <!-- additional bind parameters for TLS -->
+    <param name="tls-bind-params" value="transport=tls"/>
+    <!-- Port to listen on for TLS requests. (5061 will be used if unspecified) -->
+    <param name="tls-sip-port" value="$${internal_tls_port}"/>
+    <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
+    <param name="tls-cert-dir" value="$${internal_ssl_dir}"/>
+    <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
+    <param name="tls-version" value="$${sip_tls_version}"/>
+    
+    <!--If you don't want to pass through timestampes from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
+    <!--<param name="rtp-rewrite-timestamps" value="true"/>-->
+    <!--<param name="pass-rfc2833" value="true"/>-->
+    <!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+    
+    <!--Uncomment to set all inbound calls to no media mode-->
+    <!--<param name="inbound-bypass-media" value="true"/>-->
+
+    <!--Uncomment to set all inbound calls to proxy media mode-->
+    <!--<param name="inbound-proxy-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"/> -->
+
+    <!-- accept any authentication without actually checking (not a good feature for most people) -->
+    <!-- <param name="accept-blind-auth" value="true"/> -->
+    
+    <!-- suppress CNG on this profile or per call with the 'suppress_cng' variable -->
+    <!-- <param name="suppress-cng" value="true"/> -->
+    
+    <!--TTL for nonce in sip auth-->
+    <param name="nonce-ttl" value="60"/>
+    <!--Uncomment if you want to force the outbound leg of a bridge to only offer the codec 
+       that the originator is using-->
+    <!--<param name="disable-transcoding" value="true"/>-->
+    <!-- Used for when phones respond to a challenged ACK with method INVITE in the hash -->
+    <!--<param name="NDLB-broken-auth-hash" value="true"/>-->
+    <!-- add a ;received="<ip>:<port>" to the contact when replying to register for nat handling -->
+    <!--<param name="NDLB-received-in-nat-reg-contact" value="true"/>-->
+    <param name="auth-calls" value="$${internal_auth_calls}"/>
+    <!-- on authed calls, authenticate *all* the packets not just invite -->
+    <param name="auth-all-packets" value="false"/>
+    <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip}"/> -->
+    <!-- <param name="ext-sip-ip" value="$${external_sip_ip}"/> -->
+    <!-- rtp inactivity timeout -->
+    <param name="rtp-timeout-sec" value="300"/>
+    <param name="rtp-hold-timeout-sec" value="1800"/>
+    <!-- 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"/>-->
+    <!--
+       These are enabled to make the default config work better out of the box.
+       If you need more than ONE domain you'll need to not use these options.
+
+    -->
+    <!--all inbound reg will look in this domain for the users -->
+    <param name="force-register-domain" value="$${domain}"/>
+    <!--all inbound reg will stored in the db using this domain -->
+    <param name="force-register-db-domain" value="$${domain}"/>
+    <!-- disable register and transfer which may be undesirable in a public switch -->
+    <!--<param name="disable-transfer" value="true"/>-->
+    <!--<param name="disable-register" value="true"/>-->
+    <!--<param name="enable-3pcc" value="true"/>-->
+    <!-- use stun when specified (default is true) -->
+    <!--<param name="stun-enabled" value="true"/>-->
+    <!-- use stun when specified (default is true) -->
+    <!-- set to true to have the profile determine stun is not useful and turn it off globally-->
+    <!--<param name="stun-auto-disable" value="true"/>-->
+
+        <!-- the following can be used as workaround with bogus SRV/NAPTR records -->
+        <!--<param name="disable-srv" value="false" />-->
+        <!--<param name="disable-naptr" value="false" />-->
+
+  </settings>
+</profile>
+
diff --git a/src/mod/endpoints/mod_sofia/conf/sip_profiles/internal.xml b/src/mod/endpoints/mod_sofia/conf/sip_profiles/internal.xml
new file mode 100644 (file)
index 0000000..b8390c7
--- /dev/null
@@ -0,0 +1,385 @@
+<profile name="internal">
+  <!--
+      This is a sofia sip profile/user agent.  This will service exactly one ip and port.
+      In FreeSWITCH you can run multiple sip user agents on their own ip and port.
+      
+      When you hear someone say "sofia profile" this is what they are talking about.
+  -->
+  
+  <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
+  <!--aliases are other names that will work as a valid profile name for this profile-->
+  <aliases>
+    <!--
+    <alias name="default"/>
+    -->
+  </aliases>
+  <!-- Outbound Registrations -->
+  <gateways>
+    <X-PRE-PROCESS cmd="include" data="internal/*.xml"/>
+  </gateways>
+  
+  <domains>
+    <!-- indicator to parse the directory for domains with parse="true" to get gateways-->
+    <!--<domain name="$${domain}" parse="true"/>-->
+    <!-- indicator to parse the directory for domains with parse="true" to get gateways and alias every domain to this profile -->
+    <!--<domain name="all" alias="true" parse="true"/>-->
+    <domain name="all" alias="true" parse="false"/> 
+  </domains>
+  
+  <settings>
+    <!--
+       When calls are in no media this will bring them back to media
+       when you press the hold button.
+    -->
+    <!--<param name="media-option" value="resume-media-on-hold"/> -->
+    <!--
+       This will allow a call after an attended transfer go back to 
+        bypass media after an attended transfer.
+    -->
+    <!--<param name="media-option" value="bypass-media-after-att-xfer"/>-->
+    <!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
+    <param name="debug" value="0"/>
+       <!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
+       <!-- <param name="shutdown-on-fail" value="true"/> -->
+    <param name="sip-trace" value="no"/>
+    <param name="sip-capture" value="no"/>
+
+    <!-- Use presence_map.conf.xml to convert extension regex to presence protos for routing -->
+    <!-- <param name="presence-proto-lookup" value="true"/> -->
+    
+
+    <!-- Don't be picky about negotiated DTMF just always offer 2833 and accept both 2833 and INFO -->
+    <!--<param name="liberal-dtmf" value="true"/>-->
+
+
+    <!-- 
+        Sometimes, in extremely rare edge cases, the Sofia SIP stack may stop
+        responding. These options allow you to enable and control a watchdog
+        on the Sofia SIP stack so that if it stops responding for the
+        specified number of milliseconds, it will cause FreeSWITCH to crash
+        immediately. This is useful if you run in an HA environment and
+        need to ensure automated recovery from such a condition. Note that if
+        your server is idle a lot, the watchdog may fire due to not receiving
+        any SIP messages. Thus, if you expect your system to be idle, you
+        should leave the watchdog disabled. It can be toggled on and off
+        through the FreeSWITCH CLI either on an individual profile basis or
+        globally for all profiles. So, if you run in an HA environment with a
+        master and slave, you should use the CLI to make sure the watchdog is
+        only enabled on the master. 
+        If such crash occurs, FreeSWITCH will dump core if allowed. The
+        stacktrace will include function watchdog_triggered_abort().
+    -->
+    <param name="watchdog-enabled" value="no"/>
+    <param name="watchdog-step-timeout" value="30000"/>
+    <param name="watchdog-event-timeout" value="30000"/>
+
+    <param name="log-auth-failures" value="false"/>
+    <param name="forward-unsolicited-mwi-notify" value="false"/>
+
+    <param name="context" value="public"/>
+    <param name="rfc2833-pt" value="101"/>
+    <!-- port to bind to for sip traffic -->
+    <param name="sip-port" value="$${internal_sip_port}"/>
+    <param name="dialplan" value="XML"/>
+    <param name="dtmf-duration" value="2000"/>
+    <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
+    <param name="outbound-codec-prefs" value="$${global_codec_prefs}"/>
+    <param name="rtp-timer-name" value="soft"/>
+    <!-- ip address to use for rtp, DO NOT USE HOSTNAMES ONLY IP ADDRESSES -->
+    <param name="rtp-ip" value="$${local_ip_v4}"/>
+    <!-- ip address to bind to, DO NOT USE HOSTNAMES ONLY IP ADDRESSES -->
+    <param name="sip-ip" value="$${local_ip_v4}"/>
+    <param name="hold-music" value="$${hold_music}"/>
+    <param name="apply-nat-acl" value="nat.auto"/>
+
+
+    <!-- (default true) set to false if you do not wish to have called party info in 1XX responses -->
+    <!-- <param name="cid-in-1xx" value="false"/> -->
+
+    <!-- extended info parsing -->
+    <!-- <param name="extended-info-parsing" value="true"/> -->
+
+    <!--<param name="aggressive-nat-detection" value="true"/>-->
+    <!--
+       There are known issues (asserts and segfaults) when 100rel is enabled.
+       It is not recommended to enable 100rel at this time.
+    -->
+    <!--<param name="enable-100rel" value="true"/>-->
+
+    <!-- uncomment if you don't wish to try a next SRV destination on 503 response -->
+    <!-- RFC3263 Section 4.3 -->           
+    <!--<param name="disable-srv503" value="true"/>-->    
+    
+    <!-- Enable Compact SIP headers. -->
+    <!--<param name="enable-compact-headers" value="true"/>-->
+    <!--
+       enable/disable session timers 
+    -->
+    <!--<param name="enable-timer" value="false"/>-->
+    <!--<param name="minimum-session-expires" value="120"/>-->
+    <param name="apply-inbound-acl" value="domains"/>
+    <!--
+       This defines your local network, by default we detect your local network
+       and create this localnet.auto ACL for this.
+    -->
+    <param name="local-network-acl" value="localnet.auto"/>
+    <!--<param name="apply-register-acl" value="domains"/>-->
+    <!--<param name="dtmf-type" value="info"/>-->
+
+
+    <!-- 'true' means every time 'first-only' means on the first register -->
+    <!--<param name="send-message-query-on-register" value="true"/>-->
+    
+    <!-- 'true' means every time 'first-only' means on the first register -->
+    <!--<param name="send-presence-on-register" value="first-only"/> -->
+      
+
+    <!-- Caller-ID type (choose one, can be overridden by inbound call type and/or sip_cid_type channel variable -->
+    <!-- Remote-Party-ID header -->
+    <!--<param name="caller-id-type" value="rpid"/>-->
+
+    <!-- P-*-Identity family of headers -->
+    <!--<param name="caller-id-type" value="pid"/>-->
+
+    <!-- neither one -->
+    <!--<param name="caller-id-type" value="none"/>-->
+
+
+
+    <param name="record-path" value="$${recordings_dir}"/>
+    <param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
+    <!--enable to use presence -->
+    <param name="manage-presence" value="true"/>
+    <!-- send a presence probe on each register to query devices to send presence instead of sending presence with less info -->
+    <!--<param name="presence-probe-on-register" value="true"/>-->
+    <!--<param name="manage-shared-appearance" value="true"/>-->
+    <!-- used to share presence info across sofia profiles -->
+    <!-- Name of the db to use for this profile -->
+    <!--<param name="dbname" value="share_presence"/>-->
+    <param name="presence-hosts" value="$${domain},$${local_ip_v4}"/>
+    <param name="presence-privacy" value="$${presence_privacy}"/>
+    <!-- ************************************************* -->
+    
+    <!-- This setting is for AAL2 bitpacking on G726 -->
+    <!-- <param name="bitpacking" value="aal2"/> -->
+    <!--max number of open dialogs in proceeding -->
+    <!--<param name="max-proceeding" value="1000"/>-->
+    <!--session timers for all call to expire after the specified seconds -->
+    <!--<param name="session-timeout" value="1800"/>-->
+    <!-- Can be 'true' or 'contact' -->
+    <!--<param name="multiple-registrations" value="contact"/>-->
+    <!--set to 'greedy' if you want your codec list to take precedence -->
+    <param name="inbound-codec-negotiation" value="generous"/>
+    <!-- if you want to send any special bind params of your own -->
+    <!--<param name="bind-params" value="transport=udp"/>-->
+    <!--<param name="unregister-on-options-fail" value="true"/>-->
+
+    <!-- TLS: disabled by default, set to "true" to enable -->
+    <param name="tls" value="$${internal_ssl_enable}"/>
+    <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
+    <param name="tls-only" value="false"/>
+    <!-- additional bind parameters for TLS -->
+    <param name="tls-bind-params" value="transport=tls"/>
+    <!-- Port to listen on for TLS requests. (5061 will be used if unspecified) -->
+    <param name="tls-sip-port" value="$${internal_tls_port}"/>
+    <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
+    <param name="tls-cert-dir" value="$${internal_ssl_dir}"/>
+    <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
+    <param name="tls-passphrase" value=""/>
+    <!-- Verify the date on TLS certificates -->
+    <param name="tls-verify-date" value="true"/>
+    <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
+    <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
+    <param name="tls-verify-policy" value="none"/>
+    <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
+    <param name="tls-verify-depth" value="2"/>
+    <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
+    <param name="tls-verify-in-subjects" value=""/>
+    <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
+    <param name="tls-version" value="$${sip_tls_version}"/>
+
+    <!-- turn on auto-flush during bridge (skip timer sleep when the socket already has data) 
+        (reduces delay on latent connections default true, must be disabled explicitly)-->
+    <!--<param name="rtp-autoflush-during-bridge" value="false"/>-->
+    
+    <!--If you don't want to pass through timestamps from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
+    <!--<param name="rtp-rewrite-timestamps" value="true"/>-->
+    <!--<param name="pass-rfc2833" value="true"/>-->
+    <!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+    
+    <!--Uncomment to set all inbound calls to no media mode-->
+    <!--<param name="inbound-bypass-media" value="true"/>-->
+
+    <!--Uncomment to set all inbound calls to proxy media mode-->
+    <!--<param name="inbound-proxy-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"/> -->
+
+    <!-- accept any authentication without actually checking (not a good feature for most people) -->
+    <!-- <param name="accept-blind-auth" value="true"/> -->
+    
+    <!-- suppress CNG on this profile or per call with the 'suppress_cng' variable -->
+    <!-- <param name="suppress-cng" value="true"/> -->
+    
+    <!--TTL for nonce in sip auth-->
+    <param name="nonce-ttl" value="60"/>
+    <!--Uncomment if you want to force the outbound leg of a bridge to only offer the codec 
+       that the originator is using-->
+    <!--<param name="disable-transcoding" value="true"/>-->
+    <!-- Handle 302 Redirect in the dialplan -->
+    <!--<param name="manual-redirect" value="true"/> -->
+    <!-- Disable Transfer -->
+    <!--<param name="disable-transfer" value="true"/> -->
+    <!-- Disable Register -->
+    <!--<param name="disable-register" value="true"/> -->
+    <!-- Used for when phones respond to a challenged ACK with method INVITE in the hash -->
+    <!--<param name="NDLB-broken-auth-hash" value="true"/>-->
+    <!-- add a ;received="<ip>:<port>" to the contact when replying to register for nat handling -->
+    <!--<param name="NDLB-received-in-nat-reg-contact" value="true"/>-->
+    <param name="auth-calls" value="$${internal_auth_calls}"/>
+    <!-- Force the user and auth-user to match. -->
+    <param name="inbound-reg-force-matching-username" value="true"/>
+    <!-- on authed calls, authenticate *all* the packets not just invite -->
+    <param name="auth-all-packets" value="false"/>
+    
+    <!-- external_sip_ip
+      Used as the public IP address for SDP.
+      Can be an one of:
+           ip address            - "12.34.56.78"
+           a stun server lookup  - "stun:stun.server.com"
+           a DNS name            - "host:host.server.com"
+           auto                  - Use guessed ip.
+           auto-nat              - Use ip learned from NAT-PMP or UPNP
+       -->
+    <param name="ext-rtp-ip" value="auto-nat"/>
+    <param name="ext-sip-ip" value="auto-nat"/>
+
+    <!-- rtp inactivity timeout -->
+    <param name="rtp-timeout-sec" value="300"/>
+    <param name="rtp-hold-timeout-sec" value="1800"/>
+    <!-- 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"/>-->
+    <!--
+       These are enabled to make the default config work better out of the box.
+       If you need more than ONE domain you'll need to not use these options.
+
+    -->
+    <!--all inbound reg will look in this domain for the users -->
+    <param name="force-register-domain" value="$${domain}"/>
+    <!--force the domain in subscriptions to this value -->
+    <param name="force-subscription-domain" value="$${domain}"/>
+    <!--all inbound reg will stored in the db using this domain -->
+    <param name="force-register-db-domain" value="$${domain}"/>
+
+    <!--<param name="delete-subs-on-register" value="false"/>-->
+
+    <!-- enable rtcp on every channel also can be done per leg basis with rtcp_audio_interval_msec variable set to passthru to pass it across a call-->
+    <!--<param name="rtcp-audio-interval-msec" value="5000"/>-->
+    <!--<param name="rtcp-video-interval-msec" value="5000"/>-->
+
+    <!--force suscription expires to a lower value than requested-->
+    <!--<param name="force-subscription-expires" value="60"/>-->
+    <!-- disable register and transfer which may be undesirable in a public switch -->
+    <!--<param name="disable-transfer" value="true"/>-->
+    <!--<param name="disable-register" value="true"/>-->
+
+    <!-- 
+        enable-3pcc can be set to either 'true' or 'proxy', true accepts the call
+        right away, proxy waits until the call has been answered then sends accepts
+    -->
+    <!--<param name="enable-3pcc" value="true"/>-->
+       
+    <!-- use at your own risk or if you know what this does.-->
+    <!--<param name="NDLB-force-rport" value="true"/>-->
+    <!--
+       Choose the realm challenge key. Default is auto_to if not set. 
+       
+       auto_from  - uses the from field as the value for the sip realm.
+       auto_to    - uses the to field as the value for the sip realm.
+       <anyvalue> - you can input any value to use for the sip realm.
+
+       If you want URL dialing to work you'll want to set this to auto_from.
+       
+       If you use any other value besides auto_to or auto_from you'll loose
+       the ability to do multiple domains.
+       
+       Note: comment out to restore the behavior before 2008-09-29
+
+    -->
+    <param name="challenge-realm" value="auto_from"/>
+    <!--<param name="disable-rtp-auto-adjust" value="true"/>-->
+    <!-- on inbound calls make the uuid of the session equal to the sip call id of that call -->
+    <!--<param name="inbound-use-callid-as-uuid" value="true"/>-->
+    <!-- on outbound calls set the callid to match the uuid of the session -->
+    <!--<param name="outbound-use-uuid-as-callid" value="true"/>-->
+    <!-- set to false disable this feature -->
+    <!--<param name="rtp-autofix-timing" value="false"/>-->
+
+    <!-- set this param to false if your gateway for some reason hates X- headers that it is supposed to ignore-->
+    <!--<param name="pass-callee-id" value="false"/>-->
+
+    <!-- clear clears them all or supply the name to add or the name prefixed with ~ to remove
+        valid values:
+
+        clear
+        CISCO_SKIP_MARK_BIT_2833
+        SONUS_SEND_INVALID_TIMESTAMP_2833
+
+    -->
+    <!--<param name="auto-rtp-bugs" data="clear"/>-->
+
+        <!-- the following can be used as workaround with bogus SRV/NAPTR records -->
+        <!--<param name="disable-srv" value="false" />-->
+        <!--<param name="disable-naptr" value="false" />-->
+
+       <!-- The following can be used to fine-tune timers within sofia's transport layer 
+                Those settings are for advanced users and can safely be left as-is -->
+               
+       <!-- Initial retransmission interval (in milliseconds).
+               Set the T1 retransmission interval used by the SIP transaction engine. 
+               The T1 is the initial duration used by request retransmission timers A and E (UDP) as well as response retransmission timer G.   -->
+       <!-- <param name="timer-T1" value="500" /> -->
+       
+       <!--  Transaction timeout (defaults to T1 * 64).
+               Set the T1x64 timeout value used by the SIP transaction engine.
+               The T1x64 is duration used for timers B, F, H, and J (UDP) by the SIP transaction engine. 
+               The timeout value T1x64 can be adjusted separately from the initial retransmission interval T1. -->
+       <!-- <param name="timer-T1X64" value="32000" /> -->
+       
+       
+       <!-- Maximum retransmission interval (in milliseconds).
+               Set the maximum retransmission interval used by the SIP transaction engine. 
+               The T2 is the maximum duration used for the timers E (UDP) and G by the SIP transaction engine. 
+               Note that the timer A is not capped by T2. Retransmission interval of INVITE requests grows exponentially 
+               until the timer B fires.  -->
+       <!-- <param name="timer-T2" value="4000" /> -->
+               
+       <!--
+               Transaction lifetime (in milliseconds).
+               Set the lifetime for completed transactions used by the SIP transaction engine. 
+               A completed transaction is kept around for the duration of T4 in order to catch late responses. 
+               The T4 is the maximum duration for the messages to stay in the network and the duration of SIP timer K. -->
+       <!-- <param name="timer-T4" value="4000" /> -->
+
+       <!-- Turn on a jitterbuffer for every call -->
+       <!-- <param name="auto-jitterbuffer-msec" value="60"/> -->
+
+
+       <!-- By default mod_sofia will ignore the codecs in the sdp for hold/unhold operations 
+            Set this to true if you want to actually parse the sdp and re-negotiate the codec during hold/unhold.
+            It's probably not what you want so stick with the default unless you really need to change this.
+       -->
+       <!--<param name="renegotiate-codec-on-hold" value="true"/>-->
+    
+  </settings>
+</profile>
+
diff --git a/src/mod/endpoints/mod_sofia/conf/sip_profiles/internal/example.xml b/src/mod/endpoints/mod_sofia/conf/sip_profiles/internal/example.xml
new file mode 100644 (file)
index 0000000..fc061f9
--- /dev/null
@@ -0,0 +1,37 @@
+<include>
+  <!--<gateway name="asterlink.com">-->
+  <!--/// account username *required* ///-->
+  <!--<param name="username" value="cluecon"/>-->
+  <!--/// auth realm: *optional* same as gateway name, if blank ///-->
+  <!--<param name="realm" value="asterlink.com"/>-->
+  <!--/// username to use in from: *optional* same as  username, if blank ///-->
+  <!--<param name="from-user" value="cluecon"/>-->
+  <!--/// domain to use in from: *optional* same as  realm, if blank ///-->
+  <!--<param name="from-domain" value="asterlink.com"/>-->
+  <!--/// account password *required* ///-->
+  <!--<param name="password" value="2007"/>--> 
+  <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
+  <!--<param name="extension" value="cluecon"/>-->
+  <!--/// proxy host: *optional* same as realm, if blank ///-->
+  <!--<param name="proxy" value="asterlink.com"/>-->
+  <!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
+  <!--<param name="register-proxy" value="mysbc.com"/>-->
+  <!--/// expire in seconds: *optional* 3600, if blank ///-->
+  <!--<param name="expire-seconds" value="60"/>-->
+  <!--/// do not register ///-->
+  <!--<param name="register" value="false"/>-->
+  <!-- which transport to use for register -->
+  <!--<param name="register-transport" value="udp"/>-->
+  <!--How many seconds before a retry when a failure or timeout occurs -->
+  <!--<param name="retry-seconds" value="30"/>-->
+  <!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
+  <!--<param name="caller-id-in-from" value="false"/>-->
+  <!--extra sip params to send in the contact-->
+  <!--<param name="contact-params" value="tport=tcp"/>-->
+  <!-- Put the extension in the contact -->
+  <!--<param name="extension-in-contact" value="true"/>-->
+  <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
+  <!--<param name="ping" value="25"/>-->
+  <!--<param name="cid-type" value="rpid"/>-->
+  <!--</gateway>-->
+</include>
diff --git a/src/mod/event_handlers/mod_cdr_csv/conf/autoload_configs/cdr_csv.conf.xml b/src/mod/event_handlers/mod_cdr_csv/conf/autoload_configs/cdr_csv.conf.xml
new file mode 100644 (file)
index 0000000..bcefd46
--- /dev/null
@@ -0,0 +1,22 @@
+<configuration name="cdr_csv.conf" description="CDR CSV Format">
+  <settings>
+    <!-- 'cdr-csv' will always be appended to log-base -->
+    <!--<param name="log-base" value="/var/log"/>-->
+    <param name="default-template" value="example"/>
+    <!-- This is like the info app but after the call is hung up -->
+    <!--<param name="debug" value="true"/>-->
+    <param name="rotate-on-hup" value="true"/>
+    <!-- may be a b or ab -->
+    <param name="legs" value="a"/>
+       <!-- Only log in Master.csv -->
+       <!-- <param name="master-file-only" value="true"/> -->
+  </settings>
+  <templates>
+    <template name="sql">INSERT INTO cdr VALUES ("${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}");</template>
+    <template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}"</template>
+    <template name="snom">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${call_clientcode}","${sip_rtp_rxstat}","${sip_rtp_txstat}","${sofia_record_file}"</template>
+    <template name="linksys">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${sip_p_rtp_stat}"</template>
+    <template name="asterisk">"${accountcode}","${caller_id_number}","${destination_number}","${context}","${caller_id}","${channel_name}","${bridge_channel}","${last_app}","${last_arg}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${amaflags}","${uuid}","${userfield}"</template>
+  </templates>
+</configuration>
+
diff --git a/src/mod/event_handlers/mod_cdr_mongodb/conf/autoload_configs/cdr_mongodb.conf.xml b/src/mod/event_handlers/mod_cdr_mongodb/conf/autoload_configs/cdr_mongodb.conf.xml
new file mode 100644 (file)
index 0000000..ce366d1
--- /dev/null
@@ -0,0 +1,13 @@
+<configuration name="cdr_mongodb.conf" description="MongoDB CDR logger">
+  <settings>
+    <!-- Hostnames and IPv6 addrs not supported (yet) -->
+    <param name="host" value="127.0.0.1"/>
+    <param name="port" value="27017"/>
+
+    <!-- Namespace format is database.collection -->
+    <param name="namespace" value="test.cdr"/>
+
+    <!-- If true, create CDR for B-leg of call (default: true) -->
+    <param name="log-b-leg" value="false"/>
+  </settings>
+</configuration>
diff --git a/src/mod/event_handlers/mod_cdr_pg_csv/conf/autoload_configs/cdr_pg_csv.conf.xml b/src/mod/event_handlers/mod_cdr_pg_csv/conf/autoload_configs/cdr_pg_csv.conf.xml
new file mode 100644 (file)
index 0000000..4fec817
--- /dev/null
@@ -0,0 +1,40 @@
+<configuration name="cdr_pg_csv.conf" description="CDR PG CSV Format">
+  <settings>
+    <!-- See parameters for PQconnectdb() at http://www.postgresql.org/docs/8.4/static/libpq-connect.html -->
+    <param name="db-info" value="host=localhost dbname=cdr connect_timeout=10" />
+    <!-- CDR table name -->
+    <!--<param name="db-table" value="cdr"/>-->
+
+    <!-- Log a-leg (a), b-leg (b) or both (ab) -->
+    <param name="legs" value="a"/>
+
+    <!-- Directory in which to spool failed SQL inserts -->
+    <!-- <param name="spool-dir" value="$${base_dir}/log/cdr-pg-csv"/> -->
+    <!-- Disk spool format if DB connection/insert fails - csv (default) or sql -->
+    <param name="spool-format" value="csv"/>
+    <param name="rotate-on-hup" value="true"/>
+
+    <!-- This is like the info app but after the call is hung up -->
+    <!--<param name="debug" value="true"/>-->
+  </settings>
+  <schema>
+    <field var="local_ip_v4"/>
+    <field var="caller_id_name"/>
+    <field var="caller_id_number"/>
+    <field var="destination_number"/>
+    <field var="context"/>
+    <field var="start_stamp"/>
+    <field var="answer_stamp"/>
+    <field var="end_stamp"/>
+    <field var="duration" quote="false"/>
+    <field var="billsec" quote="false"/>
+    <field var="hangup_cause"/>
+    <field var="uuid"/>
+    <field var="bleg_uuid"/>
+    <field var="accountcode"/>
+    <field var="read_codec"/>
+    <field var="write_codec"/>
+    <!-- <field var="sip_hangup_disposition"/> -->
+    <!-- <field var="ani"/> -->
+  </schema>
+</configuration>
diff --git a/src/mod/event_handlers/mod_cdr_sqlite/conf/autoload_configs/cdr_sqlite.conf.xml b/src/mod/event_handlers/mod_cdr_sqlite/conf/autoload_configs/cdr_sqlite.conf.xml
new file mode 100644 (file)
index 0000000..872c04c
--- /dev/null
@@ -0,0 +1,18 @@
+<configuration name="cdr_sqlite.conf" description="SQLite CDR">
+  <settings>
+    <!-- SQLite database name (.db suffix will be automatically appended) -->
+    <!-- <param name="db-name" value="cdr"/> -->
+    <!-- CDR table name -->
+    <!-- <param name="db-table" value="cdr"/> -->
+    <!-- Log a-leg (a), b-leg (b) or both (ab) -->
+    <param name="legs" value="a"/>
+    <!-- Default template to use when inserting records -->
+    <param name="default-template" value="example"/>
+    <!-- This is like the info app but after the call is hung up -->
+    <!--<param name="debug" value="true"/>-->
+  </settings>
+  <templates>
+    <!-- Note that field order must match SQL table schema, otherwise insert will fail -->
+    <template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}",${duration},${billsec},"${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}"</template>
+  </templates>
+</configuration>
diff --git a/src/mod/event_handlers/mod_erlang_event/conf/autoload_configs/erlang_event.conf.xml b/src/mod/event_handlers/mod_erlang_event/conf/autoload_configs/erlang_event.conf.xml
new file mode 100644 (file)
index 0000000..62deb84
--- /dev/null
@@ -0,0 +1,23 @@
+<configuration name="erlang_event.conf" description="Erlang Socket Client">
+  <settings>
+    <param name="listen-ip" value="0.0.0.0"/>
+    <param name="listen-port" value="8031"/>
+    <!-- Specify the first part of the node name
+         (the host part after the @ will be autodetected)
+         OR pass a complete nodename to avoid autodetection
+         eg. freeswitch@example or freeswitch@example.com.
+         If you pass a complete node name, the 'shortname' parameter has no effect. -->
+    <param name="nodename" value="freeswitch"/>
+    <!-- Specify this OR 'cookie-file' or $HOME/.erlang.cookie will be read -->
+    <param name="cookie" value="ClueCon"/>
+    <!-- Read a cookie from an arbitary erlang cookie file instead -->
+    <!--<param name="cookie-file" value="/tmp/erlang.cookie"/>-->
+    <param name="shortname" value="true"/>
+    <!-- in additon to cookie, optionally restrict by ACL -->
+    <!--<param name="apply-inbound-acl" value="lan"/>-->
+    <!-- alternative is "binary" -->
+    <!--<param name="encoding" value="string"/>--> 
+    <!-- provide compatability with previous OTP release (use with care) -->
+    <!--<param name="compat-rel" value="12"/> -->
+  </settings>
+</configuration>
diff --git a/src/mod/event_handlers/mod_event_multicast/conf/autoload_configs/event_multicast.conf.xml b/src/mod/event_handlers/mod_event_multicast/conf/autoload_configs/event_multicast.conf.xml
new file mode 100644 (file)
index 0000000..eac0392
--- /dev/null
@@ -0,0 +1,14 @@
+<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"/>
+    <param name="ttl" value="1"/>
+    <!-- <param name="loopback" value="no"/>-->
+    <!-- Uncomment this to enable pre-shared key encryption on the packets. -->
+    <!-- For this option to work, you'll need to have the openssl development -->
+    <!-- headers installed when you ran ./configure -->
+    <!-- <param name="psk" value="ClueCon"/> -->
+  </settings>
+</configuration>
+
diff --git a/src/mod/event_handlers/mod_event_socket/conf/autoload_configs/event_socket.conf.xml b/src/mod/event_handlers/mod_event_socket/conf/autoload_configs/event_socket.conf.xml
new file mode 100644 (file)
index 0000000..5ea2e09
--- /dev/null
@@ -0,0 +1,9 @@
+<configuration name="event_socket.conf" description="Socket Client">
+  <settings>
+    <param name="nat-map" value="false"/>
+    <param name="listen-ip" value="127.0.0.1"/>
+    <param name="listen-port" value="8021"/>
+    <param name="password" value="ClueCon"/>
+    <!--<param name="apply-inbound-acl" value="lan"/>-->
+  </settings>
+</configuration>
diff --git a/src/mod/event_handlers/mod_json_cdr/conf/autoload_configs/json_cdr.conf.xml b/src/mod/event_handlers/mod_json_cdr/conf/autoload_configs/json_cdr.conf.xml
new file mode 100644 (file)
index 0000000..374ec8d
--- /dev/null
@@ -0,0 +1,53 @@
+<include>
+       <configuration name="json_cdr.conf" description="JSON CDR">
+               <settings>
+
+                       <!-- Global parameters -->
+                       <param name="log-b-leg" value="true"/>
+                       <param name="prefix-a-leg" value="false"/>
+
+                       <!-- Whether to URL encode the individual JSON values. Defaults to true, set to false for standard JSON. -->
+                       <param name="encode-values" value="true"/>
+
+                       <!-- Normally if url and log-dir are present, url is attempted first and log-dir second. 
+                            This options allows to do both systematically. -->
+                       <param name="log-http-and-disk" value="false"/>
+
+                       <!-- File logging -->
+                       <!-- Directory where to create the "json_cdr" directory used to store JSON CDRs. Leave empty for no file logging. -->
+                       <!-- Might be overriden by a channel variable "json_cdr_base". -->
+                       <param name="log-dir" value=""/>
+                       <!-- Whether to rotate file CDRs. -->
+                       <param name="rotate" value="false"/>
+
+                       <!-- HTTP(S) logging -->
+                       <!-- URL where to POST JSON CDRs. Leave empty for no URL logging. Up to 20 URLs may be specified. -->
+                       <param name="url" value=""/>
+                       <!-- Authentication scheme for the above URL. May be one of basic|digest|NTLM|GSS-NEGOTIATE|any-->
+                       <param name="auth-scheme" value="basic"/>
+                       <!-- Credentials in the form  username:password  if auth-scheme is used. Leave empty for no authentication. -->
+                       <param name="cred" value="string"/>
+                       <!-- Whether to base64 encode the entire JSON document before POSTing it. -->
+                       <param name="encode" value="base64|true|false"/>
+                       <!-- Number of retries in case of failure. Each specified URL is tried in turn. -->
+                       <param name="retries" value="0"/>
+                       <!-- Delay between retries (ms). -->
+                       <param name="delay" value="5000"/>
+                       <!-- Disable streaming if the server doesn't support it. -->
+                       <param name="disable-100-continue" value="false"/>
+                       <!-- If web posting failed, the CDR is written to a file. -->
+                       <!-- Error log dir ("json_cdr" is appended). Up to 20 may be specified. Default to log-dir if none is specified. -->
+                       <param name="err-log-dir" value=""/>
+
+                       <!-- SSL options -->
+                       <param name="ssl-key-path" value=""/>
+                       <param name="ssl-key-password" value=""/>
+                       <!-- SSL version. If specified, must be either "SSLv3" or "TLSv1". -->
+                       <param name="ssl-version" value=""/>
+                       <param name="enable-ssl-verifyhost" value="false"/>
+                       <param name="ssl-cert-path" value=""/>
+                       <param name="enable-cacert-check" value="false"/>
+                       <param name="ssl-cacert-file" value=""/>
+               </settings>
+       </configuration>
+</include>
diff --git a/src/mod/loggers/mod_console/conf/autoload_configs/console.conf.xml b/src/mod/loggers/mod_console/conf/autoload_configs/console.conf.xml
new file mode 100644 (file)
index 0000000..2d9e3e8
--- /dev/null
@@ -0,0 +1,56 @@
+<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>
+    <!-- 
+      name can be a file name, function name or 'all' 
+      value is one or more of debug,info,notice,warning,err,crit,alert,all
+      See examples below
+
+
+      The following map is the default, which is all debug levels enabled:
+      <map name="all" value="debug,info,notice,warning,err,crit,alert"/>
+
+
+      Example: the following turns on debugging for error and critical levels only
+      <map name="all" value="err,crit"/>
+
+      NOTE: using map name="all" will override any other settings!  If you 
+            want a more specific set of console messages then you will need
+            to specify which files and/or functions you want to have debug
+            messages.  One option is to turn on just the more critical 
+            messages with map name="all", then specify the other types of 
+            console messages you want to see for various files and functions.
+
+      Example: turn on ERROR, CRIT, ALERT for all modules, then specify other
+               levels for various modules and functions
+
+        <map name="all" value="err,crit,alert"/>
+        <map name="switch_loadable_module_process" value="all"/>
+        <map name="mod_local_stream.c" value="warning,debug"/>
+        <map name="mod_sndfile.c" value="warning,info,debug"/>
+     -->
+    <map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
+    
+    <!--
+      You can use or modify this sample set of mappings.  It turns on higher
+      level messages for all modules and then specifies extra lower level
+      messages for OpenZAP, Sofia, and switch core messages.
+      
+    <map name="all"                         value="warning,err,crit,alert"/>
+    <map name="zap_analog.c"                value="all"/>
+    <map name="zap_io.c"                    value="all"/>
+    <map name="zap_isdn.c"                  value="all"/>
+    <map name="zap_zt.c"                    value="all"/>
+    <map name="mod_openzap"                 value="all"/>
+    <map name="sofia.c"                     value="notice"/>
+    <map name="switch_core_state_machine.c" value="all"/>      
+    
+    -->
+  </mappings>
+  <settings>
+    <!-- comment or set to false for no color logging -->
+    <param name="colorize" value="true"/>
+    <param name="loglevel" value="$${console_loglevel}"/>
+  </settings>
+</configuration>
diff --git a/src/mod/loggers/mod_logfile/conf/autoload_configs/logfile.conf.xml b/src/mod/loggers/mod_logfile/conf/autoload_configs/logfile.conf.xml
new file mode 100644 (file)
index 0000000..65bea55
--- /dev/null
@@ -0,0 +1,29 @@
+<configuration name="logfile.conf" description="File Logging">
+  <settings>
+   <!-- true to auto rotate on HUP, false to open/close -->
+   <param name="rotate-on-hup" value="true"/>
+  </settings>
+  <profiles>
+    <profile name="default">
+      <settings>
+        <!-- File to log to -->
+       <!--<param name="logfile" value="/var/log/freeswitch.log"/>-->
+        <!-- At this length in bytes rotate the log file (0 for never) -->
+        <param name="rollover" value="10485760"/>
+               <!-- Maximum number of log files to keep before wrapping -->
+               <!-- If this parameter is enabled, the log filenames will not include a date stamp -->
+               <!-- <param name="maximum-rotate" value="32"/> -->
+               <!-- Uncomment to prefix all log lines by the session's uuid  -->
+               <!-- <param name="uuid" value="true" /> -->
+      </settings>
+      <mappings>
+       <!-- 
+            name can be a file name, function name or 'all' 
+            value is one or more of debug,info,notice,warning,err,crit,alert,all
+            Please see comments in console.conf.xml for more information
+       -->
+       <map name="all" value="debug,info,notice,warning,err,crit,alert"/>
+      </mappings>
+    </profile>
+  </profiles>
+</configuration>
diff --git a/src/mod/loggers/mod_syslog/conf/autoload_configs/syslog.conf.xml b/src/mod/loggers/mod_syslog/conf/autoload_configs/syslog.conf.xml
new file mode 100644 (file)
index 0000000..636a12c
--- /dev/null
@@ -0,0 +1,18 @@
+<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="facility" value="user"/>
+    <param name="ident" value="freeswitch"/>
+    <param name="loglevel" value="warning"/>
+       <!-- Uncomment the following line to log uuids in syslogs (when applicable) -->
+    <!-- <param name="uuid" value="true"/> -->
+  </settings>
+</configuration>
diff --git a/src/mod/xml_int/mod_xml_cdr/conf/autoload_configs/xml_cdr.conf.xml b/src/mod/xml_int/mod_xml_cdr/conf/autoload_configs/xml_cdr.conf.xml
new file mode 100644 (file)
index 0000000..ac9b1f9
--- /dev/null
@@ -0,0 +1,71 @@
+<configuration name="xml_cdr.conf" description="XML CDR CURL logger">
+  <settings>
+    <!-- the url to post to if blank web posting is disabled  -->
+    <!-- <param name="url" value="http://localhost/cdr_curl/post.php"/> -->
+
+    <!-- optional: credentials to send to web server -->
+    <!--    <param name="cred" value="user:pass"/> -->
+
+    <!-- the total number of retries (not counting the first 'try') to post to webserver incase of failure -->
+    <!-- <param name="retries" value="2"/> -->
+
+    <!-- delay between retries in seconds, default is 5 seconds -->
+    <!-- <param name="delay" value="1"/> -->
+
+    <!-- Log via http and on disk, default is false -->
+    <!-- <param name="log-http-and-disk" value="true"/> -->
+
+    <!-- optional: if not present we do not log every record to disk -->
+    <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank value will default to ${prefix}/logs/xml_cdr -->
+    <param name="log-dir" value=""/>
+
+    <!-- optional: if not present we do log the b leg -->
+    <!-- true or false if we should create a cdr for the b leg of a call-->
+    <param name="log-b-leg" value="false"/>
+    
+    <!-- optional: if not present, all filenames are the uuid of the call -->
+    <!-- true or false if a leg files are prefixed "a_" -->
+    <param name="prefix-a-leg" value="true"/>
+
+    <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding, 'base64' for base64 encoding or 'textxml' for text/xml -->
+    <param name="encode" value="true"/>
+
+    <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting --> 
+    <!--<param name="disable-100-continue" value="true"/>--> 
+    
+    <!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir -->
+    <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/xml_cdr -->
+    <!-- <param name="err-log-dir" value="/tmp"/> -->
+
+    <!-- which auhtentification scheme to use. Supported values are: basic, digest, NTLM, GSS-NEGOTIATE or "any" for automatic detection -->
+    <!--<param name="auth-scheme" value="basic"/>--> 
+
+    <!-- optional: this will enable the CA root certificate check by libcurl to
+         verify that the certificate was issued by a major Certificate Authority.
+         note: default value is disabled. only enable if you want this! -->
+    <!--<param name="enable-cacert-check" value="true"/>-->
+    <!-- optional: verify that the server is actually the one listed in the cert -->
+    <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
+
+    <!-- optional: these options can be used to specify custom SSL certificates
+         to use for HTTPS communications. Either use both options or neither.
+         Specify your public key with 'ssl-cert-path' and the private key with
+         'ssl-key-path'. If your private key has a password, specify it with
+         'ssl-key-password'. -->
+    <!-- <param name="ssl-cert-path" value="$${base_dir}/conf/certs/public_key.pem"/> -->
+    <!-- <param name="ssl-key-path" value="$${base_dir}/conf/certs/private_key.pem"/> -->
+    <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
+
+    <!-- optional: use a custom CA certificate in PEM format to verify the peer
+         with. This is useful if you are acting as your own certificate authority.
+         note: only makes sense if used in combination with "enable-cacert-check." -->
+    <!-- <param name="ssl-cacert-file" value="$${base_dir}/conf/certs/cacert.pem"/> -->
+
+    <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
+         "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
+    <!-- <param name="ssl-version" value="TLSv1"/> -->
+
+    <!-- optional: enables cookies and stores them in the specified file. -->
+    <!-- <param name="cookie-file" value="/tmp/cookie-mod_xml_curl.txt"/> -->
+  </settings>
+</configuration>
diff --git a/src/mod/xml_int/mod_xml_curl/conf/autoload_configs/xml_curl.conf.xml b/src/mod/xml_int/mod_xml_curl/conf/autoload_configs/xml_curl.conf.xml
new file mode 100644 (file)
index 0000000..30951d8
--- /dev/null
@@ -0,0 +1,49 @@
+<configuration name="xml_curl.conf" description="cURL XML Gateway">
+  <bindings>
+    <binding name="example">
+      <!-- Allow to bind on a particular IP for requests sent -->
+      <!--<param name="bind-local" value="$${local_ip_v4}" />-->
+      <!-- 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.freeswitch.org/gateway.xml" bindings="dialplan"/> -->
+      <!-- set this to provide authentication credentials to the server -->
+      <!--<param name="gateway-credentials" value="muser:mypass"/>-->
+      <!--<param name="auth-scheme" value="basic"/>-->
+
+      <!-- optional: this will enable the CA root certificate check by libcurl to
+           verify that the certificate was issued by a major Certificate Authority.
+           note: default value is disabled. only enable if you want this! -->
+      <!--<param name="enable-cacert-check" value="true"/>-->
+      <!-- optional: verify that the server is actually the one listed in the cert -->
+      <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
+
+      <!-- optional: these options can be used to specify custom SSL certificates
+           to use for HTTPS communications. Either use both options or neither.
+           Specify your public key with 'ssl-cert-path' and the private key with
+           'ssl-key-path'. If your private key has a password, specify it with
+           'ssl-key-password'. -->
+      <!-- <param name="ssl-cert-path" value="$${base_dir}/conf/certs/public_key.pem"/> -->
+      <!-- <param name="ssl-key-path" value="$${base_dir}/conf/certs/private_key.pem"/> -->
+      <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
+      <!-- optional timeout -->
+      <!-- <param name="timeout" value="10"/> -->
+
+      <!-- optional: use a custom CA certificate in PEM format to verify the peer
+           with. This is useful if you are acting as your own certificate authority.
+           note: only makes sense if used in combination with "enable-cacert-check." -->
+      <!-- <param name="ssl-cacert-file" value="$${base_dir}/conf/certs/cacert.pem"/> -->
+
+      <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
+           "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
+      <!-- <param name="ssl-version" value="TLSv1"/> -->
+
+      <!-- optional: enables cookies and stores them in the specified file. -->
+      <!-- <param name="cookie-file" value="/tmp/cookie-mod_xml_curl.txt"/> -->
+
+      <!-- one or more of these imply you want to pick the exact variables that are transmitted -->
+      <!--<param name="enable-post-var" value="Unique-ID"/>-->
+    </binding>
+  </bindings>
+</configuration>
diff --git a/src/mod/xml_int/mod_xml_rpc/conf/autoload_configs/xml_rpc.conf.xml b/src/mod/xml_int/mod_xml_rpc/conf/autoload_configs/xml_rpc.conf.xml
new file mode 100644 (file)
index 0000000..714a909
--- /dev/null
@@ -0,0 +1,10 @@
+<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>