net/freeswitch: Added initial uci configuration capability.
authorDaniel Dickinson <crazycshore@gmail.com>
Wed, 7 Jul 2010 11:18:11 +0000 (11:18 +0000)
committerDaniel Dickinson <crazycshore@gmail.com>
Wed, 7 Jul 2010 11:18:11 +0000 (11:18 +0000)
SVN-Revision: 22084

39 files changed:
net/freeswitch/Makefile
net/freeswitch/files/etc.uci/autoload_configs/acl.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/console.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/event_socket.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/local_stream.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/lua.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/modules.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/post_load_modules.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/sofia.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/switch.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/syslog.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/autoload_configs/timezones.conf.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/dialplan/default.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/dialplan/default/PLACEHOLDER [new file with mode: 0644]
net/freeswitch/files/etc.uci/dialplan/public.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/dialplan/public/PLACEHOLDER [new file with mode: 0644]
net/freeswitch/files/etc.uci/directory/default.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/directory/default/1000.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/directory/default/1001.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/directory/default/1002.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/directory/default/1003.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/directory/default/1004.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/directory/default/default.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/freeswitch.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/fur_elise.ttml [new file with mode: 0644]
net/freeswitch/files/etc.uci/mime.types [new file with mode: 0644]
net/freeswitch/files/etc.uci/sip_profiles/external.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/sip_profiles/external/example.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/sip_profiles/internal.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/sip_profiles/internal/example.xml [new file with mode: 0644]
net/freeswitch/files/etc.uci/tetris.ttml [new file with mode: 0644]
net/freeswitch/files/etc.uci/tones.conf [new file with mode: 0644]
net/freeswitch/files/etc.uci/vars.xml [new file with mode: 0644]
net/freeswitch/files/freeswitch.config
net/freeswitch/files/freeswitch.init
net/freeswitch/files/uci/line_mod.sh [new file with mode: 0644]
net/freeswitch/files/uci/param_from_config.sh [new file with mode: 0644]
net/freeswitch/files/uci/profiles.sh [new file with mode: 0644]
net/freeswitch/files/uci/update_xml.sh [new file with mode: 0644]

index 13161868341d7dde8ce1e09f06813a5de0e9948b..b49cd3d887e436ffffbf588d33a3d212e74fdd70 100644 (file)
@@ -172,12 +172,24 @@ endef
 
 define Package/freeswitch-config-minimal
 $(call Package/freeswitch/Default)
-  TITLE:=FreeSWITCH minimal OpenWRT config
+  TITLE:=FreeSWITCH a minimal FS config
   DEPENDS:= freeswitch
 endef
 
 define Package/freeswitch-config-minimal/description
-  The OpenWRT configuration for the OpenWRT FreeSWITCH minimal package collection.
+  A minimal configuration of FreeSWITCH for OpenWRT devices.  Is what the UCI 
+  configuration began with.
+  
+endef
+
+define Package/freeswitch-config-uci
+$(call Package/freeswitch/Default)
+  TITLE:=UCI-configuration for FreeSWITCH 
+  DEPENDS:= freeswitch
+endef
+
+define Package/freeswitch-config-uci/description
+  The UCI configuration system for FreeSWITCH on OpenWRT.
 endef
 
 define Package/freeswitch-collection-upstream-defaults
@@ -209,14 +221,32 @@ $(call Package/freeswitch/Default)
                +freeswitch-tools
 endef
 
+define Package/freeswitch-collection-minimal
+$(call Package/freeswitch/Default)
+  TITLE:=A FreeSWITCH minimal package collection
+  DEPENDS:= freeswitch \
+               +freeswitch-config-minimal \
+               +freeswitch-mod-commands \
+               +freeswitch-mod-syslog \
+               +freeswitch-mod-dialplan-xml \
+               +freeswitch-mod-dptools \
+               +freeswitch-mod-event-socket \
+               +freeswitch-mod-local-stream \
+               +freeswitch-mod-sndfile \
+               +freeswitch-mod-sofia \
+               +freeswitch-mod-tone-stream \
+               +freeswitch-mod-voipcodecs \
+               +freeswitch-tools
+endef
+
 # mod_lua is included in FreeSWITCH minimal because it is intended to be used
 # by the LuCI / ucitrigger interface to FreeSWITCH on OpenWRT
 
-define Package/freeswitch-collection-minimal
+define Package/freeswitch-collection-uci-minimal
 $(call Package/freeswitch/Default)
-  TITLE:=FreeSWITCH on OpenWRT minimal config
+  TITLE:=FreeSWITCH on OpenWRT minimal collection of packages
   DEPENDS:= freeswitch \
-               +freeswitch-config-minimal \
+               +freeswitch-config-uci \
                +freeswitch-mod-commands \
                +freeswitch-mod-syslog \
                +freeswitch-mod-dialplan-xml \
@@ -419,11 +449,22 @@ define Package/freeswitch-collection-minimal/install
        $(INSTALL_DIR) $(1)/etc/freeswitch
 endef
 
+define Package/freeswitch-collection-uci-minimal/install
+       $(INSTALL_DIR) $(1)/etc/freeswitch
+endef
+
 define Package/freeswitch-config-minimal/install
        $(INSTALL_DIR) $(1)/etc/freeswitch
        $(CP) ./files/etc.minimal/* $(1)/etc/freeswitch/
 endef
 
+define Package/freeswitch-config-uci/install
+       $(INSTALL_DIR) $(1)/etc/freeswitch
+       $(CP) ./files/etc.uci/* $(1)/etc/freeswitch/
+       $(INSTALL_DIR) $(1)/usr/lib/freeswitch/uci
+       $(CP) ./files/uci/* $(1)/usr/lib/freeswitch/uci/
+endef
+
 define Package/freeswitch-sounds-en/install
        $(INSTALL_DIR) $(1)/usr/freeswitch/sounds
        $(CP) $(PKG_INSTALL_DIR)/usr/freeswitch/sounds/en $(1)/usr/freeswitch/sounds/
@@ -466,12 +507,14 @@ endef
 $(eval $(call BuildPackage,freeswitch))
 $(eval $(call BuildPackage,freeswitch-collection-upstream-defaults))
 $(eval $(call BuildPackage,freeswitch-collection-minimal))
+$(eval $(call BuildPackage,freeswitch-collection-uci-minimal))
 $(eval $(call BuildPackage,freeswitch-sounds-en))
 $(eval $(call BuildPackage,freeswitch-sounds-moh))
 $(eval $(call BuildPackage,freeswitch-tools))
 $(eval $(call BuildPackage,freeswitch-example-config))
 $(eval $(call BuildPackage,freeswitch-config-upstream-defaults))
 $(eval $(call BuildPackage,freeswitch-config-minimal))
+$(eval $(call BuildPackage,freeswitch-config-uci))
 
 #$(eval $(call BuildPlugin,Name,Title,Files,Depends))
 $(eval $(call BuildPlugin,alsa,Alsa endpoint,mod_alsa,,+alsa-lib))
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/acl.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/acl.conf.xml
new file mode 100644 (file)
index 0000000..51839d3
--- /dev/null
@@ -0,0 +1,31 @@
+<configuration name="acl.conf" description="Network Lists">
+  <network-lists>
+    <!-- 
+        These ACL's are automatically created on startup.
+
+        rfc1918.auto  - RFC1918 Space
+        nat.auto      - RFC1918 Excluding your local lan.
+        localnet.auto - ACL for your local lan.
+        loopback.auto - ACL for your local lan.
+    -->
+
+    <!-- 
+      <list name="lan" default="allow">
+        <node type="deny" cidr="192.168.42.0/24"/>
+        <node type="allow" cidr="192.168.42.42/32"/>
+      </list>
+    -->
+
+    <!--
+       This will traverse the directory adding all users 
+       with the cidr= tag to this ACL, when this ACL matches
+       the users variables and params apply as if they 
+       digest authenticated.
+    -->
+    <list name="domains" default="deny">
+      <node type="allow" domain="$${domain}"/>
+    </list>
+
+  </network-lists>
+</configuration>
+
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/console.conf.xml b/net/freeswitch/files/etc.uci/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/net/freeswitch/files/etc.uci/autoload_configs/event_socket.conf.xml b/net/freeswitch/files/etc.uci/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/net/freeswitch/files/etc.uci/autoload_configs/local_stream.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/local_stream.conf.xml
new file mode 100644 (file)
index 0000000..94a5665
--- /dev/null
@@ -0,0 +1,49 @@
+<configuration name="local_stream.conf" description="stream files from local dir">
+  <!-- fallback to default if requested moh class isn't found -->
+  <directory name="default" path="$${sounds_dir}/music/8000">
+    <param name="rate" value="8000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="20"/>
+    <param name="timer-name" value="soft"/>
+    <!-- list of short files to break in with every so often -->
+    <!--<param name="chime-list" value="file1.wav,file2.wav"/>-->
+    <!-- frequency of break-in (seconds)-->
+    <!--<param name="chime-freq" value="30"/>-->
+    <!-- limit to how many seconds the file will play -->
+    <!--<param name="chime-max" value="500"/>-->
+  </directory>
+
+  <directory name="moh/8000" path="$${sounds_dir}/music/8000">
+    <param name="rate" value="8000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="20"/>
+    <param name="timer-name" value="soft"/>
+  </directory>
+
+  <directory name="moh/16000" path="$${sounds_dir}/music/16000">
+    <param name="rate" value="16000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="20"/>
+    <param name="timer-name" value="soft"/>
+  </directory>
+
+  <directory name="moh/32000" path="$${sounds_dir}/music/32000">
+    <param name="rate" value="32000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="20"/>
+    <param name="timer-name" value="soft"/>
+  </directory>
+  <!--
+  <directory name="moh/48000" path="$${sounds_dir}/music/48000">
+    <param name="rate" value="48000"/>
+    <param name="shuffle" value="true"/>
+    <param name="channels" value="1"/>
+    <param name="interval" value="10"/>
+    <param name="timer-name" value="soft"/>
+  </directory>
+  -->
+</configuration>
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/lua.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/lua.conf.xml
new file mode 100644 (file)
index 0000000..1eb594f
--- /dev/null
@@ -0,0 +1,30 @@
+<configuration name="lua.conf" description="LUA Configuration">
+  <settings>
+
+    <!-- 
+    Specify local directories that will be searched for LUA modules
+    These entries will be pre-pended to the LUA_CPATH environment variable
+    -->
+    <!-- <param name="module-directory" value="/usr/lib/lua/5.1/?.so"/> -->
+    <!-- <param name="module-directory" value="/usr/local/lib/lua/5.1/?.so"/> -->
+
+    <!-- 
+    Specify local directories that will be searched for LUA scripts
+    These entries will be pre-pended to the LUA_PATH environment variable
+    -->
+    <!-- <param name="script-directory" value="/usr/local/lua/?.lua"/> -->
+    <!-- <param name="script-directory" value="$${base_dir}/scripts/?.lua"/> -->
+
+    <!--<param name="xml-handler-script" value="/dp.lua"/>-->
+    <!--<param name="xml-handler-bindings" value="dialplan"/>-->
+
+    <!--
+       The following options identifies a lua script that is launched
+       at startup and may live forever in the background.
+       You can define multiple lines, one for each script you 
+       need to run.
+    -->
+    <!--<param name="startup-script" value="startup_script_1.lua"/>-->
+    <!--<param name="startup-script" value="startup_script_2.lua"/>-->
+  </settings>
+</configuration>
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/modules.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/modules.conf.xml
new file mode 100644 (file)
index 0000000..009978a
--- /dev/null
@@ -0,0 +1,111 @@
+<configuration name="modules.conf" description="Modules">
+  <modules>
+    
+    <!-- Loggers (I'd load these first) -->
+    <!-- <load module="mod_console"/> -->
+    <!-- <load module="mod_logfile"/> -->
+    <load module="mod_syslog"/>
+
+    <!--<load module="mod_yaml"/>-->
+
+    <!-- Multi-Faceted -->
+    <!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
+    <!-- <load module="mod_enum"/> -->
+
+    <!-- XML Interfaces -->
+    <!-- <load module="mod_xml_rpc"/> -->
+    <!-- <load module="mod_xml_curl"/> -->
+    <!-- <load module="mod_xml_cdr"/> -->
+
+    <!-- Event Handlers -->
+    <!-- <load module="mod_cdr_csv"/> -->
+    <!-- <load module="mod_event_multicast"/> -->
+    <load module="mod_event_socket"/>
+    <!-- <load module="mod_zeroconf"/> -->
+
+    <!-- Directory Interfaces -->
+    <!-- <load module="mod_ldap"/> -->
+
+    <!-- Endpoints -->
+    <!-- <load module="mod_dingaling"/> -->
+    <!-- <load module="mod_portaudio"/> -->
+    <!-- <load module="mod_alsa"/> -->
+    <load module="mod_sofia"/>
+    <!-- <load module="mod_loopback"/> -->
+    <!-- <load module="mod_woomera"/> -->
+    <!-- <load module="mod_openzap"/> -->
+    <!-- <load module="mod_unicall"/> -->
+
+    <!-- Applications -->
+    <load module="mod_commands"/>
+    <!-- <load module="mod_conference"/> -->
+    <load module="mod_dptools"/>
+    <!-- <load module="mod_expr"/> -->
+    <!-- <load module="mod_fifo"/> -->
+    <!-- <load module="mod_voicemail"/> -->
+    <!--<load module="mod_directory"/>-->
+    <!--<load module="mod_fax"/>-->
+    <!--<load module="mod_lcr"/>-->
+    <!-- <load module="mod_limit"/> -->
+    <!-- <load module="mod_esf"/> -->
+    <!-- <load module="mod_fsv"/> -->
+    <!-- <load module="mod_cluechoo"/> -->
+    <!-- <load module="mod_valet_parking"/> -->
+    <!--<load module="mod_spy"/>-->
+    <!-- <load module="mod_curl"/> -->
+
+    <!-- SNOM Module -->
+    <!--<load module="mod_snom"/>-->
+
+    <!-- Dialplan Interfaces -->
+    <!-- <load module="mod_dialplan_directory"/> -->
+    <load module="mod_dialplan_xml"/>
+    <!-- <load module="mod_dialplan_asterisk"/> -->
+
+    <!-- Codec Interfaces -->
+    <load module="mod_voipcodecs"/>
+    <!-- <load module="mod_g723_1"/> -->
+    <!-- <load module="mod_g729"/> -->
+    <!-- <load module="mod_amr"/> -->
+    <!-- <load module="mod_ilbc"/> -->
+    <!-- <load module="mod_speex"/> -->
+    <!-- <load module="mod_h26x"/> -->
+    <!-- <load module="mod_siren"/> -->
+    <!--<load module="mod_celt"/>-->
+
+    <!-- File Format Interfaces -->
+    <load module="mod_sndfile"/>
+    <!-- <load module="mod_native_file"/> -->
+    <!--For icecast/mp3 streams/files-->
+    <!--<load module="mod_shout"/>-->
+    <!--For local streams (play all the files in a directory)-->
+    <load module="mod_local_stream"/>
+    <load module="mod_tone_stream"/>
+    <!-- <load module="mod_file_string"/> -->
+
+    <!-- Timers -->
+
+    <!-- Languages -->
+    <!-- <load module="mod_spidermonkey"/> -->
+    <!-- <load module="mod_perl"/> -->
+    <!-- <load module="mod_python"/> -->
+    <!-- <load module="mod_java"/> -->
+    <load module="mod_lua"/>
+
+    <!-- ASR /TTS -->
+    <!-- <load module="mod_flite"/> -->
+    <!-- <load module="mod_pocketsphinx"/> -->
+    <!-- <load module="mod_cepstral"/> -->
+    <!-- <load module="mod_tts_commandline"/> -->
+    <!-- <load module="mod_rss"/> -->
+    
+    <!-- Say -->
+    <!-- <load module="mod_say_en"/> -->
+    <!-- <load module="mod_say_ru"/> -->
+    <!-- <load module="mod_say_zh"/> -->
+
+    <!-- Third party modules -->
+    <!--<load module="mod_nibblebill"/>-->
+
+  </modules>
+</configuration>
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/post_load_modules.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/post_load_modules.conf.xml
new file mode 100644 (file)
index 0000000..8f4e132
--- /dev/null
@@ -0,0 +1,4 @@
+<configuration name="post_load_modules.conf" description="Modules">
+  <modules>
+  </modules>
+</configuration>
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/sofia.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/sofia.conf.xml
new file mode 100644 (file)
index 0000000..24252d0
--- /dev/null
@@ -0,0 +1,18 @@
+<configuration name="sofia.conf" description="sofia Endpoint">
+
+  <global_settings>
+    <param name="log-level" value="0"/>
+    <!-- <param name="auto-restart" value="false"/> -->
+    <param name="debug-presence" value="0"/>
+  </global_settings>
+
+  <!--
+      The rabbit hole goes deep.  This includes all the
+      profiles in the sip_profiles directory that is up
+      one level from this directory.
+  -->
+  <profiles>
+    <X-PRE-PROCESS cmd="include" data="../sip_profiles/*.xml"/>
+  </profiles>
+
+</configuration>
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/switch.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/switch.conf.xml
new file mode 100644 (file)
index 0000000..88b2fed
--- /dev/null
@@ -0,0 +1,57 @@
+<configuration name="switch.conf" description="Core Configuration">
+
+  <cli-keybindings>
+    <key name="1" value="help"/>
+    <key name="2" value="status"/>
+    <key name="3" value="show channels"/>
+    <key name="4" value="show calls"/>
+    <key name="5" value="sofia status"/>
+    <key name="6" value="reloadxml"/>
+    <key name="7" value="console loglevel 0"/>
+    <key name="8" value="console loglevel 7"/>
+    <key name="9" value="sofia status profile internal"/>
+    <key name="10" value="sofia profile internal siptrace on"/>
+    <key name="11" value="sofia profile internal siptrace off"/>
+    <key name="12" value="version"/>
+  </cli-keybindings> 
+  
+  <settings>
+    <!--Colorize the Console -->
+    <param name="colorize-console" value="true"/>
+    <!--Most channels to allow at once -->
+    <param name="max-sessions" value="1000"/>
+    <!--Most channels to create per second -->
+    <param name="sessions-per-second" value="30"/>
+    <!-- Default Global Log Level - value is one of debug,info,notice,warning,err,crit,alert -->
+    <param name="loglevel" value="debug"/>
+       <!-- The min-dtmf-duration specifies the minimum DTMF duration to use on 
+            outgoing events. Events shorter than this will be increased in duration
+                to match min_dtmf_duration. You cannot configure a dtmf duration on a 
+                profile that is less than this setting. You may increase this value,
+                but cannot set it lower than 400. This value cannot exceed 
+                max-dtmf-duration. -->
+    <!--<param name="min-dtmf-duration" value="400"/>-->
+       <!-- The max-dtmf-duration caps the playout of a DTMF event at the specified
+            duration. Events exceeding this duration will be truncated to this
+                duration. You cannot configure a duration on a profile that exceeds
+                this setting. This setting can be lowered, but cannot exceed 192000. 
+                This setting cannot be set lower than min_dtmf_duration. -->
+    <!--<param name="max-dtmf-duration" value="192000"/>-->
+       <!-- The default_dtmf_duration specifies the DTMF duration to use on
+            originated DTMF events or on events that are received without a
+                duration specified. This value can be increased or lowered. This
+                value is lower-bounded by min_dtmf_duration and upper-bounded by
+                max-dtmf-duration\. -->
+    <!--<param name="default-dtmf-duration" value="2000"/>-->
+    <param name="mailer-app" value="sendmail"/>
+    <param name="mailer-app-args" value="-t"/>
+    <param name="dump-cores" value="yes"/>
+    <!--RTP port range -->
+    <!--<param name="rtp-start-port" value="16384"/>-->
+    <!--<param name="rtp-end-port" value="32768"/>-->
+    <param name="rtp-enable-zrtp" value="true"/>
+    <!-- <param name="core-db-dsn" value="dsn:username:password" /> -->
+  </settings>
+
+</configuration>
+
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/syslog.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/syslog.conf.xml
new file mode 100644 (file)
index 0000000..0c8d476
--- /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="info"/>
+       <!-- Uncomment the following line to log uuids in syslogs (when applicable) -->
+    <!-- <param name="uuid" value="true"/> -->
+  </settings>
+</configuration>
diff --git a/net/freeswitch/files/etc.uci/autoload_configs/timezones.conf.xml b/net/freeswitch/files/etc.uci/autoload_configs/timezones.conf.xml
new file mode 100644 (file)
index 0000000..85c805f
--- /dev/null
@@ -0,0 +1,551 @@
+<configuration name="timezones.conf" description="Timezones">
+    <timezones>
+       <zone name="Africa/Abidjan" value="GMT0" />
+       <zone name="Africa/Accra" value="GMT0" />
+       <zone name="Africa/Addis_Ababa" value="EAT-3" />
+       <zone name="Africa/Algiers" value="CET-1" />
+       <zone name="Africa/Asmara" value="EAT-3" />
+       <zone name="Africa/Asmera" value="EAT-3" />
+       <zone name="Africa/Bamako" value="GMT0" />
+       <zone name="Africa/Bangui" value="WAT-1" />
+       <zone name="Africa/Banjul" value="GMT0" />
+       <zone name="Africa/Bissau" value="GMT0" />
+       <zone name="Africa/Blantyre" value="CAT-2" />
+       <zone name="Africa/Brazzaville" value="WAT-1" />
+       <zone name="Africa/Bujumbura" value="CAT-2" />
+       <zone name="Africa/Cairo" value="EEST" />
+       <zone name="Africa/Casablanca" value="WET0" />
+       <zone name="Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Africa/Conakry" value="GMT0" />
+       <zone name="Africa/Dakar" value="GMT0" />
+       <zone name="Africa/Dar_es_Salaam" value="EAT-3" />
+       <zone name="Africa/Djibouti" value="EAT-3" />
+       <zone name="Africa/Douala" value="WAT-1" />
+       <zone name="Africa/El_Aaiun" value="WET0" />
+       <zone name="Africa/Freetown" value="GMT0" />
+       <zone name="Africa/Gaborone" value="CAT-2" />
+       <zone name="Africa/Harare" value="CAT-2" />
+       <zone name="Africa/Johannesburg" value="SAST-2" />
+       <zone name="Africa/Kampala" value="EAT-3" />
+       <zone name="Africa/Khartoum" value="EAT-3" />
+       <zone name="Africa/Kigali" value="CAT-2" />
+       <zone name="Africa/Kinshasa" value="WAT-1" />
+       <zone name="Africa/Lagos" value="WAT-1" />
+       <zone name="Africa/Libreville" value="WAT-1" />
+       <zone name="Africa/Lome" value="GMT0" />
+       <zone name="Africa/Luanda" value="WAT-1" />
+       <zone name="Africa/Lubumbashi" value="CAT-2" />
+       <zone name="Africa/Lusaka" value="CAT-2" />
+       <zone name="Africa/Malabo" value="WAT-1" />
+       <zone name="Africa/Maputo" value="CAT-2" />
+       <zone name="Africa/Maseru" value="SAST-2" />
+       <zone name="Africa/Mbabane" value="SAST-2" />
+       <zone name="Africa/Mogadishu" value="EAT-3" />
+       <zone name="Africa/Monrovia" value="GMT0" />
+       <zone name="Africa/Nairobi" value="EAT-3" />
+       <zone name="Africa/Ndjamena" value="WAT-1" />
+       <zone name="Africa/Niamey" value="WAT-1" />
+       <zone name="Africa/Nouakchott" value="GMT0" />
+       <zone name="Africa/Ouagadougou" value="GMT0" />
+       <zone name="Africa/Porto-Novo" value="WAT-1" />
+       <zone name="Africa/Sao_Tome" value="GMT0" />
+       <zone name="Africa/Timbuktu" value="GMT0" />
+       <zone name="Africa/Tripoli" value="EET-2" />
+       <zone name="Africa/Tunis" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Africa/Windhoek" value="WAT-1WAST,M9.1.0,M4.1.0" />
+
+       <zone name="America/Adak" value="HAST10HADT,M3.2.0,M11.1.0" />
+       <zone name="America/Anchorage" value="AKST9AKDT,M3.2.0,M11.1.0" />
+       <zone name="America/Anguilla" value="AST4" />
+       <zone name="America/Antigua" value="AST4" />
+       <zone name="America/Araguaina" value="BRT3" />
+       <zone name="America/Argentina/Buenos_Aires" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/Catamarca" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/ComodRivadavia" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/Cordoba" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/Jujuy" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/La_Rioja" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/Mendoza" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/Rio_Gallegos" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/San_Juan" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/San_Luis" value="ART3" />
+       <zone name="America/Argentina/Tucuman" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Argentina/Ushuaia" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Aruba" value="AST4" />
+       <zone name="America/Asuncion" value="PYT4PYST,M10.3.0/0,M3.2.0/0" />
+       <zone name="America/Atikokan" value="EST5" />
+       <zone name="America/Atka" value="HAST10HADT,M3.2.0,M11.1.0" />
+       <zone name="America/Bahia" value="BRT3" />
+       <zone name="America/Barbados" value="AST4" />
+       <zone name="America/Belem" value="BRT3" />
+       <zone name="America/Belize" value="CST6" />
+       <zone name="America/Blanc-Sablon" value="AST4" />
+       <zone name="America/Boa_Vista" value="AMT4" />
+       <zone name="America/Bogota" value="COT5" />
+       <zone name="America/Boise" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="America/Buenos_Aires" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="America/Campo_Grande" value="AMT4AMST,M10.2.0/0,M2.3.0/0" />
+       <zone name="America/Cancun" value="CST6CDT,M4.1.0,M10.5.0" />
+       <zone name="America/Caracas" value="VET4:30" />
+       <zone name="America/Catamarca" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Cayenne" value="GFT3" />
+       <zone name="America/Cayman" value="EST5" />
+       <zone name="America/Chicago" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/Chihuahua" value="MST7MDT,M4.1.0,M10.5.0" />
+       <zone name="America/Coral_Harbour" value="EST5" />
+       <zone name="America/Cordoba" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Costa_Rica" value="CST6" />
+       <zone name="America/Cuiaba" value="AMT4AMST,M10.2.0/0,M2.3.0/0" />
+       <zone name="America/Curacao" value="AST4" />
+       <zone name="America/Danmarkshavn" value="GMT0" />
+       <zone name="America/Dawson" value="PST8PDT,M3.2.0,M11.1.0" />
+       <zone name="America/Dawson_Creek" value="MST7" />
+       <zone name="America/Denver" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="America/Detroit" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Dominica" value="AST4" />
+       <zone name="America/Edmonton" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="America/Eirunepe" value="ACT5" />
+       <zone name="America/El_Salvador" value="CST6" />
+       <zone name="America/Ensenada" value="PST8PDT,M4.1.0,M10.5.0" />
+       <zone name="America/Fortaleza" value="BRT3" />
+       <zone name="America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Glace_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
+       <zone name="America/Godthab" value="WGST" />
+       <zone name="America/Goose_Bay" value="AST4ADT,M3.2.0/0:01,M11.1.0/0:01" />
+       <zone name="America/Grand_Turk" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Grenada" value="AST4" />
+       <zone name="America/Guadeloupe" value="AST4" />
+       <zone name="America/Guatemala" value="CST6" />
+       <zone name="America/Guayaquil" value="ECT5" />
+       <zone name="America/Guyana" value="GYT4" />
+       <zone name="America/Halifax" value="AST4ADT,M3.2.0,M11.1.0" />
+       <zone name="America/Havana" value="CST5CDT,M3.3.0/0,M10.5.0/1" />
+       <zone name="America/Hermosillo" value="MST7" />
+       <zone name="America/Indiana/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Indiana/Knox" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/Indiana/Marengo" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Indiana/Petersburg" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Indiana/Tell_City" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/Indiana/Vevay" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Indiana/Vincennes" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Indiana/Winamac" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Inuvik" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="America/Iqaluit" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Jamaica" value="EST5" />
+       <zone name="America/Jujuy" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Juneau" value="AKST9AKDT,M3.2.0,M11.1.0" />
+       <zone name="America/Kentucky/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Kentucky/Monticello" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Knox_IN" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/La_Paz" value="BOT4" />
+       <zone name="America/Lima" value="PET5" />
+       <zone name="America/Los_Angeles" value="PST8PDT,M3.2.0,M11.1.0" />
+       <zone name="America/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Maceio" value="BRT3" />
+       <zone name="America/Managua" value="CST6" />
+       <zone name="America/Manaus" value="AMT4" />
+       <zone name="America/Marigot" value="AST4" />
+       <zone name="America/Martinique" value="AST4" />
+       <zone name="America/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" />
+       <zone name="America/Mendoza" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Menominee" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/Merida" value="CST6CDT,M4.1.0,M10.5.0" />
+       <zone name="America/Mexico_City" value="CST6CDT,M4.1.0,M10.5.0" />
+       <zone name="America/Miquelon" value="PMST3PMDT,M3.2.0,M11.1.0" />
+       <zone name="America/Moncton" value="AST4ADT,M3.2.0,M11.1.0" />
+       <zone name="America/Monterrey" value="CST6CDT,M4.1.0,M10.5.0" />
+       <zone name="America/Montevideo" value="UYT3UYST,M10.1.0,M3.2.0" />
+       <zone name="America/Montreal" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Montserrat" value="AST4" />
+       <zone name="America/Nassau" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/New_York" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Nipigon" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Nome" value="AKST9AKDT,M3.2.0,M11.1.0" />
+       <zone name="America/Noronha" value="FNT2" />
+       <zone name="America/North_Dakota/Center" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/North_Dakota/New_Salem" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/Panama" value="EST5" />
+       <zone name="America/Pangnirtung" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Paramaribo" value="SRT3" />
+       <zone name="America/Phoenix" value="MST7" />
+       <zone name="America/Port-au-Prince" value="EST5" />
+       <zone name="America/Porto_Acre" value="ACT5" />
+       <zone name="America/Port_of_Spain" value="AST4" />
+       <zone name="America/Porto_Velho" value="AMT4" />
+       <zone name="America/Puerto_Rico" value="AST4" />
+       <zone name="America/Rainy_River" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/Rankin_Inlet" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/Recife" value="BRT3" />
+       <zone name="America/Regina" value="CST6" />
+       <zone name="America/Resolute" value="EST5" />
+       <zone name="America/Rio_Branco" value="ACT5" />
+       <zone name="America/Rosario" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+       <zone name="America/Santiago" value="CLST" />
+       <zone name="America/Santo_Domingo" value="AST4" />
+       <zone name="America/Sao_Paulo" value="BRT3BRST,M10.2.0/0,M2.3.0/0" />
+       <zone name="America/Scoresbysund" value="EGT1EGST,M3.5.0/0,M10.5.0/1" />
+       <zone name="America/Shiprock" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="America/St_Barthelemy" value="AST4" />
+       <zone name="America/St_Johns" value="NST3:30NDT,M3.2.0/0:01,M11.1.0/0:01" />
+       <zone name="America/St_Kitts" value="AST4" />
+       <zone name="America/St_Lucia" value="AST4" />
+       <zone name="America/St_Thomas" value="AST4" />
+       <zone name="America/St_Vincent" value="AST4" />
+       <zone name="America/Swift_Current" value="CST6" />
+       <zone name="America/Tegucigalpa" value="CST6" />
+       <zone name="America/Thule" value="AST4ADT,M3.2.0,M11.1.0" />
+       <zone name="America/Thunder_Bay" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Tijuana" value="PST8PDT,M4.1.0,M10.5.0" />
+       <zone name="America/Toronto" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="America/Tortola" value="AST4" />
+       <zone name="America/Vancouver" value="PST8PDT,M3.2.0,M11.1.0" />
+       <zone name="America/Virgin" value="AST4" />
+       <zone name="America/Whitehorse" value="PST8PDT,M3.2.0,M11.1.0" />
+       <zone name="America/Winnipeg" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="America/Yakutat" value="AKST9AKDT,M3.2.0,M11.1.0" />
+       <zone name="America/Yellowknife" value="MST7MDT,M3.2.0,M11.1.0" />
+
+       <zone name="Antarctica/Casey" value="WST-8" />
+       <zone name="Antarctica/Davis" value="DAVT-7" />
+       <zone name="Antarctica/DumontDUrville" value="DDUT-10" />
+       <zone name="Antarctica/Mawson" value="MAWT-6" />
+       <zone name="Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+       <zone name="Antarctica/Palmer" value="CLST" />
+       <zone name="Antarctica/Rothera" value="ROTT3" />
+       <zone name="Antarctica/South_Pole" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+       <zone name="Antarctica/Syowa" value="SYOT-3" />
+       <zone name="Antarctica/Vostok" value="VOST-6" />
+
+       <zone name="Arctic/Longyearbyen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+
+       <zone name="Asia/Aden" value="AST-3" />
+       <zone name="Asia/Almaty" value="ALMT-6" />
+       <zone name="Asia/Amman" value="EET-2EEST,M3.5.4/0,M10.5.5/1" />
+       <zone name="Asia/Anadyr" value="ANAT-12ANAST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Aqtau" value="AQTT-5" />
+       <zone name="Asia/Aqtobe" value="AQTT-5" />
+       <zone name="Asia/Ashgabat" value="TMT-5" />
+       <zone name="Asia/Ashkhabad" value="TMT-5" />
+       <zone name="Asia/Baghdad" value="AST-3" />
+       <zone name="Asia/Bahrain" value="AST-3" />
+       <zone name="Asia/Baku" value="AZT-4AZST,M3.5.0/4,M10.5.0/5" />
+       <zone name="Asia/Bangkok" value="ICT-7" />
+       <zone name="Asia/Beirut" value="EET-2EEST,M3.5.0/0,M10.5.0/0" />
+       <zone name="Asia/Bishkek" value="KGT-6" />
+       <zone name="Asia/Brunei" value="BNT-8" />
+       <zone name="Asia/Calcutta" value="IST-5:30" />
+       <zone name="Asia/Choibalsan" value="CHOT-9" />
+       <zone name="Asia/Chongqing" value="CST-8" />
+       <zone name="Asia/Chungking" value="CST-8" />
+       <zone name="Asia/Colombo" value="IST-5:30" />
+       <zone name="Asia/Dacca" value="BDT-6" />
+       <zone name="Asia/Damascus" value="EET-2EEST,M4.1.5/0,J274/0" />
+       <zone name="Asia/Dhaka" value="BDT-6" />
+       <zone name="Asia/Dili" value="TLT-9" />
+       <zone name="Asia/Dubai" value="GST-4" />
+       <zone name="Asia/Dushanbe" value="TJT-5" />
+       <zone name="Asia/Gaza" value="EET-2EEST,J91/0,M9.2.4" />
+       <zone name="Asia/Harbin" value="CST-8" />
+       <zone name="Asia/Ho_Chi_Minh" value="ICT-7" />
+       <zone name="Asia/Hong_Kong" value="HKT-8" />
+       <zone name="Asia/Hovd" value="HOVT-7" />
+       <zone name="Asia/Irkutsk" value="IRKT-8IRKST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Asia/Jakarta" value="WIT-7" />
+       <zone name="Asia/Jayapura" value="EIT-9" />
+       <zone name="Asia/Jerusalem" value="IDDT" />
+       <zone name="Asia/Kabul" value="AFT-4:30" />
+       <zone name="Asia/Kamchatka" value="PETT-12PETST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Karachi" value="PKT-5" />
+       <zone name="Asia/Kashgar" value="CST-8" />
+       <zone name="Asia/Katmandu" value="NPT-5:45" />
+       <zone name="Asia/Kolkata" value="IST-5:30" />
+       <zone name="Asia/Krasnoyarsk" value="KRAT-7KRAST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Kuala_Lumpur" value="MYT-8" />
+       <zone name="Asia/Kuching" value="MYT-8" />
+       <zone name="Asia/Kuwait" value="AST-3" />
+       <zone name="Asia/Macao" value="CST-8" />
+       <zone name="Asia/Macau" value="CST-8" />
+       <zone name="Asia/Magadan" value="MAGT-11MAGST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Makassar" value="CIT-8" />
+       <zone name="Asia/Manila" value="PHT-8" />
+       <zone name="Asia/Muscat" value="GST-4" />
+       <zone name="Asia/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Asia/Novosibirsk" value="NOVT-6NOVST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Omsk" value="OMST-6OMSST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Oral" value="ORAT-5" />
+       <zone name="Asia/Phnom_Penh" value="ICT-7" />
+       <zone name="Asia/Pontianak" value="WIT-7" />
+       <zone name="Asia/Pyongyang" value="KST-9" />
+       <zone name="Asia/Qatar" value="AST-3" />
+       <zone name="Asia/Qyzylorda" value="QYZT-6" />
+       <zone name="Asia/Rangoon" value="MMT-6:30" />
+       <zone name="Asia/Riyadh" value="AST-3" />
+       <zone name="Asia/Riyadh87" value="zzz-3:07:04" />
+       <zone name="Asia/Riyadh88" value="zzz-3:07:04" />
+       <zone name="Asia/Riyadh89" value="zzz-3:07:04" />
+       <zone name="Asia/Saigon" value="ICT-7" />
+       <zone name="Asia/Sakhalin" value="SAKT-10SAKST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Samarkand" value="UZT-5" />
+       <zone name="Asia/Seoul" value="KST-9" />
+       <zone name="Asia/Shanghai" value="CST-8" />
+       <zone name="Asia/Singapore" value="SGT-8" />
+       <zone name="Asia/Taipei" value="CST-8" />
+       <zone name="Asia/Tashkent" value="UZT-5" />
+       <zone name="Asia/Tbilisi" value="GET-4" />
+       <zone name="Asia/Tehran" value="IRDT" />
+       <zone name="Asia/Tel_Aviv" value="IDDT" />
+       <zone name="Asia/Thimbu" value="BTT-6" />
+       <zone name="Asia/Thimphu" value="BTT-6" />
+       <zone name="Asia/Tokyo" value="JST-9" />
+       <zone name="Asia/Ujung_Pandang" value="CIT-8" />
+       <zone name="Asia/Ulaanbaatar" value="ULAT-8" />
+       <zone name="Asia/Ulan_Bator" value="ULAT-8" />
+       <zone name="Asia/Urumqi" value="CST-8" />
+       <zone name="Asia/Vientiane" value="ICT-7" />
+       <zone name="Asia/Vladivostok" value="VLAT-10VLAST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Yakutsk" value="YAKT-9YAKST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Yekaterinburg" value="YEKT-5YEKST,M3.5.0,M10.5.0/3" />
+       <zone name="Asia/Yerevan" value="AMT-4AMST,M3.5.0,M10.5.0/3" />
+
+       <zone name="Atlantic/Azores" value="AZOT1AZOST,M3.5.0/0,M10.5.0/1" />
+       <zone name="Atlantic/Bermuda" value="AST4ADT,M3.2.0,M11.1.0" />
+       <zone name="Atlantic/Canary" value="WET0WEST,M3.5.0/1,M10.5.0" />
+       <zone name="Atlantic/Cape_Verde" value="CVT1" />
+       <zone name="Atlantic/Faeroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
+       <zone name="Atlantic/Faroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
+       <zone name="Atlantic/Jan_Mayen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Atlantic/Madeira" value="WET0WEST,M3.5.0/1,M10.5.0" />
+       <zone name="Atlantic/Reykjavik" value="GMT0" />
+       <zone name="Atlantic/South_Georgia" value="GST2" />
+       <zone name="Atlantic/Stanley" value="FKT4FKST,M9.1.0,M4.3.0" />
+       <zone name="Atlantic/St_Helena" value="GMT0" />
+
+       <zone name="Australia/ACT" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Adelaide" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Brisbane" value="EST-10" />
+       <zone name="Australia/Broken_Hill" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Canberra" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Currie" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Darwin" value="CST-9:30" />
+       <zone name="Australia/Eucla" value="CWST-8:45" />
+       <zone name="Australia/Hobart" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/LHI" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
+       <zone name="Australia/Lindeman" value="EST-10" />
+       <zone name="Australia/Lord_Howe" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
+       <zone name="Australia/Melbourne" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/North" value="CST-9:30" />
+       <zone name="Australia/NSW" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Perth" value="WST-8" />
+       <zone name="Australia/Queensland" value="EST-10" />
+       <zone name="Australia/South" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Sydney" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Tasmania" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/Victoria" value="EST-10EST,M10.1.0,M4.1.0/3" />
+       <zone name="Australia/West" value="WST-8" />
+       <zone name="Australia/Yancowinna" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
+
+       <zone name="Brazil/Acre" value="ACT5" />
+       <zone name="Brazil/DeNoronha" value="FNT2" />
+       <zone name="Brazil/East" value="BRT3BRST,M10.2.0/0,M2.3.0/0" />
+       <zone name="Brazil/West" value="AMT4" />
+
+       <zone name="Canada/Atlantic" value="AST4ADT,M3.2.0,M11.1.0" />
+       <zone name="Canada/Central" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="Canada/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="Canada/East-Saskatchewan" value="CST6" />
+       <zone name="Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="Canada/Newfoundland" value="NST3:30NDT,M3.2.0/0:01,M11.1.0/0:01" />
+       <zone name="Canada/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
+       <zone name="Canada/Saskatchewan" value="CST6" />
+       <zone name="Canada/Yukon" value="PST8PDT,M3.2.0,M11.1.0" />
+
+       <zone name="Chile/Continental" value="CLST" />
+       <zone name="Chile/EasterIsland" value="EASST" />
+
+       <zone name="Etc/GMT" value="GMT0" />
+       <zone name="Etc/GMT0" value="GMT0" />
+       <zone name="Etc/GMT-0" value="GMT0" />
+       <zone name="Etc/GMT+0" value="GMT0" />
+       <zone name="Etc/GMT-1" value="GMT-1" />
+       <zone name="Etc/GMT+1" value="GMT+1" />
+       <zone name="Etc/GMT-10" value="GMT-10" />
+       <zone name="Etc/GMT+10" value="GMT+10" />
+       <zone name="Etc/GMT-11" value="GMT-11" />
+       <zone name="Etc/GMT+11" value="GMT+11" />
+       <zone name="Etc/GMT-12" value="GMT-12" />
+       <zone name="Etc/GMT+12" value="GMT+12" />
+       <zone name="Etc/GMT-13" value="GMT-13" />
+       <zone name="Etc/GMT-14" value="GMT-14" />
+       <zone name="Etc/GMT-2" value="GMT-2" />
+       <zone name="Etc/GMT+2" value="GMT+2" />
+       <zone name="Etc/GMT-3" value="GMT-3" />
+       <zone name="Etc/GMT+3" value="GMT+3" />
+       <zone name="Etc/GMT-4" value="GMT-4" />
+       <zone name="Etc/GMT+4" value="GMT+4" />
+       <zone name="Etc/GMT-5" value="GMT-5" />
+       <zone name="Etc/GMT+5" value="GMT+5" />
+       <zone name="Etc/GMT-6" value="GMT-6" />
+       <zone name="Etc/GMT+6" value="GMT+6" />
+       <zone name="Etc/GMT-7" value="GMT-7" />
+       <zone name="Etc/GMT+7" value="GMT+7" />
+       <zone name="Etc/GMT-8" value="GMT-8" />
+       <zone name="Etc/GMT+8" value="GMT+8" />
+       <zone name="Etc/GMT-9" value="GMT-9" />
+       <zone name="Etc/GMT+9" value="GMT+9" />
+       <zone name="Etc/Greenwich" value="GMT0" />
+       <zone name="Etc/UCT" value="UCT0" />
+       <zone name="Etc/Universal" value="UTC0" />
+       <zone name="Etc/UTC" value="UTC0" />
+       <zone name="Etc/Zulu" value="UTC0" />
+
+       <zone name="Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Andorra" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Athens" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Belfast" value="GMT0BST,M3.5.0/1,M10.5.0" />
+       <zone name="Europe/Belgrade" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Berlin" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Bratislava" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Brussels" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Bucharest" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Budapest" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Chisinau" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Copenhagen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Dublin" value="GMT0IST,M3.5.0/1,M10.5.0" />
+       <zone name="Europe/Gibraltar" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Guernsey" value="GMT0BST,M3.5.0/1,M10.5.0" />
+       <zone name="Europe/Helsinki" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Isle_of_Man" value="GMT0BST,M3.5.0/1,M10.5.0" />
+       <zone name="Europe/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Jersey" value="GMT0BST,M3.5.0/1,M10.5.0" />
+       <zone name="Europe/Kaliningrad" value="EET-2EEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Kiev" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Lisbon" value="WET0WEST,M3.5.0/1,M10.5.0" />
+       <zone name="Europe/Ljubljana" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/London" value="GMT0BST,M3.5.0/1,M10.5.0" />
+       <zone name="Europe/Luxembourg" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Madrid" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Malta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Mariehamn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Minsk" value="EET-2EEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Moscow" value="MSK-3MSD,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Oslo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Paris" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Podgorica" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Prague" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Riga" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Rome" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Samara" value="SAMT-4SAMST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/San_Marino" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Sarajevo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Simferopol" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Skopje" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Sofia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Stockholm" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Tallinn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Tirane" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Tiraspol" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Uzhgorod" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Vaduz" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Vatican" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Vienna" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Vilnius" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Volgograd" value="VOLT-3VOLST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Warsaw" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Zagreb" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+       <zone name="Europe/Zaporozhye" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+       <zone name="Europe/Zurich" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+
+       <zone name="Indian/Antananarivo" value="EAT-3" />
+       <zone name="Indian/Chagos" value="IOT-6" />
+       <zone name="Indian/Christmas" value="CXT-7" />
+       <zone name="Indian/Cocos" value="CCT-6:30" />
+       <zone name="Indian/Comoro" value="EAT-3" />
+       <zone name="Indian/Kerguelen" value="TFT-5" />
+       <zone name="Indian/Mahe" value="SCT-4" />
+       <zone name="Indian/Maldives" value="MVT-5" />
+       <zone name="Indian/Mauritius" value="MUT-4" />
+       <zone name="Indian/Mayotte" value="EAT-3" />
+       <zone name="Indian/Reunion" value="RET-4" />
+
+       <zone name="Mexico/BajaNorte" value="PST8PDT,M4.1.0,M10.5.0" />
+       <zone name="Mexico/BajaSur" value="MST7MDT,M4.1.0,M10.5.0" />
+       <zone name="Mexico/General" value="CST6CDT,M4.1.0,M10.5.0" />
+
+       <zone name="Mideast/Riyadh87" value="zzz-3:07:04" />
+       <zone name="Mideast/Riyadh88" value="zzz-3:07:04" />
+       <zone name="Mideast/Riyadh89" value="zzz-3:07:04" />
+
+       <zone name="Pacific/Apia" value="WST11" />
+       <zone name="Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+       <zone name="Pacific/Chatham" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
+       <zone name="Pacific/Easter" value="EASST" />
+       <zone name="Pacific/Efate" value="VUT-11" />
+       <zone name="Pacific/Enderbury" value="PHOT-13" />
+       <zone name="Pacific/Fakaofo" value="TKT10" />
+       <zone name="Pacific/Fiji" value="FJT-12" />
+       <zone name="Pacific/Funafuti" value="TVT-12" />
+       <zone name="Pacific/Galapagos" value="GALT6" />
+       <zone name="Pacific/Gambier" value="GAMT9" />
+       <zone name="Pacific/Guadalcanal" value="SBT-11" />
+       <zone name="Pacific/Guam" value="ChST-10" />
+       <zone name="Pacific/Honolulu" value="HST10" />
+       <zone name="Pacific/Johnston" value="HST10" />
+       <zone name="Pacific/Kiritimati" value="LINT-14" />
+       <zone name="Pacific/Kosrae" value="KOST-11" />
+       <zone name="Pacific/Kwajalein" value="MHT-12" />
+       <zone name="Pacific/Majuro" value="MHT-12" />
+       <zone name="Pacific/Marquesas" value="MART9:30" />
+       <zone name="Pacific/Midway" value="SST11" />
+       <zone name="Pacific/Nauru" value="NRT-12" />
+       <zone name="Pacific/Niue" value="NUT11" />
+       <zone name="Pacific/Norfolk" value="NFT-11:30" />
+       <zone name="Pacific/Noumea" value="NCT-11" />
+       <zone name="Pacific/Pago_Pago" value="SST11" />
+       <zone name="Pacific/Palau" value="PWT-9" />
+       <zone name="Pacific/Pitcairn" value="PST8" />
+       <zone name="Pacific/Ponape" value="PONT-11" />
+       <zone name="Pacific/Port_Moresby" value="PGT-10" />
+       <zone name="Pacific/Rarotonga" value="CKT10" />
+       <zone name="Pacific/Saipan" value="ChST-10" />
+       <zone name="Pacific/Samoa" value="SST11" />
+       <zone name="Pacific/Tahiti" value="TAHT10" />
+       <zone name="Pacific/Tarawa" value="GILT-12" />
+       <zone name="Pacific/Tongatapu" value="TOT-13" />
+       <zone name="Pacific/Truk" value="TRUT-10" />
+       <zone name="Pacific/Wake" value="WAKT-12" />
+       <zone name="Pacific/Wallis" value="WFT-12" />
+       <zone name="Pacific/Yap" value="TRUT-10" />
+
+       <zone name="SystemV/AST4" value="AST4" />
+       <zone name="SystemV/AST4ADT" value="AST4ADT,M3.2.0,M11.1.0" />
+       <zone name="SystemV/CST6" value="CST6" />
+       <zone name="SystemV/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="SystemV/EST5" value="EST5" />
+       <zone name="SystemV/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="SystemV/HST10" value="HST10" />
+       <zone name="SystemV/MST7" value="MST7" />
+       <zone name="SystemV/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="SystemV/PST8" value="PST8" />
+       <zone name="SystemV/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
+       <zone name="SystemV/YST9" value="GAMT9" />
+       <zone name="SystemV/YST9YDT" value="AKST9AKDT,M3.2.0,M11.1.0" />
+
+       <zone name="US/Alaska" value="AKST9AKDT,M3.2.0,M11.1.0" />
+       <zone name="US/Aleutian" value="HAST10HADT,M3.2.0,M11.1.0" />
+       <zone name="US/Arizona" value="MST7" />
+       <zone name="US/Central" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="US/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="US/East-Indiana" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="US/Hawaii" value="HST10" />
+       <zone name="US/Indiana-Starke" value="CST6CDT,M3.2.0,M11.1.0" />
+       <zone name="US/Michigan" value="EST5EDT,M3.2.0,M11.1.0" />
+       <zone name="US/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
+       <zone name="US/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
+       <zone name="US/Samoa" value="SST11" />
+    </timezones>
+</configuration>
diff --git a/net/freeswitch/files/etc.uci/dialplan/default.xml b/net/freeswitch/files/etc.uci/dialplan/default.xml
new file mode 100644 (file)
index 0000000..c366370
--- /dev/null
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    NOTICE:
+    
+    This context is usually accessed via authenticated callers on the sip profile on port 5060 
+    or transfered callers from the public context which arrived via the sip profile on port 5080.
+    
+    Authenticated users will use the user_context variable on the user to determine what context
+    they can access.  You can also add a user in the directory with the cidr= attribute acl.conf.xml
+    will build the domains ACL using this value.
+-->
+<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
+<include>
+  <context name="default">
+
+    <extension name="unloop">
+      <condition field="${unroll_loops}" expression="^true$"/>
+      <condition field="${sip_looped_call}" expression="^true$">
+       <action application="deflect" data="${destination_number}"/>
+      </condition>
+    </extension>
+
+    <extension name="redial">
+      <condition field="destination_number" expression="^870$">
+       <action application="transfer" data="${hash(select/${domain_name}-last_dial/${caller_id_number})}"/>
+      </condition>
+    </extension>
+
+    <extension name="global" continue="true">
+      <condition field="${call_debug}" expression="^true$" break="never">
+       <action application="info"/>
+      </condition>
+      <condition field="${sip_has_crypto}" expression="^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$" break="never">
+       <action application="set" data="sip_secure_media=true"/>
+       <!-- Offer SRTP on outbound legs if we have it on inbound. -->
+       <!-- <action application="export" data="sip_secure_media=true"/> -->
+      </condition>
+    </extension>
+
+    <!-- If sip_req_host is not a local domain then this has to be an external sip uri -->
+    <!--
+    <extension name="external_sip_uri" continue="true">
+      <condition field="source" expression="mod_sofia"/>
+      <condition field="${outside_call}" expression="^$"/>
+      <condition field="${domain_exists(${sip_req_host})}" expression="true">
+       <anti-action application="bridge" data="sofia/${use_profile}/${sip_to_uri}"/>
+      </condition>
+    </extension>
+    -->
+
+    <extension name="call_return">
+      <condition field="destination_number" expression="^\*69$|^869$|^lcr$">
+       <action application="transfer" data="${hash(select/${domain_name}-call_return/${caller_id_number})}"/>
+      </condition>
+    </extension>
+
+    <extension name="extension-intercom">
+      <condition field="destination_number" expression="^8(100[0-4])$">
+       <action application="set" data="dialed_extension=$1"/>
+       <action application="export" data="sip_auto_answer=true"/>
+       <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
+      </condition>
+    </extension>
+
+    <!-- 
+        dial the extension (1000-1004) for 2 minutes before giving up 
+        otherwise hang up after a successful bridge (hangup_after-bridge=true).
+        Record call if *2 is pressed during call.
+    -->
+    <extension name="Local_Extension">
+      <condition field="destination_number" expression="^(100[0-4])$">
+       <action application="set" data="dialed_extension=$1"/>
+       <action application="export" data="dialed_extension=$1"/>
+       <!-- bind_meta_app can have these args <key> [a|b|ab] [a|b|o|s] <app> -->
+       <!-- <action application="bind_meta_app" data="1 b s record_session::$${recordings_dir}/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/> -->
+       <action application="set" data="ringback=${us-ring}"/>
+       <!-- <action application="set" data="transfer_ringback=$${hold_music}"/> -->
+       <action application="set" data="call_timeout=240"/>
+       <!-- <action application="set" data="sip_exclude_contact=${network_addr}"/> -->
+       <action application="set" data="hangup_after_bridge=true"/>
+       <!--<action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> -->
+       <action application="set" data="continue_on_fail=false"/>
+       <!--<action application="set" data="called_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"/>-->
+       <!--<action application="export" data="nolocal:sip_secure_media=${user_data(${dialed_extension}@${domain_name} var sip_secure_media)}"/>-->
+       <action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
+      </condition>
+    </extension>
+
+    <extension name="show_info">
+      <condition field="destination_number" expression="^9992$">
+       <action application="answer"/>
+       <action application="info"/>
+       <action application="sleep" data="250"/>
+       <action application="hangup"/>
+      </condition>
+    </extension>
+
+    <extension name="delay_echo">
+      <condition field="destination_number" expression="^9995$">
+       <action application="answer"/>
+       <action application="delay_echo" data="5000"/>
+      </condition>
+    </extension>
+
+    <extension name="echo">
+      <condition field="destination_number" expression="^9996$">
+       <action application="answer"/>
+       <action application="echo"/>
+      </condition>
+    </extension>
+
+    <extension name="milliwatt">
+      <condition field="destination_number" expression="^9997$">
+       <action application="answer"/>
+       <action application="playback" data="tone_stream://%(251,0,1004);loops=-1"/>
+      </condition>
+    </extension>
+
+    <extension name="tone_stream">
+      <condition field="destination_number" expression="^9998$">
+       <action application="answer"/>
+       <action application="playback" data="tone_stream://path=${base_dir}/conf/tetris.ttml;loops=10"/>
+      </condition>
+    </extension>
+
+    <extension name="fur_elise">
+      <condition field="destination_number" expression="^9991$">
+       <action application="answer"/>
+       <action application="playback" data="tone_stream://path=${base_dir}/conf/fur_elise.ttml;loops=10"/>
+      </condition>
+    </extension>
+    
+    <extension name="dial_through_gateway">
+      <!-- Dial any 10 digit or 1+10 number -->
+      <condition field="destination_number" expression="^(1{0,1}\d{10})$">
+        <action application="bridge" data="sofia/gateway/example.com/$1" />
+      </condition>
+    </extension>
+
+    <!--
+       You can place files in the default directory to get included.
+    -->
+    <X-PRE-PROCESS cmd="include" data="default/*.xml"/>
+    
+    <!--
+       WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+       
+       Anything you put below this line will may get ignored due to the files in 
+       default/*.xml
+
+       WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+    -->
+
+  </context>
+</include>
diff --git a/net/freeswitch/files/etc.uci/dialplan/default/PLACEHOLDER b/net/freeswitch/files/etc.uci/dialplan/default/PLACEHOLDER
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/net/freeswitch/files/etc.uci/dialplan/public.xml b/net/freeswitch/files/etc.uci/dialplan/public.xml
new file mode 100644 (file)
index 0000000..77cc51f
--- /dev/null
@@ -0,0 +1,50 @@
+<!--
+    NOTICE:
+
+    This context is usually accessed via the external sip profile listening on port 5080.
+    
+    It is recommended to have separate inbound and outbound contexts.  Not only for security
+    but clearing up why you would need to do such a thing.  You don't want outside un-authenticated
+    callers hitting your default context which allows dialing calls thru your providers and results 
+    in Toll Fraud.
+-->
+
+<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
+<include>
+  <context name="public">
+
+    <extension name="unloop">
+      <condition field="${unroll_loops}" expression="^true$"/>
+      <condition field="${sip_looped_call}" expression="^true$">
+       <action application="deflect" data="${destination_number}"/>
+      </condition>
+    </extension>
+    <!--
+       Tag anything pass thru here as an outside_call so you can make sure not
+       to create any routing loops based on the conditions that it came from 
+       the outside of the switch.  
+    -->
+    <extension name="outside_call" continue="true">
+      <condition>
+       <action application="set" data="outside_call=true"/>
+      </condition>
+    </extension>
+
+    <extension name="call_debug" continue="true">
+      <condition field="${call_debug}" expression="^true$" break="never">
+       <action application="info"/>
+      </condition>
+    </extension>
+
+    <extension name="public_extensions">
+      <condition field="destination_number" expression="^(100[0-4])$">
+       <action application="transfer" data="$1 XML default"/>
+      </condition>
+    </extension>
+    
+    <!--
+       You can place files in the public directory to get included.
+    -->
+    <X-PRE-PROCESS cmd="include" data="public/*.xml"/>
+  </context>
+</include>
diff --git a/net/freeswitch/files/etc.uci/dialplan/public/PLACEHOLDER b/net/freeswitch/files/etc.uci/dialplan/public/PLACEHOLDER
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/net/freeswitch/files/etc.uci/directory/default.xml b/net/freeswitch/files/etc.uci/directory/default.xml
new file mode 100644 (file)
index 0000000..fd46fc9
--- /dev/null
@@ -0,0 +1,43 @@
+<!--
+    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
+    
+    FreeSWITCH works off the concept of users and domains just like email.
+    You have users that are in domains for example 1000@domain.com.
+    
+    When freeswitch gets a register packet it looks for the user in the directory
+    based on the from or to domain in the packet depending on how your sofia profile
+    is configured.  Out of the box the default domain will be the IP address of the
+    machine running FreeSWITCH.  This IP can be found by typing "sofia status" at the
+    CLI.  You will register your phones to the IP and not the hostname by default.
+    If you wish to register using the domain please open vars.xml in the root conf
+    directory and set the default domain to the hostname you desire.  Then you would
+    use the domain name in the client instead of the IP address to register 
+    with FreeSWITCH.
+    
+    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
+-->
+
+<include>
+  <!--the domain or ip (the right hand side of the @ in the addr-->
+  <domain name="$${domain}">
+    <params>
+      <param name="dial-string" value="{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(${dialed_user}@${dialed_domain})}"/>
+    </params>
+
+    <variables>
+      <variable name="record_stereo" value="true"/>
+      <variable name="default_gateway" value="$${default_provider}"/>
+      <variable name="default_areacode" value="$${default_areacode}"/>
+      <variable name="transfer_fallback_extension" value="operator"/>
+    </variables>
+
+    <groups>
+      <group name="default">
+       <users>
+         <X-PRE-PROCESS cmd="include" data="default/*.xml"/>
+       </users>
+      </group>
+    </groups>
+
+  </domain>
+</include>
diff --git a/net/freeswitch/files/etc.uci/directory/default/1000.xml b/net/freeswitch/files/etc.uci/directory/default/1000.xml
new file mode 100644 (file)
index 0000000..9bee406
--- /dev/null
@@ -0,0 +1,18 @@
+<include>
+  <user id="1000">
+    <params>
+      <param name="password" value="$${default_password}"/>
+      <param name="vm-password" value="1000"/>
+    </params>
+    <variables>
+      <variable name="toll_allow" value="domestic,international,local"/>
+      <variable name="accountcode" value="1000"/>
+      <variable name="user_context" value="default"/>
+      <variable name="effective_caller_id_name" value="Extension 1000"/>
+      <variable name="effective_caller_id_number" value="1000"/>
+      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
+      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
+      <variable name="callgroup" value="techsupport"/>
+    </variables>
+  </user>
+</include>
diff --git a/net/freeswitch/files/etc.uci/directory/default/1001.xml b/net/freeswitch/files/etc.uci/directory/default/1001.xml
new file mode 100644 (file)
index 0000000..97c1931
--- /dev/null
@@ -0,0 +1,18 @@
+<include>
+  <user id="1001">
+    <params>
+      <param name="password" value="$${default_password}"/>
+      <param name="vm-password" value="1001"/>
+    </params>
+    <variables>
+      <variable name="toll_allow" value="domestic,international,local"/>
+      <variable name="accountcode" value="1001"/>
+      <variable name="user_context" value="default"/>
+      <variable name="effective_caller_id_name" value="Extension 1001"/>
+      <variable name="effective_caller_id_number" value="1001"/>
+      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
+      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
+      <variable name="callgroup" value="techsupport"/>
+    </variables>
+  </user>
+</include>
diff --git a/net/freeswitch/files/etc.uci/directory/default/1002.xml b/net/freeswitch/files/etc.uci/directory/default/1002.xml
new file mode 100644 (file)
index 0000000..d33691d
--- /dev/null
@@ -0,0 +1,18 @@
+<include>
+  <user id="1002">
+    <params>
+      <param name="password" value="$${default_password}"/>
+      <param name="vm-password" value="1002"/>
+    </params>
+    <variables>
+      <variable name="toll_allow" value="domestic,international,local"/>
+      <variable name="accountcode" value="1002"/>
+      <variable name="user_context" value="default"/>
+      <variable name="effective_caller_id_name" value="Extension 1002"/>
+      <variable name="effective_caller_id_number" value="1002"/>
+      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
+      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
+      <variable name="callgroup" value="techsupport"/>
+    </variables>
+  </user>
+</include>
diff --git a/net/freeswitch/files/etc.uci/directory/default/1003.xml b/net/freeswitch/files/etc.uci/directory/default/1003.xml
new file mode 100644 (file)
index 0000000..f8b5926
--- /dev/null
@@ -0,0 +1,18 @@
+<include>
+  <user id="1003">
+    <params>
+      <param name="password" value="$${default_password}"/>
+      <param name="vm-password" value="1003"/>
+    </params>
+    <variables>
+      <variable name="toll_allow" value="domestic,international,local"/>
+      <variable name="accountcode" value="1003"/>
+      <variable name="user_context" value="default"/>
+      <variable name="effective_caller_id_name" value="Extension 1003"/>
+      <variable name="effective_caller_id_number" value="1003"/>
+      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
+      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
+      <variable name="callgroup" value="techsupport"/>
+    </variables>
+  </user>
+</include>
diff --git a/net/freeswitch/files/etc.uci/directory/default/1004.xml b/net/freeswitch/files/etc.uci/directory/default/1004.xml
new file mode 100644 (file)
index 0000000..c3e7da5
--- /dev/null
@@ -0,0 +1,18 @@
+<include>
+  <user id="1004">
+    <params>
+      <param name="password" value="$${default_password}"/>
+      <param name="vm-password" value="1004"/>
+    </params>
+    <variables>
+      <variable name="toll_allow" value="domestic,international,local"/>
+      <variable name="accountcode" value="1004"/>
+      <variable name="user_context" value="default"/>
+      <variable name="effective_caller_id_name" value="Extension 1004"/>
+      <variable name="effective_caller_id_number" value="1004"/>
+      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
+      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
+      <variable name="callgroup" value="techsupport"/>
+    </variables>
+  </user>
+</include>
diff --git a/net/freeswitch/files/etc.uci/directory/default/default.xml b/net/freeswitch/files/etc.uci/directory/default/default.xml
new file mode 100644 (file)
index 0000000..5db6011
--- /dev/null
@@ -0,0 +1,26 @@
+<include>
+  <user id="default"> <!--if id is numeric mailbox param is not necessary-->
+    <!--
+       ATTENTION PLEASE READ THIS... (I know you won't but you've been warrned)
+       
+       Let it be known that this user can register without a password but since we do not assign
+       this user a user_context and we don't authenticate this user they will be put in context 'public'.
+       
+       This isn't a security issue as the endpoint would be put into the same context 'public' as the 
+       sofia profile that starts on 5080 by default. If you're paranoid just remove this file and 
+       remove the external profile also.
+       
+       If you're this paranoid you might wanna go buy some more tinfoil and disconnect from the internets.
+       
+       Cuz we all know the internets is for pr0n anyway.
+
+    -->
+    <variables>
+      <!--all variables here will be set on all inbound calls that originate from this user -->
+      <!-- set these to take advantage of a dialplan localized to this user -->
+      <variable name="numbering_plan" value="$${default_country}"/>
+      <variable name="default_areacode" value="$${default_areacode}"/>
+      <variable name="default_gateway" value="$${default_provider}"/>
+    </variables>
+  </user>
+</include>
diff --git a/net/freeswitch/files/etc.uci/freeswitch.xml b/net/freeswitch/files/etc.uci/freeswitch.xml
new file mode 100644 (file)
index 0000000..8291bd4
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!--
+    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
+    
+    This is the OpenWRT FreeSWITCH minimal config.  It is modified from the the 
+    FreeSWITCH default config to use only the modules in the freeswitch-minimal
+    package, and is less exhaustive.  If you wish to view the default FreeSWITCH 
+    config install package freeswitch-config-example and look under 
+    /usr/share/freeswitch/examples/conf. Everything you see before you now traverses 
+    down into all the directories including files which include more files.  The default
+    config comes out of the box already working in most situations as a PBX.  This will
+    allow you to get started testing and playing with various things in FreeSWITCH.
+    
+    Before you start to modify this default please visit this wiki page:
+    
+    http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Some_stuff_to_try_out.21
+    
+    If all else fails you can read the FreeSWITCH FAQ located at:
+    
+    http://wiki.freeswitch.org/wiki/FreeSwitch_FAQ
+    
+    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
+-->
+<document type="freeswitch/xml">
+  <!--#comment 
+      All comments starting with #command will be preprocessed and never sent to the xml parser
+      Valid instructions:
+      #include ==> Include another file to this exact point
+                   (partial xml should be encased in <include></include> tags)
+      #set     ==> Set a global variable (can be expanded during preprocessing with $$ variables)
+                   (note the double $$ which denotes preprocessor variables)
+      #comment ==> A general comment such as this
+      
+      The preprocessor will compile the full xml document to ${prefix}/log/freeswitch.xml.fsxml
+      Don't modify it while freeswitch is running cos it is mem mapped in most cases =D
+      
+      The same can be achieved with the <X-PRE-PROCESS> tag where the attrs 'cmd' and 'data' are
+      parsed in the same way.
+  -->
+  <!--#comment
+      vars.xml contains all the #set directives for the preprocessor.
+  -->
+  <X-PRE-PROCESS cmd="include" data="vars.xml"/>
+
+  <section name="configuration" description="Various Configuration">
+    <X-PRE-PROCESS cmd="include" data="autoload_configs/*.xml"/>
+  </section>
+  
+  <section name="dialplan" description="Regex/XML Dialplan">
+    <X-PRE-PROCESS cmd="include" data="dialplan/*.xml"/>
+  </section>
+
+  <!-- mod_dingaling is reliant on the vcard data in the "directory" section. -->
+  <!-- mod_sofia is reliant on the user data for authorization --> 
+  <section name="directory" description="User Directory">
+    <X-PRE-PROCESS cmd="include" data="directory/*.xml"/>
+  </section>
+
+</document>
+
+
diff --git a/net/freeswitch/files/etc.uci/fur_elise.ttml b/net/freeswitch/files/etc.uci/fur_elise.ttml
new file mode 100644 (file)
index 0000000..6e6ef03
--- /dev/null
@@ -0,0 +1,83 @@
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 494)
+%(167, 0, 554)
+%(167, 0, 523)
+%(333, 0, 440)
+%(167, 0, 0)
+%(167, 0, 262)
+%(167, 0, 330)
+%(167, 0, 440)
+%(333, 0, 494)
+%(167, 0, 0)
+%(167, 0, 330)
+%(167, 0, 415)
+%(167, 0, 494)
+%(333, 0, 523)
+%(167, 0, 0)
+%(167, 0, 330)
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 494)
+%(167, 0, 554)
+%(167, 0, 523)
+%(333, 0, 440)
+%(167, 0, 0)
+%(167, 0, 262)
+%(167, 0, 330)
+%(167, 0, 440)
+%(333, 0, 494)
+%(167, 0, 0)
+%(167, 0, 330)
+%(167, 0, 523)
+%(167, 0, 494)
+%(167, 0, 440)
+%(167, 0, 0)
+%(167, 0, 494)
+%(167, 0, 523)
+%(167, 0, 587)
+%(333, 0, 659)
+%(167, 0, 0)
+%(167, 0, 392)
+%(167, 0, 698)
+%(167, 0, 784)
+%(333, 0, 587)
+%(167, 0, 0)
+%(167, 0, 349)
+%(167, 0, 659)
+%(167, 0, 587)
+%(333, 0, 523)
+%(167, 0, 0)
+%(167, 0, 330)
+%(167, 0, 587)
+%(167, 0, 523)
+%(333, 0, 494)
+%(167, 0, 0)
+%(167, 0, 330)
+%(167, 0, 659)
+%(167, 0, 330)
+%(167, 0, 659)
+%(167, 0, 659)
+%(167, 0, 1319)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 622)
+%(167, 0, 659)
+%(167, 0, 494)
+%(167, 0, 554)
+%(167, 0, 523)
+%(333, 0, 440)
diff --git a/net/freeswitch/files/etc.uci/mime.types b/net/freeswitch/files/etc.uci/mime.types
new file mode 100644 (file)
index 0000000..34d5fc9
--- /dev/null
@@ -0,0 +1,983 @@
+# This is a comment. I love comments.
+
+# This file controls what Internet media types are sent to the client for
+# given file extension(s).  Sending the correct media type to the client
+# is important so they know how to handle the content of the file.
+# Extra types can either be added here or by using an AddType directive
+# in your config files. For more information about Internet media types,
+# please read RFC 2045, 2046, 2047, 2048, and 2077.  The Internet media type
+# registry is at <http://www.iana.org/assignments/media-types/>.
+
+# MIME type                                    Extensions
+application/activemessage
+application/andrew-inset                       ez
+application/applefile
+application/atom+xml                           atom
+application/atomcat+xml                                atomcat
+application/atomicmail
+application/atomsvc+xml                                atomsvc
+application/auth-policy+xml
+application/batch-smtp
+application/beep+xml
+application/cals-1840
+application/ccxml+xml                          ccxml
+application/cellml+xml
+application/cnrp+xml
+application/commonground
+application/conference-info+xml
+application/cpl+xml
+application/csta+xml
+application/cstadata+xml
+application/cybercash
+application/davmount+xml                       davmount
+application/dca-rft
+application/dec-dx
+application/dialog-info+xml
+application/dicom
+application/dns
+application/dvcs
+application/ecmascript                         ecma
+application/edi-consent
+application/edi-x12
+application/edifact
+application/epp+xml
+application/eshop
+application/fastinfoset
+application/fastsoap
+application/fits
+application/font-tdpfr                         pfr
+application/h224
+application/http
+application/hyperstudio                                stk
+application/iges
+application/im-iscomposing+xml
+application/index
+application/index.cmd
+application/index.obj
+application/index.response
+application/index.vnd
+application/iotp
+application/ipp
+application/isup
+application/javascript                         js
+application/json                               json
+application/kpml-request+xml
+application/kpml-response+xml
+application/mac-binhex40                       hqx
+application/mac-compactpro                     cpt
+application/macwriteii
+application/marc                               mrc
+application/mathematica                                ma nb mb
+application/mathml+xml                         mathml
+application/mbms-associated-procedure-description+xml
+application/mbms-deregister+xml
+application/mbms-envelope+xml
+application/mbms-msk+xml
+application/mbms-msk-response+xml
+application/mbms-protection-description+xml
+application/mbms-reception-report+xml
+application/mbms-register+xml
+application/mbms-register-response+xml
+application/mbms-user-service-description+xml
+application/mbox                               mbox
+application/mediaservercontrol+xml             mscml
+application/mikey
+application/mp4                                        mp4s
+application/mpeg4-generic
+application/mpeg4-iod
+application/mpeg4-iod-xmt
+application/msword                             doc dot
+application/mxf                                        mxf
+application/nasdata
+application/news-message-id
+application/news-transmission
+application/nss
+application/ocsp-request
+application/ocsp-response
+application/octet-stream bin dms lha lzh class so iso dmg dist distz pkg bpk dump elc
+application/oda                                        oda
+application/oebps-package+xml
+application/ogg                                        ogg
+application/parityfec
+application/pdf                                        pdf
+application/pgp-encrypted                      pgp
+application/pgp-keys
+application/pgp-signature                      asc sig
+application/pics-rules                         prf
+application/pidf+xml
+application/pkcs10                             p10
+application/pkcs7-mime                         p7m p7c
+application/pkcs7-signature                    p7s
+application/pkix-cert                          cer
+application/pkix-crl                           crl
+application/pkix-pkipath                       pkipath
+application/pkixcmp                            pki
+application/pls+xml                            pls
+application/poc-settings+xml
+application/postscript                         ai eps ps
+application/prs.alvestrand.titrax-sheet
+application/prs.cww                            cww
+application/prs.nprend
+application/prs.plucker
+application/qsig
+application/rdf+xml                            rdf
+application/reginfo+xml                                rif
+application/relax-ng-compact-syntax            rnc
+application/remote-printing
+application/resource-lists+xml                 rl
+application/riscos
+application/rlmi+xml
+application/rls-services+xml                   rs
+application/rsd+xml                            rsd
+application/rss+xml                            rss
+application/rtf                                        rtf
+application/rtx
+application/samlassertion+xml
+application/samlmetadata+xml
+application/sbml+xml                           sbml
+application/sdp                                        sdp
+application/set-payment
+application/set-payment-initiation             setpay
+application/set-registration
+application/set-registration-initiation                setreg
+application/sgml
+application/sgml-open-catalog
+application/shf+xml                            shf
+application/sieve
+application/simple-filter+xml
+application/simple-message-summary
+application/simplesymbolcontainer
+application/slate
+application/smil
+application/smil+xml                           smi smil
+application/soap+fastinfoset
+application/soap+xml
+application/spirits-event+xml
+application/srgs                               gram
+application/srgs+xml                           grxml
+application/ssml+xml                           ssml
+application/timestamp-query
+application/timestamp-reply
+application/tve-trigger
+application/vemmi
+application/vividence.scriptfile
+application/vnd.3gpp.bsf+xml
+application/vnd.3gpp.pic-bw-large              plb
+application/vnd.3gpp.pic-bw-small              psb
+application/vnd.3gpp.pic-bw-var                        pvb
+application/vnd.3gpp.sms
+application/vnd.3gpp2.bcmcsinfo+xml
+application/vnd.3gpp2.sms
+application/vnd.3m.post-it-notes               pwn
+application/vnd.accpac.simply.aso              aso
+application/vnd.accpac.simply.imp              imp
+application/vnd.acucobol                       acu
+application/vnd.acucorp                                atc acutc
+application/vnd.adobe.xdp+xml                  xdp
+application/vnd.adobe.xfdf                     xfdf
+application/vnd.aether.imp
+application/vnd.amiga.ami                      ami
+application/vnd.anser-web-certificate-issue-initiation cii
+application/vnd.anser-web-funds-transfer-initiation    fti
+application/vnd.antix.game-component           atx
+application/vnd.apple.installer+xml            mpkg
+application/vnd.audiograph                     aep
+application/vnd.autopackage
+application/vnd.avistar+xml
+application/vnd.blueice.multipass              mpm
+application/vnd.bmi                            bmi
+application/vnd.businessobjects                        rep
+application/vnd.cab-jscript
+application/vnd.canon-cpdl
+application/vnd.canon-lips
+application/vnd.cendio.thinlinc.clientconf
+application/vnd.chemdraw+xml                   cdxml
+application/vnd.chipnuts.karaoke-mmd           mmd
+application/vnd.cinderella                     cdy
+application/vnd.cirpack.isdn-ext
+application/vnd.claymore                       cla
+application/vnd.clonk.c4group                  c4g c4d c4f c4p c4u
+application/vnd.commerce-battelle
+application/vnd.commonspace                    csp cst
+application/vnd.contact.cmsg                   cdbcmsg
+application/vnd.cosmocaller                    cmc
+application/vnd.crick.clicker                  clkx
+application/vnd.crick.clicker.keyboard         clkk
+application/vnd.crick.clicker.palette          clkp
+application/vnd.crick.clicker.template         clkt
+application/vnd.crick.clicker.wordbank         clkw
+application/vnd.criticaltools.wbs+xml          wbs
+application/vnd.ctc-posml                      pml
+application/vnd.cups-pdf
+application/vnd.cups-postscript
+application/vnd.cups-ppd                       ppd
+application/vnd.cups-raster
+application/vnd.cups-raw
+application/vnd.curl                           curl
+application/vnd.cybank
+application/vnd.data-vision.rdz                        rdz
+application/vnd.denovo.fcselayout-link         fe_launch
+application/vnd.dna                            dna
+application/vnd.dolby.mlp                      mlp
+application/vnd.dpgraph                                dpg
+application/vnd.dreamfactory                   dfac
+application/vnd.dvb.esgcontainer
+application/vnd.dvb.ipdcesgaccess
+application/vnd.dxr
+application/vnd.ecdis-update
+application/vnd.ecowin.chart                   mag
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.enliven                                nml
+application/vnd.epson.esf                      esf
+application/vnd.epson.msf                      msf
+application/vnd.epson.quickanime               qam
+application/vnd.epson.salt                     slt
+application/vnd.epson.ssf                      ssf
+application/vnd.ericsson.quickcall
+application/vnd.eszigno3+xml                   es3 et3
+application/vnd.eudora.data
+application/vnd.ezpix-album                    ez2
+application/vnd.ezpix-package                  ez3
+application/vnd.fdf                            fdf
+application/vnd.ffsns
+application/vnd.fints
+application/vnd.flographit                     gph
+application/vnd.fluxtime.clip                  ftc
+application/vnd.framemaker                     fm frame maker
+application/vnd.frogans.fnc                    fnc
+application/vnd.frogans.ltf                    ltf
+application/vnd.fsc.weblaunch                  fsc
+application/vnd.fujitsu.oasys                  oas
+application/vnd.fujitsu.oasys2                 oa2
+application/vnd.fujitsu.oasys3                 oa3
+application/vnd.fujitsu.oasysgp                        fg5
+application/vnd.fujitsu.oasysprs               bh2
+application/vnd.fujixerox.art-ex
+application/vnd.fujixerox.art4
+application/vnd.fujixerox.hbpl
+application/vnd.fujixerox.ddd                  ddd
+application/vnd.fujixerox.docuworks            xdw
+application/vnd.fujixerox.docuworks.binder     xbd
+application/vnd.fut-misnet
+application/vnd.fuzzysheet                     fzs
+application/vnd.genomatix.tuxedo               txd
+application/vnd.google-earth.kml+xml           kml
+application/vnd.google-earth.kmz               kmz
+application/vnd.grafeq                         gqf gqs
+application/vnd.gridmp
+application/vnd.groove-account                 gac
+application/vnd.groove-help                    ghf
+application/vnd.groove-identity-message                gim
+application/vnd.groove-injector                        grv
+application/vnd.groove-tool-message            gtm
+application/vnd.groove-tool-template           tpl
+application/vnd.groove-vcard                   vcg
+application/vnd.handheld-entertainment+xml     zmm
+application/vnd.hbci                           hbci
+application/vnd.hcl-bireports
+application/vnd.hhe.lesson-player              les
+application/vnd.hp-hpgl                                hpgl
+application/vnd.hp-hpid                                hpid
+application/vnd.hp-hps                         hps
+application/vnd.hp-jlyt                                jlt
+application/vnd.hp-pcl                         pcl
+application/vnd.hp-pclxl                       pclxl
+application/vnd.httphone
+application/vnd.hzn-3d-crossword               x3d
+application/vnd.ibm.afplinedata
+application/vnd.ibm.electronic-media
+application/vnd.ibm.minipay                    mpy
+application/vnd.ibm.modcap                     afp listafp list3820
+application/vnd.ibm.rights-management          irm
+application/vnd.ibm.secure-container           sc
+application/vnd.igloader                       igl
+application/vnd.immervision-ivp                        ivp
+application/vnd.immervision-ivu                        ivu
+application/vnd.informedcontrol.rms+xml
+application/vnd.intercon.formnet               xpw xpx
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.intu.qbo                       qbo
+application/vnd.intu.qfx                       qfx
+application/vnd.ipunplugged.rcprofile          rcprofile
+application/vnd.irepository.package+xml                irp
+application/vnd.is-xpr                         xpr
+application/vnd.jam                            jam
+application/vnd.japannet-directory-service
+application/vnd.japannet-jpnstore-wakeup
+application/vnd.japannet-payment-wakeup
+application/vnd.japannet-registration
+application/vnd.japannet-registration-wakeup
+application/vnd.japannet-setstore-wakeup
+application/vnd.japannet-verification
+application/vnd.japannet-verification-wakeup
+application/vnd.jcp.javame.midlet-rms          rms
+application/vnd.jisp                           jisp
+application/vnd.kahootz                                ktz ktr
+application/vnd.kde.karbon                     karbon
+application/vnd.kde.kchart                     chrt
+application/vnd.kde.kformula                   kfo
+application/vnd.kde.kivio                      flw
+application/vnd.kde.kontour                    kon
+application/vnd.kde.kpresenter                 kpr kpt
+application/vnd.kde.kspread                    ksp
+application/vnd.kde.kword                      kwd kwt
+application/vnd.kenameaapp                     htke
+application/vnd.kidspiration                   kia
+application/vnd.kinar                          kne knp
+application/vnd.koan                           skp skd skt skm
+application/vnd.liberty-request+xml
+application/vnd.llamagraphics.life-balance.desktop     lbd
+application/vnd.llamagraphics.life-balance.exchange+xml        lbe
+application/vnd.lotus-1-2-3                    123
+application/vnd.lotus-approach                 apr
+application/vnd.lotus-freelance                        pre
+application/vnd.lotus-notes                    nsf
+application/vnd.lotus-organizer                        org
+application/vnd.lotus-screencam                        scm
+application/vnd.lotus-wordpro                  lwp
+application/vnd.macports.portpkg               portpkg
+application/vnd.marlin.drm.actiontoken+xml
+application/vnd.marlin.drm.conftoken+xml
+application/vnd.marlin.drm.mdcf
+application/vnd.mcd                            mcd
+application/vnd.medcalcdata                    mc1
+application/vnd.mediastation.cdkey             cdkey
+application/vnd.meridian-slingshot
+application/vnd.mfer                           mwf
+application/vnd.mfmp                           mfm
+application/vnd.micrografx.flo                 flo
+application/vnd.micrografx.igx                 igx
+application/vnd.mif                            mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf                     daf
+application/vnd.mobius.dis                     dis
+application/vnd.mobius.mbk                     mbk
+application/vnd.mobius.mqy                     mqy
+application/vnd.mobius.msl                     msl
+application/vnd.mobius.plc                     plc
+application/vnd.mobius.txf                     txf
+application/vnd.mophun.application             mpn
+application/vnd.mophun.certificate             mpc
+application/vnd.motorola.flexsuite
+application/vnd.motorola.flexsuite.adsi
+application/vnd.motorola.flexsuite.fis
+application/vnd.motorola.flexsuite.gotap
+application/vnd.motorola.flexsuite.kmr
+application/vnd.motorola.flexsuite.ttc
+application/vnd.motorola.flexsuite.wem
+application/vnd.mozilla.xul+xml        xul
+application/vnd.ms-artgalry                    cil
+application/vnd.ms-asf                         asf
+application/vnd.ms-cab-compressed              cab
+application/vnd.ms-excel                       xls xlm xla xlc xlt xlw
+application/vnd.ms-fontobject                  eot
+application/vnd.ms-htmlhelp                    chm
+application/vnd.ms-ims                         ims
+application/vnd.ms-lrm                         lrm
+application/vnd.ms-playready.initiator+xml
+application/vnd.ms-powerpoint                  ppt pps pot
+application/vnd.ms-project                     mpp mpt
+application/vnd.ms-tnef
+application/vnd.ms-wmdrm.lic-chlg-req
+application/vnd.ms-wmdrm.lic-resp
+application/vnd.ms-wmdrm.meter-chlg-req
+application/vnd.ms-wmdrm.meter-resp
+application/vnd.ms-works                       wps wks wcm wdb
+application/vnd.ms-wpl                         wpl
+application/vnd.ms-xpsdocument                 xps
+application/vnd.mseq                           mseq
+application/vnd.msign
+application/vnd.music-niff
+application/vnd.musician                       mus
+application/vnd.ncd.control
+application/vnd.nervana
+application/vnd.netfpx
+application/vnd.neurolanguage.nlu              nlu
+application/vnd.noblenet-directory             nnd
+application/vnd.noblenet-sealer                        nns
+application/vnd.noblenet-web                   nnw
+application/vnd.nokia.catalogs
+application/vnd.nokia.conml+wbxml
+application/vnd.nokia.conml+xml
+application/vnd.nokia.isds-radio-presets
+application/vnd.nokia.iptv.config+xml
+application/vnd.nokia.landmark+wbxml
+application/vnd.nokia.landmark+xml
+application/vnd.nokia.landmarkcollection+xml
+application/vnd.nokia.n-gage.ac+xml
+application/vnd.nokia.n-gage.data              ngdat
+application/vnd.nokia.n-gage.symbian.install   n-gage
+application/vnd.nokia.ncd
+application/vnd.nokia.pcd+wbxml
+application/vnd.nokia.pcd+xml
+application/vnd.nokia.radio-preset             rpst
+application/vnd.nokia.radio-presets            rpss
+application/vnd.novadigm.edm                   edm
+application/vnd.novadigm.edx                   edx
+application/vnd.novadigm.ext                   ext
+application/vnd.oasis.opendocument.chart               odc
+application/vnd.oasis.opendocument.chart-template      otc
+application/vnd.oasis.opendocument.formula             odf
+application/vnd.oasis.opendocument.formula-template    otf
+application/vnd.oasis.opendocument.graphics            odg
+application/vnd.oasis.opendocument.graphics-template   otg
+application/vnd.oasis.opendocument.image               odi
+application/vnd.oasis.opendocument.image-template      oti
+application/vnd.oasis.opendocument.presentation                odp
+application/vnd.oasis.opendocument.presentation-template otp
+application/vnd.oasis.opendocument.spreadsheet         ods
+application/vnd.oasis.opendocument.spreadsheet-template        ots
+application/vnd.oasis.opendocument.text                        odt
+application/vnd.oasis.opendocument.text-master         otm
+application/vnd.oasis.opendocument.text-template       ott
+application/vnd.oasis.opendocument.text-web            oth
+application/vnd.obn
+application/vnd.olpc-sugar                     xo
+application/vnd.oma-scws-config
+application/vnd.oma-scws-http-request
+application/vnd.oma-scws-http-response
+application/vnd.oma.bcast.associated-procedure-parameter+xml
+application/vnd.oma.bcast.drm-trigger+xml
+application/vnd.oma.bcast.imd+xml
+application/vnd.oma.bcast.notification+xml
+application/vnd.oma.bcast.sgboot
+application/vnd.oma.bcast.sgdd+xml
+application/vnd.oma.bcast.sgdu
+application/vnd.oma.bcast.simple-symbol-container
+application/vnd.oma.bcast.smartcard-trigger+xml
+application/vnd.oma.bcast.sprov+xml
+application/vnd.oma.dd2+xml                    dd2
+application/vnd.oma.drm.risd+xml
+application/vnd.oma.group-usage-list+xml
+application/vnd.oma.poc.groups+xml
+application/vnd.oma.xcap-directory+xml
+application/vnd.omads-email+xml
+application/vnd.omads-file+xml
+application/vnd.omads-folder+xml
+application/vnd.omaloc-supl-init
+application/vnd.openofficeorg.extension                oxt
+application/vnd.osa.netdeploy
+application/vnd.osgi.dp                                dp
+application/vnd.otps.ct-kip+xml
+application/vnd.palm                           prc pdb pqa oprc
+application/vnd.paos.xml
+application/vnd.pg.format                      str
+application/vnd.pg.osasli                      ei6
+application/vnd.piaccess.application-licence
+application/vnd.picsel                         efif
+application/vnd.poc.group-advertisement+xml
+application/vnd.pocketlearn                    plf
+application/vnd.powerbuilder6                  pbd
+application/vnd.powerbuilder6-s
+application/vnd.powerbuilder7
+application/vnd.powerbuilder7-s
+application/vnd.powerbuilder75
+application/vnd.powerbuilder75-s
+application/vnd.preminet
+application/vnd.previewsystems.box             box
+application/vnd.proteus.magazine               mgz
+application/vnd.publishare-delta-tree          qps
+application/vnd.pvi.ptid1                      ptid
+application/vnd.pwg-multiplexed
+application/vnd.pwg-xhtml-print+xml
+application/vnd.qualcomm.brew-app-res
+application/vnd.quark.quarkxpress              qxd qxt qwd qwt qxl qxb
+application/vnd.rapid
+application/vnd.recordare.musicxml             mxl
+application/vnd.recordare.musicxml+xml
+application/vnd.renlearn.rlprint
+application/vnd.rn-realmedia                   rm
+application/vnd.ruckus.download
+application/vnd.s3sms
+application/vnd.scribus
+application/vnd.sealed.3df
+application/vnd.sealed.csf
+application/vnd.sealed.doc
+application/vnd.sealed.eml
+application/vnd.sealed.mht
+application/vnd.sealed.net
+application/vnd.sealed.ppt
+application/vnd.sealed.tiff
+application/vnd.sealed.xls
+application/vnd.sealedmedia.softseal.html
+application/vnd.sealedmedia.softseal.pdf
+application/vnd.seemail                                see
+application/vnd.sema                           sema
+application/vnd.semd                           semd
+application/vnd.semf                           semf
+application/vnd.shana.informed.formdata                ifm
+application/vnd.shana.informed.formtemplate    itp
+application/vnd.shana.informed.interchange     iif
+application/vnd.shana.informed.package         ipk
+application/vnd.simtech-mindmapper             twd twds
+application/vnd.smaf                           mmf
+application/vnd.solent.sdkm+xml                        sdkm sdkd
+application/vnd.spotfire.dxp                   dxp
+application/vnd.spotfire.sfs                   sfs
+application/vnd.sss-cod
+application/vnd.sss-dtf
+application/vnd.sss-ntf
+application/vnd.street-stream
+application/vnd.sun.wadl+xml
+application/vnd.sus-calendar                   sus susp
+application/vnd.svd                            svd
+application/vnd.swiftview-ics
+application/vnd.syncml+xml                     xsm
+application/vnd.syncml.dm+wbxml                        bdm
+application/vnd.syncml.dm+xml                  xdm
+application/vnd.syncml.ds.notification
+application/vnd.tao.intent-module-archive      tao
+application/vnd.tmobile-livetv                 tmo
+application/vnd.trid.tpt                       tpt
+application/vnd.triscape.mxs                   mxs
+application/vnd.trueapp                                tra
+application/vnd.truedoc
+application/vnd.ufdl                           ufd ufdl
+application/vnd.uiq.theme                      utz
+application/vnd.umajin                         umj
+application/vnd.unity                          unityweb
+application/vnd.uoml+xml                       uoml
+application/vnd.uplanet.alert
+application/vnd.uplanet.alert-wbxml
+application/vnd.uplanet.bearer-choice
+application/vnd.uplanet.bearer-choice-wbxml
+application/vnd.uplanet.cacheop
+application/vnd.uplanet.cacheop-wbxml
+application/vnd.uplanet.channel
+application/vnd.uplanet.channel-wbxml
+application/vnd.uplanet.list
+application/vnd.uplanet.list-wbxml
+application/vnd.uplanet.listcmd
+application/vnd.uplanet.listcmd-wbxml
+application/vnd.uplanet.signal
+application/vnd.vcx                            vcx
+application/vnd.vd-study
+application/vnd.vectorworks
+application/vnd.vidsoft.vidconference
+application/vnd.visio                          vsd vst vss vsw
+application/vnd.visionary                      vis
+application/vnd.vividence.scriptfile
+application/vnd.vsf                            vsf
+application/vnd.wap.sic
+application/vnd.wap.slc
+application/vnd.wap.wbxml                      wbxml
+application/vnd.wap.wmlc                       wmlc
+application/vnd.wap.wmlscriptc                 wmlsc
+application/vnd.webturbo                       wtb
+application/vnd.wfa.wsc
+application/vnd.wordperfect                    wpd
+application/vnd.wqd                            wqd
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf                         stf
+application/vnd.wv.csp+wbxml
+application/vnd.wv.csp+xml
+application/vnd.wv.ssp+xml
+application/vnd.xara                           xar
+application/vnd.xfdl                           xfdl
+application/vnd.xmpie.cpkg
+application/vnd.xmpie.dpkg
+application/vnd.xmpie.plan
+application/vnd.xmpie.ppkg
+application/vnd.xmpie.xlim
+application/vnd.yamaha.hv-dic                  hvd
+application/vnd.yamaha.hv-script               hvs
+application/vnd.yamaha.hv-voice                        hvp
+application/vnd.yamaha.smaf-audio              saf
+application/vnd.yamaha.smaf-phrase             spf
+application/vnd.yellowriver-custom-menu                cmp
+application/vnd.zzazz.deck+xml                 zaz
+application/voicexml+xml                       vxml
+application/watcherinfo+xml
+application/whoispp-query
+application/whoispp-response
+application/winhlp                             hlp
+application/wita
+application/wordperfect5.1
+application/wsdl+xml                           wsdl
+application/wspolicy+xml                       wspolicy
+application/x-ace-compressed                   ace
+application/x-bcpio                            bcpio
+application/x-bittorrent                       torrent
+application/x-bzip                             bz
+application/x-bzip2                            bz2 boz
+application/x-cdlink                           vcd
+application/x-chat                             chat
+application/x-chess-pgn                                pgn
+application/x-compress
+application/x-cpio                             cpio
+application/x-csh                              csh
+application/x-director                         dcr dir dxr fgd
+application/x-dvi                              dvi
+application/x-futuresplash                     spl
+application/x-gtar                             gtar
+application/x-gzip
+application/x-hdf                              hdf
+application/x-latex                            latex
+application/x-ms-wmd                           wmd
+application/x-ms-wmz                           wmz
+application/x-msaccess                         mdb
+application/x-msbinder                         obd
+application/x-mscardfile                       crd
+application/x-msclip                           clp
+application/x-msdownload                       exe dll com bat msi
+application/x-msmediaview                      mvb m13 m14
+application/x-msmetafile                       wmf
+application/x-msmoney                          mny
+application/x-mspublisher                      pub
+application/x-msschedule                       scd
+application/x-msterminal                       trm
+application/x-mswrite                          wri
+application/x-netcdf                           nc cdf
+application/x-pkcs12                           p12 pfx
+application/x-pkcs7-certificates               p7b spc
+application/x-pkcs7-certreqresp                        p7r
+application/x-rar-compressed                   rar
+application/x-sh                               sh
+application/x-shar                             shar
+application/x-shockwave-flash                  swf
+application/x-stuffit                          sit
+application/x-stuffitx                         sitx
+application/x-sv4cpio                          sv4cpio
+application/x-sv4crc                           sv4crc
+application/x-tar                              tar
+application/x-tcl                              tcl
+application/x-tex                              tex
+application/x-texinfo                          texinfo texi
+application/x-ustar                            ustar
+application/x-wais-source                      src
+application/x-x509-ca-cert                     der crt
+application/x400-bp
+application/xcap-att+xml
+application/xcap-caps+xml
+application/xcap-el+xml
+application/xcap-error+xml
+application/xcap-ns+xml
+application/xenc+xml                           xenc
+application/xhtml+xml                          xhtml xht
+application/xml                                        xml xsl
+application/xml-dtd                            dtd
+application/xml-external-parsed-entity
+application/xmpp+xml
+application/xop+xml                            xop
+application/xslt+xml                           xslt
+application/xspf+xml                           xspf
+application/xv+xml                             mxml xhvml xvml xvm
+application/zip                                        zip
+audio/32kadpcm
+audio/3gpp
+audio/3gpp2
+audio/ac3
+audio/amr
+audio/amr-wb
+audio/amr-wb+
+audio/asc
+audio/basic                                    au snd
+audio/bv16
+audio/bv32
+audio/clearmode
+audio/cn
+audio/dat12
+audio/dls
+audio/dsr-es201108
+audio/dsr-es202050
+audio/dsr-es202211
+audio/dsr-es202212
+audio/dvi4
+audio/eac3
+audio/evrc
+audio/evrc-qcp
+audio/evrc0
+audio/evrc1
+audio/evrcb
+audio/evrcb0
+audio/evrcb1
+audio/g722
+audio/g7221
+audio/g723
+audio/g726-16
+audio/g726-24
+audio/g726-32
+audio/g726-40
+audio/g728
+audio/g729
+audio/g7291
+audio/g729d
+audio/g729e
+audio/gsm
+audio/gsm-efr
+audio/ilbc
+audio/l16
+audio/l20
+audio/l24
+audio/l8
+audio/lpc
+audio/midi                                     mid midi kar rmi
+audio/mobile-xmf
+audio/mp4                                      mp4a
+audio/mp4a-latm
+audio/mpa
+audio/mpa-robust
+audio/mpeg                                     mpga mp2 mp2a mp3 m2a m3a
+audio/mpeg4-generic
+audio/parityfec
+audio/pcma
+audio/pcmu
+audio/prs.sid
+audio/qcelp
+audio/red
+audio/rtp-enc-aescm128
+audio/rtp-midi
+audio/rtx
+audio/smv
+audio/smv0
+audio/smv-qcp
+audio/sp-midi
+audio/t140c
+audio/t38
+audio/telephone-event
+audio/tone
+audio/vdvi
+audio/vmr-wb
+audio/vnd.3gpp.iufp
+audio/vnd.4sb
+audio/vnd.audiokoz
+audio/vnd.celp
+audio/vnd.cisco.nse
+audio/vnd.cmles.radio-events
+audio/vnd.cns.anp1
+audio/vnd.cns.inf1
+audio/vnd.digital-winds                                eol
+audio/vnd.dlna.adts
+audio/vnd.dolby.mlp
+audio/vnd.everad.plj
+audio/vnd.hns.audio
+audio/vnd.lucent.voice                         lvp
+audio/vnd.nokia.mobile-xmf
+audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800                      ecelp4800
+audio/vnd.nuera.ecelp7470                      ecelp7470
+audio/vnd.nuera.ecelp9600                      ecelp9600
+audio/vnd.octel.sbc
+audio/vnd.qcelp
+audio/vnd.rhetorex.32kadpcm
+audio/vnd.sealedmedia.softseal.mpeg
+audio/vnd.vmx.cvsd
+audio/wav                                      wav
+audio/x-aiff                                   aif aiff aifc
+audio/x-mpegurl                                        m3u
+audio/x-ms-wax                                 wax
+audio/x-ms-wma                                 wma
+audio/x-pn-realaudio                           ram ra
+audio/x-pn-realaudio-plugin                    rmp
+audio/x-wav                                    wav
+chemical/x-cdx                                 cdx
+chemical/x-cif                                 cif
+chemical/x-cmdf                                        cmdf
+chemical/x-cml                                 cml
+chemical/x-csml                                        csml
+chemical/x-pdb                                 pdb
+chemical/x-xyz                                 xyz
+image/bmp                                      bmp
+image/cgm                                      cgm
+image/fits
+image/g3fax                                    g3
+image/gif                                      gif
+image/ief                                      ief
+image/jp2
+image/jpeg                                     jpeg jpg jpe
+image/jpm
+image/jpx
+image/naplps
+image/png                                      png
+image/prs.btif                                 btif
+image/prs.pti
+image/svg+xml                                  svg svgz
+image/t38
+image/tiff                                     tiff tif
+image/tiff-fx
+image/vnd.adobe.photoshop                      psd
+image/vnd.cns.inf2
+image/vnd.djvu                                 djvu djv
+image/vnd.dwg                                  dwg
+image/vnd.dxf                                  dxf
+image/vnd.fastbidsheet                         fbs
+image/vnd.fpx                                  fpx
+image/vnd.fst                                  fst
+image/vnd.fujixerox.edmics-mmr                 mmr
+image/vnd.fujixerox.edmics-rlc                 rlc
+image/vnd.globalgraphics.pgb
+image/vnd.microsoft.icon                       ico
+image/vnd.mix
+image/vnd.ms-modi                              mdi
+image/vnd.net-fpx                              npx
+image/vnd.sealed.png
+image/vnd.sealedmedia.softseal.gif
+image/vnd.sealedmedia.softseal.jpg
+image/vnd.svf
+image/vnd.wap.wbmp                             wbmp
+image/vnd.xiff                                 xif
+image/x-cmu-raster                             ras
+image/x-cmx                                    cmx
+image/x-icon
+image/x-pcx                                    pcx
+image/x-pict                                   pic pct
+image/x-portable-anymap                                pnm
+image/x-portable-bitmap                                pbm
+image/x-portable-graymap                       pgm
+image/x-portable-pixmap                                ppm
+image/x-rgb                                    rgb
+image/x-xbitmap                                        xbm
+image/x-xpixmap                                        xpm
+image/x-xwindowdump                            xwd
+message/cpim
+message/delivery-status
+message/disposition-notification
+message/external-body
+message/http
+message/news
+message/partial
+message/rfc822                                 eml mime
+message/s-http
+message/sip
+message/sipfrag
+message/tracking-status
+model/iges                                     igs iges
+model/mesh                                     msh mesh silo
+model/vnd.dwf                                  dwf
+model/vnd.flatland.3dml
+model/vnd.gdl                                  gdl
+model/vnd.gs.gdl
+model/vnd.gtw                                  gtw
+model/vnd.moml+xml
+model/vnd.mts                                  mts
+model/vnd.parasolid.transmit.binary
+model/vnd.parasolid.transmit.text
+model/vnd.vtu                                  vtu
+model/vrml                                     wrl vrml
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/voice-message
+text/calendar                                  ics ifb
+text/css                                       css
+text/csv                                       csv
+text/directory
+text/dns
+text/enriched
+text/html                                      html htm
+text/parityfec
+text/plain                                     txt text conf def list log in
+text/prs.fallenstein.rst
+text/prs.lines.tag                             dsc
+text/red
+text/rfc822-headers
+text/richtext                                  rtx
+text/rtf
+text/rtp-enc-aescm128
+text/rtx
+text/sgml                                      sgml sgm
+text/t140
+text/tab-separated-values                      tsv
+text/troff                                     t tr roff man me ms
+text/uri-list                                  uri uris urls
+text/vnd.abc
+text/vnd.curl
+text/vnd.dmclientscript
+text/vnd.esmertec.theme-descriptor
+text/vnd.fly                                   fly
+text/vnd.fmi.flexstor                          flx
+text/vnd.in3d.3dml                             3dml
+text/vnd.in3d.spot                             spot
+text/vnd.iptc.newsml
+text/vnd.iptc.nitf
+text/vnd.latex-z
+text/vnd.motorola.reflex
+text/vnd.ms-mediapackage
+text/vnd.net2phone.commcenter.command
+text/vnd.sun.j2me.app-descriptor               jad
+text/vnd.trolltech.linguist
+text/vnd.wap.si
+text/vnd.wap.sl
+text/vnd.wap.wml                               wml
+text/vnd.wap.wmlscript                         wmls
+text/x-asm                                     s asm
+text/x-c                                       c cc cxx cpp h hh dic
+text/x-fortran                                 f for f77 f90
+text/x-pascal                                  p pas
+text/x-java-source                             java
+text/x-setext                                  etx
+text/x-uuencode                                        uu
+text/x-vcalendar                               vcs
+text/x-vcard                                   vcf
+text/xml
+text/xml-external-parsed-entity
+video/3gpp                                     3gp
+video/3gpp-tt
+video/3gpp2                                    3g2
+video/bmpeg
+video/bt656
+video/celb
+video/dv
+video/h261                                     h261
+video/h263                                     h263
+video/h263-1998
+video/h263-2000
+video/h264                                     h264
+video/jpeg                                     jpgv
+video/jpm                                      jpm jpgm
+video/mj2                                      mj2 mjp2
+video/mp1s
+video/mp2p
+video/mp2t
+video/mp4                                      mp4 mp4v mpg4
+video/mp4v-es
+video/mpeg                                     mpeg mpg mpe m1v m2v
+video/mpeg4-generic
+video/mpv
+video/nv
+video/parityfec
+video/pointer
+video/quicktime                                        qt mov
+video/raw
+video/rtp-enc-aescm128
+video/rtx
+video/smpte292m
+video/vc1
+video/vnd.dlna.mpeg-tts
+video/vnd.fvt                                  fvt
+video/vnd.hns.video
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.mpegurl                              mxu m4u
+video/vnd.nokia.interleaved-multimedia
+video/vnd.nokia.videovoip
+video/vnd.objectvideo
+video/vnd.sealed.mpeg1
+video/vnd.sealed.mpeg4
+video/vnd.sealed.swf
+video/vnd.sealedmedia.softseal.mov
+video/vnd.vivo                                 viv
+video/x-fli                                    fli
+video/x-ms-asf                                 asf asx
+video/x-ms-wm                                  wm
+video/x-ms-wmv                                 wmv
+video/x-ms-wmx                                 wmx
+video/x-ms-wvx                                 wvx
+video/x-msvideo                                        avi
+video/x-sgi-movie                              movie
+x-conference/x-cooltalk                                ice
diff --git a/net/freeswitch/files/etc.uci/sip_profiles/external.xml b/net/freeswitch/files/etc.uci/sip_profiles/external.xml
new file mode 100644 (file)
index 0000000..8f10763
--- /dev/null
@@ -0,0 +1,78 @@
+<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="rfc2833-pt" value="101"/>
+    <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"/>-->
+    <!-- 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}"/>
+    <!-- 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}"/>
+    <!-- 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/net/freeswitch/files/etc.uci/sip_profiles/external/example.xml b/net/freeswitch/files/etc.uci/sip_profiles/external/example.xml
new file mode 100644 (file)
index 0000000..63508fb
--- /dev/null
@@ -0,0 +1,38 @@
+<include>
+  <!-- Don't change gateway name unless you also change the dialplan -->
+  <gateway name="example.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"/>-->
+  <!--/// should this profile regiser with the gateway? ///-->
+  <!--<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"/>-->
+  <!--/// Force the contact paramater to a particular value (e.g. extension number). ///-->
+  <!--/// Use this if your gateways are registering at gw+username@ip and this is a problem for your provider. ///-->
+  <!--<param name="extension-in-contact" value="Xxxx" />-->
+  <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
+  <!--<param name="ping" value="25"/>-->
+  </gateway>
+</include>
diff --git a/net/freeswitch/files/etc.uci/sip_profiles/internal.xml b/net/freeswitch/files/etc.uci/sip_profiles/internal.xml
new file mode 100644 (file)
index 0000000..eda2486
--- /dev/null
@@ -0,0 +1,296 @@
+<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="log-auth-failures" value="true"/>
+    <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"/>
+
+    <!-- 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"/>-->
+    <!-- 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"/>-->
+    
+      
+
+    <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"/>
+    <!--<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}"/>-->
+    <!-- ************************************************* -->
+    
+    <!-- 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="120"/>-->
+    <!-- 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}"/>
+    <!-- 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}"/>
+
+    <!-- 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}"/>
+    <!--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" /> -->
+    
+  </settings>
+</profile>
+
diff --git a/net/freeswitch/files/etc.uci/sip_profiles/internal/example.xml b/net/freeswitch/files/etc.uci/sip_profiles/internal/example.xml
new file mode 100644 (file)
index 0000000..220df0d
--- /dev/null
@@ -0,0 +1,36 @@
+<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"/>-->
+  <!--</gateway>-->
+</include>
diff --git a/net/freeswitch/files/etc.uci/tetris.ttml b/net/freeswitch/files/etc.uci/tetris.ttml
new file mode 100644 (file)
index 0000000..2e33a5d
--- /dev/null
@@ -0,0 +1,69 @@
+%(428,0,659,494)
+%(214,0,494,415)
+%(214,0,523,440)
+%(214,0,587,494)
+%(107,0,659,494)
+%(107,0,587,494)
+%(214,0,523,440)
+%(214,0,494,415)
+%(428,0,330,440)
+%(214,0,330,440)
+%(214,0,523,440)
+%(428,0,659,523)
+%(214,0,587,494)
+%(214,0,523,440)
+%(214,0,494,415)
+%(214,0,494,440)
+%(214,0,494,415)
+%(214,0,523,440)
+%(428,0,587,494)
+%(428,0,659,523)
+%(428,0,523,440)
+%(428,0,330,440)
+%(857,0,330,440)
+%(214,0,0,0)
+%(428,0,587,349)
+%(214,0,698,440)
+%(214,0,880,523)
+%(107,0,880,523)
+%(107,0,880,523)
+%(214,0,784,494)
+%(214,0,698,440)
+%(642,0,659,392)
+%(214,0,523,330)
+%(214,0,659,392)
+%(107,0,659,440)
+%(107,0,659,392)
+%(214,0,587,349)
+%(214,0,523,330)
+%(214,0,494,415)
+%(214,0,494,330)
+%(214,0,494,415)
+%(214,0,523,440)
+%(214,0,587,494)
+%(214,0,587,415)
+%(214,0,659,523)
+%(214,0,659,415)
+%(214,0,523,440)
+%(214,0,523,330)
+%(428,0,440,330)
+%(428,0,440,330)
+%(428,0,0,0)
+%(857,0,330,262)
+%(857,0,262,220)
+%(857,0,294,247)
+%(857,0,247,208)
+%(857,0,262,220)
+%(857,0,220,165)
+%(857,0,208,165)
+%(428,0,247,208)
+%(428,0,0,0)
+%(857,0,330,262)
+%(857,0,262,220)
+%(857,0,294,247)
+%(857,0,208,165)
+%(428,0,262,220)
+%(428,0,330,262)
+%(857,0,440,330)
+%(857,0,415,294)
+%(857,0,0,0)
diff --git a/net/freeswitch/files/etc.uci/tones.conf b/net/freeswitch/files/etc.uci/tones.conf
new file mode 100644 (file)
index 0000000..36db1d4
--- /dev/null
@@ -0,0 +1,63 @@
+[us]
+generate-dial => v=-7;%(1000,0,350,440)
+detect-dial => 350,440
+
+generate-ring => v=-7;%(2000,4000,440,480)
+detect-ring => 440,480
+
+generate-busy => v=-7;%(500,500,480,620)
+detect-busy => 480,620
+
+generate-attn => v=0;%(100,100,1400,2060,2450,2600)
+detect-attn => 1400,2060,2450,2600
+
+generate-callwaiting-sas => v=0;%(300,0,440)
+detect-callwaiting-sas => 440
+
+generate-callwaiting-cas => v=0;%(80,0,2750,2130)
+detect-callwaiting-cas => 2750,2130
+
+detect-fail1 => 913.8
+detect-fail2 => 1370.6
+detect-fail3 => 1776.7
+
+
+[sg]
+generate-dial => v=-7;%(1000,0,425)
+detect-dial => 425
+
+generate-ring => v=-7;%(2000,4000,425)
+detect-ring => 425
+
+generate-busy => v=-7;%(750,750,425)
+detect-busy => 425
+
+generate-attn => v=0;%(100,100,1400,2060,2450,2600)
+detect-attn => 1400,2060,2450,2600
+
+generate-callwaiting-sas => v=0;%(300,0,440)
+detect-callwaiting-sas => 440
+
+generate-callwaiting-cas => v=0;%(80,0,2750,2130)
+detect-callwaiting-cas => 2750,2130
+
+detect-fail1 => 913.8
+detect-fail2 => 1370.6
+detect-fail3 => 1776.7
+
+[ru]
+generate-dial => v=-7;%(1000,425)
+detect-dial => 0
+generate-ring => v=-7;%(800,5000,425,0)
+detect-ring => 425,0
+generate-busy => v=-7;%(350,350,425,0)
+detect-busy => 425,0
+generate-attn => v=0;%(100,100,1400,2060,2450,2600)
+detect-attn => 1400,2060,2450,2600
+generate-callwaiting-sas => v=0;%(300,0,440)
+detect-callwaiting-sas => 440,480
+generate-callwaiting-cas => v=0;%(80,0,2750,2130)
+detect-callwaiting-cas => 2750,2130
+detect-fail1 => 913.8
+detect-fail2 => 1370.6
+detect-fail3 => 1776.7
diff --git a/net/freeswitch/files/etc.uci/vars.xml b/net/freeswitch/files/etc.uci/vars.xml
new file mode 100644 (file)
index 0000000..e2efd7a
--- /dev/null
@@ -0,0 +1,203 @@
+<include>
+  <!-- Preprocessor Variables
+       These are introduced when configuration strings must be consistent across modules. 
+       NOTICE: YOU CAN NOT COMMENT OUT AN X-PRE-PROCESS line, Remove the line instead.
+       
+       WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 
+       
+       YOU SHOULD CHANGE THIS default_password value if you don't want to be subject to any
+       toll fraud in the future.  It's your responsibility to secure your own system.
+       
+       This default config is used to demonstrate the feature set of FreeSWITCH.
+       
+       WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 
+  -->
+  <X-PRE-PROCESS cmd="set" data="default_password=1234"/>
+  <!-- Did you change it yet? -->
+
+  <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie"/>
+
+  <!--
+      This setting is what sets the default domain FreeSWITCH will use if all else fails.
+      
+      FreeSWICH will default to $${local_ip_v4} unless changed.  Changing this setting does 
+      affect the sip authentication.  Please review conf/directory/default.xml for more
+      information on this topic.
+  -->
+  <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
+  <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/>
+  <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>
+  <X-PRE-PROCESS cmd="set" data="use_profile=internal"/>
+
+  <!-- 
+       Examples of codec options: (module must be compiled and loaded)
+       
+       codecname[@8000h|16000h|32000h[@XXi]]
+       
+       XX is the frame size must be multples allowed for the codec
+       FreeSWITCH can support 10-120ms on some codecs. 
+       We do not support exceeding the MTU of the RTP packet.
+
+
+       iLBC@30i         - iLBC using mode=30 which will win in all cases.
+       DVI4@8000h@20i   - IMA ADPCM 8kHz using 20ms ptime. (multiples of 10)
+       DVI4@16000h@40i  - IMA ADPCM 16kHz using 40ms ptime. (multiples of 10)
+       speex@8000h@20i  - Speex 8kHz using 20ms ptime.
+       speex@16000h@20i - Speex 16kHz using 20ms ptime.
+       speex@32000h@20i - Speex 32kHz using 20ms ptime.
+       BV16             - BroadVoice 16kb/s narrowband, 8kHz
+       BV32             - BroadVoice 32kb/s wideband, 16kHz
+       G7221@16000h     - G722.1 16kHz (aka Siren 7)
+       G7221@32000h     - G722.1C 32kHz (aka Siren 14)
+       CELT@32000h      - CELT 32kHz, only 10ms supported
+       CELT@48000h      - CELT 48kHz, only 10ms supported
+       GSM@40i          - GSM 8kHz using 40ms ptime. (GSM is done in multiples of 20, Default is 20ms)
+       G722             - G722 16kHz using default 20ms ptime. (multiples of 10)
+       PCMU             - G711 8kHz ulaw using default 20ms ptime. (multiples of 10)
+       PCMA             - G711 8kHz alaw using default 20ms ptime. (multiples of 10)
+       G726-16          - G726 16kbit adpcm using default 20ms ptime. (multiples of 10)
+       G726-24          - G726 24kbit adpcm using default 20ms ptime. (multiples of 10)
+       G726-32          - G726 32kbit adpcm using default 20ms ptime. (multiples of 10)
+       G726-40          - G726 40kbit adpcm using default 20ms ptime. (multiples of 10)
+       AAL2-G726-16     - Same as G726-16 but using AAL2 packing. (multiples of 10)
+       AAL2-G726-24     - Same as G726-24 but using AAL2 packing. (multiples of 10)
+       AAL2-G726-32     - Same as G726-32 but using AAL2 packing. (multiples of 10)
+       AAL2-G726-40     - Same as G726-40 but using AAL2 packing. (multiples of 10)
+       LPC              - LPC10 using 90ms ptime (only supports 90ms at this time in FreeSWITCH)
+       L16              - L16 isn't recommended for VoIP but you can do it. L16 can exceed the MTU rather quickly.
+       
+       These are the passthru audio codecs:
+       
+       G729             - G729 in passthru mode. (mod_g729)
+       G723             - G723.1 in passthru mode. (mod_g723_1)
+       AMR              - AMR in passthru mode. (mod_amr)
+       
+       These are the passthru video codecs: (mod_h26x)
+       
+       H261             - H.261 Video
+       H263             - H.263 Video
+       H263-1998        - H.263-1998 Video
+       H263-2000        - H.263-2000 Video
+       H264             - H.264 Video
+       
+       RTP Dynamic Payload Numbers currently used in FreeSWITCH and what for.
+
+       96  - AMR
+       97  - iLBC (30)
+       98  - iLBC (20)
+       99  - Speex 8kHz, 16kHz, 32kHz
+       100 -
+       101 - telephone-event
+       102 -
+       103 - 
+       104 - 
+       105 - 
+       106 - BV16
+       107 - G722.1 (16kHz)
+       108 -
+       109 -
+       110 -
+       111 -
+       112 -
+       113 -
+       114 - CELT 32kHz, 48kHz
+       115 - G722.1C (32kHz)
+       116 -
+       117 - SILK 8kHz
+       118 - SILK 12kHz
+       119 - SILK 16kHz
+       120 - SILK 24kHz
+       121 - AAL2-G726-40 && G726-40
+       122 - AAL2-G726-32 && G726-32
+       123 - AAL2-G726-24 && G726-24
+       124 - AAL2-G726-16 && G726-16
+       125 - 
+       126 -
+       127 - BV32
+
+  -->
+  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/>
+  <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM"/>
+
+  <X-PRE-PROCESS cmd="set" data="bind_server_ip=auto"/>
+
+  <!-- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
+       
+       If you're going to load test FreeSWITCH please input real IP addresses
+       for external_rtp_ip and external_sip_ip
+  -->
+
+  <!-- external_rtp_ip
+       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"
+       where fs.mydomain.com is a DNS A record-useful when fs is on
+       a dynamic IP address, and uses a dynamic DNS updater.
+       If unspecified, the bind_server_ip value is used.
+       Used by: sofia.conf.xml dingaling.conf.xml
+  -->
+  <X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/>
+
+  <!-- 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"
+       where fs.mydomain.com is a DNS A record-useful when fs is on
+       a dynamic IP address, and uses a dynamic DNS updater.
+       If unspecified, the bind_server_ip value is used.
+       Used by: sofia.conf.xml dingaling.conf.xml
+  -->
+  <X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.freeswitch.org"/>
+
+  <!-- unroll-loops
+       Used to turn on sip loopback unrolling.
+  --> 
+  <X-PRE-PROCESS cmd="set" data="unroll_loops=true"/>
+
+  <!-- outbound_caller_id and outbound_caller_name
+       The caller ID telephone number we should use when calling out.
+       Used by: conference.conf.xml and user directory for default
+       outbound callerid name and number.
+  -->
+  <X-PRE-PROCESS cmd="set" data="outbound_caller_name=FreeSWITCH"/>
+  <X-PRE-PROCESS cmd="set" data="outbound_caller_id=0000000000"/>
+
+  <!-- various debug and defaults -->
+  <X-PRE-PROCESS cmd="set" data="call_debug=false"/>
+  <X-PRE-PROCESS cmd="set" data="console_loglevel=info"/>
+  <X-PRE-PROCESS cmd="set" data="default_areacode=918"/>
+  <X-PRE-PROCESS cmd="set" data="default_country=US"/>
+
+  <X-PRE-PROCESS cmd="set" data="uk-ring=%(400,200,400,450);%(400,2200,400,450)"/>
+  <X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440.0,480.0)"/>
+  <X-PRE-PROCESS cmd="set" data="fr-ring=%(1500,3500,440.0,0.0)"/>
+  <X-PRE-PROCESS cmd="set" data="rs-ring=%(1000,4000,425.0,0.0)"/>
+  <X-PRE-PROCESS cmd="set" data="ru-ring=%(800,3200,425,0)"/>
+  <X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/>
+  <X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)"/>
+
+  <!--
+      SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls
+  -->
+  <X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1"/>
+
+  <!-- Internal SIP Profile -->
+  <X-PRE-PROCESS cmd="set" data="internal_auth_calls=true"/>
+  <X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/>
+  <X-PRE-PROCESS cmd="set" data="internal_tls_port=5061"/>
+  <X-PRE-PROCESS cmd="set" data="internal_ssl_enable=false"/>
+  <X-PRE-PROCESS cmd="set" data="internal_ssl_dir=$${base_dir}/conf/ssl"/>
+
+  <!-- External SIP Profile -->
+  <X-PRE-PROCESS cmd="set" data="external_auth_calls=false"/>
+  <X-PRE-PROCESS cmd="set" data="external_sip_port=5080"/>
+  <X-PRE-PROCESS cmd="set" data="external_tls_port=5081"/>
+  <X-PRE-PROCESS cmd="set" data="external_ssl_enable=false"/>
+  <X-PRE-PROCESS cmd="set" data="external_ssl_dir=$${base_dir}/conf/ssl"/>
+  
+  <!-- Call recordings directory -->
+  <X-PRE-PROCESS cmd="set" data="recordings_dir=/home/freeswitch/recordings" />
+</include>
index 4908f435babef9947687b4d166506c8611a4d834..9b4ab8499a8630d8ba166db411d5b51f0969888f 100644 (file)
@@ -2,3 +2,10 @@
 config 'global' 'state'
        option 'started' '0'
 
+config 'profile_top' 'internal_top'
+
+config 'profile_top' 'external_top'
+
+config 'external_gateway' 'external_example'
+
+
index 8637556aa58cb5d12771786cc161126d9760d6d8..fbd7dc28a3d3b721deec2152d3bf6ccd283b5a3b 100644 (file)
@@ -15,6 +15,8 @@ start() {
        mkdir -p $FS_DIR_DB
        mkdir -p $FS_DIR_LOG
        ulimit -s 240
+       include /usr/lib/freeswitch/uci
+       fs_init_xml
        $FS_DIR/usr/bin/freeswitch $OPTIONS -nc
 }
 
diff --git a/net/freeswitch/files/uci/line_mod.sh b/net/freeswitch/files/uci/line_mod.sh
new file mode 100644 (file)
index 0000000..116d61d
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh
+# Copyright (C) 2010 Vertical Communications
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+# Uncomment commented out XML line
+fs_uncomment_xml_line() {
+       local file="$1"
+       local tag="$2"
+       local attribute1="$3"
+       local value1="$4"
+       local attribute2="$5"
+       local value2="$6"
+       if [ -n "$attribute2" ]; then
+               if [ -n "$value2" ]; then
+                       sed -i -e "/<${tag} ${attribute1}=\"""${value1}""\".*${attribute2}=\"""${value2}""\".*\/>/ s|^\(.*\)<!--.*<${tag}\(.*\)${attribute1}=\"""${value1}""\"\(.*\)${attribute2}\=\"""${value2}""\"\(.*\)/>.*-->\(.*\)\$|\1<${tag}\2${attribute1}=\"${value1}\"\3${attribute2}=\"${value2}\"\4/>\5|" $file
+               else
+                       sed -i -e "/<${tag} ${attribute1}=\"""${value1}""\".*${attribute2}=.*\/>/ s|^\(.*\)<!--.*<${tag}\(.*\)${attribute1}=\"""${value1}""\"\(.*\)${attribute2}\=\(.*\)/>.*-->\(.*\)\$|\1<${tag}\2${attribute1}=\"""${value1}""\"\3${attribute2}=\4/>\5|" $file
+               fi
+       elif [ -n "$attribute1" ]; then
+               sed -i -e "/<${tag} ${attribute1}=\"""${value1}""\".*\/>/ s|^\(.*\)<!--.*<${tag}\(.*\)${attribute1}=\"""${value1}""\"\(.*\)\/>.*-->\(.*\)\$|\1<${tag}\2${attribute1}=\"""${value1}""\"\3\/>\4|" $file
+       else 
+               logger -t freeswitch "Error uncommenting tag $tag in file $1; no attributes defined"
+       fi
+}
+
+# Comment previously uncommented XML line
+fs_comment_xml_line() {
+       local file="$1"
+       local tag="$2"
+       local attribute1="$3"
+       local value1="$4"
+       local attribute2="$5"
+       local value2="$6"
+       if [ -n "$attribute2" ]; then
+               sed -i -e "/<[^!]${tag} ${attribute1}=\"""${value1}""\".*${attribute2}=\"""${value2}""\"\/>/ s|\(.*\)<${tag}\(.*\)${attribute1}=\"""${value1}""\"\(.*\)${attribute2}=\"""${value2}""\"\(.*\)/>(.*\)\$|<!-- \1<${tag}\2${attribute1}=\"${value1}\"\3${attribute2}=\"""${value2}""\"\4/>\5 -->|" $file
+       elif [ -n "$attribute1" ]; then
+               sed -i -e "/<[^!]${tag} ${attribute1}=\"""${value1}""\".*\/>/ s|\(.*\)<${tag}\(.*\)${attribute1}=\"""${value1}""\"\(.*\)/>\(.*\)\$|\1<!-- <${tag}\2${attribute1}=\"""${value1}""\"\3/>\4 -->|" $file
+       else 
+               logger -t freeswitch "Error uncommenting tag $tag in file $1; no attributes defined"
+       fi
+}
+
+# Modify second attribute in tag with two attributes (tag and one attribute 
+# specified) if tag exists and is comments modifies, if commented, 
+# uncomments and and modifies it. 
+fs_mod_attribute2() {
+       local file="$1"
+       local tag="$2"
+       local attribute1="$3"
+       local value1="$4"
+       local attribute2="$5"
+       local newvalue="$6"
+       fs_uncomment_xml_line "$file" "$tag" "$attribute1" "$value1" "$attribute2"
+       sed -i -e "/[^<!-]*<${tag} ${attribute1}=\"""${value1}""\".*${attribute2}=\""".*""\"\/>/ s|\(.*\)<${tag}\(.*\)${attribute1}=\"""${value1}""\"\(.*\)${attribute2}=\""".*""\"\(.*\)/>\(.*\)\$|\1<${tag}\2${attribute1}=\"""${value1}""\"\3${attribute2}=\"""${newvalue}""\"\4/>\5|" $file
+}
+
+fs_set_param() {
+       local file="$1"
+       local param="$2"
+       local newvalue="$3"
+       
+       if [ -n "$newvalue" ]; then
+               fs_mod_attribute2 "$file" param name "$param" value "$newvalue"
+       else
+               fs_comment_xml_line "$file" param name "$param"
+       fi
+}
+
+fs_set_param_bool() {
+       local file="$1"
+       local param="$2"
+       local boolvalue="$3"
+
+       if [ "$boolvalue" = "0" ]; then
+               fs_set_param "$file" "$param" "false"   
+       else
+               fs_set_param "$file" "$param" "true"
+       fi
+}
+
diff --git a/net/freeswitch/files/uci/param_from_config.sh b/net/freeswitch/files/uci/param_from_config.sh
new file mode 100644 (file)
index 0000000..d7ae00d
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+# Copyright (C) 2010 Vertical Communications
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+fs_parse_param_action() {
+       local cfg="$1"
+       local param_file="$2"
+       local param="$3"
+       local param_type="$4"
+       local default="$5"
+       local value
+       
+       if [ -z "$default" ]; then
+               config_get value "$cfg" "$(echo $param|tr - _ )"
+       else
+               config_get value "$cfg" "$(echo $param|tr - _ )" "$default"
+       fi
+       
+       if [ "$param_type" = "bool" ]; then
+               if [ "$value" = "0" ] || [ "$value" = "false" ] || [ "$value" = "no" ]; then
+                       value="false"
+               elif [ "$value" = "1" ] || [ "$value" = "true" ] || [ "$value" = "yes" ]; then
+                       value="true"
+               fi
+       fi
+       
+       fs_set_param "$param_file" "$param" "$value"
+}
+
+fs_to_xml_param_list() {
+       local cfg="$1"
+       local param_list="$2"
+       local param_file="$3"
+       local i=0
+       local param
+       local default
+       local list_item
+       local param_type
+       echo "$param_list" | {
+               local list_item 
+               read -t 1 list_item 
+               while [ "$list_item" != '[FS-EOF]' ]; do
+                       if [ $i -eq 0 ]; then
+                               param="$list_item"
+                               i=1
+                       elif [ $i -eq 1 ]; then
+                               param_type="$list_item"
+                               i=2
+                       else
+                               default="$list_item"
+                               fs_parse_param_action "$cfg" "$param_file" "$param" "$param_type" "$default"
+                               i=0
+                       fi
+                       read -t 1 list_item
+               done
+       }
+}
diff --git a/net/freeswitch/files/uci/profiles.sh b/net/freeswitch/files/uci/profiles.sh
new file mode 100644 (file)
index 0000000..22f9eb1
--- /dev/null
@@ -0,0 +1,437 @@
+#!/bin/sh
+# Copyright (C) 2010 Vertical Communications
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+# . /etc/functions.sh
+# . /usr/lib/freeswitch/uci/common/param_from_config.sh
+
+fs_profile_gateway() {
+       local cfg="$1"
+       local param_file="$2"
+       local param_list="username
+string
+
+password
+password
+
+realm
+string
+
+from-user
+string
+
+from-domain
+string
+
+extension
+string
+
+proxy
+string
+
+register-proxy
+string
+
+expire-seconds
+integer
+
+register
+bool
+
+register-transport
+string
+
+retry-seconds
+integer
+
+caller-id-in-from
+bool
+
+contact-params
+string
+
+extension-in-contact
+string
+
+ping
+integer
+
+[FS-EOF]
+"
+
+       fs_to_xml_param_list "$cfg" "$param_list" "$param_file"
+}
+
+fs_profile_internal_top() {
+       local cfg="$1"
+       local param_file="$2"
+       local param_list="media-option
+string
+
+user-agent-string
+string
+
+debug
+integer
+0
+shutdown-on-fail
+bool
+
+sip-trace
+string
+no
+log-auth-failures
+bool
+true
+context
+string
+public
+rfc2833-pt
+integer
+101
+sip-port
+integer
+\$\${internal_sip_port}
+dialplan
+string
+XML
+dtmf-duration
+integer
+2000
+inbound-codec-prefs
+string
+\$\${global_codec_prefs}
+outbound-codec-prefs
+string
+\$\${global_codec_prefs}
+rtp-timer-name
+string
+soft
+rtp-ip
+string
+\$\${local_ip_v4}
+sip-ip
+string
+\$\${local_ip_v4}
+hold-music
+string
+\$\${hold_music}
+apply-nat-acl
+string
+nat.auto
+extended-info-parsing
+bool
+
+aggressive-nat-detection
+bool
+
+enable-100rel
+bool
+
+enable-compact-headers
+bool
+
+enable-timer
+bool
+
+minimum-session-expires
+integer
+
+apply-inbound-acl
+string
+domains
+local-network-acl
+string
+localnet.auto
+apply-register-acl
+string
+
+dtmf-type
+string
+info
+send-message-query-on-register
+bool
+
+record-path
+string
+\$\${recordings_dir}
+record-template
+string
+\${caller_id_number}.\${target_domain}.\${strftime(%Y-%m-%d-%H-%M-%S)}.wav
+manage-presence
+bool
+true
+manage-shared-appearance
+bool
+
+dbname
+string
+
+presence-hosts
+string
+
+bitpacking
+string
+
+max-proceeding
+integer
+
+session-timeout
+integer
+
+multiple-registrations
+string
+
+inbound-codec-negotiation
+string
+generous
+bind-params
+string
+
+unregister-on-options-fail
+bool
+
+tls
+bool
+\$\${internal_ssl_enable}
+tls-bind-params
+string
+transport=tls
+tls-sip-port
+integer
+\$\${internal_tls_port}
+tls-cert-dir
+string
+\$\${internal_ssl_dir}
+tls-version
+string
+\$\${sip_tls_version}
+rtp-autoflush-during-bridge
+bool
+
+rtp-rewrite-timestamps
+bool
+
+pass-rfc2833
+bool
+
+odbc-dsn
+string
+
+inbound-bypass-media
+bool
+
+inbound-proxy-media
+bool
+
+inbound-late-negotiation
+bool
+
+accept-blind-reg
+bool
+
+accept-blind-auth
+bool
+
+suppress-cng
+bool
+
+nonce-ttl
+integer
+60
+disable-transcoding
+bool
+
+manual-redirect
+bool
+
+disable-transfer
+bool
+
+disable-register
+bool
+
+NDLB-broken-auth-hash
+bool
+
+NDLB-received-in-nat-reg-contact
+bool
+
+auth-calls
+bool
+\$\${internal_auth_calls}
+inbound-reg-force-match-username
+bool
+true
+auth-all-package
+bool
+false
+ext-rtp-ip
+string
+auto-nat
+ext-sip-ip
+string
+auto-nat
+rtp-timeout-sec
+integer
+300
+rtp-hold-timeout-sec
+integer
+1800
+vad
+string
+
+alias
+string
+
+force-register-domain
+string
+\$\${domain}
+force-subscription-domain
+string
+\$\${domain}
+force-register-db-domain
+string
+\$\${domain}
+force-subscription-expires
+integer
+
+enable-3pcc
+string
+
+NDLB-force-rport
+bool
+
+challenge-realm
+string
+auto_from
+disable-rtp-auto-adjust
+bool
+
+inbound-use-callid-as-uuid
+bool
+
+outbound-use-callid-as-uuid
+bool
+
+pass-callee-id
+bool
+
+auto-rtp-bugs
+string
+
+disable-srv
+bool
+
+disable-naptr
+bool
+
+[FS-EOF]
+"
+       fs_to_xml_param_list "$cfg" "$param_list" "$param_file"
+}
+
+fs_profile_external_top() {
+       local cfg="$1"
+       local param_file="$2"
+       local param_list="debug
+integer
+0
+shutdown-on-fail
+bool
+
+sip-trace
+string
+no
+context
+string
+public
+rfc2833-pt
+integer
+101
+sip-port
+integer
+\$\${external_sip_port}
+dialplan
+string
+XML
+inbound-codec-prefs
+string
+\$\${global_codec_prefs}
+outbound-codec-prefs
+string
+\$\${outbound_codec_prefs}
+rtp-timer-name
+string
+soft
+dtmf-duration
+integer
+2000
+rtp-ip
+string
+\$\${local_ip_v4}
+sip-ip
+string
+\$\${local_ip_v4}
+ext-rtp-ip
+string
+auto-nat
+ext-sip-ip
+string
+auto-nat
+hold-music
+string
+\$\${hold_music}
+aggressive-nat-detection
+bool
+
+enable-100rel
+bool
+
+local-network-acl
+string
+localnet.auto
+manage-presence
+bool
+false
+dbname
+string
+
+presence-hosts
+string
+
+tls
+bool
+\$\${external_ssl_enable}
+tls-bind-params
+string
+transport=tls
+tls-sip-port
+integer
+\$\${external_tls_port}
+tls-cert-dir
+string
+\$\${external_ssl_dir}
+tls-version
+string
+\$\${sip_tls_version}
+nonce-ttl
+integer
+60
+auth-calls
+bool
+false
+inbound-codec-negotiation
+string
+generous
+rtp-timeout-sec
+integer
+300
+rtp-hold-timeout-sec
+integer
+1800
+[FS-EOF]
+"
+       fs_to_xml_param_list "$cfg" "$param_list" "$param_file"
+}
diff --git a/net/freeswitch/files/uci/update_xml.sh b/net/freeswitch/files/uci/update_xml.sh
new file mode 100644 (file)
index 0000000..67fd1c4
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+# Copyright (C) 2010 Vertical Communications
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+# Note that the fs_profile_* functions require the FS XML files contains
+# commented out sections for the parameters that are not currently in use, but
+# which are to be available to the UCI FS config
+fs_init_xml() {
+       config_load freeswitch
+       fs_profile_internal_top "internal_top" "/etc/freeswitch/sip_profiles/internal.xml"
+       fs_profile_external_top "external_top" "/etc/freeswitch/sip_profiles/external.xml"
+       fs_profile_gateway "external_example" "/etc/freeswitch/sip_profiles/external/example.xml"
+       fs_profile_gateway "internal_example" "/etc/freeswitch/sip_profiles/internal/example.xml"
+}