diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/abstraction.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/abstraction.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..72446813740463242f20ba3e0f67bb9137bf3c11
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/abstraction.conf.xml
@@ -0,0 +1,5 @@
+<configuration name="abstraction.conf" description="Abstraction">
+<apis>
+	<api name="user_name" description="Return Name for extension" syntax="&lt;exten&gt;" parse="(.*)" destination="user_data" argument="$1@default var effective_caller_id_name"/>
+</apis>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/acl.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/acl.conf.xml
index 1d65b299c273a872fcb5d057dc03c87081d133c1..9bb347d014bcc532eade3931311d008fb548069a 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/acl.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/acl.conf.xml
@@ -1,31 +1,35 @@
 <configuration name="acl.conf" description="Network Lists">
   <network-lists>
-    <!-- 
-	 These ACL's are automatically created on startup.
+    <!--
+         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.
+         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="localhost" default="allow">
-      <node type="allow" cidr="127.0.0.1/255"/>
-    </list>
-
     <list name="lan" default="allow">
-      <node type="deny" cidr="192.168.42.0/24"/>
-      <node type="allow" cidr="192.168.42.42/32"/>
+      <node type="allow" cidr="127.0.0.1/32"/>
+      <node type="allow" cidr="10.130.218.147/32"/>
     </list>
 
+    <list name="deny_private_v6" default="allow">
+      <node type="deny" cidr="0.0.0.0/0"/>
+      <node type="deny" cidr="fe80::/10"/>
+      <node type="deny" cidr="fc00::/7"/>
+    </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.
+        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">
+    <list name="domains" default="allow">
+      <!-- domain= is special it scans the domain from the directory to build the ACL -->
       <node type="allow" domain="$${domain}"/>
+      <!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
+      <!-- <node type="allow" cidr="192.168.0.0/24"/> -->
     </list>
 
   </network-lists>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/alsa.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/alsa.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e589acaacf4cfa8b950b6238f024328cffccdd6c
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/alsa.conf.xml
@@ -0,0 +1,12 @@
+<configuration name="alsa.conf" description="Soundcard Endpoint">
+  <settings>
+    <!--Default dialplan and caller-id info -->
+    <param name="dialplan" value="XML"/>
+    <param name="cid-name" value="N800 Alsa"/>
+    <param name="cid-num" value="5555551212"/>
+
+    <!--audio sample rate and interval -->
+    <param name="sample-rate" value="8000"/>
+    <param name="codec-ms" value="20"/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amqp.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amqp.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3db3c322326aef0a99af8227af2b10b9f804649d
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amqp.conf.xml
@@ -0,0 +1,87 @@
+<configuration name="amqp.conf" description="mod_amqp">
+  <producers>
+    <profile name="default">
+      <connections>
+	<connection name="primary">
+	  <param name="hostname" value="localhost"/>
+	  <param name="virtualhost" value="/"/>
+	  <param name="username" value="guest"/>
+	  <param name="password" value="guest"/>
+	  <param name="port" value="5673"/>
+	  <param name="heartbeat" value="0"/>
+	</connection>
+	<connection name="secondary">
+	  <param name="hostname" value="localhost"/>
+	  <param name="virtualhost" value="/"/>
+	  <param name="username" value="guest"/>
+	  <param name="password" value="guest"/>
+	  <param name="port" value="5672"/>
+	  <param name="heartbeat" value="0"/>
+	</connection>
+      </connections>
+      <params>
+	<param name="exchange-name" value="TAP.Events"/>
+	<param name="exchange-type" value="topic"/>
+	<param name="circuit_breaker_ms" value="10000"/>
+	<param name="reconnect_interval_ms" value="1000"/>
+	<param name="send_queue_size" value="5000"/>
+	<param name="enable_fallback_format_fields" value="1"/>
+
+	<!-- The routing key is made from the format string, using the header values in the event specified in the format_fields.-->
+	<!-- Fields that are prefixed with a # are treated as literals rather than doing a header lookup -->
+	<param name="format_fields" value="#FreeSWITCH,FreeSWITCH-Hostname,Event-Name,Event-Subclass,Unique-ID"/>
+
+	<!-- If enable_fallback_format_fields is enabled, then you can | separate event headers, and if the first does not exist
+	     then the system will check additional configured header values.
+	-->
+	<!-- <param name="format_fields" value="#FreeSWITCH,FreeSWITCH-Hostname|#Unknown,Event-Name,Event-Subclass,Unique-ID"/> -->
+
+	<!--    <param name="event_filter" value="SWITCH_EVENT_ALL"/> -->
+	<param name="event_filter" value="SWITCH_EVENT_CHANNEL_CREATE,SWITCH_EVENT_CHANNEL_DESTROY,SWITCH_EVENT_HEARTBEAT,SWITCH_EVENT_DTMF"/>
+      </params>
+    </profile>
+  </producers>
+  <commands>
+    <profile name="default">
+      <connections>
+	<connection name="primary">
+	  <param name="hostname" value="localhost"/>
+	  <param name="virtualhost" value="/"/>
+	  <param name="username" value="guest"/>
+	  <param name="password" value="guest"/>
+	  <param name="port" value="5672"/>
+	  <param name="heartbeat" value="0"/>
+	</connection>
+      </connections>
+      <params>
+	<param name="exchange-name" value="TAP.Commands"/>
+	<param name="binding_key" value="commandBindingKey"/>
+	<param name="reconnect_interval_ms" value="1000"/>
+	<param name="queue-passive" value="false"/>
+	<param name="queue-durable" value="false"/>
+	<param name="queue-exclusive" value="false"/>
+	<param name="queue-auto-delete" value="true"/>
+      </params>
+    </profile>
+  </commands>
+  <logging>
+    <profile name="default">
+      <connections>
+	<connection name="primary">
+	  <param name="hostname" value="localhost"/>
+	  <param name="virtualhost" value="/"/>
+	  <param name="username" value="guest"/>
+	  <param name="password" value="guest"/>
+	  <param name="port" value="5672"/>
+	  <param name="heartbeat" value="0"/>
+	</connection>
+      </connections>
+      <params>
+	<param name="exchange-name" value="TAP.Logging"/>
+	<param name="send_queue_size" value="5000"/>
+	<param name="reconnect_interval_ms" value="1000"/>
+	<param name="log-levels" value="debug,info,notice,warning,err,crit,alert"/>
+      </params>
+    </profile>
+  </logging>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amr.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amr.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e1c3e3cc1be3dce799bc171d3de581412ed40d10
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amr.conf.xml
@@ -0,0 +1,19 @@
+<configuration name="amr.conf">
+	<settings>
+	  <!-- AMR modes (supported bitrates) :
+               mode   0     AMR 4.75  kbps
+               mode   1     AMR 5.15  kbps
+               mode   2     AMR 5.9 kbps
+               mode   3     AMR 6.7 kbps
+               mode   4     AMR 7.4  kbps
+               mode   5     AMR 7.95 kbps 
+               mode   6     AMR 10.2 kbps 
+               mode   7     AMR 12.2 kbps
+          -->
+	  <param name="default-bitrate" value="7"/> 
+	  <!-- Enable VoLTE specific FMTP -->
+	  <param name="volte" value="0"/>
+	  <!-- Enable automatic bitrate variation during the call based on RTCP feedback -->
+	  <param name="adjust-bitrate" value="0"/> 
+	</settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amrwb.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amrwb.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9dac3505a4baf5790e0b0559358e5894bf795615
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/amrwb.conf.xml
@@ -0,0 +1,7 @@
+<configuration name="amrwb.conf">
+  <settings>
+    <param name="default-bitrate" value="8"/>
+    <param name="volte" value="1"/>
+    <param name="adjust-bitrate" value="0"/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/av.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/av.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..43e8514ce1c49e88f01b71c38853055b674adfc8
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/av.conf.xml
@@ -0,0 +1,167 @@
+<configuration name="avcodec.conf" description="AVCodec Config">
+  <settings>
+    <!-- max bitrate the system support, truncate if over limit -->
+    <!-- <param name="max-bitrate" value="5mb"/> -->
+
+    <!-- <param name="rtp-slice-size" value="1200"/> -->
+
+    <!-- minimum time to generate a new key frame in ms /> -->
+    <!-- <param name="key-frame-min-freq" value="250"/> -->
+
+    <!-- integer of cpus, or 'auto', or 'cpu/<divisor>/<max> -->
+    <param name="dec-threads" value="1"/>
+    <param name="enc-threads" value="cpu/2/4"/>
+  </settings>
+
+  <profiles>
+    <profile name="H263">
+    </profile>
+
+    <profile name="H263+">
+    </profile>
+
+    <profile name="H264">
+      <!-- <param name="dec-threads" value="1"/> -->
+      <!-- <param name="enc-threads" value="cpu/2/4"/> -->
+
+      <!-- <param name="profile" value="baseline"/> -->
+      <!-- <param name="level" value="41"/> -->
+      <!-- <param name="timebase" value="1/90"/> -->
+
+<!--
+
+#define AV_CODEC_FLAG_UNALIGNED       (1 <<  0)
+#define AV_CODEC_FLAG_QSCALE          (1 <<  1)
+#define AV_CODEC_FLAG_4MV             (1 <<  2)
+#define AV_CODEC_FLAG_OUTPUT_CORRUPT  (1 <<  3)
+#define AV_CODEC_FLAG_QPEL            (1 <<  4)
+#define AV_CODEC_FLAG_PASS1           (1 <<  9)
+#define AV_CODEC_FLAG_PASS2           (1 << 10)
+#define AV_CODEC_FLAG_LOOP_FILTER     (1 << 11)
+#define AV_CODEC_FLAG_GRAY            (1 << 13)
+#define AV_CODEC_FLAG_PSNR            (1 << 15)
+#define AV_CODEC_FLAG_TRUNCATED       (1 << 16)
+#define AV_CODEC_FLAG_INTERLACED_DCT  (1 << 18)
+#define AV_CODEC_FLAG_LOW_DELAY       (1 << 19)
+#define AV_CODEC_FLAG_GLOBAL_HEADER   (1 << 22)
+#define AV_CODEC_FLAG_BITEXACT        (1 << 23)
+#define AV_CODEC_FLAG_AC_PRED         (1 << 24)
+#define AV_CODEC_FLAG_INTERLACED_ME   (1 << 29)
+#define AV_CODEC_FLAG_CLOSED_GOP      (1U << 31)
+
+-->
+
+      <param name="flags" value="LOOP_FILTER|PSNR"/>
+
+<!--
+#define FF_CMP_SAD          0
+#define FF_CMP_SSE          1
+#define FF_CMP_SATD         2
+#define FF_CMP_DCT          3
+#define FF_CMP_PSNR         4
+#define FF_CMP_BIT          5
+#define FF_CMP_RD           6
+#define FF_CMP_ZERO         7
+#define FF_CMP_VSAD         8
+#define FF_CMP_VSSE         9
+#define FF_CMP_NSSE         10
+#define FF_CMP_W53          11
+#define FF_CMP_W97          12
+#define FF_CMP_DCTMAX       13
+#define FF_CMP_DCT264       14
+#define FF_CMP_MEDIAN_SAD   15
+#define FF_CMP_CHROMA       256
+-->
+
+      <!-- <param name="me-cmp" value="1"/> -->
+      <!-- <param name="me-range" value="16"/> -->
+      <!-- <param name="max-b-frames" value="3"/> -->
+      <!-- <param name="refs" value="3"/> -->
+      <!-- <param name="gop-size" value="250"/> -->
+      <!-- <param name="keyint-min" value="25"/> -->
+      <!-- <param name="i-quant-factor" value="0.71"/> -->
+      <!-- <param name="b-quant-factor" value="0.76923078"/> -->
+      <!-- <param name="qcompress" value="0.6"/> -->
+      <!-- <param name="qmin" value="10"/> -->
+      <!-- <param name="qmax" value="51"/> -->
+      <!-- <param name="max-qdiff" value="4"/> -->
+
+<!--
+enum AVColorSpace {
+    AVCOL_SPC_RGB         = 0,  ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
+    AVCOL_SPC_BT709       = 1,  ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
+    AVCOL_SPC_UNSPECIFIED = 2,
+    AVCOL_SPC_RESERVED    = 3,
+    AVCOL_SPC_FCC         = 4,  ///< FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
+    AVCOL_SPC_BT470BG     = 5,  ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
+    AVCOL_SPC_SMPTE170M   = 6,  ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
+    AVCOL_SPC_SMPTE240M   = 7,  ///< functionally identical to above
+    AVCOL_SPC_YCGCO       = 8,  ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16
+    AVCOL_SPC_YCOCG       = AVCOL_SPC_YCGCO,
+    AVCOL_SPC_BT2020_NCL  = 9,  ///< ITU-R BT2020 non-constant luminance system
+    AVCOL_SPC_BT2020_CL   = 10, ///< ITU-R BT2020 constant luminance system
+    AVCOL_SPC_SMPTE2085   = 11, ///< SMPTE 2085, Y'D'zD'x
+    AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
+    AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
+    AVCOL_SPC_ICTCP       = 14, ///< ITU-R BT.2100-0, ICtCp
+    AVCOL_SPC_NB                ///< Not part of ABI
+};
+-->
+      <param name="colorspace" value="0"/>
+
+<!--
+enum AVColorRange {
+    AVCOL_RANGE_UNSPECIFIED = 0,
+    AVCOL_RANGE_MPEG        = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges
+    AVCOL_RANGE_JPEG        = 2, ///< the normal     2^n-1   "JPEG" YUV ranges
+    AVCOL_RANGE_NB               ///< Not part of ABI
+};
+-->
+      <param name="color-range" value="2"/>
+
+      <!-- x264 private options-->
+      <options>
+        <option name="preset" value="veryfast"/>
+        <option name="intra_refresh" value="1"/>
+        <option name="tune" value="animation+zerolatency"/>
+        <option name="sc_threshold" value="40"/>
+        <option name="b_strategy" value="1"/>
+        <option name="crf" value="18"/>
+      </options>
+    </profile>
+
+    <profile name="H265">
+    </profile>
+
+    <profile name="conference">
+      <param name="dec-threads" value="1"/>
+      <param name="enc-threads" value="cpu/2/4"/>
+
+      <codecs>
+        <!-- profiles will be parsed at runtime
+          to overwrite this profile params if codec matches -->
+        <codec name="H263" profile="H263"/>
+        <codec name="H264" profile="H264"/>
+        <codec name="H264" profile="conference-H264"/>
+      </codecs>
+    </profile>
+
+    <profile name="conference-H264">
+      <options>
+        <option name="preset" value="veryfast"/>
+        <option name="intra_refresh" value="1"/>
+        <option name="tune" value="animation+zerolatency"/>
+        <option name="sc_threshold" value="40"/>
+        <option name="b_strategy" value="1"/>
+        <option name="crf" value="10"/>
+      </options>
+    </profile>
+
+  </profiles>
+</configuration>
+
+<configuration name="avformat.conf" description="AVFormat Config">
+  <settings>
+      <param name="colorspace" value="1"/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/avmd.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/avmd.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..86b2500bad23f033ee563a0ddac35fbde89b7f8f
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/avmd.conf.xml
@@ -0,0 +1,74 @@
+<configuration name="avmd.conf" description="AVMD config">
+    <settings>
+
+    <!-- Edit these settings to change default behaviour
+         of each avmd session. Settings can be overwritten
+         by values passed dynamically per each session -->
+
+
+        <!-- Global settings -->
+
+            <!-- define/undefine this to enable/disable logging of avmd
+                 intermediate computations to log -->
+            <param name="debug" value="0"/>
+
+            <!-- define/undef this to enable/disable verbose logging (and reporting to the console)
+                 of detection status and other diagnostics like parameters avmd session has been started with,
+                 change of configuration parameters, beep detection status after session ended
+                 (stop event is fired independently of this setting and beep status included there) -->
+            <param name="report_status" value="1"/>
+
+            <!-- define/undefine this to enable/disable faster computation
+                 of arcus cosine - table will be created mapping floats
+                 to integers and returning arc cos values given these integer
+                 indices into table -->
+            <param name="fast_math" value="0"/>
+        <!-- Global settings end -->
+
+
+        <!-- Per call (session) settings. These settings can be overwritten
+             with custom/different values per each avmd session -->
+
+            <!-- define/undefine this to classify avmd beep detection as valid
+                 only when there is required number of consecutive elements
+                 in the SMA buffer without reset -->
+            <param name="require_continuous_streak" value="1"/>
+
+            <!-- required number of consecutive elements in the SMA buffer
+                 without reset. This parameter helps to avoid false beeps, bigger this value is
+                smaller the probability of getting false detection -->
+            <param name="sample_n_continuous_streak" value="3"/>
+
+            <!-- define number of samples to skip starting from the beginning
+                 of the frame and/or after reset  has happened. This serves the purpose of skipping first few
+                estimations on each frame, as these estimations may be inaccurate. This parameter also helps
+                to give more robust detections when it's value is increased (up to scertain limit of about 60). -->
+            <param name="sample_n_to_skip" value="0"/>
+
+            <param name="require_continuous_streak_amp" value="1"/>
+            <param name="sample_n_continuous_streak_amp" value="3"/>
+
+            <!-- define/undefine this to enable/disable simplified estimation
+                 of frequency based on approximation of sin(x) with (x)
+                 in the range x=[0,PI/2] -->
+            <param name="simplified_estimation" value="1"/>
+
+            <!-- define/undefine to enable/disable avmd on internal channel -->
+            <param name="inbound_channel" value="0"/>
+
+            <!-- define/undefine to enable/disable avmd on external channel -->
+            <param name="outbound_channel" value="1"/>
+
+            <!-- determines the mode of detection, default is both amplitude and frequency -->
+            <param name="detection_mode" value="2"/>
+
+            <!-- number of detection threads running per each avmd session -->
+            <param name="detectors_n" value="36"/>
+
+            <!-- number of lagged detection threads running per each avmd session -->
+            <param name="detectors_lagged_n" value="1"/>
+
+        <!-- Per call settings end -->
+    </settings>
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/blacklist.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/blacklist.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9995febd8325d7e5f9fdfb4865ae306242c36564
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/blacklist.conf.xml
@@ -0,0 +1,11 @@
+<configuration name="mod_blacklist.conf" description="Blacklist module">
+<lists>
+	<!--
+		Example blacklist, the referenced file contains blacklisted items, one entry per line
+
+		NOTE: make sure the file exists and is readable by FreeSWITCH.
+
+	<list name="example" filename="$${conf_dir}/blacklists/example.list"/>
+	-->
+</lists>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/callcenter.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/callcenter.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a0cd6f0d5d070ef82379f19d03245a88b32f7f45
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/callcenter.conf.xml
@@ -0,0 +1,39 @@
+<configuration name="callcenter.conf" description="CallCenter">
+  <settings>
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+    <!--<param name="dbname" value="/dev/shm/callcenter.db"/>-->
+    <!--<param name="cc-instance-id" value="single_box"/>-->
+  </settings>
+
+  <queues>
+
+    <queue name="support@default">
+      <param name="strategy" value="longest-idle-agent"/>
+      <param name="moh-sound" value="$${hold_music}"/>
+      <!--<param name="record-template" value="$${recordings_dir}/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>-->
+      <param name="time-base-score" value="system"/>
+      <param name="max-wait-time" value="0"/>
+      <param name="max-wait-time-with-no-agent" value="0"/>
+      <param name="max-wait-time-with-no-agent-time-reached" value="5"/>
+      <param name="tier-rules-apply" value="false"/>
+      <param name="tier-rule-wait-second" value="300"/>
+      <param name="tier-rule-wait-multiply-level" value="true"/>
+      <param name="tier-rule-no-agent-no-wait" value="false"/>
+      <param name="discard-abandoned-after" value="60"/>
+      <param name="abandoned-resume-allowed" value="false"/>
+    </queue>
+
+  </queues>
+
+<!-- WARNING: Configuration of XML Agents will be updated into the DB upon restart. -->
+<!-- WARNING: Configuration of XML Tiers will reset the level and position if those were supplied. -->
+<!-- WARNING: Agents and Tiers XML config shouldn't be used in a multi FS shared DB setup (Not currently supported anyway) -->
+  <agents>
+    <!--<agent name="1000@default" type="callback" contact="[leg_timeout=10]user/1000@default" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />-->
+  </agents>
+  <tiers>
+    <!-- If no level or position is provided, they will default to 1.  You should do this to keep db value on restart. -->
+    <!-- <tier agent="1000@default" queue="support@default" level="1" position="1"/> -->
+  </tiers>
+
+</configuration> 
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_csv.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_csv.conf.xml
index bcefd460b436c780090223383303c303d73ea8ea..8d796c68f06f0ead7d604b3adbb8990de54004b9 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_csv.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_csv.conf.xml
@@ -17,6 +17,7 @@
     <template name="snom">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${call_clientcode}","${sip_rtp_rxstat}","${sip_rtp_txstat}","${sofia_record_file}"</template>
     <template name="linksys">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${sip_p_rtp_stat}"</template>
     <template name="asterisk">"${accountcode}","${caller_id_number}","${destination_number}","${context}","${caller_id}","${channel_name}","${bridge_channel}","${last_app}","${last_arg}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${amaflags}","${uuid}","${userfield}"</template>
+    <template name="opencdrrate">"${uuid}","${signal_bond}","${direction}","${ani}","${destination_number}","${answer_stamp}","${end_stamp}","${billsec}","${accountcode}","${userfield}","${network_addr}","${regex('${original_caller_id_name}'|^.)}","${sip_gateway_name}"</template>
   </templates>
 </configuration>
 
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_mongodb.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_mongodb.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce366d1bd04f887861cd3a30686c87770e10e00b
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_mongodb.conf.xml
@@ -0,0 +1,13 @@
+<configuration name="cdr_mongodb.conf" description="MongoDB CDR logger">
+  <settings>
+    <!-- Hostnames and IPv6 addrs not supported (yet) -->
+    <param name="host" value="127.0.0.1"/>
+    <param name="port" value="27017"/>
+
+    <!-- Namespace format is database.collection -->
+    <param name="namespace" value="test.cdr"/>
+
+    <!-- If true, create CDR for B-leg of call (default: true) -->
+    <param name="log-b-leg" value="false"/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_pg_csv.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_pg_csv.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9891455f8adb87ed88e4361c35ee7ceb0fa2d304
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_pg_csv.conf.xml
@@ -0,0 +1,40 @@
+<configuration name="cdr_pg_csv.conf" description="CDR PG CSV Format">
+  <settings>
+    <!-- See parameters for PQconnectdb() at http://www.postgresql.org/docs/8.4/static/libpq-connect.html -->
+    <param name="db-info" value="host=localhost dbname=cdr connect_timeout=10" />
+    <!-- CDR table name -->
+    <!--<param name="db-table" value="cdr"/>-->
+
+    <!-- Log a-leg (a), b-leg (b) or both (ab) -->
+    <param name="legs" value="a"/>
+
+    <!-- Directory in which to spool failed SQL inserts -->
+    <!-- <param name="spool-dir" value="$${log_dir}/cdr-pg-csv"/> -->
+    <!-- Disk spool format if DB connection/insert fails - csv (default) or sql -->
+    <param name="spool-format" value="csv"/>
+    <param name="rotate-on-hup" value="true"/>
+
+    <!-- This is like the info app but after the call is hung up -->
+    <!--<param name="debug" value="true"/>-->
+  </settings>
+  <schema>
+    <field var="local_ip_v4"/>
+    <field var="caller_id_name"/>
+    <field var="caller_id_number"/>
+    <field var="destination_number"/>
+    <field var="context"/>
+    <field var="start_stamp"/>
+    <field var="answer_stamp"/>
+    <field var="end_stamp"/>
+    <field var="duration" quote="false"/>
+    <field var="billsec" quote="false"/>
+    <field var="hangup_cause"/>
+    <field var="uuid"/>
+    <field var="bleg_uuid"/>
+    <field var="accountcode"/>
+    <field var="read_codec"/>
+    <field var="write_codec"/>
+    <!-- <field var="sip_hangup_disposition"/> -->
+    <!-- <field var="ani"/> -->
+  </schema>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_sqlite.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_sqlite.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..872c04c4fba6686f2bac6cfe118aa0b76e4c6f99
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cdr_sqlite.conf.xml
@@ -0,0 +1,18 @@
+<configuration name="cdr_sqlite.conf" description="SQLite CDR">
+  <settings>
+    <!-- SQLite database name (.db suffix will be automatically appended) -->
+    <!-- <param name="db-name" value="cdr"/> -->
+    <!-- CDR table name -->
+    <!-- <param name="db-table" value="cdr"/> -->
+    <!-- Log a-leg (a), b-leg (b) or both (ab) -->
+    <param name="legs" value="a"/>
+    <!-- Default template to use when inserting records -->
+    <param name="default-template" value="example"/>
+    <!-- This is like the info app but after the call is hung up -->
+    <!--<param name="debug" value="true"/>-->
+  </settings>
+  <templates>
+    <!-- Note that field order must match SQL table schema, otherwise insert will fail -->
+    <template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}",${duration},${billsec},"${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}"</template>
+  </templates>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cepstral.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cepstral.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cf4aa92f4186005d7cb2478dcebf0fdc0322a424
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cepstral.conf.xml
@@ -0,0 +1,12 @@
+<configuration name="cepstral.conf" description="Cepstral TTS configuration">
+  <settings>
+    <!--
+        Possible encodings:
+        * utf-8
+        * us-ascii
+        * iso8859-1 (default)
+        * iso8859-15
+    -->
+    <param name="encoding" value="utf-8"/>
+  </settings>
+</configuration>
\ No newline at end of file
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cidlookup.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cidlookup.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fd28f9b0c08d01a307a93e1b6ca8021c1fc3c0e3
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/cidlookup.conf.xml
@@ -0,0 +1,33 @@
+<configuration name="cidlookup.conf" description="cidlookup Configuration">
+  <settings>
+    <!-- comment out url to not setup a url based lookup -->
+    <param name="url" value="http://query.voipcnam.com/query.php?api_key=MYAPIKEY&amp;number=${caller_id_number}"/>
+
+    <!-- comment out whitepages-apikey to not use whitepages.com, you must
+         get an API key from http://developer.whitepages.com/ -->
+    <param name="whitepages-apikey" value="MYAPIKEY"/>
+
+    <!-- set to false to not cache (in memcache) results from the url query -->
+    <param name="cache" value="true"/>
+    <!-- expire is in seconds -->
+    <param name="cache-expire" value="86400"/>
+
+    <param name="odbc-dsn" value="phone:phone:phone"/>
+
+    <!-- comment out sql to not setup a database (directory) lookup -->
+    <param name="sql" value="
+     SELECT name||' ('||type||')' AS name 
+      FROM phonebook p JOIN numbers n ON p.id = n.phonebook_id
+      WHERE n.number='${caller_id_number}' 
+      LIMIT 1
+      "/>
+    <!-- comment out citystate-sql to not setup a database (city/state) 
+         lookup -->
+    <param name="citystate-sql" value="
+     SELECT ratecenter||' '||state as name
+      FROM npa_nxx_company_ocn
+      WHERE npa = ${caller_id_number:1:3} AND nxx = ${caller_id_number:4:3}
+      LIMIT 1
+      "/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference.conf.xml
index 0951987c5ad0b185d77e802d04677314da165973..739511f0a8ed5fc51c73cad6b857d5ed487e30b9 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference.conf.xml
@@ -1,4 +1,4 @@
-<!-- http://wiki.freeswitch.org/wiki/Mod_conference --> 
+<!-- http://wiki.freeswitch.org/wiki/Mod_conference -->
 <!-- None of these paths are real if you want any of these options you need to really set them up -->
 <configuration name="conference.conf" description="Audio Conference">
   <!-- Advertise certain presence on startup . -->
@@ -6,8 +6,8 @@
     <room name="3001@$${domain}" status="FreeSWITCH"/>
   </advertise>
 
-  <!-- These are the default keys that map when you do not specify a caller control group -->	
-  <!-- Note: none and default are reserved names for group names.  Disabled if dist-dtmf member flag is set. -->	
+  <!-- These are the default keys that map when you do not specify a caller control group -->
+  <!-- Note: none and default are reserved names for group names.  Disabled if dist-dtmf member flag is set. -->
   <caller-controls>
     <group name="default">
       <control action="mute" digits="0"/>
@@ -21,7 +21,7 @@
       <control action="vol listen up" digits="6"/>
       <control action="vol listen zero" digits="5"/>
       <control action="vol listen dn" digits="4"/>
-      <control action="hangup" digits="#"/>
+      <!--control action="hangup" digits="#"/ -->
     </group>
   </caller-controls>
 
@@ -29,6 +29,13 @@
   <profiles>
     <!--If no profile is specified it will default to "default"-->
     <profile name="default">
+      <!-- Directory to drop CDR's
+           'auto' means $PREFIX/logs/conference_cdr/<confernece_uuid>.cdr.xml
+           a non-absolute path means $PREFIX/logs/<value>/<confernece_uuid>.cdr.xml
+           absolute path means <value>/<confernece_uuid>.cdr.xml
+      -->
+      <!-- <param name="cdr-log-dir" value="auto"/> -->
+
       <!-- Domain (for presence) -->
       <param name="domain" value="$${domain}"/>
       <!-- Sample Rate-->
@@ -36,28 +43,31 @@
       <!-- Number of milliseconds per frame -->
       <param name="interval" value="20"/>
       <!-- Energy level required for audio to be sent to the other users -->
-      <param name="energy-level" value="300"/>
+      <param name="energy-level" value="100"/>
 
       <!--Can be | delim of waste|mute|deaf|dist-dtmf waste will always transmit data to each channel
           even during silence.  dist-dtmf propagates dtmfs to all other members, but channel controls
-	  via dtmf will be disabled. -->
-      <param name="member-flags" value="nomoh"/>
+          via dtmf will be disabled. -->
+      <!-- <param name="member-flags" value="waste"/> -->
 
       <!-- Name of the caller control group to use for this profile -->
       <!-- <param name="caller-controls" value="some name"/> -->
+      <!-- Name of the caller control group to use for the moderator in this profile -->
+      <!-- <param name="moderator-controls" value="some name"/> -->
       <!-- TTS Engine to use -->
-      <!--<param name="tts-engine" value="cepstral"/>-->
+      <!-- <param name="tts-engine" value="cepstral"/> -->
       <!-- TTS Voice to use -->
-      <!--<param name="tts-voice" value="david"/>-->
+      <!-- <param name="tts-voice" value="david"/> -->
 
       <!-- If TTS is enabled all audio-file params beginning with -->
       <!-- 'say:' will be considered text to say with TTS -->
-      <!-- Set a default path here so you can use relative paths in the other sound params-->
-      <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>
+      <!-- Override the default path here, after which you use relative paths in the other sound params -->
+      <!-- Note: The default path is the conference's first caller's sound_prefix -->
+      <!-- <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/> -->
       <!-- File to play to acknowledge succees -->
-      <!--<param name="ack-sound" value="beep.wav"/>-->
+      <!-- <param name="ack-sound" value="beep.wav"/> -->
       <!-- File to play to acknowledge failure -->
-      <!--<param name="nack-sound" value="beeperr.wav"/>-->
+      <!-- <param name="nack-sound" value="beeperr.wav"/> -->
       <!-- File to play to acknowledge muted -->
       <param name="muted-sound" value="conference/conf-muted.wav"/>
       <!-- File to play to acknowledge unmuted -->
@@ -65,14 +75,14 @@
       <!-- File to play if you are alone in the conference -->
       <param name="alone-sound" value="conference/conf-alone.wav"/>
       <!-- File to play endlessly (nobody will ever be able to talk) -->
-      <!--<param name="perpetual-sound" value="perpetual.wav"/>-->
+      <!-- <param name="perpetual-sound" value="perpetual.wav"/> -->
       <!-- File to play when you're alone (music on hold)-->
       <param name="moh-sound" value="$${hold_music}"/>
       <!-- File to play when you join the conference -->
       <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
       <!-- File to play when you leave the conference -->
       <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
-      <!-- File to play when you ae ejected from the conference -->
+      <!-- File to play when you are ejected from the conference -->
       <param name="kicked-sound" value="conference/conf-kicked.wav"/>
       <!-- File to play when the conference is locked -->
       <param name="locked-sound" value="conference/conf-locked.wav"/>
@@ -85,7 +95,10 @@
       <!-- File to play to when the pin is invalid -->
       <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
       <!-- Conference pin -->
-      <!--<param name="pin" value="12345"/>-->
+      <!-- <param name="pin" value="12345"/> -->
+      <!-- <param name="moderator-pin" value="54321"/> -->
+      <!-- Max number of times the user can be prompted for PIN -->
+      <!-- <param name="pin-retries" value="3"/> -->
       <!-- Default Caller ID Name for outbound calls -->
       <param name="caller-id-name" value="$${outbound_caller_name}"/>
       <!-- Default Caller ID Number for outbound calls -->
@@ -99,15 +112,28 @@
       <!--
       <param name="auto-record" value="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
       -->
+
+      <!-- IVR digit machine timeouts -->
+      <!-- How much to wait between DTMF digits to match caller-controls -->
+      <!-- <param name="ivr-dtmf-timeout" value="500"/> -->
+      <!-- How much to wait for the first DTMF, 0 forever -->
+      <!-- <param name="ivr-input-timeout" value="0" /> -->
+      <!-- Delay before a conference is asked to be terminated -->
+      <!-- <param name="endconf-grace-time" value="120" /> -->
+      <!-- Can be | delim of wait-mod|audio-always|video-bridge|video-floor-only
+           wait_mod will wait until the moderator in,
+           audio-always will always mix audio from all members regardless they are talking or not -->
+      <!-- <param name="conference-flags" value="audio-always"/> -->
+      <!-- Allow live array sync for Verto -->
+      <!-- <param name="conference-flags" value="livearray-sync"/> -->
     </profile>
 
     <profile name="wideband">
       <param name="domain" value="$${domain}"/>
       <param name="rate" value="16000"/>
       <param name="interval" value="20"/>
-      <param name="energy-level" value="50"/>
-      <param name="member-flags" value="waste"/>
-      <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>
+      <param name="energy-level" value="100"/>
+      <!-- <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/> -->
       <param name="muted-sound" value="conference/conf-muted.wav"/>
       <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
       <param name="alone-sound" value="conference/conf-alone.wav"/>
@@ -123,17 +149,16 @@
       <param name="caller-id-name" value="$${outbound_caller_name}"/>
       <param name="caller-id-number" value="$${outbound_caller_id}"/>
       <param name="comfort-noise" value="true"/>
-      <param name="min-required-recording-participants" value="1"/>
-      <!--<param name="tts-engine" value="flite"/>-->
-      <!--<param name="tts-voice" value="kal16"/>-->
+      <!-- <param name="tts-engine" value="flite"/> -->
+      <!-- <param name="tts-voice" value="kal16"/> -->
     </profile>
 
     <profile name="ultrawideband">
       <param name="domain" value="$${domain}"/>
       <param name="rate" value="32000"/>
       <param name="interval" value="20"/>
-      <param name="energy-level" value="300"/>
-      <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>
+      <param name="energy-level" value="100"/>
+      <!-- <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/> -->
       <param name="muted-sound" value="conference/conf-muted.wav"/>
       <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
       <param name="alone-sound" value="conference/conf-alone.wav"/>
@@ -149,23 +174,39 @@
       <param name="caller-id-name" value="$${outbound_caller_name}"/>
       <param name="caller-id-number" value="$${outbound_caller_id}"/>
       <param name="comfort-noise" value="true"/>
-      <!--<param name="tts-engine" value="flite"/>-->
-      <!--<param name="tts-voice" value="kal16"/>-->
+
+      <!-- <param name="conference-flags" value="video-floor-only|rfc-4579|livearray-sync|auto-3d-position|transcode-video|minimize-video-encoding"/> -->
+
+      <!-- <param name="video-mode" value="mux"/> -->
+      <!-- <param name="video-layout-name" value="3x3"/> -->
+      <!-- <param name="video-layout-name" value="group:grid"/> -->
+      <!-- <param name="video-canvas-size" value="1280x720"/> -->
+      <!-- <param name="video-canvas-bgcolor" value="#333333"/> -->
+      <!-- <param name="video-layout-bgcolor" value="#000000"/> -->
+      <!-- <param name="video-codec-bandwidth" value="2mb"/> -->
+      <!-- <param name="video-fps" value="15"/> -->
+      <!-- <param name="video-auto-floor-msec" value="100"/> -->
+
+
+      <!-- <param name="tts-engine" value="flite"/> -->
+      <!-- <param name="tts-voice" value="kal16"/> -->
     </profile>
 
     <profile name="cdquality">
       <param name="domain" value="$${domain}"/>
       <param name="rate" value="48000"/>
-      <param name="interval" value="10"/>
-      <param name="energy-level" value="300"/>
-      <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>
+      <param name="interval" value="20"/>
+      <param name="energy-level" value="100"/>
+      <!-- <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/> -->
       <param name="muted-sound" value="conference/conf-muted.wav"/>
       <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
       <param name="alone-sound" value="conference/conf-alone.wav"/>
+<!--
       <param name="moh-sound" value="$${hold_music}"/>
       <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
       <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
       <param name="kicked-sound" value="conference/conf-kicked.wav"/>
+-->
       <param name="locked-sound" value="conference/conf-locked.wav"/>
       <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
       <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
@@ -173,9 +214,57 @@
       <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
       <param name="caller-id-name" value="$${outbound_caller_name}"/>
       <param name="caller-id-number" value="$${outbound_caller_id}"/>
-      <param name="comfort-noise" value="true"/>
+      <!-- param name="comfort-noise" value="true"/ -->
+      <param name="comfort-noise" value="1400"/>
+
+      <!-- <param name="conference-flags" value="video-floor-only|rfc-4579|livearray-sync|auto-3d-position|minimize-video-encoding"/> -->
+
+      <!-- <param name="video-mode" value="mux"/> -->
+      <!-- <param name="video-layout-name" value="3x3"/> -->
+      <!-- <param name="video-layout-name" value="group:grid"/> -->
+      <!-- <param name="video-canvas-size" value="1920x1080"/> -->
+      <!-- <param name="video-canvas-bgcolor" value="#333333"/> -->
+      <!-- <param name="video-layout-bgcolor" value="#000000"/> -->
+      <!-- <param name="video-codec-bandwidth" value="2mb"/> -->
+      <!-- <param name="video-fps" value="15"/> -->
+
     </profile>
 
+    <profile name="video-mcu-stereo">
+      <param name="domain" value="$${domain}"/>
+      <param name="rate" value="48000"/>
+      <param name="channels" value="2"/>
+      <param name="interval" value="20"/>
+      <param name="energy-level" value="100"/>
+      <!-- <param name="tts-engine" value="flite"/> -->
+      <!-- <param name="tts-voice" value="kal16"/> -->
+      <param name="muted-sound" value="conference/conf-muted.wav"/>
+      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
+      <param name="alone-sound" value="conference/conf-alone.wav"/>
+      <param name="moh-sound" value="local_stream://stereo"/>
+      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
+      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
+      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
+      <param name="locked-sound" value="conference/conf-locked.wav"/>
+      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
+      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
+      <param name="pin-sound" value="conference/conf-pin.wav"/>
+      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
+      <param name="caller-id-name" value="$${outbound_caller_name}"/>
+      <param name="caller-id-number" value="$${outbound_caller_id}"/>
+      <param name="comfort-noise" value="false"/>
+      <param name="conference-flags" value="video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding"/>
+      <param name="video-mode" value="mux"/>
+      <param name="video-layout-name" value="3x3"/>
+      <param name="video-layout-name" value="group:grid"/>
+      <param name="video-canvas-size" value="1920x1080"/>
+      <param name="video-canvas-bgcolor" value="#333333"/>
+      <param name="video-layout-bgcolor" value="#000000"/>
+      <param name="video-codec-bandwidth" value="1mb"/>
+      <param name="video-fps" value="15"/>
+    </profile>
+
+
     <profile name="sla">
       <param name="domain" value="$${domain}"/>
       <param name="rate" value="16000"/>
@@ -185,6 +274,6 @@
       <param name="moh-sound" value="silence"/>
       <param name="comfort-noise" value="true"/>
     </profile>
-
   </profiles>
 </configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference_layouts.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference_layouts.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4dc974a1e93cf6bbe5f51c29641c9e65400b2f1b
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/conference_layouts.conf.xml
@@ -0,0 +1,393 @@
+<configuration name="conference_layouts.conf" description="Audio Conference">
+  <layout-settings>
+    <layouts>
+      <layout name="1x1">
+	<image x="0" y="0" scale="360" floor="true"/>
+      </layout>
+      <layout name="1x2" auto-3d-position="true">
+	<image x="90" y="0" scale="180"/>
+	<image x="90" y="180" scale="180"/>
+      </layout>
+      <layout name="2x1" auto-3d-position="true">
+	<image x="0" y="90" scale="180"/>
+	<image x="180" y="90" scale="180"/>
+      </layout>
+
+      <layout name="2x1-zoom" auto-3d-position="true">
+	<image x="0" y="0" scale="180" hscale="360" zoom="true"/>
+	<image x="180" y="0" scale="180" hscale="360" zoom="true"/>
+      </layout>
+      <layout name="3x1-zoom" auto-3d-position="true">
+	<image x="0" y="0" scale="120" hscale="360" zoom="true"/>
+	<image x="120" y="0" scale="120" hscale="360" zoom="true"/>
+	<image x="240" y="0" scale="120" hscale="360" zoom="true"/>
+      </layout>
+      <layout name="5-grid-zoom" auto-3d-position="true">
+	<image x="0" y="0" scale="180"/>
+	<image x="180" y="0" scale="180"/>
+	<image x="0" y="180" scale="120" hscale="180" zoom="true"/>
+	<image x="120" y="180" scale="120" hscale="180" zoom="true"/>
+	<image x="240" y="180" scale="120" hscale="180" zoom="true"/>
+      </layout>
+      <layout name="3x2-zoom" auto-3d-position="true">
+	<image x="0" y="0" scale="120" hscale="180" zoom="true"/>
+	<image x="120" y="0" scale="120" hscale="180" zoom="true"/>
+	<image x="240" y="0" scale="120" hscale="180" zoom="true"/>
+	<image x="0" y="180" scale="120" hscale="180" zoom="true"/>
+	<image x="120" y="180" scale="120" hscale="180" zoom="true"/>
+	<image x="240" y="180" scale="120" hscale="180" zoom="true"/>
+      </layout>
+      <layout name="7-grid-zoom" auto-3d-position="true">
+	<image x="0" y="0" scale="120" hscale="180" zoom="true"/>
+	<image x="120" y="0" scale="120" hscale="180" zoom="true"/>
+	<image x="240" y="0" scale="120" hscale="180" zoom="true"/>
+	<image x="0" y="180" scale="90" hscale="180" zoom="true"/>
+	<image x="90" y="180" scale="90" hscale="180" zoom="true"/>
+	<image x="180" y="180" scale="90" hscale="180" zoom="true"/>
+	<image x="270" y="180" scale="90" hscale="180" zoom="true"/>
+      </layout>
+      <layout name="4x2-zoom" auto-3d-position="true">
+	<image x="0" y="0" scale="90" hscale="180" zoom="true"/>
+	<image x="90" y="0" scale="90" hscale="180" zoom="true"/>
+	<image x="180" y="0" scale="90" hscale="180" zoom="true"/>
+	<image x="270" y="0" scale="90" hscale="180" zoom="true"/>
+	<image x="0" y="180" scale="90" hscale="180" zoom="true"/>
+	<image x="90" y="180" scale="90" hscale="180" zoom="true"/>
+	<image x="180" y="180" scale="90" hscale="180" zoom="true"/>
+	<image x="270" y="180" scale="90" hscale="180" zoom="true"/>
+      </layout>
+      <layout name="1x1+2x1" auto-3d-position="true">
+	<image x="90" y="0" scale="180"/>
+	<image x="0" y="180" scale="180"/>
+	<image x="180" y="180" scale="180"/>
+      </layout>
+      <layout name="2x2" auto-3d-position="true">
+	<image x="0" y="0" scale="180"/>
+	<image x="180" y="0" scale="180"/>
+	<image x="0" y="180" scale="180"/>
+	<image x="180" y="180" scale="180"/>
+      </layout>
+      <layout name="3x3" auto-3d-position="true">
+	<image x="0" y="0" scale="120"/>
+	<image x="120" y="0" scale="120"/>
+	<image x="240" y="0" scale="120"/>
+	<image x="0" y="120" scale="120"/>
+	<image x="120" y="120" scale="120"/>
+	<image x="240" y="120" scale="120"/>
+	<image x="0" y="240" scale="120"/>
+	<image x="120" y="240" scale="120"/>
+	<image x="240" y="240" scale="120"/>
+      </layout>
+      <layout name="4x4" auto-3d-position="true">
+	<image x="0" y="0" scale="90"/>
+	<image x="90" y="0" scale="90"/>
+	<image x="180" y="0" scale="90"/>
+	<image x="270" y="0" scale="90"/>
+	<image x="0" y="90" scale="90"/>
+	<image x="90" y="90" scale="90"/>
+	<image x="180" y="90" scale="90"/>
+	<image x="270" y="90" scale="90"/>
+	<image x="0" y="180" scale="90"/>
+	<image x="90" y="180" scale="90"/>
+	<image x="180" y="180" scale="90"/>
+	<image x="270" y="180" scale="90"/>
+	<image x="0" y="270" scale="90"/>
+	<image x="90" y="270" scale="90"/>
+	<image x="180" y="270" scale="90"/>
+	<image x="270" y="270" scale="90"/>
+      </layout>
+      <layout name="5x5" auto-3d-position="true">
+	<image x="0" y="0" scale="72"/>
+	<image x="72" y="0" scale="72"/>
+	<image x="144" y="0" scale="72"/>
+	<image x="216" y="0" scale="72"/>
+	<image x="288" y="0" scale="72"/>
+	<image x="0" y="72" scale="72"/>
+	<image x="72" y="72" scale="72"/>
+	<image x="144" y="72" scale="72"/>
+	<image x="216" y="72" scale="72"/>
+	<image x="288" y="72" scale="72"/>
+	<image x="0" y="144" scale="72"/>
+	<image x="72" y="144" scale="72"/>
+	<image x="144" y="144" scale="72"/>
+	<image x="216" y="144" scale="72"/>
+	<image x="288" y="144" scale="72"/>
+	<image x="0" y="216" scale="72"/>
+	<image x="72" y="216" scale="72"/>
+	<image x="144" y="216" scale="72"/>
+	<image x="216" y="216" scale="72"/>
+	<image x="288" y="216" scale="72"/>
+	<image x="0" y="288" scale="72"/>
+	<image x="72" y="288" scale="72"/>
+	<image x="144" y="288" scale="72"/>
+	<image x="216" y="288" scale="72"/>
+	<image x="288" y="288" scale="72"/>
+      </layout>
+      <layout name="6x6" auto-3d-position="true">
+	<image x="0" y="0" scale="60"/>
+	<image x="60" y="0" scale="60"/>
+	<image x="120" y="0" scale="60"/>
+	<image x="180" y="0" scale="60"/>
+	<image x="240" y="0" scale="60"/>
+	<image x="300" y="0" scale="60"/>
+	<image x="0" y="60" scale="60"/>
+	<image x="60" y="60" scale="60"/>
+	<image x="120" y="60" scale="60"/>
+	<image x="180" y="60" scale="60"/>
+	<image x="240" y="60" scale="60"/>
+	<image x="300" y="60" scale="60"/>
+	<image x="0" y="120" scale="60"/>
+	<image x="60" y="120" scale="60"/>
+	<image x="120" y="120" scale="60"/>
+	<image x="180" y="120" scale="60"/>
+	<image x="240" y="120" scale="60"/>
+	<image x="300" y="120" scale="60"/>
+	<image x="0" y="180" scale="60"/>
+	<image x="60" y="180" scale="60"/>
+	<image x="120" y="180" scale="60"/>
+	<image x="180" y="180" scale="60"/>
+	<image x="240" y="180" scale="60"/>
+	<image x="300" y="180" scale="60"/>
+	<image x="0" y="240" scale="60"/>
+	<image x="60" y="240" scale="60"/>
+	<image x="120" y="240" scale="60"/>
+	<image x="180" y="240" scale="60"/>
+	<image x="240" y="240" scale="60"/>
+	<image x="300" y="240" scale="60"/>
+	<image x="0" y="300" scale="60"/>
+	<image x="60" y="300" scale="60"/>
+	<image x="120" y="300" scale="60"/>
+	<image x="180" y="300" scale="60"/>
+	<image x="240" y="300" scale="60"/>
+	<image x="300" y="300" scale="60"/>
+      </layout>
+      <layout name="8x8" auto-3d-position="true">
+	<image x="0" y="0" scale="45"/>
+	<image x="45" y="0" scale="45"/>
+	<image x="90" y="0" scale="45"/>
+	<image x="135" y="0" scale="45"/>
+	<image x="180" y="0" scale="45"/>
+	<image x="225" y="0" scale="45"/>
+	<image x="270" y="0" scale="45"/>
+	<image x="315" y="0" scale="45"/>
+	<image x="0" y="45" scale="45"/>
+	<image x="45" y="45" scale="45"/>
+	<image x="90" y="45" scale="45"/>
+	<image x="135" y="45" scale="45"/>
+	<image x="180" y="45" scale="45"/>
+	<image x="225" y="45" scale="45"/>
+	<image x="270" y="45" scale="45"/>
+	<image x="315" y="45" scale="45"/>
+	<image x="0" y="90" scale="45"/>
+	<image x="45" y="90" scale="45"/>
+	<image x="90" y="90" scale="45"/>
+	<image x="135" y="90" scale="45"/>
+	<image x="180" y="90" scale="45"/>
+	<image x="225" y="90" scale="45"/>
+	<image x="270" y="90" scale="45"/>
+	<image x="315" y="90" scale="45"/>
+	<image x="0" y="135" scale="45"/>
+	<image x="45" y="135" scale="45"/>
+	<image x="90" y="135" scale="45"/>
+	<image x="135" y="135" scale="45"/>
+	<image x="180" y="135" scale="45"/>
+	<image x="225" y="135" scale="45"/>
+	<image x="270" y="135" scale="45"/>
+	<image x="315" y="135" scale="45"/>
+	<image x="0" y="180" scale="45"/>
+	<image x="45" y="180" scale="45"/>
+	<image x="90" y="180" scale="45"/>
+	<image x="135" y="180" scale="45"/>
+	<image x="180" y="180" scale="45"/>
+	<image x="225" y="180" scale="45"/>
+	<image x="270" y="180" scale="45"/>
+	<image x="315" y="180" scale="45"/>
+	<image x="0" y="225" scale="45"/>
+	<image x="45" y="225" scale="45"/>
+	<image x="90" y="225" scale="45"/>
+	<image x="135" y="225" scale="45"/>
+	<image x="180" y="225" scale="45"/>
+	<image x="225" y="225" scale="45"/>
+	<image x="270" y="225" scale="45"/>
+	<image x="315" y="225" scale="45"/>
+	<image x="0" y="270" scale="45"/>
+	<image x="45" y="270" scale="45"/>
+	<image x="90" y="270" scale="45"/>
+	<image x="135" y="270" scale="45"/>
+	<image x="180" y="270" scale="45"/>
+	<image x="225" y="270" scale="45"/>
+	<image x="270" y="270" scale="45"/>
+	<image x="315" y="270" scale="45"/>
+	<image x="0" y="315" scale="45"/>
+	<image x="45" y="315" scale="45"/>
+	<image x="90" y="315" scale="45"/>
+	<image x="135" y="315" scale="45"/>
+	<image x="180" y="315" scale="45"/>
+	<image x="225" y="315" scale="45"/>
+	<image x="270" y="315" scale="45"/>
+	<image x="315" y="315" scale="45"/>
+      </layout>
+      <layout name="1up_top_left+5" auto-3d-position="true">
+	<image x="0" y="0" scale="240" floor="true"/>
+	<image x="240" y="0" scale="120"/>
+	<image x="240" y="120" scale="120"/>
+	<image x="0" y="240" scale="120"/>
+	<image x="120" y="240" scale="120"/>
+	<image x="240" y="240" scale="120"/>
+      </layout>
+      <layout name="1up_top_left+7" auto-3d-position="true">
+	<image x="0" y="0" scale="270" floor="true"/>
+	<image x="270" y="0" scale="90"/>
+	<image x="270" y="90" scale="90"/>
+	<image x="270" y="180" scale="90"/>
+	<image x="0" y="270" scale="90"/>
+	<image x="90" y="270" scale="90"/>
+	<image x="180" y="270" scale="90"/>
+	<image x="270" y="270" scale="90"/>
+      </layout>
+      <layout name="1up_top_left+9" auto-3d-position="true">
+	<image x="0" y="0" scale="288" floor="true"/>
+	<image x="288" y="0" scale="72"/>
+	<image x="288" y="72" scale="72"/>
+	<image x="288" y="144" scale="72"/>
+	<image x="288" y="216" scale="72"/>
+	<image x="0" y="288" scale="72"/>
+	<image x="72" y="288" scale="72"/>
+	<image x="144" y="288" scale="72"/>
+	<image x="216" y="288" scale="72"/>
+	<image x="288" y="288" scale="72"/>
+      </layout>
+      <layout name="2up_top+8" auto-3d-position="true">
+	<image x="0" y="0" scale="180" floor="true"/>
+	<image x="180" y="0" scale="180" reservation_id="secondary"/>
+	<image x="0" y="180" scale="90"/>
+	<image x="90" y="180" scale="90"/>
+	<image x="180" y="180" scale="90"/>
+	<image x="270" y="180" scale="90"/>
+	<image x="0" y="270" scale="90"/>
+	<image x="90" y="270" scale="90"/>
+	<image x="180" y="270" scale="90"/>
+	<image x="270" y="270" scale="90"/>
+      </layout>
+      <layout name="2up_middle+8" auto-3d-position="true">
+	<image x="0" y="90" scale="180" floor="true"/>
+	<image x="180" y="90" scale="180" reservation_id="secondary"/>
+	<image x="0" y="0" scale="90"/>
+	<image x="90" y="0" scale="90"/>
+	<image x="180" y="0" scale="90"/>
+	<image x="270" y="0" scale="90"/>
+	<image x="0" y="270" scale="90"/>
+	<image x="90" y="270" scale="90"/>
+	<image x="180" y="270" scale="90"/>
+	<image x="270" y="270" scale="90"/>
+      </layout>
+      <layout name="2up_bottom+8" auto-3d-position="true">
+	<image x="0" y="180" scale="180" floor="true"/>
+	<image x="180" y="180" scale="180" reservation_id="secondary"/>
+	<image x="0" y="0" scale="90"/>
+	<image x="90" y="0" scale="90"/>
+	<image x="180" y="0" scale="90"/>
+	<image x="270" y="0" scale="90"/>
+	<image x="0" y="90" scale="90"/>
+	<image x="90" y="90" scale="90"/>
+	<image x="180" y="90" scale="90"/>
+	<image x="270" y="90" scale="90"/>
+      </layout>
+      <layout name="3up+4" auto-3d-position="true">
+	<image x="0" y="0" scale="180" floor="true"/>
+	<image x="180" y="0" scale="180" reservation_id="secondary"/>
+	<image x="0" y="180" scale="180" reservation_id="third"/>
+	<image x="180" y="180" scale="90"/>
+	<image x="270" y="180" scale="90"/>
+	<image x="180" y="270" scale="90"/>
+	<image x="270" y="270" scale="90"/>
+      </layout>
+      <layout name="3up+9" auto-3d-position="true">
+	<image x="0" y="0" scale="180" floor="true"/>
+	<image x="180" y="0" scale="180" reservation_id="secondary"/>
+	<image x="0" y="180" scale="180" reservation_id="third"/>
+	<image x="180" y="180" scale="60"/>
+	<image x="240" y="180" scale="60"/>
+	<image x="300" y="180" scale="60"/>
+	<image x="180" y="240" scale="60"/>
+	<image x="240" y="240" scale="60"/>
+	<image x="300" y="240" scale="60"/>
+	<image x="180" y="300" scale="60"/>
+	<image x="240" y="300" scale="60"/>
+	<image x="300" y="300" scale="60"/>
+      </layout>
+      <layout name="2x1-presenter-zoom" auto-3d-position="true">
+	<image x="0" y="0" scale="180" hscale="360" zoom="true" floor="true"/>
+	<image x="180" y="0" scale="180" hscale="360" zoom="true" reservation_id="presenter"/>
+      </layout>
+      <layout name="presenter-dual-vertical">
+	<image x="90" y="0" scale="180" floor-only="true"/>
+	<image x="90" y="180" scale="180" reservation_id="presenter"/>
+      </layout>
+      <layout name="presenter-dual-horizontal">
+	<image x="0" y="90" scale="180" floor-only="true"/>
+	<image x="180" y="90" scale="180" reservation_id="presenter"/>
+      </layout>
+      <layout name="presenter-overlap-small-top-right">
+	<image x="0" y="0" scale="360" floor-only="true"/>
+	<image x="300" y="0" scale="60" overlap="true" reservation_id="presenter"/>
+      </layout>
+      <layout name="presenter-overlap-small-bot-right">
+	<image x="0" y="0" scale="360" floor-only="true"/>
+	<image x="300" y="300" scale="60" overlap="true" reservation_id="presenter"/>
+      </layout>
+      <layout name="presenter-overlap-large-top-right">
+	<image x="0" y="0" scale="360" floor-only="true"/>
+	<image x="180" y="0" scale="180" overlap="true" reservation_id="presenter"/>
+      </layout>
+      <layout name="presenter-overlap-large-bot-right">
+	<image x="0" y="0" scale="360" floor-only="true"/>
+	<image x="180" y="180" scale="180" overlap="true" reservation_id="presenter"/>
+      </layout>
+      <layout name="overlaps" auto-3d-position="true">
+	<image x="0" y="0" scale="360" floor-only="true"/>
+	<image x="300" y="300" scale="60" overlap="true"/>
+	<image x="240" y="300" scale="60" overlap="true"/>
+	<image x="180" y="300" scale="60" overlap="true"/>
+	<image x="120" y="300" scale="60" overlap="true"/>
+	<image x="60" y="300" scale="60" overlap="true"/>
+	<image x="0" y="300" scale="60" overlap="true"/>
+      </layout>
+      
+
+    </layouts>
+    <groups>
+      <group name="grid">
+	<layout>1x1</layout>
+	<layout>2x1</layout>
+	<layout>1x1+2x1</layout>
+	<layout>2x2</layout>
+	<layout>3x3</layout>
+	<layout>4x4</layout>
+	<layout>5x5</layout>
+	<layout>6x6</layout>
+	<layout>8x8</layout>
+      </group>
+      <group name="grid-zoom">
+	<layout>1x1</layout>
+	<layout>2x1-zoom</layout>
+	<layout>3x1-zoom</layout>
+	<layout>2x2</layout>
+	<layout>5-grid-zoom</layout>
+	<layout>3x2-zoom</layout>
+	<layout>7-grid-zoom</layout>
+	<layout>4x2-zoom</layout>
+	<layout>3x3</layout>
+      </group>
+      <group name="1up_top_left_plus">
+	<layout>1up_top_left+5</layout>
+	<layout>1up_top_left+7</layout>
+	<layout>1up_top_left+9</layout>
+      </group>
+      <group name="3up_plus">
+	<layout>3up+4</layout>
+	<layout>3up+9</layout>
+      </group>
+    </groups>
+  </layout-settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/console.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/console.conf.xml
index 95d42e4ec01b1c5ebc5029de00dc7159bd90c5ba..6c2b82812a77a60d35d45edeaf72f871b2176ab3 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/console.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/console.conf.xml
@@ -31,20 +31,18 @@
         <map name="mod_sndfile.c" value="warning,info,debug"/>
      -->
     <map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
-    <map name="sofia.c"                     value="notice"/>
-    <map name="switch_core_state_machine.c" value="notice"/>      
     
     <!--
       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.
+      messages for freetdm, 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="mod_freetdm"                 value="all"/>
     <map name="sofia.c"                     value="notice"/>
     <map name="switch_core_state_machine.c" value="all"/>      
     
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/curl.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/curl.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eff3c6b9ac85cc2512d9d614757f0e6f0e714e0c
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/curl.conf.xml
@@ -0,0 +1,5 @@
+<configuration name="curl.conf" description="cURL module">
+  <settings>
+    <param name="max-bytes" value="64000"/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/db.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/db.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..abc6c0c152e9c50c7846d28f8413925babf4f6f1
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/db.conf.xml
@@ -0,0 +1,5 @@
+<configuration name="db.conf" description="LIMIT DB Configuration">
+  <settings>
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/dialplan_directory.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/dialplan_directory.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e4edcd6b153e7ea449389c9ab01a34dc716bfdd9
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/dialplan_directory.conf.xml
@@ -0,0 +1,9 @@
+<configuration name="dialplan_directory.conf" description="Dialplan Directory">
+  <settings>
+    <param name="directory-name" value="ldap"/>
+    <param name="host" value="ldap.freeswitch.org"/>
+    <param name="dn" value="cn=Manager,dc=freeswitch,dc=org"/>
+    <param name="pass" value="test"/>
+    <param name="base" value="dc=freeswitch,dc=org"/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/dingaling.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/dingaling.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dd6c9a5da1aae1557e7bacf9b3430217a70e5522
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/dingaling.conf.xml
@@ -0,0 +1,9 @@
+<configuration name="dingaling.conf" description="XMPP Jingle Endpoint">
+  <settings>
+    <param name="debug" value="0"/>
+    <param name="codec-prefs" value="H264,PCMU"/>
+  </settings>
+
+  <X-PRE-PROCESS cmd="include" data="../jingle_profiles/*.xml"/>
+
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/directory.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/directory.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..748b2337c479e9277e4f57b056de1f3bd2352b17
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/directory.conf.xml
@@ -0,0 +1,21 @@
+<configuration name="directory.conf" description="Directory">
+  <settings>
+      <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+      <!--<param name="dbname" value="directory"/>-->
+  </settings>
+  <profiles>
+    <profile name="default">
+      <param name="max-menu-attempts" value="3"/>
+      <param name="min-search-digits" value="3"/>
+      <param name="terminator-key" value="#"/>
+      <param name="digit-timeout" value="3000"/>
+      <param name="max-result" value="5"/>
+      <param name="next-key" value="6"/>
+      <param name="prev-key" value="4"/>
+      <param name="switch-order-key" value="*"/>
+      <param name="select-name-key" value="1"/>
+      <param name="new-search-key" value="3"/>
+      <param name="search-order" value="last_name"/>
+    </profile>
+  </profiles>
+</configuration> 
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/distributor.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/distributor.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..99a4c9d942e89bef6c497640f445af2065bcebb5
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/distributor.conf.xml
@@ -0,0 +1,10 @@
+<configuration name="distributor.conf" description="Distributor Configuration">
+  <lists>
+    <!-- every 10 calls to test you will get foo1 once and foo2 9 times...yes NINE TIMES! -->
+    <!-- this is not the same as 100 with 10 and 90 that would do foo1 10 times in a row then foo2 90 times in a row -->
+    <list name="test">
+      <node name="foo1" weight="1"/>
+      <node name="foo2" weight="9"/>
+    </list>
+  </lists>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/easyroute.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/easyroute.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..350a50989b0443cf9d60eb7eefba28788b746a62
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/easyroute.conf.xml
@@ -0,0 +1,28 @@
+<configuration name="easyroute.conf" description="EasyRoute Module">
+  <settings>
+    <!-- These are kind Obvious -->
+    <param name="db-username" value="root"/>
+    <param name="db-password" value="password"/>
+    <param name="db-dsn" value="easyroute"/>
+
+    <!-- Default Technology and profile -->
+    <param name="default-techprofile" value="sofia/default"/>
+    
+    <!-- IP or Hostname of Default Route -->
+    <param name="default-gateway" value="192.168.66.6"/>
+
+    <!-- Number of times to retry ODBC connection on connection problems, default is 120 -->
+    <param name="odbc-retries" value="120"/>
+
+    <!-- Customer Query. Use this with Care!!! We are not responsible if you mess
+         This up!!! Query *MUST* return columns in the following order!
+	 gateway varchar(128) - contains destination gateway host:port pair (ex: 192.168.1.1:5060 )
+	 group varchar(128) - contains optional group name
+	 call_limit varchar(16) - contains optional call limit
+	 tech_prefix varchar(128) - tech prefix used to build dial string (ex: sofia/default )
+	 acctcode varchar(128) - used to set channel variable acctcode for logging into the CDRs
+	 destination_number varchar(16) - Number returning for the query for building the dial string. (ex: 18005551212) 
+	 See Documentation on the Wiki for further information -->
+    <!-- <param name="custom-query" value="call  FS_GET_SIP_LOCATION(%s);"/> -->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/enum.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/enum.conf.xml
index 0304d0dacd4fd9eda9e6d9afcfe4c14f5f59ed63..a8f6f52f851227e1b51a624bda669cea51d190f5 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/enum.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/enum.conf.xml
@@ -2,12 +2,20 @@
   <settings>
     <param name="default-root" value="e164.org"/>
     <param name="default-isn-root" value="freenum.org"/>
-    <param name="query-timeout" value="10"/>
     <param name="auto-reload" value="true"/>
+
+    <param name="query-timeout-ms" value="200"/>
+    <param name="query-timeout-retry" value="2"/>
+    <param name="random-nameserver" value="false"/>
+
+    <!-- If you have specific (non-recursive) servers for your enum queries, specify them here ( up to 10 ) -->
+    <!-- <param name="nameserver" value="x.x.x.x"/> -->
+    <!-- <param name="nameserver" value="y.y.y.y"/> -->
   </settings>
 
   <routes>
-    <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/${use_profile}/$1"/>
-    <!--<route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/$${xmpp_server_profile}/$1"/>-->
+    <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=udp|sofia/${use_profile}/$1;transport=udp"/>
+    <route service="E2T+SIP" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=tcp|sofia/${use_profile}/$1;transport=tcp"/>
+    <route service="E2T+SIPS" regex="sip:(.*)" replace="sofia/${use_profile}-ipv6/$1;transport=tls|sofia/${use_profile}/$1;transport=tls"/>
   </routes>
 </configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/erlang_event.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/erlang_event.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7f627668efcdcc610ab711c526a9351dfdecb052
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/erlang_event.conf.xml
@@ -0,0 +1,23 @@
+<configuration name="erlang_event.conf" description="Erlang Socket Client">
+  <settings>
+    <param name="listen-ip" value="0.0.0.0"/>
+    <param name="listen-port" value="8031"/>
+    <!-- Specify the first part of the node name
+         (the host part after the @ will be autodetected)
+         OR pass a complete nodename to avoid autodetection
+         eg. freeswitch@example or freeswitch@example.com.
+         If you pass a complete node name, the 'shortname' parameter has no effect. -->
+    <param name="nodename" value="freeswitch"/>
+    <!-- Specify this OR 'cookie-file' or $HOME/.erlang.cookie will be read -->
+    <param name="cookie" value="ClueCon"/>
+    <!-- Read a cookie from an arbitary erlang cookie file instead -->
+    <!--<param name="cookie-file" value="/$${temp_dir}/erlang.cookie"/>-->
+    <param name="shortname" value="true"/>
+    <!-- in additon to cookie, optionally restrict by ACL -->
+    <!--<param name="apply-inbound-acl" value="lan"/>-->
+    <!-- alternative is "binary" -->
+    <!--<param name="encoding" value="string"/>--> 
+    <!-- provide compatability with previous OTP release (use with care) -->
+    <!--<param name="compat-rel" value="12"/> -->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_multicast.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_multicast.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eac039260784d648e56a45ced76a4711b8137ee0
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_multicast.conf.xml
@@ -0,0 +1,14 @@
+<configuration name="event_multicast.conf" description="Multicast Event">
+  <settings>
+    <param name="address" value="225.1.1.1"/>
+    <param name="port" value="4242"/>
+    <param name="bindings" value="all"/>
+    <param name="ttl" value="1"/>
+    <!-- <param name="loopback" value="no"/>-->
+    <!-- Uncomment this to enable pre-shared key encryption on the packets. -->
+    <!-- For this option to work, you'll need to have the openssl development -->
+    <!-- headers installed when you ran ./configure -->
+    <!-- <param name="psk" value="ClueCon"/> -->
+  </settings>
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_socket.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_socket.conf.xml
index e4581bc948f51078d57b1852c20f1872734f0f29..d62dd34dc7951d45a0142254f91b1a86f56571c8 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_socket.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/event_socket.conf.xml
@@ -1,9 +1,10 @@
 <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-ip" value="::"/>
     <param name="listen-port" value="8021"/>
     <param name="password" value="ClueCon"/>
-    <!-- param name="apply-inbound-acl" value="localnet.auto"/ -->
+    <!--<param name="apply-inbound-acl" value="loopback.auto"/>-->
+    <!--<param name="stop-on-bind-error" value="true"/>-->
   </settings>
 </configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/fax.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/fax.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d6a5ff734b1c01472f9eea67ce2c5574b7a39b06
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/fax.conf.xml
@@ -0,0 +1,12 @@
+<configuration name="fax.conf" description="FAX application configuration">
+    <settings>
+	<param name="use-ecm"		value="true"/>
+	<param name="verbose"		value="false"/>
+	<param name="disable-v17"	value="false"/>
+	<param name="ident"		value="SpanDSP Fax Ident"/>
+	<param name="header"		value="SpanDSP Fax Header"/>
+
+	<param name="spool-dir"		value="$${temp_dir}"/>
+	<param name="file-prefix"	value="faxrx"/>
+    </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/fifo.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/fifo.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b1db4dd2bdb3a024ef2f19673644eee5b6e7e840
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/fifo.conf.xml
@@ -0,0 +1,10 @@
+<configuration name="fifo.conf" description="FIFO Configuration">
+  <settings>
+    <param name="delete-all-outbound-member-on-startup" value="false"/>
+  </settings>
+  <fifos>
+    <fifo name="cool_fifo@$${domain}" importance="0">
+      <!--<member timeout="60" simo="1" lag="20">{member_wait=nowait}user/1005@$${domain}</member>-->
+    </fifo>
+  </fifos>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/format_cdr.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/format_cdr.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0c42e78b409ac3261b803f00c4deb996cf2d53f5
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/format_cdr.conf.xml
@@ -0,0 +1,88 @@
+<configuration name="format_cdr.conf" description="Multi Format CDR CURL logger">
+
+ <!-- You can have multiple profiles, to allow logging to both json and cdr simultaneously, or to 
+        different paths or servers with different settings, just be sure to use different name for
+        each profile. -->
+ <profiles>
+
+ <profile name="default">
+  <settings>
+    <!-- the format of data to send, defaults to xml -->
+    <!-- <param name="format" value="json|xml"/> -->
+    <param name="format" value="xml"/>
+
+    <!-- the url to post to if blank web posting is disabled  -->
+    <!-- <param name="url" value="http://localhost/cdr_curl/post.php"/> -->
+
+    <!-- optional: credentials to send to web server -->
+    <!--    <param name="cred" value="user:pass"/> -->
+
+    <!-- the total number of retries (not counting the first 'try') to post to webserver incase of failure -->
+    <!-- <param name="retries" value="2"/> -->
+
+    <!-- delay between retries in seconds, default is 5 seconds -->
+    <!-- <param name="delay" value="1"/> -->
+
+    <!-- Log via http and on disk, default is false -->
+    <!-- <param name="log-http-and-disk" value="true"/> -->
+
+    <!-- optional: if not present we do not log every record to disk -->
+    <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank value will default to ${prefix}/logs/format_cdr -->
+    <param name="log-dir" value=""/>
+
+    <!-- optional: if not present we do log the b leg -->
+    <!-- true or false if we should create a cdr for the b leg of a call-->
+    <param name="log-b-leg" value="false"/>
+    
+    <!-- optional: if not present, all filenames are the uuid of the call -->
+    <!-- true or false if a leg files are prefixed "a_" -->
+    <param name="prefix-a-leg" value="true"/>
+
+    <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding, 'base64' for base64 encoding or 'textxml' for text/xml -->
+    <param name="encode" value="true"/>
+
+    <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting --> 
+    <!--<param name="disable-100-continue" value="true"/>--> 
+    
+    <!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir -->
+    <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/format_cdr -->
+    <!-- <param name="err-log-dir" value="$${temp_dir}"/> -->
+
+    <!-- which auhtentification scheme to use. Supported values are: basic, digest, NTLM, GSS-NEGOTIATE or "any" for automatic detection -->
+    <!--<param name="auth-scheme" value="basic"/>--> 
+
+    <!-- optional: this will enable the CA root certificate check by libcurl to
+         verify that the certificate was issued by a major Certificate Authority.
+         note: default value is disabled. only enable if you want this! -->
+    <!--<param name="enable-cacert-check" value="true"/>-->
+    <!-- optional: verify that the server is actually the one listed in the cert -->
+    <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
+
+    <!-- optional: these options can be used to specify custom SSL certificates
+         to use for HTTPS communications. Either use both options or neither.
+         Specify your public key with 'ssl-cert-path' and the private key with
+         'ssl-key-path'. If your private key has a password, specify it with
+         'ssl-key-password'. -->
+    <!-- <param name="ssl-cert-path" value="$${certs_dir}/public_key.pem"/> -->
+    <!-- <param name="ssl-key-path" value="$${certs_dir}/private_key.pem"/> -->
+    <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
+
+    <!-- optional: use a custom CA certificate in PEM format to verify the peer
+         with. This is useful if you are acting as your own certificate authority.
+         note: only makes sense if used in combination with "enable-cacert-check." -->
+    <!-- <param name="ssl-cacert-file" value="$${certs_dir}/cacert.pem"/> -->
+
+    <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
+         "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
+    <!-- <param name="ssl-version" value="TLSv1"/> -->
+
+    <!-- optional: enables cookies and stores them in the specified file. -->
+    <!-- <param name="cookie-file" value="/$${temp_dir}/cookie-mod_format_cdr_curl.txt"/> -->
+
+    <!-- Whether to URL encode the individual JSON values. Defaults to true, set to false for standard JSON. -->
+    <param name="encode-values" value="true"/>
+
+  </settings>
+ </profile>
+ </profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/graylog2.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/graylog2.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0a05482bf84d2b1f3f387f648b63318ba6a9f0ba
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/graylog2.conf.xml
@@ -0,0 +1,24 @@
+<configuration name="graylog2.conf" description="Graylog2 Logger">
+  <!-- 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="server-host" value="192.168.0.69"/>
+    <param name="server-port" value="12201"/>
+    <param name="loglevel" value="warning"/>
+    <!-- Uncomment if using logstash w/ gelf.rb -->
+    <!--param name="send-uncompressed-header" value="true"/-->
+
+    <!-- fields to add to every log associated w/ a session -->
+    <fields>
+      <!-- for example: channel variable "customer_account_number" will be the data source for the customer field in graylog2 -->
+      <!--field name="customer" variable="customer_account_number"/-->
+    </fields>
+  </settings>
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/hash.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/hash.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..95b79287755ee627174ef44cb0970110b9248923
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/hash.conf.xml
@@ -0,0 +1,6 @@
+<configuration name="hash.conf" description="Hash Configuration">
+  <remotes>
+	<!-- List of hosts from where to pull usage data -->
+	<!-- <remote name="Test1" host="10.0.0.10" port="8021" password="ClueCon" interval="1000" /> -->
+  </remotes>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/hiredis.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/hiredis.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e82453928b2ebe8f8348fa5333a7e813e44ac453
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/hiredis.conf.xml
@@ -0,0 +1,23 @@
+<configuration name="hiredis.conf" description="mod_hiredis">
+  <profiles>
+    <profile name="default">
+      <connections>
+	<connection name="primary">
+	  <param name="hostname" value="172.18.101.101"/>
+	  <param name="password" value="redis"/>	
+	  <param name="port" value="6379"/>
+	  <param name="timeout_ms" value="500"/>
+	</connection>
+	<connection name="secondary">
+	  <param name="hostname" value="localhost"/>
+	  <param name="password" value="redis"/>	
+	  <param name="port" value="6380"/>
+	  <param name="timeout_ms" value="500"/>
+	</connection>
+      </connections>
+      <params>
+	<param name="ignore-connect-fail" value="true"/>
+      </params>
+    </profile>
+  </profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/httapi.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/httapi.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c3566d148a14189920819694ecf93ccf5d44a78b
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/httapi.conf.xml
@@ -0,0 +1,129 @@
+<configuration name="httapi.conf" description="HT-TAPI Hypertext Telephony API">
+  <settings>
+    <!-- print xml on the console -->
+    <param name="debug" value="true"/>
+    <!-- time to keep audio files when discovered they were deleted from the http server -->
+    <param name="file-not-found-expires" value="300"/>
+    <!-- how often to re-check the server to make sure the remote file has not changed -->
+    <param name="file-cache-ttl" value="300"/>
+  </settings>
+  <profiles>
+    <profile name="default">
+
+      <!-- default params for conference action tags -->
+      <conference>
+	<param name="default-profile" value="default"/>
+      </conference>
+
+      <!-- default params for dial action tags -->
+      <dial>
+	<param name="context" value="default"/>
+	<param name="dialplan" value="XML"/>
+      </dial>
+
+      <!-- permissions -->
+      <permissions>
+	<!-- <permission name="all" value="true"/> -->
+	<!--<permission name="none" value="true"/> -->
+	<permission name="set-params" value="true"/>
+	<permission name="set-vars" value="false">
+	  <!-- default to "deny" or "allow" -->
+	  <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
+	  <!-- 
+	  <variable-list default="deny">
+	    <variable name="caller_id_name"/>
+	    <variable name="hangup"/> 
+	  </variable-list>
+	  -->
+	</permission>
+	<permission name="get-vars" value="false">
+	  <!-- default to "deny" or "allow" -->
+	  <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
+	  <!-- 
+	  <variable-list default="deny">
+	    <variable name="caller_id_name"/>
+	    <variable name="hangup"/> 
+	  </variable-list>
+	  -->
+	</permission>
+	<permission name="extended-data" value="false"/>
+	<permission name="execute-apps" value="true">
+	  <!-- default to "deny" or "allow" -->
+	  <application-list default="deny">
+	    <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
+	    <application name="info"/>
+	    <application name="hangup"/>
+	  </application-list>
+	</permission>
+	<permission name="expand-vars-in-tag-body" value="false">
+	  <!-- default to "deny" or "allow" -->
+	  <!-- type attr can be "deny" or "allow" nothing defaults to opposite of the list default so allow in this case -->
+	  <!-- 
+	  <variable-list default="deny">
+	    <variable name="caller_id_name"/>
+	    <variable name="hangup"/> 
+	  </variable-list>
+
+	  <api-list default="deny">
+	    <api name="expr"/>
+	    <api name="lua"/> 
+	  </api-list>
+	  -->
+	</permission>
+	<permission name="dial" value="true"/>
+	<permission name="dial-set-context" value="false"/>
+	<permission name="dial-set-dialplan" value="false"/>
+	<permission name="dial-set-cid-name" value="false"/>
+	<permission name="dial-set-cid-number" value="false"/>
+	<permission name="dial-full-originate" value="false"/>
+	<permission name="conference" value="true"/>
+	<permission name="conference-set-profile" value="false"/>
+      </permissions>
+      
+      <params>
+	<!-- default url can be overridden by app data -->
+	<param name="gateway-url" value="http://www.freeswitch.org/api/index.cgi" />
+	
+	<!-- set this to provide authentication credentials to the server -->
+	<!--<param name="gateway-credentials" value="muser:mypass"/>-->
+	<!--<param name="auth-scheme" value="basic"/>-->
+
+	<!-- optional: this will enable the CA root certificate check by libcurl to
+	     verify that the certificate was issued by a major Certificate Authority.
+	     note: default value is disabled. only enable if you want this! -->
+	<!--<param name="enable-cacert-check" value="true"/>-->
+	<!-- optional: verify that the server is actually the one listed in the cert -->
+	<!-- <param name="enable-ssl-verifyhost" value="true"/> -->
+
+	<!-- optional: these options can be used to specify custom SSL certificates
+	     to use for HTTPS communications. Either use both options or neither.
+	     Specify your public key with 'ssl-cert-path' and the private key with
+	     'ssl-key-path'. If your private key has a password, specify it with
+	     'ssl-key-password'. -->
+	<!-- <param name="ssl-cert-path" value="$${certs_dir}/public_key.pem"/> -->
+	<!-- <param name="ssl-key-path" value="$${certs_dir}/private_key.pem"/> -->
+	<!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
+	<!-- optional timeout -->
+	<!-- <param name="timeout" value="10"/> -->
+	<!-- optional: maximum amount of time in seconds that is allowed to make the connection to the server -->
+	<!-- <param name="connect-timeout" value="2"/> -->
+
+	<!-- optional: use a custom CA certificate in PEM format to verify the peer
+	     with. This is useful if you are acting as your own certificate authority.
+	     note: only makes sense if used in combination with "enable-cacert-check." -->
+	<!-- <param name="ssl-cacert-file" value="$${certs_dir}/cacert.pem"/> -->
+
+	<!-- optional: specify the SSL version to force HTTPS to use. Valid options are
+	     "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
+	<!-- <param name="ssl-version" value="TLSv1"/> -->
+
+	<!-- optional: enables cookies and stores them in the specified file. -->
+	<!-- <param name="cookie-file" value="$${temp_dir}/cookie-mod_xml_curl.txt"/> -->
+
+	<!-- one or more of these imply you want to pick the exact variables that are transmitted -->
+	<!--<param name="enable-post-var" value="Caller-Unique-ID"/>-->
+      </params>
+
+    </profile>
+  </profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/http_cache.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/http_cache.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f8cc9368d76ba15f7fe4d9a6aece7ba0f8a96a77
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/http_cache.conf.xml
@@ -0,0 +1,21 @@
+<configuration name="http_cache.conf" description="HTTP GET cache">
+  <settings>
+    <!-- set to true if you want to enable http:// and https:// formats.  Do not use if mod_httapi is also loaded -->
+    <param name="enable-file-formats" value="false"/>
+    <param name="max-urls" value="10000"/>
+    <param name="location" value="$${cache_dir}"/>
+    <param name="default-max-age" value="86400"/>
+    <param name="prefetch-thread-count" value="8"/>
+    <param name="prefetch-queue-size" value="100"/>
+    <!-- absolute path to CA bundle file -->
+    <param name="ssl-cacert" value="$${certs_dir}/cacert.pem"/>
+    <!-- verify certificates -->
+    <param name="ssl-verifypeer" value="true"/>
+    <!-- verify host name matches certificate -->
+    <param name="ssl-verifyhost" value="true"/>
+    <!-- default is 300 seconds, override here -->
+    <!--param name="connect-timeout" value="300"/-->
+    <!-- default is 300 seconds, override here -->
+    <!--param name="download-timeout" value="300"/-->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/ivr.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/ivr.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bd4e73dedff7cf14257b73dba4a3da782872bb66
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/ivr.conf.xml
@@ -0,0 +1,5 @@
+<configuration name="ivr.conf" description="IVR menus">
+  <menus>
+    <X-PRE-PROCESS cmd="include" data="../ivr_menus/*.xml"/>
+  </menus>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/java.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/java.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..705114ac4a8ba11ba5da93e9c1a5dca8579d8bce
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/java.conf.xml
@@ -0,0 +1,8 @@
+<configuration name="java.conf" description="Java Plug-Ins">
+  <javavm path="/opt/jdk1.6.0_04/jre/lib/amd64/server/libjvm.so"/>
+  <options>
+    <option value="-Djava.class.path=$${script_dir}/freeswitch.jar:$${script_dir}/example.jar"/>
+    <option value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8000"/>
+  </options>
+  <startup class="org/freeswitch/example/ApplicationLauncher" method="startup"/>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/kazoo.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/kazoo.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b730523d4c2b56d8df2be1edb05934267a59f79a
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/kazoo.conf.xml
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration name="kazoo.conf" description="General purpose Erlang c-node produced to better fit the Kazoo project">
+  <settings>
+    <param name="listen-ip" value="0.0.0.0" />
+    <param name="listen-port" value="8031" />
+    <!--<param name="cookie-file" value="/etc/freeswitch/autoload_configs/.erlang.cookie" />-->
+    <param name="cookie" value="change_me" />
+    <param name="shortname" value="false" />
+    <param name="nodename" value="freeswitch" />
+    <param name="send-msg-batch-size" value="10" />
+    <param name="receive-timeout" value="1" />
+    <!--<param name="receive-msg-preallocate" value="0" />-->
+    <!--<param name="event-stream-preallocate" value="0" />-->
+    <!--<param name="event-stream-framing" value="2" />-->
+    <!--<param name="kazoo-var-prefix" value="ecallmgr" />-->
+    <!--<param name="compat-rel" value="12"/> -->
+  </settings>
+  <event-filter type="whitelist">
+    <header name="Acquired-UUID" />
+    <header name="action" />
+    <header name="Action" />
+    <header name="alt_event_type" />
+    <header name="Answer-State" />
+    <header name="Application" />
+    <header name="Application-Data" />
+    <header name="Application-Name" />
+    <header name="Application-Response" />
+    <header name="att_xfer_replaced_by" />
+    <header name="Auth-Method" />
+    <header name="Auth-Realm" />
+    <header name="Auth-User" />
+    <header name="Bridge-A-Unique-ID" />
+    <header name="Bridge-B-Unique-ID" />
+    <header name="Call-Direction" />
+    <header name="Caller-Callee-ID-Name" />
+    <header name="Caller-Callee-ID-Number" />
+    <header name="Caller-Caller-ID-Name" />
+    <header name="Caller-Caller-ID-Number" />
+    <header name="Caller-Context" />
+    <header name="Caller-Controls" />
+    <header name="Caller-Destination-Number" />
+    <header name="Caller-Dialplan" />
+    <header name="Caller-Network-Addr" />
+    <header name="Caller-Unique-ID" />
+    <header name="Call-ID" />
+    <header name="Channel-Call-State" />
+    <header name="Channel-Call-UUID" />
+    <header name="Channel-Presence-ID" />
+    <header name="Channel-State" />
+    <header name="Chat-Permissions" />
+    <header name="Conference-Name" />
+    <header name="Conference-Profile-Name" />
+    <header name="Conference-Unique-ID" />
+    <header name="Conference-Size" />
+    <header name="New-ID" />
+    <header name="Old-ID" />
+    <header name="Detected-Tone" />
+    <header name="dialog_state" />
+    <header name="direction" />
+    <header name="Distributed-From" />
+    <header name="DTMF-Digit" />
+    <header name="DTMF-Duration" />
+    <header name="Event-Date-Timestamp" />
+    <header name="Event-Name" />
+    <header name="Event-Subclass" />
+    <header name="Expires" />
+    <header name="Ext-SIP-IP" />
+    <header name="File" />
+    <header name="FreeSWITCH-Hostname" />
+    <header name="from" />
+    <header name="Hunt-Destination-Number" />
+    <header name="ip" />
+    <header name="Message-Account" />
+    <header name="metadata" />
+    <header name="old_node_channel_uuid" />
+    <header name="Other-Leg-Callee-ID-Name" />
+    <header name="Other-Leg-Callee-ID-Number" />
+    <header name="Other-Leg-Caller-ID-Name" />
+    <header name="Other-Leg-Caller-ID-Number" />
+    <header name="Other-Leg-Destination-Number" />
+    <header name="Other-Leg-Direction" />
+    <header name="Other-Leg-Unique-ID" />
+    <header name="Participant-Type" />
+    <header name="Path" />
+    <header name="profile_name" />
+    <header name="Profiles" />
+    <header name="proto-specific-event-name" />
+    <header name="Raw-Application-Data" />
+    <header name="Resigning-UUID" />
+    <header name="set" />
+    <header name="sip_auto_answer" />
+    <header name="sip_auth_method" />
+    <header name="sip_from_host" />
+    <header name="sip_from_user" />
+    <header name="sip_to_host" />
+    <header name="sip_to_user" />
+    <header name="sub-call-id" />
+    <header name="technology" />
+    <header name="to" />
+    <header name="Unique-ID" />
+    <header name="URL" />
+    <header name="variable_channel_is_moving" />
+    <header name="variable_collected_digits" />
+    <header name="variable_current_application" />
+    <header name="variable_current_application_data" />
+    <header name="variable_domain_name" />
+    <header name="variable_effective_caller_id_name" />
+    <header name="variable_effective_caller_id_number" />
+    <header name="variable_fax_bad_rows" />
+    <header name="variable_fax_document_total_pages" />
+    <header name="variable_fax_document_transferred_pages" />
+    <header name="variable_fax_ecm_used" />
+    <header name="variable_fax_result_code" />
+    <header name="variable_fax_result_text" />
+    <header name="variable_fax_success" />
+    <header name="variable_fax_transfer_rate" />
+    <header name="variable_holding_uuid" />
+    <header name="variable_hold_music" />
+    <header name="variable_media_group_id" />
+    <header name="variable_originate_disposition" />
+    <header name="variable_playback_terminator_used" />
+    <header name="variable_presence_id" />
+    <header name="variable_record_ms" />
+    <header name="variable_recovered" />
+    <header name="variable_silence_hits_exhausted" />
+    <header name="variable_sip_auth_realm" />
+    <header name="variable_sip_from_host" />
+    <header name="variable_sip_from_user" />
+    <header name="variable_sip_h_X-AUTH-IP" />
+    <header name="variable_sip_received_ip" />
+    <header name="variable_sip_to_host" />
+    <header name="variable_sip_to_user" />
+    <header name="variable_sofia_profile_name" />
+    <header name="variable_transfer_history" />
+    <header name="variable_user_name" />
+    <header name="variable_endpoint_disposition" />
+    <header name="variable_originate_disposition" />
+    <header name="variable_bridge_hangup_cause" />
+    <header name="variable_hangup_cause" />
+    <header name="variable_last_bridge_proto_specific_hangup_cause" />
+    <header name="variable_proto_specific_hangup_cause" />
+    <header name="VM-Call-ID" />
+    <header name="VM-sub-call-id" />
+    <header name="whistle_application_name" />
+    <header name="whistle_application_response" />
+    <header name="whistle_event_name" />
+    <header name="sip_auto_answer_notify" />
+    <header name="eavesdrop_group" />
+    <header name="origination_caller_id_name" />
+    <header name="origination_caller_id_number" />
+    <header name="origination_callee_id_name" />
+    <header name="origination_callee_id_number" />
+    <header name="sip_auth_username" />
+    <header name="sip_auth_password" />
+    <header name="effective_caller_id_name" />
+    <header name="effective_caller_id_number" />
+    <header name="effective_callee_id_name" />
+    <header name="effective_callee_id_number" />
+    
+    <!-- Registrations -->
+    <header name="call-id" />
+    <header name="profile-name" />
+    <header name="from-user" />
+    <header name="from-host" />
+    <header name="presence-hosts" />
+    <header name="contact" />
+    <header name="rpid" />
+    <header name="status" />
+    <header name="expires" />
+    <header name="to-user" />
+    <header name="to-host" />
+    <header name="network-ip" />
+    <header name="network-port" />
+    <header name="username" />
+    <header name="realm" />
+    <header name="user-agent" />
+    
+    <!-- CDR Headers -->
+    <header name="Hangup-Cause" />
+    <header name="Unique-ID" />
+    <header name="variable_switch_r_sdp" />
+    <header name="variable_sip_local_sdp_str" />
+    <header name="variable_sip_to_uri" />
+    <header name="variable_sip_from_uri" />
+    <header name="variable_effective_caller_id_number" />
+    <header name="Caller-Caller-ID-Number" />
+    <header name="variable_effective_caller_id_name" />
+    <header name="Caller-Caller-ID-Name" />
+    <header name="Caller-Callee-ID-Name" />
+    <header name="Caller-Callee-ID-Number" />
+    <header name="Other-Leg-Unique-ID" />
+    <header name="variable_sip_user_agent" />
+    <header name="variable_duration" />
+    <header name="variable_billsec" />
+    <header name="variable_progresssec" />
+    <header name="variable_progress_uepoch" />
+    <header name="variable_progress_media_uepoch" />
+    <header name="variable_start_uepoch" />
+    <header name="variable_digits_dialed" />
+    <header name="variable_sip_cid_type" />
+    
+    <!-- Conference Headers -->
+    <header name="Hear" />
+    <header name="Speak" />
+    <header name="Video" />
+    <header name="Talking" />
+    <header name="Mute-Detect" />
+    <header name="Member-ID" />
+    <header name="Member-Type" />
+    <header name="Energy-Level" />
+    <header name="Current-Energy" />
+    <header name="Floor" />
+    
+  </event-filter>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/lcr.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/lcr.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9d106d4890ff50786075f8d24b988502fc63acce
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/lcr.conf.xml
@@ -0,0 +1,89 @@
+<configuration name="lcr.conf" description="LCR Configuration">
+  <settings>
+    <param name="odbc-dsn" value="freeswitch-mysql:freeswitch:Fr33Sw1tch"/>
+<!--    <param name="odbc-dsn" value="freeswitch-pgsql:freeswitch:Fr33Sw1tch"/> -->
+  </settings>
+  <profiles>
+    <profile name="default">
+      <param name="id" value="0"/>
+      <param name="order_by" value="rate,quality,reliability"/>
+    </profile>
+    <profile name="qual_rel">
+      <param name="id" value="1"/>
+      <param name="order_by" value="quality,reliability"/>
+    </profile>
+    <profile name="rel_qual">
+      <param name="id" value="2"/>
+      <param name="order_by" value="reliability,quality"/>
+    </profile>
+<!-- 
+  Some samples of how to do custom SQL:
+
+    =============================================================
+    PostgreSQL with contrib prefix module which supports fast
+    prefix queries.  Ideal option.
+    =============================================================
+    <profile name="pg_prefix">
+      <param name="custom_sql" value="
+SELECT l.digits AS lcr_digits,
+       c.carrier_name AS lcr_carrier_name,
+       l.${lcr_rate_field} as lcr_rate_field,
+       cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
+       l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
+       l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
+  FROM lcr l
+    JOIN carriers c ON l.carrier_id=c.id
+    JOIN carrier_gateway cg ON c.id=cg.carrier_id
+  WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
+    AND digits_prefix @> %q
+    AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
+  ORDER BY digits DESC, ${lcr_rate_field}, random();
+      "/>
+    </profile>
+
+    =============================================================
+    PostgreSQL with contrib prefix module which supports fast
+    prefix queries.  Ideal option.  Alternate syntax which requies
+    a session but allows variable substitution.
+    =============================================================
+    <profile name="pg_prefix2">
+      <param name="custom_sql" value="
+SELECT l.digits AS lcr_digits,
+       c.carrier_name AS lcr_carrier_name,
+       l.${lcr_rate_field} as lcr_rate_field,
+       cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
+       l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
+       l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
+  FROM lcr l
+    JOIN carriers c ON l.carrier_id=c.id
+    JOIN carrier_gateway cg ON c.id=cg.carrier_id
+  WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
+    AND digits_prefix @> '${lcr_query_digits}'
+    AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
+  ORDER BY digits DESC, ${lcr_rate_field}, random();
+      "/>
+    </profile>
+
+    =============================================================
+    Demonstrates use of computed inlist.
+    =============================================================
+    <profile name="inlist">
+      <param name="custom_sql" value="
+SELECT l.digits AS lcr_digits,
+       c.carrier_name AS lcr_carrier_name,
+       l.${lcr_rate_field} as lcr_rate_field,
+       cg.prefix AS lcr_gw_prefix, cg.suffix AS lcr_gw_suffix,
+       l.lead_strip AS lcr_lead_strip, l.trail_strip AS lcr_trail_strip,
+       l.prefix AS lcr_prefix, l.suffix AS lcr_suffix
+  FROM lcr l
+    JOIN carriers c ON l.carrier_id=c.id
+    JOIN carrier_gateway cg ON c.id=cg.carrier_id
+  WHERE c.enabled = '1' AND cg.enabled = '1' AND l.enabled = '1'
+    AND digits IN (${lcr_query_expanded_digits})
+    AND CURRENT_TIMESTAMP BETWEEN date_start AND date_end
+  ORDER BY digits DESC, ${lcr_rate_field}, random();
+      "/>
+    </profile>
+-->
+  </profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/local_stream.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/local_stream.conf.xml
index 94a566539222731bb11c471b2544ce4f1c15c9ad..16371d2610f3e8758f9b2995570c5d3ddfc0fda6 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/local_stream.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/local_stream.conf.xml
@@ -37,7 +37,7 @@
     <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"/>
@@ -45,5 +45,5 @@
     <param name="interval" value="10"/>
     <param name="timer-name" value="soft"/>
   </directory>
-  -->
+
 </configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/logfile.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/logfile.conf.xml
index 57f276c4eaf746ad61d95941197c4342b6dbc836..670bae957f9ec66c1c49dab4db3c899e3a385b9f 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/logfile.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/logfile.conf.xml
@@ -9,9 +9,12 @@
         <!-- File to log to -->
 	<!--<param name="logfile" value="/var/log/freeswitch.log"/>-->
         <!-- At this length in bytes rotate the log file (0 for never) -->
-        <param name="rollover" value="10485760"/>
-		<!-- Uncomment to prefix all log lines by the session's uuid  -->
-		<!-- <param name="uuid" value="true" /> -->
+        <param name="rollover" value="1048576000"/>
+		<!-- Maximum number of log files to keep before wrapping -->
+		<!-- If this parameter is enabled, the log filenames will not include a date stamp -->
+		<param name="maximum-rotate" value="32"/>
+        <!-- Prefix all log lines by the session's uuid  -->
+        <param name="uuid" value="true" />
       </settings>
       <mappings>
 	<!-- 
@@ -19,7 +22,7 @@
 	     value is one or more of debug,info,notice,warning,err,crit,alert,all
 	     Please see comments in console.conf.xml for more information
 	-->
-	<map name="all" value="debug,info,notice,warning,err,crit,alert"/>
+	<map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
       </mappings>
     </profile>
   </profiles>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/lua.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/lua.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fafd3361690f78fbb05b3be567bb67f42b97b009
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/lua.conf.xml
@@ -0,0 +1,32 @@
+<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="$${script_dir}/?.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"/>-->
+    
+    <!--<hook event="CUSTOM" subclass="conference::maintenance" script="catch-event.lua"/>-->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/memcache.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/memcache.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dc0173f986d7c3460d1867e136a0dc60cf0054a3
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/memcache.conf.xml
@@ -0,0 +1,6 @@
+<configuration name="memcache.conf" description="memcache Configuration">
+  <settings>
+    <!-- comma sep list of servers: eg:  localhost,otherhost:port,anotherone -->
+    <param name="memcache-servers" value="localhost"/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/modules.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/modules.conf.xml
index 94961f1d81dbec1d0b8a04b361c4481614ad3542..044d67e72e5f46b65bd6f9c1e463b36012a95160 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/modules.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/modules.conf.xml
@@ -1,8 +1,8 @@
 <configuration name="modules.conf" description="Modules">
   <modules>
-    
     <!-- Loggers (I'd load these first) -->
     <load module="mod_console"/>
+    <!-- <load module="mod_graylog2"/> -->
     <load module="mod_logfile"/>
     <!-- <load module="mod_syslog"/> -->
 
@@ -10,18 +10,26 @@
 
     <!-- Multi-Faceted -->
     <!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
-    <load module="mod_enum"/> 
+    <load module="mod_enum"/>
 
     <!-- XML Interfaces -->
     <!-- <load module="mod_xml_rpc"/> -->
     <!-- <load module="mod_xml_curl"/> -->
     <!-- <load module="mod_xml_cdr"/> -->
+    <!-- <load module="mod_xml_radius"/> -->
+    <!-- <load module="mod_xml_scgi"/> -->
 
     <!-- Event Handlers -->
-    <load module="mod_cdr_csv"/>
+    <!-- <load module="mod_amqp"/> -->
+    <!-- <load module="mod_cdr_csv"/> -->
+    <!-- <load module="mod_cdr_sqlite"/> -->
     <!-- <load module="mod_event_multicast"/> -->
     <load module="mod_event_socket"/>
+    <!-- <load module="mod_event_zmq"/> -->
     <!-- <load module="mod_zeroconf"/> -->
+    <!-- <load module="mod_erlang_event"/> -->
+    <!-- <load module="mod_smpp"/> -->
+    <!-- <load module="mod_snmp"/> -->
 
     <!-- Directory Interfaces -->
     <!-- <load module="mod_ldap"/> -->
@@ -33,63 +41,86 @@
     <load module="mod_sofia"/>
     <load module="mod_loopback"/>
     <!-- <load module="mod_woomera"/> -->
-    <!-- <load module="mod_openzap"/> -->
+    <!-- <load module="mod_freetdm"/> -->
     <!-- <load module="mod_unicall"/> -->
     <!-- <load module="mod_skinny"/> -->
+    <!-- <load module="mod_khomp"/>   -->
+    <load module="mod_rtc"/>
+    <!-- <load module="mod_rtmp"/>   -->
+    <load module="mod_verto"/>
 
     <!-- Applications -->
     <load module="mod_commands"/>
     <load module="mod_conference"/>
+    <!-- <load module="mod_curl"/> -->
+    <load module="mod_db"/>
     <load module="mod_dptools"/>
     <load module="mod_expr"/>
-    <!-- <load module="mod_fifo"/> -->
-    <!-- <load module="mod_voicemail"/> -->
+    <load module="mod_fifo"/>
+    <load module="mod_hash"/>
+    <!--<load module="mod_mongo"/> -->
+    <!--load module="mod_voicemail"/>-->
     <!--<load module="mod_directory"/>-->
+    <!--<load module="mod_distributor"/>-->
     <!--<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_easyroute"/>-->
+    <load module="mod_esf"/>
+    <load module="mod_fsv"/>
+    <!--<load module="mod_cluechoo"/>-->
+    <!--load module="mod_valet_parking"/>-->
+    <!--<load module="mod_fsk"/>-->
     <!--<load module="mod_spy"/>-->
+    <!--<load module="mod_sms"/>-->
+    <!--<load module="mod_smpp"/>-->
+    <!--<load module="mod_random"/>-->
+    <load module="mod_httapi"/>
+    <!--<load module="mod_translate"/>-->
 
     <!-- SNOM Module -->
     <!--<load module="mod_snom"/>-->
 
+    <!-- This one only works on Linux for now -->
+    <!--<load module="mod_ladspa"/>-->
+
     <!-- Dialplan Interfaces -->
     <!-- <load module="mod_dialplan_directory"/> -->
     <load module="mod_dialplan_xml"/>
     <load module="mod_dialplan_asterisk"/>
 
     <!-- Codec Interfaces -->
-    <!-- <load module="mod_spandsp"/> -->
+    <load module="mod_spandsp"/>
     <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"/>-->
+    <!--<load module="mod_ilbc"/>-->
+    <!--<load module="mod_h26x"/>-->
+    <load module="mod_b64"/>
+    <!--<load module="mod_siren"/>-->
+    <!--<load module="mod_isac"/>-->
+    <load module="mod_opus"/>
+    <load module="mod_opusfile"/>
 
     <!-- File Format Interfaces -->
     <load module="mod_sndfile"/>
     <load module="mod_native_file"/>
+    <load module="mod_png"/>
+    <!-- <load module="mod_shell_stream"/> -->
     <!--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 -->
+    <!-- <load module="mod_timerfd"/> -->
+    <!-- <load module="mod_posix_timer"/> -->
 
     <!-- Languages -->
-    <load module="mod_spidermonkey"/>
+    <!-- <load module="mod_v8"/> -->
     <!-- <load module="mod_perl"/> -->
     <!-- <load module="mod_python"/> -->
     <!-- <load module="mod_java"/> -->
-    <!-- <load module="mod_lua"/> -->
+    <load module="mod_lua"/>
 
     <!-- ASR /TTS -->
     <!-- <load module="mod_flite"/> -->
@@ -97,14 +128,18 @@
     <!-- <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_ru"/> -->
     <!-- <load module="mod_say_zh"/> -->
+    <!-- <load module="mod_say_sv"/> -->
 
     <!-- Third party modules -->
     <!--<load module="mod_nibblebill"/>-->
+    <!--<load module="mod_callcenter"/>-->
+    <!--<load module="mod_av"/-->
 
   </modules>
 </configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/mongo.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/mongo.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5adf148e7d134ba594e77b68d47e933745142e58
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/mongo.conf.xml
@@ -0,0 +1,15 @@
+<configuration name="mongo.conf">
+  <settings>
+    <!-- 
+         mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
+    -->
+    <param name="connection-string" value="mongodb://127.0.0.1:27017/?connectTimeoutMS=10000"/>
+
+<!--
+    <param name="map" value="function() { emit(this.a, 1); }"/>
+    <param name="reduce" value="function(key, values) { return Array.sum(values); }"/>
+    <param name="finalize" value="function(key, value) { return value;}"/>
+-->
+
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/msrp.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/msrp.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..65c2d619762a22c6ab6526c145800d42712a5bf5
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/msrp.conf.xml
@@ -0,0 +1,12 @@
+<configuration name="msrp.conf" description="MSRP">
+  <settings>
+    <param name="listen-ip" value="$${local_ip_v4}"/>
+    <!-- <param name="listen-port" value="2855"/> -->
+    <!-- <param name="listen-ssl-port" value="2856"/> -->
+    <!-- <param name="message-buffer-size" value="50"/> -->
+    <!-- <param name="debug" value="true"/> -->
+    <!-- <param name="secure-cert" value="$${certs_dir}/wss.pem"/> -->
+    <!-- <param name="secure-key" value="$${certs_dir}/wss.pem"/> -->
+  </settings>
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/nibblebill.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/nibblebill.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..043c985482d1ff16d08a8eae13bd849805052f2b
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/nibblebill.conf.xml
@@ -0,0 +1,48 @@
+<configuration name="nibblebill.conf" description="Nibble Billing">
+  <settings>
+    <!-- See http://wiki.freeswitch.org/wiki/Mod_nibblebill for help with these options -->
+
+    <!-- Information for connecting to your database -->
+    <param name="odbc-dsn" value="bandwidth.com"/>
+
+    <!-- The database table where your CASH column is located -->
+    <param name="db_table" value="accounts"/>
+
+    <!-- The column name where we store the value of the account -->
+    <param name="db_column_cash" value="cash"/>
+
+    <!-- The column name for the unique ID identifying the account -->
+    <param name="db_column_account" value="id"/>
+
+    <!-- Custom SQL for loading current balance - overrides column names
+         channel vars are interpreted.
+         field nibble_balance is used for balance info
+
+    <param name="custom_sql_lookup" value="SELECT cash AS nibble_balance FROM accounts WHERE account_code='${nibble_account}'"/>
+    -->
+
+    <!-- Custom SQL for loading current balance - overrides column names
+         channel vars are interpreted.
+         nibble_increment is the amount to update
+
+    <param name="custom_sql_save" value="UPDATE accounts SET cash=cash-${nibble_increment} WHERE account_code='${nibble_account}'"/>
+    -->
+
+
+    <!-- Default heartbeat interval. Set to 'off' for no heartbeat (i.e. bill only at end of call) -->
+    <param name="global_heartbeat" value="60"/>
+
+    <!-- By default, warn a caller when their balance is at $5.00. You can set this to a negative number. -->
+    <param name="lowbal_amt" value="5"/>
+    <param name="lowbal_action" value="play ding"/>
+
+    <!-- By default, terminate a caller when their balance hits $0.00. You can set this to a negative number. -->
+    <param name="nobal_amt" value="0"/>
+    <param name="nobal_action" value="hangup"/>
+
+    <!-- If a call goes beyond a certain dollar amount, flag or terminate it -->
+    <param name="percall_max_amt" value="100"/>
+    <param name="percall_action" value="hangup"/>
+
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/opal.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/opal.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..280b69304e224ac119f8771d86fc2c48c927cbc0
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/opal.conf.xml
@@ -0,0 +1,21 @@
+<configuration name="opal.conf" description="Opal Endpoints">
+   <settings>
+      <param name="trace-level" value="3"/>
+      <param name="context" value="default"/>
+      <param name="dialplan" value="XML"/>
+      <param name="dtmf-type" value="signal"/>                   <!-- string, signal, rfc2833, in-band -->
+      <param name="jitter-size" value="40,100"/>                 <!-- Jitter buffer min/max size, milliseconds -->
+      <!-- <param name="codec-prefs" value="PCMU,PCMA"/> -->     <!-- list, and preferecnce order, of codecs -->
+      <!-- <param name="disable-transcoding" value="true"/> -->  <!-- do not transcode, use source channel codec only -->
+      <param name="gk-address" value=""/>                        <!-- empty to disable, "*" to search LAN -->
+      <param name="gk-identifer" value=""/>                      <!-- optional name of gk -->
+      <param name="gk-interface" value="$${local_ip_v4}"/>       <!-- optional listener interface name -->
+   </settings>
+   <listeners>
+      <listener name="default">
+         <param name="h323-ip" value="$${local_ip_v4}"/>
+         <param name="h323-port" value="1720"/>
+      </listener>
+   </listeners>
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/opus.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/opus.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8b9e64e1b7f07a2fbe8be07514e7258732c37ab1
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/opus.conf.xml
@@ -0,0 +1,12 @@
+<configuration name="opus.conf">
+      <settings>
+        <param name="use-vbr" value="1"/>
+        <param name="use-dtx" value="0"/>
+	<param name="complexity" value="5"/>
+
+        <param name="packet-loss-percent" value="15"/>
+        <param name="keep-fec-enabled" value="1"/>
+        <param name="use-jb-lookahead" value="1"/>
+        <param name="advertise-useinbandfec" value="1"/>
+      </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/oreka.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/oreka.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..29eabd5c292cb5650fa8ec86e43cb40edeb40065
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/oreka.conf.xml
@@ -0,0 +1,13 @@
+<!--
+To use this application simply install the open source Oreka recorder server (Orkaudio) and point
+the sip-server-addr and sip-server-port to the oreka server
+-->
+<configuration name="oreka.conf" description="Oreka Recorder configuration">
+  <settings>
+    <!--  Oreka/Orkaudio recording server address -->
+    <!-- <param name="sip-server-addr" value="192.168.1.200"/> -->
+
+    <!-- Which port to send signaling to in the recording server -->
+    <!-- <param name="sip-server-port" value="6000"/> -->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/osp.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/osp.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b320dbba88f7c7b5bc6921625a4b2fa56b11d3bc
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/osp.conf.xml
@@ -0,0 +1,53 @@
+<configuration name="osp.conf" description="OSP Module Configuration">
+	<settings>
+		<!-- Debug info flag -->
+		<param name="debug-info" value="disabled"/>
+		<!-- Log level for debug info -->
+		<param name="log-level" value="info"/>
+		<!-- Crypto hareware accelerate is disabled by default -->
+		<param name="crypto-hardware" value="disabled"/>
+		<!-- SIP settings -->
+		<param name="sip" module="sofia" profile="external"/>
+		<!-- H.323 settings -->
+		<!-- <param name="h323" module="h323" profile="external"/> -->
+		<!-- IAX settings -->
+		<!-- <param name="iax" module="iax" profile="external"/> -->
+		<!-- Skype settings -->
+		<!-- <param name="skype" module="skypopen" profile="external"/> -->
+		<!-- Default destination protocol -->
+		<param name="default-protocol" value="sip"/>
+	</settings>
+
+	<profiles>
+	<!-- Default OSP profile -->
+		<profile name="default">
+			<!-- Service point URLs, up to 8 allowed -->
+			<!-- <param name="service-point-url" value="http://osptestserver.transnexus.com:5045/osp"/> -->
+			<!-- <param name="service-point-url" value="https://127.0.0.1:1443/osp"/> -->
+			<param name="service-point-url" value="http://127.0.0.1:5045/osp"/>
+
+			<!-- FreeSWITCH IP address for OSP -->
+			<param name="device-ip" value="127.0.0.1:5080"/>
+
+			<!-- SSL lifetime in seconds -->
+			<param name="ssl-lifetime" value="300"/>
+			<!-- HTTP max connections, 1~1000 -->
+			<param name="http-max-connections" value="20"/>
+			<!-- HTTP persistence in seconds -->
+			<param name="http-persistence" value="60"/>
+			<!-- HTTP retry delay in seconds, 0~10 -->
+			<param name="http-retry-delay" value="0"/>
+			<!-- HTTP retry limit, 0~100 -->
+			<param name="http-retry-limit" value="2"/>
+			<!-- HTTP timeout in milliseconds, 200~60000 -->
+			<param name="http-timeout" value="10000"/>
+
+			<!-- OSP work mode, direct or indirect -->
+			<param name="work-mode" value="direct"/>
+			<!-- OSP service type, voice or npquery -->
+			<param name="service-type" value="voice"/>
+			<!-- Max number of destinations -->
+			<param name="max-destinations" value="12"/>
+		</profile>
+	</profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/perl.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/perl.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0249119230785f7ba391da0e29c2cd328e717b55
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/perl.conf.xml
@@ -0,0 +1,16 @@
+<configuration name="perl.conf" description="PERL Configuration">
+  <settings>
+    <!--<param name="xml-handler-script" value="$${temp_dir}/xml.pl"/>-->
+    <!--<param name="xml-handler-bindings" value="dialplan"/>-->
+
+    <!--
+	The following options identifies a perl 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.pl"/-->
+    <!--param name="startup-script" value="startup_script_2.pl"/-->
+
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/pocketsphinx.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/pocketsphinx.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3bf7d5e5755a95c8c51171ac6035c62c11d80477
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/pocketsphinx.conf.xml
@@ -0,0 +1,12 @@
+<configuration name="pocketsphinx.conf" description="PocketSphinx ASR Configuration">
+  <settings>
+    <param name="threshold" value="400"/>
+    <param name="silence-hits" value="25"/>
+    <param name="listen-hits" value="1"/>
+    <param name="auto-reload" value="true"/>
+    <!--<param name="language-weight" value="1"/>-->
+    <!--<param name="narrowband-model" value="communicator"/>-->
+    <!--<param name="wideband-model" value="wsj1"/>-->
+    <!--<param name="dictionary" value="default.dic"/>-->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/portaudio.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/portaudio.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a715571c6ff2bec8233fb73add3b85cc1633dd23
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/portaudio.conf.xml
@@ -0,0 +1,221 @@
+<configuration name="portaudio.conf" description="Soundcard Endpoint">
+  <settings>
+    <!-- indev, outdev, ringdev: 
+	 partial case sensitive string match on something in the name 
+	 or the device number prefixed with # eg "#1" (or blank for default) -->
+
+    <!-- device to use for input -->
+    <param name="indev" value=""/>
+    <!-- device to use for output -->
+    <param name="outdev" value=""/>
+
+    <!--device to use for inbound ring -->
+    <!--<param name="ringdev" value=""/>-->
+    <!--File to play as the ring sound -->
+    <!--<param name="ring-file" value="/sounds/ring.wav"/>-->
+    <!--Number of seconds to pause between rings -->
+    <!--<param name="ring-interval" value="5"/>-->
+    <!--Enable or Disable dual_streams-->
+    <!--<param name="dual-streams" value="true"/>-->
+
+    <!--file to play when calls are on hold-->
+    <param name="hold-file" value="$${hold_music}"/>
+    <!--Timer to use for hold music (i'd leave this one commented)-->
+    <!--<param name="timer-name" value="soft"/>-->
+
+    <!--Default dialplan and caller-id info -->
+    <param name="dialplan" value="XML"/>
+    <param name="cid-name" value="$${outbound_caller_name}"/>
+    <param name="cid-num" value="$${outbound_caller_id}"/>
+
+    <!--audio sample rate and interval -->
+    <param name="sample-rate" value="48000"/>
+    <param name="codec-ms" value="20"/>
+
+    <!--uncomment the following line to make mod_portaudio fail to load if it fails to find a device-->
+    <!-- <param name="unload-on-device-fail" value="true"/> -->
+  </settings>
+
+  <!-- 
+	mod_portaudio "streams"
+
+	The portaudio streams were introduced to support multiple devices and multiple channels in mod_portaudio.
+	For example, if you have a sound card that supports multiple channels or have multiple sound cards and you
+	want to use them at the same time, you can do it configuring streams and endpoints here.
+
+	A "stream" is just a logical container for some settings required by portaudio in order to stream audio and
+	define a friendly name for that configuration. Streams in itself do not do anything else than contain configs. 
+	Once you have your streams defined you can proceed to define "endpoints". Go to the "<endpoints>" section 
+	for more information on endpoints.
+
+	You can use the command "pa shstreams" (portaudio shared streams) to show the configured streams.
+  -->
+  <streams>
+  	<!--
+	In this example we define 2 streams, one for a usb audio device and another for the usual Mac defaults
+	The name="" attribute in the <stream> tag must uniquely identify the stream configuration and can be
+	later used when creating endpoints in the "instream" and "outstream" parameters of the endpoint.
+	-->
+
+	<!-- This sample "usb1" configuration was tested with a USB Griffin iMic device -->
+  	<stream name="usb1">
+		<!-- 
+			Which device to use for input in this stream 
+			The value for this parameter must be either in the form '#devno', 
+			for example '#2' for device number 2, or 'device-name', like 'iMic USB audio system'
+			The output of command "pa devlist" will show you device names and numbers as enumerated
+			by portaudio.
+		-->
+		<param name="indev" value="#2" />
+
+		<!-- 
+			Same as the indev but for output. In this case the device is capable of input and output
+			Some devices are capable of input only or output only (see the default example)
+	       	-->
+		<param name="outdev" value="#2" />
+
+		<!-- The sample rate to use for this stream -->
+		<param name="sample-rate" value="48000" />
+
+		<!-- 
+			Size of the packets in milliseconds. The smaller the number the less latency you'll have
+			The minimum value is 10ms 
+		-->
+		<param name="codec-ms" value="10" />
+
+		<!-- 
+			How many channels to open for this stream.
+			If you're device is stereo, you can choose 2 here. However, bear in mind that then
+			your left and right channels will be separated and when creating endpoints you will have
+			to either choose the left or right channel. This may or may not be what you want. This separation
+			means that you can have 2 separate FreeSWITCH calls, listening to one of them in your left channel
+			and the other in the right chanel.
+		-->
+		<param name="channels" value="2" />
+  	</stream>
+
+	<!-- This default stream was tested using the default Macbook Pro input/output devices -->
+  	<stream name="default">
+		<!-- The default system input device -->
+		<param name="indev" value="#0" />
+		<!-- The default system output device -->
+		<param name="outdev" value="#1" />
+		<!-- CD quality sampling rate ftw -->
+		<param name="sample-rate" value="48000" />
+		<!-- Low latency -->
+		<param name="codec-ms" value="10" />
+		<!-- Choosing 1 channel allows to hear in both left-right channel when using a headset -->
+		<param name="channels" value="1" />
+  	</stream>
+  </streams>
+
+  <!-- 
+	mod_portaudio "endpoints"
+
+	Endpoints is a way to define the input and output that a given portaudio channel will use.
+	There is a lot of flexibility. You can create endpoints which are "send-only", which means
+	audio will be read from FreeSWITCH and sent down to the provided stream, but no audio will
+	be read from that stream and only silence provided back to FreeSWITCH.
+
+		send-only endpoint:
+			(FS CORE) ->-> audio ->-> sound-card-x
+
+	You can also create a read-only endpoint.
+
+		read-only-endpoint:
+			(FS CORE) <-<- audio <-<- sound-card-x
+
+	And of course you can create a bidirectional endpoint:
+		bidirectional-endpoint:
+			(FS CORE) <-> audio <-> sound-card-x
+
+	You can also define a stream which uses only the left or only the right channel of a given device stream.
+	This means you can have 2 SIP calls connected to the same device haring one call in your left ear and
+	the other call to your right ear :-)
+
+	The name="parameter" of the endpoint allows you to use it in the FreeSWITCH dial plan to dial, ie:
+
+	<action application="bridge" data="portaudio/endpoint/usb1out-left" />
+
+	You can use the command "pa endpoints" to show the configured endpoints.
+  -->
+  <endpoints>
+
+	<!-- 
+		An endpoint is a handle name to refer to a configuration that determines where to read media from 
+		and write media to. The endpoint can use any input/output stream combination for that purpose as 
+		long as the streams match the sampling rate and codec-ms (see <streams> XML tag).
+		You can also omit the instream or the outstream parameter (but obviously not both).
+	-->
+
+	<!-- 
+		Configuration for a "default" bidirectional endpoint that uses the default stream defined previously in
+		the <streams> section.
+	 -->
+  	<endpoint name="default">
+		<!-- 
+			The instream, outstream is the name of the stream and channel to use. The stream
+			name is the same you configured in the <streams> section. This parameters follow 
+			the syntax <stream-name>:<channel index>. You can omit either the outstream
+			or the instream, but not both! The channel index is zero-based and must be consistent 
+			with the number of channels available for that stream (as configured in the <stream> section).
+			You cannot use index 1 if you chose channels=1 in the stream configuration.
+		-->
+		<param name="instream" value="default:0" />
+		<param name="outstream" value="default:0" />
+	</endpoint>
+
+	<!-- 
+		This endpoint uses the USB stream defined previously in the <streams> section and
+		is 'send-only' or 'output-only' and uses the channel index 0 (left channel in a stereo device) 
+	-->
+  	<endpoint name="usb1out-left">
+		<param name="outstream" value="usb1:0" />
+	</endpoint>
+
+	<!-- 
+		This endpoint uses the USB stream defined previously in the <streams> section and
+		is 'send-only' or 'output-only' and uses the channel index 1 (right channel in a stereo device) 
+	-->
+  	<endpoint name="usb1out-right">
+		<param name="outstream" value="usb1:1" />
+	</endpoint>
+
+	<!-- 
+		This endpoint uses the USB stream defined previously in the <streams> section and
+		is 'receive-only' or 'input-only' and uses the channel index 0 (left channel in a stereo device) 
+	-->
+  	<endpoint name="usb1in-left">
+		<param name="instream" value="usb1:0" />
+	</endpoint>
+
+	<!-- 
+		This endpoint uses the USB stream defined previously in the <streams> section and
+		is 'receive-only' or 'input-only' and uses the channel index 1 (right channel in a stereo device) 
+	-->
+  	<endpoint name="usb1in-right">
+		<param name="instream" value="usb1:1" />
+	</endpoint>
+
+	<!-- 
+		This endpoint uses the USB stream defined previously in the <streams> section and
+		is 'bidirectional' or 'send-receive' and uses the channel index 0 (left channel in a stereo device) 
+	-->
+  	<endpoint name="usb1-left">
+		<param name="instream" value="usb1:0" />
+		<param name="outstream" value="usb1:0" />
+	</endpoint>
+
+	<!-- 
+		This endpoint uses the USB stream defined previously in the <streams> section and
+		is 'bidirectional' or 'send-receive' and uses the channel index 1 (right channel in a stereo device) 
+	-->
+  	<endpoint name="usb1-right">
+		<param name="instream" value="usb1:1" />
+		<param name="outstream" value="usb1:1" />
+	</endpoint>
+
+  </endpoints>
+
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/pre_load_modules.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/pre_load_modules.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..620a6c1cd93b51e9b0933d197c3eadb5d2a0138e
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/pre_load_modules.conf.xml
@@ -0,0 +1,7 @@
+<configuration name="pre_load_modules.conf" description="Modules">
+  <modules>
+    <!-- Databases -->
+    <!-- <load module="mod_mariadb"/> -->
+    <load module="mod_pgsql"/>
+  </modules>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/presence_map.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/presence_map.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8a9d1dde5a144cdbfe3a9f38399a377feed5112a
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/presence_map.conf.xml
@@ -0,0 +1,7 @@
+<configuration name="presence_map.conf" description="PRESENCE MAP">
+  <domains>
+    <domain name="$${domain}">
+      <exten regex="3\d+" proto="conf"/>
+    </domain>
+  </domains>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/python.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/python.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d3a8fdc7558625a0a7ab456b644f56379324a479
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/python.conf.xml
@@ -0,0 +1,16 @@
+<configuration name="python.conf" description="PYTHON Configuration">
+  <settings>
+    <!--<param name="xml-handler-script" value="dp"/>-->
+    <!--<param name="xml-handler-bindings" value="dialplan"/>-->
+
+    <!--
+	The following options identifies a py module 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"/>-->
+    <!--<param name="startup-script" value="startup_script_2"/>-->
+
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/redis.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/redis.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1a1f474036e6abcbd751f8d692b11746c1e3ac29
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/redis.conf.xml
@@ -0,0 +1,7 @@
+<configuration name="redis.conf" description="mod_redis Configuration">
+  <settings>
+    <param name="host" value="localhost"/>
+    <param name="port" value="6379"/>
+    <param name="timeout" value="10000"/>
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/rss.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/rss.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f8c4f6d2b4f62f083d9c58ec0b7c2da0c91fa185
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/rss.conf.xml
@@ -0,0 +1,7 @@
+<configuration name="rss.conf" description="RSS Parser">
+  <feeds>
+    <!-- Just download the files to wherever and refer to them here -->
+    <!-- <feed name="Slash Dot">/home/rss/rss.rss</feed> -->
+    <!-- <feed name="News Forge">/home/rss/newsforge.rss</feed> -->
+  </feeds>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/rtmp.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/rtmp.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d5d278810e999b8b2e8f226352627d8784c4094e
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/rtmp.conf.xml
@@ -0,0 +1,17 @@
+<configuration name="rtmp.conf" description="RTMP Endpoint">
+  <profiles>
+	<profile name="default">
+		<settings>
+			<param name="bind-address" value="0.0.0.0:1935" />
+			<param name="context" value="public" />
+			<param name="dialplan" value="XML" />
+			<!-- If this is set to true, no unauthenticated inbound calls will be allowed -->
+			<param name="auth-calls" value="true" />
+			<!-- How much time should the clients buffer the media stream (miliseconds) -->
+			<param name="buffer-len" value="50" />
+			<!-- Sets the maximum size of outbound RTMP chunks -->
+			<param name="chunksize" value="512" />
+		</settings>
+	</profile>
+  </profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sangoma_codec.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sangoma_codec.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eed9d673e163b04b7a1f9e7e26ac907ca480a373
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sangoma_codec.conf.xml
@@ -0,0 +1,37 @@
+<configuration name="sangoma_codec.conf" description="Sangoma Codec Configuration">
+
+	<settings>
+		<!--
+		Comma separated list of codecs to register with FreeSWITCH, 
+		by default (if this parameter is not set) all available codecs are registered.
+		Valid codec values are: PCMU,PCMA,G729,G726-32,G722,GSM,G723,AMR,G7221,iLBC
+		If this parameter is not specified only G729 will be registered
+		<param name="register" value="all"/>
+		-->
+
+		<!-- 
+		List of codecs to not register with FreeSWITCH, by default this is empty,
+	        but you may want to not load PCMU and PCMA or may be others to not use your 
+	        resources in codecs that are done well and fast in software.	
+		<param name="noregister" value="PCMU,PCMA"/>
+		-->
+
+		<!--
+		Transcoding SOAP server URL. If you are installing the soap server (sngtc_server)
+		in the same box where FreeSWITCH, do not use this value, the default URL
+		that is hard-coded will work out of the box for local installations.
+		If you modify this value, you must configure your SOAP server (/etc/sngtc/sngtc_server.conf.xml)
+		to listen for HTTP requests on the same IP/port that you specify here.
+		<param name="soapserver" value="http://192.168.1.100:8080"/>
+		-->
+
+		<!--
+		RTP IP to use
+		By default, this module asks FreeSWITCH for the local ip address. However if you want to use a specific
+		IP address you can set it here.
+		<param name="rtpip" value="192.168.1.1"/>
+		-->
+	</settings>
+
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/shout.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/shout.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3f381e6278f5653c16260b2d27bd0e423fe787fa
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/shout.conf.xml
@@ -0,0 +1,8 @@
+<configuration name="shout.conf" description="mod shout config">
+  <settings>
+    <!-- Don't change these unless you are insane -->
+    <!--<param name="decoder" value="i586"/>-->
+    <!--<param name="volume" value=".1"/>-->
+    <!--<param name="outscale" value="8192"/>-->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/skinny.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/skinny.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6a878fcd7132d0a0b2cbf828fe9210a7239588f9
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/skinny.conf.xml
@@ -0,0 +1,6 @@
+<configuration name="skinny.conf" description="Skinny Endpoints">
+  <profiles>
+    <X-PRE-PROCESS cmd="include" data="../skinny_profiles/*.xml"/>
+  </profiles>
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/smpp.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/smpp.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d5b7c0d6fc7ede6714737c1d2884fb187b42d55a
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/smpp.conf.xml
@@ -0,0 +1,15 @@
+<configuration name="smpp.conf" description="SMPP client and server Gateway">
+  <gateways>
+    <gateway name="example.com">
+      <params>
+	<param name="host" value="example.com"/>
+	<param name="port" value="2775"/>
+	<param name="debug" value="1"/>
+	<param name="profile" value="default"/>
+	<param name="system_id" value="username"/>
+	<param name="password" value="password"/>
+	<param name="system_type" value="remote_smpp"/>
+      </params>
+    </gateway>
+  </gateways>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sms_flowroute.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sms_flowroute.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..43d1c3eb06f3a392ea02c29167ab02e91356edd0
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sms_flowroute.conf.xml
@@ -0,0 +1,13 @@
+<configuration name="sms_flowroute.conf" description="SMS_FLOWROUTE send configs">
+  <profiles>
+    <profile name="default">
+      <params>
+	<param name="host" value="https://api.flowroute.com/v2/messages"/>
+	<param name="debug" value="1"/>
+	<param name="port" value="8090"/>
+	<param name="access-key" value="ACCESS-KEY"/>
+	<param name="secret-key" value="SECRET-KEY"/>
+      </params>
+    </profile>
+  </profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sndfile.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sndfile.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d9e0cff75d83b88d8709185edd61413221b1e1ad
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sndfile.conf.xml
@@ -0,0 +1,9 @@
+<configuration name="sndfile.conf">
+	<settings>
+		<!-- Allow only these file extensions. Default: allow all sndfile provided extensions + FS custom extra -->
+		<!--
+		<param name="allowed-extensions" value="wav,raw,r8,r16"/>
+		-->
+	</settings>
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sofia.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sofia.conf.xml
index 24252d08ce3dcc83ff34959833068593501a9e3e..629a0019fa222df473e6e71bc1be78d2e0907296 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sofia.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/sofia.conf.xml
@@ -2,8 +2,19 @@
 
   <global_settings>
     <param name="log-level" value="0"/>
+    <!-- <param name="abort-on-empty-external-ip" value="true"/> -->
     <!-- <param name="auto-restart" value="false"/> -->
     <param name="debug-presence" value="0"/>
+    <!-- <param name="capture-server" value="udp:homer.domain.com:5060"/> -->
+    
+    <!-- 
+    	the new format for HEPv2/v3 and capture ID    
+	
+	protocol:host:port;hep=2;capture_id=200;
+
+    -->
+    
+    <!-- <param name="capture-server" value="udp:homer.domain.com:5060;hep=3;capture_id=100"/> -->
   </global_settings>
 
   <!--
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spandsp.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spandsp.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2471ca52ceca16ade6b5ae406756517ce38aacf0
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spandsp.conf.xml
@@ -0,0 +1,118 @@
+<configuration name="spandsp.conf" description="SpanDSP config">
+    <modem-settings>
+<!--
+    total-modems set to N will create that many soft-modems.  
+    If you use them with Hylafax you need the following for each one numbered 0..N:
+
+    1) A line like this in /etc/inittab:
+
+      f0:2345:respawn:/usr/lib/fax/faxgetty /dev/FS0
+
+    2) copy conf/config.FS0 to /var/spool/hylafax/etc (or wherver the appropriate dir is on your system)
+
+    Subsequent modem configs would incrment the 0 to 1 and so on.
+
+-->
+      <param name="total-modems" value="0"/>
+      <!-- Change the directory of the devices created from /dev. Needed if FS runs as non-root -->
+      <!-- <param name="directory" value="/dev/FS"/> -->
+
+      <!-- Default context and dialplan to use on inbound calls from the modems -->
+      <param name="context" value="default"/>
+      <param name="dialplan" value="XML"/>
+
+      <!-- Extra tracing for debugging -->
+      <param name="verbose" value="false"/>
+    </modem-settings>
+
+    <fax-settings>
+	<param name="use-ecm"		value="true"/>
+	<param name="verbose"		value="false"/>
+	<param name="disable-v17"	value="false"/>
+	<param name="ident"		value="SpanDSP Fax Ident"/>
+	<param name="header"		value="SpanDSP Fax Header"/>
+
+	<param name="spool-dir"		value="$${temp_dir}"/>
+	<param name="file-prefix"	value="faxrx"/>
+	<!-- How many packets to process before sending the re-invite on tx/rx -->
+	<!-- <param name="t38-rx-reinvite-packet-count" value="50"/> -->
+	<!-- <param name="t38-tx-reinvite-packet-count" value="100"/> -->
+    </fax-settings>
+
+    <descriptors>
+
+     <!-- These tones are defined in Annex to ITU Operational Bulletin No. 781 - 1.II.2003 -->
+     <!-- Various Tones Used in National Networks (According to ITU-T Recommendation E.180)(03/1998) -->
+
+     <!-- North America -->
+     <descriptor name="1">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="700" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="950" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="RING_TONE" description="North America ring">
+         <element freq1="440" freq2="480" min="1200" max="0"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="480" freq2="620" min="224" max="316"/>
+         <element freq1="0" freq2="0" min="168" max="352"/>
+         <element freq1="480" freq2="620" min="224" max="316"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="480" freq2="620" min="464" max="536"/>
+         <element freq1="0" freq2="0" min="464" max="572"/>
+         <element freq1="480" freq2="620" min="464" max="536"/>
+       </tone>
+     </descriptor>
+
+     <!-- United Kingdom -->
+     <descriptor name="44">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="500" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="950" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="400" freq2="0" min="368" max="416"/>
+         <element freq1="0" freq2="0" min="336" max="368"/>
+         <element freq1="400" freq2="0" min="256" max="288"/>
+         <element freq1="0" freq2="0" min="512" max="544"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="400" freq2="0" min="352" max="384"/>
+         <element freq1="0" freq2="0" min="352" max="384"/>
+         <element freq1="400" freq2="0" min="352" max="384"/>
+         <element freq1="0" freq2="0" min="352" max="384"/>
+       </tone>
+     </descriptor>
+
+     <!-- Germany -->
+     <descriptor name="49">
+       <tone name="CED_TONE">
+         <element freq1="2100" freq2="0" min="500" max="0"/>
+       </tone>
+       <tone name="SIT">
+         <element freq1="900" freq2="0" min="256" max="400"/>
+         <element freq1="1400" freq2="0" min="256" max="400"/>
+         <element freq1="1800" freq2="0" min="256" max="400"/>
+       </tone>
+       <tone name="REORDER_TONE">
+         <element freq1="425" freq2="0" min="224" max="272"/>
+         <element freq1="0" freq2="0" min="224" max="272"/>
+       </tone>
+       <tone name="BUSY_TONE">
+         <element freq1="425" freq2="0" min="464" max="516"/>
+         <element freq1="0" freq2="0" min="464" max="516"/>
+       </tone>
+     </descriptor>
+   </descriptors>
+
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spidermonkey.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spidermonkey.conf.xml
deleted file mode 100644
index dbd54a77114860c65266f6d130ebc3d80a9d7273..0000000000000000000000000000000000000000
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/spidermonkey.conf.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<configuration name="spidermonkey.conf" description="Spider Monkey JavaScript Plug-Ins">
-  <modules>
-    <load module="mod_spidermonkey_teletone"/>
-    <load module="mod_spidermonkey_core_db"/>
-    <load module="mod_spidermonkey_socket"/>
-    <load module="mod_spidermonkey_curl"/>
-    <!--<load module="mod_spidermonkey_odbc"/>-->
-  </modules>
-</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/switch.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/switch.conf.xml
index 03bc993372c51099a8e6be473473f510b82d7e5c..1ab77b45c65e16503c040e0cecd9573eb1155c47 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/switch.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/switch.conf.xml
@@ -13,72 +13,169 @@
     <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> 
-  
+  </cli-keybindings>
+
+  <default-ptimes>
+    <!-- Set this to override the 20ms assumption of various codecs in the sdp with no ptime defined -->
+    <!-- <codec name="G729" ptime="40"/> -->
+  </default-ptimes>
+
   <settings>
-    <!--Colorize the Console -->
+    <!-- Colorize the Console -->
     <param name="colorize-console" value="true"/>
-    <!--Most channels to allow at once -->
+
+    <!--Include full timestamps in dialplan logs -->
+    <param name="dialplan-timestamps" value="false"/>
+
+    <!-- Run the timer at 20ms by default and drop down as needed unless you set 1m-timer=true which was previous default -->
+    <!-- <param name="1ms-timer" value="true"/> -->
+
+    <!--
+        Set the Switch Name for HA environments.
+        When setting the switch name, it will override the system hostname for all DB and CURL requests
+        allowing cluster environments such as RHCS to have identical FreeSWITCH configurations but run
+        as different hostnames.
+    -->
+    <!-- <param name="switchname" value="freeswitch"/> -->
+    <!-- <param name="cpu-idle-smoothing-depth" value="30"/> -->
+
+
+    <!-- Maximum number of simultaneous DB handles open -->
+    <param name="max-db-handles" value="50"/>
+    <!-- Maximum number of seconds to wait for a new DB handle before failing -->
+    <param name="db-handle-timeout" value="10"/>
+
+    <!-- Minimum idle CPU before refusing calls -->
+    <!-- <param name="min-idle-cpu" value="25"/> -->
+
+    <!--
+        Max number of sessions to allow at any given time.
+
+        NOTICE: If you're driving 28 T1's in a single box you should set this to 644*2 or 1288
+        this will ensure you're able to use the entire DS3 without a problem.  Otherwise you'll
+        be 144 channels short of always filling that DS3 up which can translate into waste.
+    -->
     <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"/>-->
+
+    <!-- Set the core DEBUG level (0-10) -->
+    <!-- <param name="debug-level" value="10"/> -->
+
+    <!-- SQL Buffer length within rage of 32k to 10m -->
+    <!-- <param name="sql-buffer-len" value="1m"/> -->
+    <!-- Maximum SQL Buffer length must be greater than sql-buffer-len -->
+    <!-- <param name="max-sql-buffer-len" value="2m"/> -->
+
+    <!--
+         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"/> -->
+
     <!--
-         If you want to send out voicemail notifications via Windows you'll need to change the mailer-app
-         variable to the setting below:
-     
-       <param name="mailer-app" value="msmtp"/>
- 
-         Donot change mailer-app-args.
-         You will also need to download a sendmail clone for Windows (msmtp). This version works without issue:
-         http://msmtp.sourceforge.net/index.html. Download and copy the .exe to %winddir%\system32.
-         You'll need to create a small config file for smtp credentials (host name, authentication, tls, etc.) in
-         %USERPROFILE%\Application Data\ called "msmtprc.txt". Below is a sample copy of this file:
- 
-         ###################################
-         # The SMTP server of the provider.
-         account provider
-         host smtp.myisp.com
-         from john@myisp.com
-         auth login
-         user johndoe
-         password mypassword
- 
-         # Set a default account
-         account default : provider
-       ###################################
-         
- -->    
+        If you want to send out voicemail notifications via Windows you'll need to change the mailer-app
+        variable to the setting below:
+
+        <param name="mailer-app" value="msmtp"/>
+
+        Do not change mailer-app-args.
+        You will also need to download a sendmail clone for Windows (msmtp). This version works without issue:
+        http://msmtp.sourceforge.net/index.html. Download and copy the .exe to %winddir%\system32.
+        You'll need to create a small config file for smtp credentials (host name, authentication, tls, etc.) in
+        %USERPROFILE%\Application Data\ called "msmtprc.txt". Below is a sample copy of this file:
+
+        ###################################
+        # The SMTP server of the provider.
+        account provider
+        host smtp.myisp.com
+        from john@myisp.com
+        auth login
+        user johndoe
+        password mypassword
+
+        # Set a default account
+        account default : provider
+        ###################################
+
+    -->
+
     <param name="mailer-app" value="sendmail"/>
     <param name="mailer-app-args" value="-t"/>
     <param name="dump-cores" value="yes"/>
-    <!-- enable verbose-channel-events to dump every detail about a channel on every event  -->
-    <!--<param name="verbose-channel-events" value="no"/>-->
-    <!--RTP port range -->
-    <!--<param name="rtp-start-port" value="16384"/>-->
-    <!--<param name="rtp-end-port" value="32768"/>-->
+
+    <!-- Enable verbose channel events to include every detail about a channel on every event  -->
+    <!-- <param name="verbose-channel-events" value="no"/> -->
+
+    <!-- Enable clock nanosleep -->
+    <!-- <param name="enable-clock-nanosleep" value="true"/> -->
+
+    <!-- Enable monotonic timing -->
+    <!-- <param name="enable-monotonic-timing" value="true"/> -->
+
+    <!-- NEEDS DOCUMENTATION -->
+    <!-- <param name="enable-softtimer-timerfd" value="true"/> -->
+    <!-- <param name="enable-cond-yield" value="true"/> -->
+    <!-- <param name="enable-timer-matrix" value="true"/> -->
+    <!-- <param name="threaded-system-exec" value="true"/> -->
+    <!-- <param name="tipping-point" value="0"/> -->
+    <!-- <param name="timer-affinity" value="disabled"/> -->
+    <!-- NEEDS DOCUMENTATION -->
+
+    <!-- RTP port range -->
+    <param name="rtp-start-port" value="16384"/> 
+    <param name="rtp-end-port" value="24576"/>
+
+    <!-- Test each port to make sure it is not in use by some other process before allocating it to RTP -->
+    <!-- <param name="rtp-port-usage-robustness" value="true"/> -->
+
     <param name="rtp-enable-zrtp" value="true"/>
+
+    <!--
+         Store encryption keys for secure media in channel variables and call CDRs. Default: false.
+         WARNING: If true, anyone with CDR access can decrypt secure media!
+    -->
+    <!-- <param name="rtp-retain-crypto-keys" value="true"/> -->
+
+    <!-- <param name="core-db-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE'" /> -->
     <!-- <param name="core-db-dsn" value="dsn:username:password" /> -->
+    <!--
+         Allow to specify the sqlite db at a different location (In this example, move it to ramdrive for
+         better performance on most linux distro (note, you loose the data if you reboot))
+    -->
+    <param name="core-db-name" value="/dev/shm/core.db" /> 
+
+    <!-- The system will create all the db schemas automatically, set this to false to avoid this behaviour -->
+    <!-- <param name="auto-create-schemas" value="true"/> -->
+    <!-- <param name="auto-clear-sql" value="true"/> -->
+    <!-- <param name="enable-early-hangup" value="true"/> -->
+
+    <!-- <param name="core-dbtype" value="MSSQL"/> -->
+
+    <!-- Allow multiple registrations to the same account in the central registration table -->
+    <!-- <param name="multiple-registrations" value="true"/> -->
+
   </settings>
 
 </configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/syslog.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/syslog.conf.xml
index 636a12c8c1c8ce1d6db3cd3eb5bdd093f4c0076b..7a06e8f3b0b4ee645f1e6b873b0862b147a4d029 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/syslog.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/syslog.conf.xml
@@ -12,7 +12,7 @@
     <param name="facility" value="user"/>
     <param name="ident" value="freeswitch"/>
     <param name="loglevel" value="warning"/>
-	<!-- Uncomment the following line to log uuids in syslogs (when applicable) -->
-    <!-- <param name="uuid" value="true"/> -->
+    <!-- log uuids in syslogs -->
+    <param name="uuid" value="true"/>
   </settings>
 </configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/timezones.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/timezones.conf.xml
index 85c805ff25a0c7e9809848a4706d0940710ab56f..50bd7f376027f9e767310b88db207fe234bc3e7b 100644
--- a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/timezones.conf.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/timezones.conf.xml
@@ -13,19 +13,20 @@
 	<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/Cairo" value="EET-2" />
+	<zone name="Africa/Casablanca" value="WET0WEST,M3.5.0,M10.5.0/3" />
 	<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/El_Aaiun" value="WET0WEST,M3.5.0,M10.5.0/3" />
 	<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/Juba" value="EAT-3" />
 	<zone name="Africa/Kampala" value="EAT-3" />
 	<zone name="Africa/Khartoum" value="EAT-3" />
 	<zone name="Africa/Kigali" value="CAT-2" />
@@ -51,31 +52,33 @@
 	<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/Tunis" value="CET-1" />
 	<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/Adak" value="HST10HDT,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/Buenos_Aires" value="ART3" />
+	<zone name="America/Argentina/Catamarca" value="ART3" />
+	<zone name="America/Argentina/ComodRivadavia" value="ART3" />
+	<zone name="America/Argentina/Cordoba" value="ART3" />
+	<zone name="America/Argentina/Jujuy" value="ART3" />
+	<zone name="America/Argentina/La_Rioja" value="ART3" />
+	<zone name="America/Argentina/Mendoza" value="ART3" />
+	<zone name="America/Argentina/Rio_Gallegos" value="ART3" />
+	<zone name="America/Argentina/Salta" value="ART3" />
+	<zone name="America/Argentina/San_Juan" value="ART3" />
 	<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/Argentina/Tucuman" value="ART3" />
+	<zone name="America/Argentina/Ushuaia" value="ART3" />
 	<zone name="America/Aruba" value="AST4" />
-	<zone name="America/Asuncion" value="PYT4PYST,M10.3.0/0,M3.2.0/0" />
+	<zone name="America/Asuncion" value="PYT4PYST,M10.1.0/0,M3.4.0/0" />
 	<zone name="America/Atikokan" value="EST5" />
-	<zone name="America/Atka" value="HAST10HADT,M3.2.0,M11.1.0" />
+	<zone name="America/Atka" value="HST10HDT,M3.2.0,M11.1.0" />
 	<zone name="America/Bahia" value="BRT3" />
+	<zone name="America/Bahia_Banderas" value="CST6CDT,M4.1.0,M10.5.0" />
 	<zone name="America/Barbados" value="AST4" />
 	<zone name="America/Belem" value="BRT3" />
 	<zone name="America/Belize" value="CST6" />
@@ -83,20 +86,21 @@
 	<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/Buenos_Aires" value="ART3" />
 	<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/Campo_Grande" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
+	<zone name="America/Cancun" value="EST5" />
 	<zone name="America/Caracas" value="VET4:30" />
-	<zone name="America/Catamarca" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
+	<zone name="America/Catamarca" value="ART3" />
 	<zone name="America/Cayenne" value="GFT3" />
-	<zone name="America/Cayman" value="EST5" />
+	<zone name="America/Cayman" value="EST5EDT,M3.2.0,M11.1.0" />
 	<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/Cordoba" value="ART3" />
 	<zone name="America/Costa_Rica" value="CST6" />
-	<zone name="America/Cuiaba" value="AMT4AMST,M10.2.0/0,M2.3.0/0" />
+	<zone name="America/Creston" value="MST7" />
+	<zone name="America/Cuiaba" value="AMT4AMST,M10.3.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" />
@@ -107,56 +111,61 @@
 	<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/Ensenada" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="America/Fort_Nelson" value="MST7" />
 	<zone name="America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="America/Fortaleza" value="BRT3" />
 	<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/Goose_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="America/Grand_Turk" value="AST4" />
 	<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/Havana" value="CST5CDT,M3.2.0/0,M11.1.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/Indianapolis" 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/Jujuy" value="ART3" />
 	<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/Kralendijk" value="AST4" />
 	<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/Lower_Princes" value="AST4" />
 	<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/Matamoros" value="CST6CDT,M3.2.0,M11.1.0" />
 	<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/Mendoza" value="ART3" />
 	<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/Metlakatla" value="PST8" />
 	<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/Montevideo" value="UYT3" />
 	<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" />
@@ -164,31 +173,36 @@
 	<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/Beulah" value="CST6CDT,M3.2.0,M11.1.0" />
 	<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/Ojinaga" value="MST7MDT,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-au-Prince" value="EST5EDT,M3.2.0,M11.1.0" />
 	<zone name="America/Port_of_Spain" value="AST4" />
+	<zone name="America/Porto_Acre" value="ACT5" />
 	<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/Resolute" value="CST6CDT,M3.2.0,M11.1.0" />
 	<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/Rosario" value="ART3" />
+	<zone name="America/Santa_Isabel" value="PST8PDT,M4.1.0,M10.5.0" />
+	<zone name="America/Santarem" value="BRT3" />
+	<zone name="America/Santiago" value="CLT3" />
 	<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/Sao_Paulo" value="BRT3BRST,M10.3.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/Sitka" value="AKST9AKDT,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_Johns" value="NST3:30NDT,M3.2.0,M11.1.0" />
 	<zone name="America/St_Kitts" value="AST4" />
 	<zone name="America/St_Lucia" value="AST4" />
 	<zone name="America/St_Thomas" value="AST4" />
@@ -197,7 +211,7 @@
 	<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/Tijuana" value="PST8PDT,M3.2.0,M11.1.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" />
@@ -207,23 +221,25 @@
 	<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/Casey" value="AWST-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/Macquarie" value="MIST-11" />
+	<zone name="Antarctica/Mawson" value="MAWT-5" />
 	<zone name="Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
-	<zone name="Antarctica/Palmer" value="CLST" />
+	<zone name="Antarctica/Palmer" value="CLT3" />
 	<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/Troll" value="UTC0CEST-2,M3.5.0/1,M10.5.0/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/Amman" value="EEST" />
+	<zone name="Asia/Anadyr" value="ANAT-12" />
 	<zone name="Asia/Aqtau" value="AQTT-5" />
 	<zone name="Asia/Aqtobe" value="AQTT-5" />
 	<zone name="Asia/Ashgabat" value="TMT-5" />
@@ -236,62 +252,65 @@
 	<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/Chita" value="IRKT-8" />
+	<zone name="Asia/Choibalsan" value="CHOT-8CHOST,M3.5.6,M9.5.6/0" />
 	<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/Damascus" value="EET-2EEST,M3.5.5/0,M10.5.5/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/Gaza" value="EEST" />
 	<zone name="Asia/Harbin" value="CST-8" />
+	<zone name="Asia/Hebron" value="EEST" />
 	<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/Hovd" value="HOVT-7HOVST,M3.5.6,M9.5.6/0" />
+	<zone name="Asia/Irkutsk" value="IRKT-8" />
 	<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/Jakarta" value="WIB-7" />
+	<zone name="Asia/Jayapura" value="WIT-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/Kamchatka" value="PETT-12" />
 	<zone name="Asia/Karachi" value="PKT-5" />
-	<zone name="Asia/Kashgar" value="CST-8" />
+	<zone name="Asia/Kashgar" value="XJT-6" />
+	<zone name="Asia/Kathmandu" value="NPT-5:45" />
 	<zone name="Asia/Katmandu" value="NPT-5:45" />
+	<zone name="Asia/Khandyga" value="YAKT-9" />
 	<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/Krasnoyarsk" value="KRAT-7" />
 	<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/Magadan" value="MAGT-10" />
+	<zone name="Asia/Makassar" value="WITA-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/Novokuznetsk" value="KRAT-7" />
+	<zone name="Asia/Novosibirsk" value="NOVT-6" />
+	<zone name="Asia/Omsk" value="OMST-6" />
 	<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/Pontianak" value="WIB-7" />
+	<zone name="Asia/Pyongyang" value="KST-8:30" />
 	<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/Sakhalin" value="SAKT-10" />
 	<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/Srednekolymsk" value="SRET-11" />
 	<zone name="Asia/Taipei" value="CST-8" />
 	<zone name="Asia/Tashkent" value="UZT-5" />
 	<zone name="Asia/Tbilisi" value="GET-4" />
@@ -300,15 +319,16 @@
 	<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/Ujung_Pandang" value="WITA-8" />
+	<zone name="Asia/Ulaanbaatar" value="ULAT-8ULAST,M3.5.6,M9.5.6/0" />
+	<zone name="Asia/Ulan_Bator" value="ULAT-8ULAST,M3.5.6,M9.5.6/0" />
+	<zone name="Asia/Urumqi" value="XJT-6" />
+	<zone name="Asia/Ust-Nera" value="VLAT-10" />
 	<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="Asia/Vladivostok" value="VLAT-10" />
+	<zone name="Asia/Yakutsk" value="YAKT-9" />
+	<zone name="Asia/Yekaterinburg" value="YEKT-5" />
+	<zone name="Asia/Yerevan" value="AMT-4" />
 
 	<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" />
@@ -320,85 +340,101 @@
 	<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="Atlantic/Stanley" value="FKST3" />
 
-	<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="Australia/ACT" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/Adelaide" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/Brisbane" value="AEST-10" />
+	<zone name="Australia/Broken_Hill" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/Canberra" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/Currie" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/Darwin" value="ACST-9:30" />
+	<zone name="Australia/Eucla" value="ACWST-8:45" />
+	<zone name="Australia/Hobart" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/LHI" value="LHST-10:30LHDT-11,M10.1.0,M4.1.0" />
+	<zone name="Australia/Lindeman" value="AEST-10" />
+	<zone name="Australia/Lord_Howe" value="LHST-10:30LHDT-11,M10.1.0,M4.1.0" />
+	<zone name="Australia/Melbourne" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/NSW" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/North" value="ACST-9:30" />
+	<zone name="Australia/Perth" value="AWST-8" />
+	<zone name="Australia/Queensland" value="AEST-10" />
+	<zone name="Australia/South" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/Sydney" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/Tasmania" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/Victoria" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="Australia/West" value="AWST-8" />
+	<zone name="Australia/Yancowinna" value="ACST-9:30ACDT,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/East" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
 	<zone name="Brazil/West" value="AMT4" />
 
+	<zone name="CET" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+
+	<zone name="CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
+
 	<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/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
 	<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/Newfoundland" value="NST3:30NDT,M3.2.0,M11.1.0" />
 	<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="Chile/Continental" value="CLT3" />
+	<zone name="Chile/EasterIsland" value="EAST5" />
+
+	<zone name="Cuba" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
+
+	<zone name="EET" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+
+	<zone name="EST" value="EST5" />
+
+	<zone name="EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
+
+	<zone name="Egypt" value="EET-2" />
+
+	<zone name="Eire" value="GMT0IST,M3.5.0/1,M10.5.0" />
 
 	<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/GMT+1" value="&lt;GMT+1&gt;1" />
+	<zone name="Etc/GMT+10" value="&lt;GMT+10&gt;10" />
+	<zone name="Etc/GMT+11" value="&lt;GMT+11&gt;11" />
+	<zone name="Etc/GMT+12" value="&lt;GMT+12&gt;12" />
+	<zone name="Etc/GMT+2" value="&lt;GMT+2&gt;2" />
+	<zone name="Etc/GMT+3" value="&lt;GMT+3&gt;3" />
+	<zone name="Etc/GMT+4" value="&lt;GMT+4&gt;4" />
+	<zone name="Etc/GMT+5" value="&lt;GMT+5&gt;5" />
+	<zone name="Etc/GMT+6" value="&lt;GMT+6&gt;6" />
+	<zone name="Etc/GMT+7" value="&lt;GMT+7&gt;7" />
+	<zone name="Etc/GMT+8" value="&lt;GMT+8&gt;8" />
+	<zone name="Etc/GMT+9" value="&lt;GMT+9&gt;9" />
+	<zone name="Etc/GMT-0" value="GMT0" />
+	<zone name="Etc/GMT-1" value="&lt;GMT-1&gt;-1" />
+	<zone name="Etc/GMT-10" value="&lt;GMT-10&gt;-10" />
+	<zone name="Etc/GMT-11" value="&lt;GMT-11&gt;-11" />
+	<zone name="Etc/GMT-12" value="&lt;GMT-12&gt;-12" />
+	<zone name="Etc/GMT-13" value="&lt;GMT-13&gt;-13" />
+	<zone name="Etc/GMT-14" value="&lt;GMT-14&gt;-14" />
+	<zone name="Etc/GMT-2" value="&lt;GMT-2&gt;-2" />
+	<zone name="Etc/GMT-3" value="&lt;GMT-3&gt;-3" />
+	<zone name="Etc/GMT-4" value="&lt;GMT-4&gt;-4" />
+	<zone name="Etc/GMT-5" value="&lt;GMT-5&gt;-5" />
+	<zone name="Etc/GMT-6" value="&lt;GMT-6&gt;-6" />
+	<zone name="Etc/GMT-7" value="&lt;GMT-7&gt;-7" />
+	<zone name="Etc/GMT-8" value="&lt;GMT-8&gt;-8" />
+	<zone name="Etc/GMT-9" value="&lt;GMT-9&gt;-9" />
+	<zone name="Etc/GMT0" value="GMT0" />
 	<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/Universal" value="UTC0" />
 	<zone name="Etc/Zulu" value="UTC0" />
 
 	<zone name="Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
@@ -411,7 +447,8 @@
 	<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/Busingen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="Europe/Chisinau" value="EET-2EEST,M3.5.0,M10.5.0/3" />
 	<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" />
@@ -420,7 +457,7 @@
 	<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/Kaliningrad" value="EET-2" />
 	<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" />
@@ -429,9 +466,9 @@
 	<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/Minsk" value="MSK-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/Moscow" value="MSK-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" />
@@ -439,27 +476,47 @@
 	<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/Samara" value="SAMT-4" />
 	<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/Simferopol" value="MSK-3" />
 	<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/Tiraspol" value="EET-2EEST,M3.5.0,M10.5.0/3" />
 	<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/Volgograd" value="MSK-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="GB" value="GMT0BST,M3.5.0/1,M10.5.0" />
+
+	<zone name="GB-Eire" value="GMT0BST,M3.5.0/1,M10.5.0" />
+
+	<zone name="GMT" value="GMT0" />
+
+	<zone name="GMT+0" value="GMT0" />
+
+	<zone name="GMT-0" value="GMT0" />
+
+	<zone name="GMT0" value="GMT0" />
+
+	<zone name="Greenwich" value="GMT0" />
+
+	<zone name="HST" value="HST10" />
+
+	<zone name="Hongkong" value="HKT-8" />
+
+	<zone name="Iceland" value="GMT0" />
+
 	<zone name="Indian/Antananarivo" value="EAT-3" />
 	<zone name="Indian/Chagos" value="IOT-6" />
 	<zone name="Indian/Christmas" value="CXT-7" />
@@ -472,22 +529,48 @@
 	<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="Iran" value="IRDT" />
+
+	<zone name="Israel" value="IDDT" />
+
+	<zone name="Jamaica" value="EST5" />
+
+	<zone name="Japan" value="JST-9" />
+
+	<zone name="Kwajalein" value="MHT-12" />
+
+	<zone name="Libya" value="EET-2" />
+
+	<zone name="MET" value="MET-1MEST,M3.5.0,M10.5.0/3" />
+
+	<zone name="MST" value="MST7" />
+
+	<zone name="MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
+
+	<zone name="Mexico/BajaNorte" value="PST8PDT,M3.2.0,M11.1.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="NZ" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+
+	<zone name="NZ-CHAT" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
+
+	<zone name="Navajo" value="MST7MDT,M3.2.0,M11.1.0" />
 
-	<zone name="Pacific/Apia" value="WST11" />
+	<zone name="PRC" value="CST-8" />
+
+	<zone name="PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
+
+	<zone name="Pacific/Apia" value="WSST-13WSDT,M9.5.0/3,M4.1.0/4" />
 	<zone name="Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="Pacific/Bougainville" value="BST-11" />
 	<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/Chuuk" value="CHUT-10" />
+	<zone name="Pacific/Easter" value="EAST5" />
 	<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/Fakaofo" value="TKT-13" />
+	<zone name="Pacific/Fiji" value="FJT-12FJST,M11.1.0,M1.3.0/3" />
 	<zone name="Pacific/Funafuti" value="TVT-12" />
 	<zone name="Pacific/Galapagos" value="GALT6" />
 	<zone name="Pacific/Gambier" value="GAMT9" />
@@ -503,11 +586,12 @@
 	<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/Norfolk" value="NFT-11" />
 	<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/Pohnpei" value="PONT-11" />
 	<zone name="Pacific/Ponape" value="PONT-11" />
 	<zone name="Pacific/Port_Moresby" value="PGT-10" />
 	<zone name="Pacific/Rarotonga" value="CKT10" />
@@ -516,36 +600,1217 @@
 	<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/Truk" value="CHUT-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="Pacific/Yap" value="CHUT-10" />
+
+	<zone name="Poland" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+
+	<zone name="Portugal" value="WET0WEST,M3.5.0/1,M10.5.0" />
+
+	<zone name="ROC" value="CST-8" />
+
+	<zone name="ROK" value="KST-9" />
+
+	<zone name="Singapore" value="SGT-8" />
+
+	<zone name="Turkey" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+
+	<zone name="UCT" value="UCT0" />
 
 	<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/Aleutian" value="HST10HDT,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/Eastern" 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/Pacific-New" value="PST8PDT,M3.2.0,M11.1.0" />
 	<zone name="US/Samoa" value="SST11" />
+
+	<zone name="UTC" value="UTC0" />
+
+	<zone name="Universal" value="UTC0" />
+
+	<zone name="W-SU" value="MSK-3" />
+
+	<zone name="WET" value="WET0WEST,M3.5.0/1,M10.5.0" />
+
+	<zone name="Zulu" value="UTC0" />
+
+	<zone name="posix/Africa/Abidjan" value="GMT0" />
+	<zone name="posix/Africa/Accra" value="GMT0" />
+	<zone name="posix/Africa/Addis_Ababa" value="EAT-3" />
+	<zone name="posix/Africa/Algiers" value="CET-1" />
+	<zone name="posix/Africa/Asmara" value="EAT-3" />
+	<zone name="posix/Africa/Asmera" value="EAT-3" />
+	<zone name="posix/Africa/Bamako" value="GMT0" />
+	<zone name="posix/Africa/Bangui" value="WAT-1" />
+	<zone name="posix/Africa/Banjul" value="GMT0" />
+	<zone name="posix/Africa/Bissau" value="GMT0" />
+	<zone name="posix/Africa/Blantyre" value="CAT-2" />
+	<zone name="posix/Africa/Brazzaville" value="WAT-1" />
+	<zone name="posix/Africa/Bujumbura" value="CAT-2" />
+	<zone name="posix/Africa/Cairo" value="EET-2" />
+	<zone name="posix/Africa/Casablanca" value="WET0WEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Africa/Conakry" value="GMT0" />
+	<zone name="posix/Africa/Dakar" value="GMT0" />
+	<zone name="posix/Africa/Dar_es_Salaam" value="EAT-3" />
+	<zone name="posix/Africa/Djibouti" value="EAT-3" />
+	<zone name="posix/Africa/Douala" value="WAT-1" />
+	<zone name="posix/Africa/El_Aaiun" value="WET0WEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Africa/Freetown" value="GMT0" />
+	<zone name="posix/Africa/Gaborone" value="CAT-2" />
+	<zone name="posix/Africa/Harare" value="CAT-2" />
+	<zone name="posix/Africa/Johannesburg" value="SAST-2" />
+	<zone name="posix/Africa/Juba" value="EAT-3" />
+	<zone name="posix/Africa/Kampala" value="EAT-3" />
+	<zone name="posix/Africa/Khartoum" value="EAT-3" />
+	<zone name="posix/Africa/Kigali" value="CAT-2" />
+	<zone name="posix/Africa/Kinshasa" value="WAT-1" />
+	<zone name="posix/Africa/Lagos" value="WAT-1" />
+	<zone name="posix/Africa/Libreville" value="WAT-1" />
+	<zone name="posix/Africa/Lome" value="GMT0" />
+	<zone name="posix/Africa/Luanda" value="WAT-1" />
+	<zone name="posix/Africa/Lubumbashi" value="CAT-2" />
+	<zone name="posix/Africa/Lusaka" value="CAT-2" />
+	<zone name="posix/Africa/Malabo" value="WAT-1" />
+	<zone name="posix/Africa/Maputo" value="CAT-2" />
+	<zone name="posix/Africa/Maseru" value="SAST-2" />
+	<zone name="posix/Africa/Mbabane" value="SAST-2" />
+	<zone name="posix/Africa/Mogadishu" value="EAT-3" />
+	<zone name="posix/Africa/Monrovia" value="GMT0" />
+	<zone name="posix/Africa/Nairobi" value="EAT-3" />
+	<zone name="posix/Africa/Ndjamena" value="WAT-1" />
+	<zone name="posix/Africa/Niamey" value="WAT-1" />
+	<zone name="posix/Africa/Nouakchott" value="GMT0" />
+	<zone name="posix/Africa/Ouagadougou" value="GMT0" />
+	<zone name="posix/Africa/Porto-Novo" value="WAT-1" />
+	<zone name="posix/Africa/Sao_Tome" value="GMT0" />
+	<zone name="posix/Africa/Timbuktu" value="GMT0" />
+	<zone name="posix/Africa/Tripoli" value="EET-2" />
+	<zone name="posix/Africa/Tunis" value="CET-1" />
+	<zone name="posix/Africa/Windhoek" value="WAT-1WAST,M9.1.0,M4.1.0" />
+	<zone name="posix/America/Adak" value="HST10HDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Anchorage" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Anguilla" value="AST4" />
+	<zone name="posix/America/Antigua" value="AST4" />
+	<zone name="posix/America/Araguaina" value="BRT3" />
+	<zone name="posix/America/Argentina/Buenos_Aires" value="ART3" />
+	<zone name="posix/America/Argentina/Catamarca" value="ART3" />
+	<zone name="posix/America/Argentina/ComodRivadavia" value="ART3" />
+	<zone name="posix/America/Argentina/Cordoba" value="ART3" />
+	<zone name="posix/America/Argentina/Jujuy" value="ART3" />
+	<zone name="posix/America/Argentina/La_Rioja" value="ART3" />
+	<zone name="posix/America/Argentina/Mendoza" value="ART3" />
+	<zone name="posix/America/Argentina/Rio_Gallegos" value="ART3" />
+	<zone name="posix/America/Argentina/Salta" value="ART3" />
+	<zone name="posix/America/Argentina/San_Juan" value="ART3" />
+	<zone name="posix/America/Argentina/San_Luis" value="ART3" />
+	<zone name="posix/America/Argentina/Tucuman" value="ART3" />
+	<zone name="posix/America/Argentina/Ushuaia" value="ART3" />
+	<zone name="posix/America/Aruba" value="AST4" />
+	<zone name="posix/America/Asuncion" value="PYT4PYST,M10.1.0/0,M3.4.0/0" />
+	<zone name="posix/America/Atikokan" value="EST5" />
+	<zone name="posix/America/Atka" value="HST10HDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Bahia" value="BRT3" />
+	<zone name="posix/America/Bahia_Banderas" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="posix/America/Barbados" value="AST4" />
+	<zone name="posix/America/Belem" value="BRT3" />
+	<zone name="posix/America/Belize" value="CST6" />
+	<zone name="posix/America/Blanc-Sablon" value="AST4" />
+	<zone name="posix/America/Boa_Vista" value="AMT4" />
+	<zone name="posix/America/Bogota" value="COT5" />
+	<zone name="posix/America/Boise" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Buenos_Aires" value="ART3" />
+	<zone name="posix/America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Campo_Grande" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
+	<zone name="posix/America/Cancun" value="EST5" />
+	<zone name="posix/America/Caracas" value="VET4:30" />
+	<zone name="posix/America/Catamarca" value="ART3" />
+	<zone name="posix/America/Cayenne" value="GFT3" />
+	<zone name="posix/America/Cayman" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Chicago" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Chihuahua" value="MST7MDT,M4.1.0,M10.5.0" />
+	<zone name="posix/America/Coral_Harbour" value="EST5" />
+	<zone name="posix/America/Cordoba" value="ART3" />
+	<zone name="posix/America/Costa_Rica" value="CST6" />
+	<zone name="posix/America/Creston" value="MST7" />
+	<zone name="posix/America/Cuiaba" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
+	<zone name="posix/America/Curacao" value="AST4" />
+	<zone name="posix/America/Danmarkshavn" value="GMT0" />
+	<zone name="posix/America/Dawson" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Dawson_Creek" value="MST7" />
+	<zone name="posix/America/Denver" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Detroit" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Dominica" value="AST4" />
+	<zone name="posix/America/Edmonton" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Eirunepe" value="ACT5" />
+	<zone name="posix/America/El_Salvador" value="CST6" />
+	<zone name="posix/America/Ensenada" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Fort_Nelson" value="MST7" />
+	<zone name="posix/America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Fortaleza" value="BRT3" />
+	<zone name="posix/America/Glace_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Godthab" value="WGST" />
+	<zone name="posix/America/Goose_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Grand_Turk" value="AST4" />
+	<zone name="posix/America/Grenada" value="AST4" />
+	<zone name="posix/America/Guadeloupe" value="AST4" />
+	<zone name="posix/America/Guatemala" value="CST6" />
+	<zone name="posix/America/Guayaquil" value="ECT5" />
+	<zone name="posix/America/Guyana" value="GYT4" />
+	<zone name="posix/America/Halifax" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Havana" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
+	<zone name="posix/America/Hermosillo" value="MST7" />
+	<zone name="posix/America/Indiana/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Indiana/Knox" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Indiana/Marengo" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Indiana/Petersburg" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Indiana/Tell_City" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Indiana/Vevay" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Indiana/Vincennes" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Indiana/Winamac" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Inuvik" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Iqaluit" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Jamaica" value="EST5" />
+	<zone name="posix/America/Jujuy" value="ART3" />
+	<zone name="posix/America/Juneau" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Kentucky/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Kentucky/Monticello" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Knox_IN" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Kralendijk" value="AST4" />
+	<zone name="posix/America/La_Paz" value="BOT4" />
+	<zone name="posix/America/Lima" value="PET5" />
+	<zone name="posix/America/Los_Angeles" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Lower_Princes" value="AST4" />
+	<zone name="posix/America/Maceio" value="BRT3" />
+	<zone name="posix/America/Managua" value="CST6" />
+	<zone name="posix/America/Manaus" value="AMT4" />
+	<zone name="posix/America/Marigot" value="AST4" />
+	<zone name="posix/America/Martinique" value="AST4" />
+	<zone name="posix/America/Matamoros" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" />
+	<zone name="posix/America/Mendoza" value="ART3" />
+	<zone name="posix/America/Menominee" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Merida" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="posix/America/Metlakatla" value="PST8" />
+	<zone name="posix/America/Mexico_City" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="posix/America/Miquelon" value="PMST3PMDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Moncton" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Monterrey" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="posix/America/Montevideo" value="UYT3" />
+	<zone name="posix/America/Montreal" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Montserrat" value="AST4" />
+	<zone name="posix/America/Nassau" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/New_York" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Nipigon" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Nome" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Noronha" value="FNT2" />
+	<zone name="posix/America/North_Dakota/Beulah" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/North_Dakota/Center" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/North_Dakota/New_Salem" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Ojinaga" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Panama" value="EST5" />
+	<zone name="posix/America/Pangnirtung" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Paramaribo" value="SRT3" />
+	<zone name="posix/America/Phoenix" value="MST7" />
+	<zone name="posix/America/Port-au-Prince" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Port_of_Spain" value="AST4" />
+	<zone name="posix/America/Porto_Acre" value="ACT5" />
+	<zone name="posix/America/Porto_Velho" value="AMT4" />
+	<zone name="posix/America/Puerto_Rico" value="AST4" />
+	<zone name="posix/America/Rainy_River" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Rankin_Inlet" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Recife" value="BRT3" />
+	<zone name="posix/America/Regina" value="CST6" />
+	<zone name="posix/America/Resolute" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Rio_Branco" value="ACT5" />
+	<zone name="posix/America/Rosario" value="ART3" />
+	<zone name="posix/America/Santa_Isabel" value="PST8PDT,M4.1.0,M10.5.0" />
+	<zone name="posix/America/Santarem" value="BRT3" />
+	<zone name="posix/America/Santiago" value="CLT3" />
+	<zone name="posix/America/Santo_Domingo" value="AST4" />
+	<zone name="posix/America/Sao_Paulo" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
+	<zone name="posix/America/Scoresbysund" value="EGT1EGST,M3.5.0/0,M10.5.0/1" />
+	<zone name="posix/America/Shiprock" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Sitka" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/St_Barthelemy" value="AST4" />
+	<zone name="posix/America/St_Johns" value="NST3:30NDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/St_Kitts" value="AST4" />
+	<zone name="posix/America/St_Lucia" value="AST4" />
+	<zone name="posix/America/St_Thomas" value="AST4" />
+	<zone name="posix/America/St_Vincent" value="AST4" />
+	<zone name="posix/America/Swift_Current" value="CST6" />
+	<zone name="posix/America/Tegucigalpa" value="CST6" />
+	<zone name="posix/America/Thule" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Thunder_Bay" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Tijuana" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Toronto" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Tortola" value="AST4" />
+	<zone name="posix/America/Vancouver" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Virgin" value="AST4" />
+	<zone name="posix/America/Whitehorse" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Winnipeg" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Yakutat" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="posix/America/Yellowknife" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Antarctica/Casey" value="AWST-8" />
+	<zone name="posix/Antarctica/Davis" value="DAVT-7" />
+	<zone name="posix/Antarctica/DumontDUrville" value="DDUT-10" />
+	<zone name="posix/Antarctica/Macquarie" value="MIST-11" />
+	<zone name="posix/Antarctica/Mawson" value="MAWT-5" />
+	<zone name="posix/Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="posix/Antarctica/Palmer" value="CLT3" />
+	<zone name="posix/Antarctica/Rothera" value="ROTT3" />
+	<zone name="posix/Antarctica/South_Pole" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="posix/Antarctica/Syowa" value="SYOT-3" />
+	<zone name="posix/Antarctica/Troll" value="UTC0CEST-2,M3.5.0/1,M10.5.0/3" />
+	<zone name="posix/Antarctica/Vostok" value="VOST-6" />
+	<zone name="posix/Arctic/Longyearbyen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Asia/Aden" value="AST-3" />
+	<zone name="posix/Asia/Almaty" value="ALMT-6" />
+	<zone name="posix/Asia/Amman" value="EEST" />
+	<zone name="posix/Asia/Anadyr" value="ANAT-12" />
+	<zone name="posix/Asia/Aqtau" value="AQTT-5" />
+	<zone name="posix/Asia/Aqtobe" value="AQTT-5" />
+	<zone name="posix/Asia/Ashgabat" value="TMT-5" />
+	<zone name="posix/Asia/Ashkhabad" value="TMT-5" />
+	<zone name="posix/Asia/Baghdad" value="AST-3" />
+	<zone name="posix/Asia/Bahrain" value="AST-3" />
+	<zone name="posix/Asia/Baku" value="AZT-4AZST,M3.5.0/4,M10.5.0/5" />
+	<zone name="posix/Asia/Bangkok" value="ICT-7" />
+	<zone name="posix/Asia/Beirut" value="EET-2EEST,M3.5.0/0,M10.5.0/0" />
+	<zone name="posix/Asia/Bishkek" value="KGT-6" />
+	<zone name="posix/Asia/Brunei" value="BNT-8" />
+	<zone name="posix/Asia/Calcutta" value="IST-5:30" />
+	<zone name="posix/Asia/Chita" value="IRKT-8" />
+	<zone name="posix/Asia/Choibalsan" value="CHOT-8CHOST,M3.5.6,M9.5.6/0" />
+	<zone name="posix/Asia/Chongqing" value="CST-8" />
+	<zone name="posix/Asia/Chungking" value="CST-8" />
+	<zone name="posix/Asia/Colombo" value="IST-5:30" />
+	<zone name="posix/Asia/Dacca" value="BDT-6" />
+	<zone name="posix/Asia/Damascus" value="EET-2EEST,M3.5.5/0,M10.5.5/0" />
+	<zone name="posix/Asia/Dhaka" value="BDT-6" />
+	<zone name="posix/Asia/Dili" value="TLT-9" />
+	<zone name="posix/Asia/Dubai" value="GST-4" />
+	<zone name="posix/Asia/Dushanbe" value="TJT-5" />
+	<zone name="posix/Asia/Gaza" value="EEST" />
+	<zone name="posix/Asia/Harbin" value="CST-8" />
+	<zone name="posix/Asia/Hebron" value="EEST" />
+	<zone name="posix/Asia/Ho_Chi_Minh" value="ICT-7" />
+	<zone name="posix/Asia/Hong_Kong" value="HKT-8" />
+	<zone name="posix/Asia/Hovd" value="HOVT-7HOVST,M3.5.6,M9.5.6/0" />
+	<zone name="posix/Asia/Irkutsk" value="IRKT-8" />
+	<zone name="posix/Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Asia/Jakarta" value="WIB-7" />
+	<zone name="posix/Asia/Jayapura" value="WIT-9" />
+	<zone name="posix/Asia/Jerusalem" value="IDDT" />
+	<zone name="posix/Asia/Kabul" value="AFT-4:30" />
+	<zone name="posix/Asia/Kamchatka" value="PETT-12" />
+	<zone name="posix/Asia/Karachi" value="PKT-5" />
+	<zone name="posix/Asia/Kashgar" value="XJT-6" />
+	<zone name="posix/Asia/Kathmandu" value="NPT-5:45" />
+	<zone name="posix/Asia/Katmandu" value="NPT-5:45" />
+	<zone name="posix/Asia/Khandyga" value="YAKT-9" />
+	<zone name="posix/Asia/Kolkata" value="IST-5:30" />
+	<zone name="posix/Asia/Krasnoyarsk" value="KRAT-7" />
+	<zone name="posix/Asia/Kuala_Lumpur" value="MYT-8" />
+	<zone name="posix/Asia/Kuching" value="MYT-8" />
+	<zone name="posix/Asia/Kuwait" value="AST-3" />
+	<zone name="posix/Asia/Macao" value="CST-8" />
+	<zone name="posix/Asia/Macau" value="CST-8" />
+	<zone name="posix/Asia/Magadan" value="MAGT-10" />
+	<zone name="posix/Asia/Makassar" value="WITA-8" />
+	<zone name="posix/Asia/Manila" value="PHT-8" />
+	<zone name="posix/Asia/Muscat" value="GST-4" />
+	<zone name="posix/Asia/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Asia/Novokuznetsk" value="KRAT-7" />
+	<zone name="posix/Asia/Novosibirsk" value="NOVT-6" />
+	<zone name="posix/Asia/Omsk" value="OMST-6" />
+	<zone name="posix/Asia/Oral" value="ORAT-5" />
+	<zone name="posix/Asia/Phnom_Penh" value="ICT-7" />
+	<zone name="posix/Asia/Pontianak" value="WIB-7" />
+	<zone name="posix/Asia/Pyongyang" value="KST-8:30" />
+	<zone name="posix/Asia/Qatar" value="AST-3" />
+	<zone name="posix/Asia/Qyzylorda" value="QYZT-6" />
+	<zone name="posix/Asia/Rangoon" value="MMT-6:30" />
+	<zone name="posix/Asia/Riyadh" value="AST-3" />
+	<zone name="posix/Asia/Saigon" value="ICT-7" />
+	<zone name="posix/Asia/Sakhalin" value="SAKT-10" />
+	<zone name="posix/Asia/Samarkand" value="UZT-5" />
+	<zone name="posix/Asia/Seoul" value="KST-9" />
+	<zone name="posix/Asia/Shanghai" value="CST-8" />
+	<zone name="posix/Asia/Singapore" value="SGT-8" />
+	<zone name="posix/Asia/Srednekolymsk" value="SRET-11" />
+	<zone name="posix/Asia/Taipei" value="CST-8" />
+	<zone name="posix/Asia/Tashkent" value="UZT-5" />
+	<zone name="posix/Asia/Tbilisi" value="GET-4" />
+	<zone name="posix/Asia/Tehran" value="IRDT" />
+	<zone name="posix/Asia/Tel_Aviv" value="IDDT" />
+	<zone name="posix/Asia/Thimbu" value="BTT-6" />
+	<zone name="posix/Asia/Thimphu" value="BTT-6" />
+	<zone name="posix/Asia/Tokyo" value="JST-9" />
+	<zone name="posix/Asia/Ujung_Pandang" value="WITA-8" />
+	<zone name="posix/Asia/Ulaanbaatar" value="ULAT-8ULAST,M3.5.6,M9.5.6/0" />
+	<zone name="posix/Asia/Ulan_Bator" value="ULAT-8ULAST,M3.5.6,M9.5.6/0" />
+	<zone name="posix/Asia/Urumqi" value="XJT-6" />
+	<zone name="posix/Asia/Ust-Nera" value="VLAT-10" />
+	<zone name="posix/Asia/Vientiane" value="ICT-7" />
+	<zone name="posix/Asia/Vladivostok" value="VLAT-10" />
+	<zone name="posix/Asia/Yakutsk" value="YAKT-9" />
+	<zone name="posix/Asia/Yekaterinburg" value="YEKT-5" />
+	<zone name="posix/Asia/Yerevan" value="AMT-4" />
+	<zone name="posix/Atlantic/Azores" value="AZOT1AZOST,M3.5.0/0,M10.5.0/1" />
+	<zone name="posix/Atlantic/Bermuda" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="posix/Atlantic/Canary" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Atlantic/Cape_Verde" value="CVT1" />
+	<zone name="posix/Atlantic/Faeroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Atlantic/Faroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Atlantic/Jan_Mayen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Atlantic/Madeira" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Atlantic/Reykjavik" value="GMT0" />
+	<zone name="posix/Atlantic/South_Georgia" value="GST2" />
+	<zone name="posix/Atlantic/St_Helena" value="GMT0" />
+	<zone name="posix/Atlantic/Stanley" value="FKST3" />
+	<zone name="posix/Australia/ACT" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/Adelaide" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/Brisbane" value="AEST-10" />
+	<zone name="posix/Australia/Broken_Hill" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/Canberra" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/Currie" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/Darwin" value="ACST-9:30" />
+	<zone name="posix/Australia/Eucla" value="ACWST-8:45" />
+	<zone name="posix/Australia/Hobart" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/LHI" value="LHST-10:30LHDT-11,M10.1.0,M4.1.0" />
+	<zone name="posix/Australia/Lindeman" value="AEST-10" />
+	<zone name="posix/Australia/Lord_Howe" value="LHST-10:30LHDT-11,M10.1.0,M4.1.0" />
+	<zone name="posix/Australia/Melbourne" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/NSW" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/North" value="ACST-9:30" />
+	<zone name="posix/Australia/Perth" value="AWST-8" />
+	<zone name="posix/Australia/Queensland" value="AEST-10" />
+	<zone name="posix/Australia/South" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/Sydney" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/Tasmania" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/Victoria" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Australia/West" value="AWST-8" />
+	<zone name="posix/Australia/Yancowinna" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="posix/Brazil/Acre" value="ACT5" />
+	<zone name="posix/Brazil/DeNoronha" value="FNT2" />
+	<zone name="posix/Brazil/East" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
+	<zone name="posix/Brazil/West" value="AMT4" />
+	<zone name="posix/CET" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Canada/Atlantic" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="posix/Canada/Central" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Canada/East-Saskatchewan" value="CST6" />
+	<zone name="posix/Canada/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Canada/Newfoundland" value="NST3:30NDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Canada/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Canada/Saskatchewan" value="CST6" />
+	<zone name="posix/Canada/Yukon" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Chile/Continental" value="CLT3" />
+	<zone name="posix/Chile/EasterIsland" value="EAST5" />
+	<zone name="posix/Cuba" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
+	<zone name="posix/EET" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/EST" value="EST5" />
+	<zone name="posix/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Egypt" value="EET-2" />
+	<zone name="posix/Eire" value="GMT0IST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Etc/GMT" value="GMT0" />
+	<zone name="posix/Etc/GMT+0" value="GMT0" />
+	<zone name="posix/Etc/GMT+1" value="&lt;GMT+1&gt;1" />
+	<zone name="posix/Etc/GMT+10" value="&lt;GMT+10&gt;10" />
+	<zone name="posix/Etc/GMT+11" value="&lt;GMT+11&gt;11" />
+	<zone name="posix/Etc/GMT+12" value="&lt;GMT+12&gt;12" />
+	<zone name="posix/Etc/GMT+2" value="&lt;GMT+2&gt;2" />
+	<zone name="posix/Etc/GMT+3" value="&lt;GMT+3&gt;3" />
+	<zone name="posix/Etc/GMT+4" value="&lt;GMT+4&gt;4" />
+	<zone name="posix/Etc/GMT+5" value="&lt;GMT+5&gt;5" />
+	<zone name="posix/Etc/GMT+6" value="&lt;GMT+6&gt;6" />
+	<zone name="posix/Etc/GMT+7" value="&lt;GMT+7&gt;7" />
+	<zone name="posix/Etc/GMT+8" value="&lt;GMT+8&gt;8" />
+	<zone name="posix/Etc/GMT+9" value="&lt;GMT+9&gt;9" />
+	<zone name="posix/Etc/GMT-0" value="GMT0" />
+	<zone name="posix/Etc/GMT-1" value="&lt;GMT-1&gt;-1" />
+	<zone name="posix/Etc/GMT-10" value="&lt;GMT-10&gt;-10" />
+	<zone name="posix/Etc/GMT-11" value="&lt;GMT-11&gt;-11" />
+	<zone name="posix/Etc/GMT-12" value="&lt;GMT-12&gt;-12" />
+	<zone name="posix/Etc/GMT-13" value="&lt;GMT-13&gt;-13" />
+	<zone name="posix/Etc/GMT-14" value="&lt;GMT-14&gt;-14" />
+	<zone name="posix/Etc/GMT-2" value="&lt;GMT-2&gt;-2" />
+	<zone name="posix/Etc/GMT-3" value="&lt;GMT-3&gt;-3" />
+	<zone name="posix/Etc/GMT-4" value="&lt;GMT-4&gt;-4" />
+	<zone name="posix/Etc/GMT-5" value="&lt;GMT-5&gt;-5" />
+	<zone name="posix/Etc/GMT-6" value="&lt;GMT-6&gt;-6" />
+	<zone name="posix/Etc/GMT-7" value="&lt;GMT-7&gt;-7" />
+	<zone name="posix/Etc/GMT-8" value="&lt;GMT-8&gt;-8" />
+	<zone name="posix/Etc/GMT-9" value="&lt;GMT-9&gt;-9" />
+	<zone name="posix/Etc/GMT0" value="GMT0" />
+	<zone name="posix/Etc/Greenwich" value="GMT0" />
+	<zone name="posix/Etc/UCT" value="UCT0" />
+	<zone name="posix/Etc/UTC" value="UTC0" />
+	<zone name="posix/Etc/Universal" value="UTC0" />
+	<zone name="posix/Etc/Zulu" value="UTC0" />
+	<zone name="posix/Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Andorra" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Athens" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Belfast" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Europe/Belgrade" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Berlin" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Bratislava" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Brussels" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Bucharest" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Budapest" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Busingen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Chisinau" value="EET-2EEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Copenhagen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Dublin" value="GMT0IST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Europe/Gibraltar" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Guernsey" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Europe/Helsinki" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Isle_of_Man" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Europe/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Jersey" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Europe/Kaliningrad" value="EET-2" />
+	<zone name="posix/Europe/Kiev" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Lisbon" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Europe/Ljubljana" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/London" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Europe/Luxembourg" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Madrid" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Malta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Mariehamn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Minsk" value="MSK-3" />
+	<zone name="posix/Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Moscow" value="MSK-3" />
+	<zone name="posix/Europe/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Oslo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Paris" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Podgorica" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Prague" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Riga" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Rome" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Samara" value="SAMT-4" />
+	<zone name="posix/Europe/San_Marino" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Sarajevo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Simferopol" value="MSK-3" />
+	<zone name="posix/Europe/Skopje" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Sofia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Stockholm" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Tallinn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Tirane" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Tiraspol" value="EET-2EEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Uzhgorod" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Vaduz" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Vatican" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Vienna" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Vilnius" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Volgograd" value="MSK-3" />
+	<zone name="posix/Europe/Warsaw" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Zagreb" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Europe/Zaporozhye" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/Europe/Zurich" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/GB" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/GB-Eire" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/GMT" value="GMT0" />
+	<zone name="posix/GMT+0" value="GMT0" />
+	<zone name="posix/GMT-0" value="GMT0" />
+	<zone name="posix/GMT0" value="GMT0" />
+	<zone name="posix/Greenwich" value="GMT0" />
+	<zone name="posix/HST" value="HST10" />
+	<zone name="posix/Hongkong" value="HKT-8" />
+	<zone name="posix/Iceland" value="GMT0" />
+	<zone name="posix/Indian/Antananarivo" value="EAT-3" />
+	<zone name="posix/Indian/Chagos" value="IOT-6" />
+	<zone name="posix/Indian/Christmas" value="CXT-7" />
+	<zone name="posix/Indian/Cocos" value="CCT-6:30" />
+	<zone name="posix/Indian/Comoro" value="EAT-3" />
+	<zone name="posix/Indian/Kerguelen" value="TFT-5" />
+	<zone name="posix/Indian/Mahe" value="SCT-4" />
+	<zone name="posix/Indian/Maldives" value="MVT-5" />
+	<zone name="posix/Indian/Mauritius" value="MUT-4" />
+	<zone name="posix/Indian/Mayotte" value="EAT-3" />
+	<zone name="posix/Indian/Reunion" value="RET-4" />
+	<zone name="posix/Iran" value="IRDT" />
+	<zone name="posix/Israel" value="IDDT" />
+	<zone name="posix/Jamaica" value="EST5" />
+	<zone name="posix/Japan" value="JST-9" />
+	<zone name="posix/Kwajalein" value="MHT-12" />
+	<zone name="posix/Libya" value="EET-2" />
+	<zone name="posix/MET" value="MET-1MEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/MST" value="MST7" />
+	<zone name="posix/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Mexico/BajaNorte" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Mexico/BajaSur" value="MST7MDT,M4.1.0,M10.5.0" />
+	<zone name="posix/Mexico/General" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="posix/NZ" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="posix/NZ-CHAT" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
+	<zone name="posix/Navajo" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/PRC" value="CST-8" />
+	<zone name="posix/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/Pacific/Apia" value="WSST-13WSDT,M9.5.0/3,M4.1.0/4" />
+	<zone name="posix/Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="posix/Pacific/Bougainville" value="BST-11" />
+	<zone name="posix/Pacific/Chatham" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
+	<zone name="posix/Pacific/Chuuk" value="CHUT-10" />
+	<zone name="posix/Pacific/Easter" value="EAST5" />
+	<zone name="posix/Pacific/Efate" value="VUT-11" />
+	<zone name="posix/Pacific/Enderbury" value="PHOT-13" />
+	<zone name="posix/Pacific/Fakaofo" value="TKT-13" />
+	<zone name="posix/Pacific/Fiji" value="FJT-12FJST,M11.1.0,M1.3.0/3" />
+	<zone name="posix/Pacific/Funafuti" value="TVT-12" />
+	<zone name="posix/Pacific/Galapagos" value="GALT6" />
+	<zone name="posix/Pacific/Gambier" value="GAMT9" />
+	<zone name="posix/Pacific/Guadalcanal" value="SBT-11" />
+	<zone name="posix/Pacific/Guam" value="ChST-10" />
+	<zone name="posix/Pacific/Honolulu" value="HST10" />
+	<zone name="posix/Pacific/Johnston" value="HST10" />
+	<zone name="posix/Pacific/Kiritimati" value="LINT-14" />
+	<zone name="posix/Pacific/Kosrae" value="KOST-11" />
+	<zone name="posix/Pacific/Kwajalein" value="MHT-12" />
+	<zone name="posix/Pacific/Majuro" value="MHT-12" />
+	<zone name="posix/Pacific/Marquesas" value="MART9:30" />
+	<zone name="posix/Pacific/Midway" value="SST11" />
+	<zone name="posix/Pacific/Nauru" value="NRT-12" />
+	<zone name="posix/Pacific/Niue" value="NUT11" />
+	<zone name="posix/Pacific/Norfolk" value="NFT-11" />
+	<zone name="posix/Pacific/Noumea" value="NCT-11" />
+	<zone name="posix/Pacific/Pago_Pago" value="SST11" />
+	<zone name="posix/Pacific/Palau" value="PWT-9" />
+	<zone name="posix/Pacific/Pitcairn" value="PST8" />
+	<zone name="posix/Pacific/Pohnpei" value="PONT-11" />
+	<zone name="posix/Pacific/Ponape" value="PONT-11" />
+	<zone name="posix/Pacific/Port_Moresby" value="PGT-10" />
+	<zone name="posix/Pacific/Rarotonga" value="CKT10" />
+	<zone name="posix/Pacific/Saipan" value="ChST-10" />
+	<zone name="posix/Pacific/Samoa" value="SST11" />
+	<zone name="posix/Pacific/Tahiti" value="TAHT10" />
+	<zone name="posix/Pacific/Tarawa" value="GILT-12" />
+	<zone name="posix/Pacific/Tongatapu" value="TOT-13" />
+	<zone name="posix/Pacific/Truk" value="CHUT-10" />
+	<zone name="posix/Pacific/Wake" value="WAKT-12" />
+	<zone name="posix/Pacific/Wallis" value="WFT-12" />
+	<zone name="posix/Pacific/Yap" value="CHUT-10" />
+	<zone name="posix/Poland" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="posix/Portugal" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/ROC" value="CST-8" />
+	<zone name="posix/ROK" value="KST-9" />
+	<zone name="posix/Singapore" value="SGT-8" />
+	<zone name="posix/Turkey" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="posix/UCT" value="UCT0" />
+	<zone name="posix/US/Alaska" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Aleutian" value="HST10HDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Arizona" value="MST7" />
+	<zone name="posix/US/Central" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/East-Indiana" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Hawaii" value="HST10" />
+	<zone name="posix/US/Indiana-Starke" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Michigan" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Pacific-New" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="posix/US/Samoa" value="SST11" />
+	<zone name="posix/UTC" value="UTC0" />
+	<zone name="posix/Universal" value="UTC0" />
+	<zone name="posix/W-SU" value="MSK-3" />
+	<zone name="posix/WET" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="posix/Zulu" value="UTC0" />
+
+	<zone name="posixrules" value="EST5EDT,M3.2.0,M11.1.0" />
+
+	<zone name="right/Africa/Abidjan" value="GMT0" />
+	<zone name="right/Africa/Accra" value="GMT0" />
+	<zone name="right/Africa/Addis_Ababa" value="EAT-3" />
+	<zone name="right/Africa/Algiers" value="CET-1" />
+	<zone name="right/Africa/Asmara" value="EAT-3" />
+	<zone name="right/Africa/Asmera" value="EAT-3" />
+	<zone name="right/Africa/Bamako" value="GMT0" />
+	<zone name="right/Africa/Bangui" value="WAT-1" />
+	<zone name="right/Africa/Banjul" value="GMT0" />
+	<zone name="right/Africa/Bissau" value="GMT0" />
+	<zone name="right/Africa/Blantyre" value="CAT-2" />
+	<zone name="right/Africa/Brazzaville" value="WAT-1" />
+	<zone name="right/Africa/Bujumbura" value="CAT-2" />
+	<zone name="right/Africa/Cairo" value="EET-2" />
+	<zone name="right/Africa/Casablanca" value="WET0WEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Africa/Conakry" value="GMT0" />
+	<zone name="right/Africa/Dakar" value="GMT0" />
+	<zone name="right/Africa/Dar_es_Salaam" value="EAT-3" />
+	<zone name="right/Africa/Djibouti" value="EAT-3" />
+	<zone name="right/Africa/Douala" value="WAT-1" />
+	<zone name="right/Africa/El_Aaiun" value="WET0WEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Africa/Freetown" value="GMT0" />
+	<zone name="right/Africa/Gaborone" value="CAT-2" />
+	<zone name="right/Africa/Harare" value="CAT-2" />
+	<zone name="right/Africa/Johannesburg" value="SAST-2" />
+	<zone name="right/Africa/Juba" value="EAT-3" />
+	<zone name="right/Africa/Kampala" value="EAT-3" />
+	<zone name="right/Africa/Khartoum" value="EAT-3" />
+	<zone name="right/Africa/Kigali" value="CAT-2" />
+	<zone name="right/Africa/Kinshasa" value="WAT-1" />
+	<zone name="right/Africa/Lagos" value="WAT-1" />
+	<zone name="right/Africa/Libreville" value="WAT-1" />
+	<zone name="right/Africa/Lome" value="GMT0" />
+	<zone name="right/Africa/Luanda" value="WAT-1" />
+	<zone name="right/Africa/Lubumbashi" value="CAT-2" />
+	<zone name="right/Africa/Lusaka" value="CAT-2" />
+	<zone name="right/Africa/Malabo" value="WAT-1" />
+	<zone name="right/Africa/Maputo" value="CAT-2" />
+	<zone name="right/Africa/Maseru" value="SAST-2" />
+	<zone name="right/Africa/Mbabane" value="SAST-2" />
+	<zone name="right/Africa/Mogadishu" value="EAT-3" />
+	<zone name="right/Africa/Monrovia" value="GMT0" />
+	<zone name="right/Africa/Nairobi" value="EAT-3" />
+	<zone name="right/Africa/Ndjamena" value="WAT-1" />
+	<zone name="right/Africa/Niamey" value="WAT-1" />
+	<zone name="right/Africa/Nouakchott" value="GMT0" />
+	<zone name="right/Africa/Ouagadougou" value="GMT0" />
+	<zone name="right/Africa/Porto-Novo" value="WAT-1" />
+	<zone name="right/Africa/Sao_Tome" value="GMT0" />
+	<zone name="right/Africa/Timbuktu" value="GMT0" />
+	<zone name="right/Africa/Tripoli" value="EET-2" />
+	<zone name="right/Africa/Tunis" value="CET-1" />
+	<zone name="right/Africa/Windhoek" value="WAT-1WAST,M9.1.0,M4.1.0" />
+	<zone name="right/America/Adak" value="HST10HDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Anchorage" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Anguilla" value="AST4" />
+	<zone name="right/America/Antigua" value="AST4" />
+	<zone name="right/America/Araguaina" value="BRT3" />
+	<zone name="right/America/Argentina/Buenos_Aires" value="ART3" />
+	<zone name="right/America/Argentina/Catamarca" value="ART3" />
+	<zone name="right/America/Argentina/ComodRivadavia" value="ART3" />
+	<zone name="right/America/Argentina/Cordoba" value="ART3" />
+	<zone name="right/America/Argentina/Jujuy" value="ART3" />
+	<zone name="right/America/Argentina/La_Rioja" value="ART3" />
+	<zone name="right/America/Argentina/Mendoza" value="ART3" />
+	<zone name="right/America/Argentina/Rio_Gallegos" value="ART3" />
+	<zone name="right/America/Argentina/Salta" value="ART3" />
+	<zone name="right/America/Argentina/San_Juan" value="ART3" />
+	<zone name="right/America/Argentina/San_Luis" value="ART3" />
+	<zone name="right/America/Argentina/Tucuman" value="ART3" />
+	<zone name="right/America/Argentina/Ushuaia" value="ART3" />
+	<zone name="right/America/Aruba" value="AST4" />
+	<zone name="right/America/Asuncion" value="PYT4PYST,M10.1.0/0,M3.4.0/0" />
+	<zone name="right/America/Atikokan" value="EST5" />
+	<zone name="right/America/Atka" value="HST10HDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Bahia" value="BRT3" />
+	<zone name="right/America/Bahia_Banderas" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="right/America/Barbados" value="AST4" />
+	<zone name="right/America/Belem" value="BRT3" />
+	<zone name="right/America/Belize" value="CST6" />
+	<zone name="right/America/Blanc-Sablon" value="AST4" />
+	<zone name="right/America/Boa_Vista" value="AMT4" />
+	<zone name="right/America/Bogota" value="COT5" />
+	<zone name="right/America/Boise" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Buenos_Aires" value="ART3" />
+	<zone name="right/America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Campo_Grande" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
+	<zone name="right/America/Cancun" value="EST5" />
+	<zone name="right/America/Caracas" value="VET4:30" />
+	<zone name="right/America/Catamarca" value="ART3" />
+	<zone name="right/America/Cayenne" value="GFT3" />
+	<zone name="right/America/Cayman" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Chicago" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Chihuahua" value="MST7MDT,M4.1.0,M10.5.0" />
+	<zone name="right/America/Coral_Harbour" value="EST5" />
+	<zone name="right/America/Cordoba" value="ART3" />
+	<zone name="right/America/Costa_Rica" value="CST6" />
+	<zone name="right/America/Creston" value="MST7" />
+	<zone name="right/America/Cuiaba" value="AMT4AMST,M10.3.0/0,M2.3.0/0" />
+	<zone name="right/America/Curacao" value="AST4" />
+	<zone name="right/America/Danmarkshavn" value="GMT0" />
+	<zone name="right/America/Dawson" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Dawson_Creek" value="MST7" />
+	<zone name="right/America/Denver" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Detroit" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Dominica" value="AST4" />
+	<zone name="right/America/Edmonton" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Eirunepe" value="ACT5" />
+	<zone name="right/America/El_Salvador" value="CST6" />
+	<zone name="right/America/Ensenada" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Fort_Nelson" value="MST7" />
+	<zone name="right/America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Fortaleza" value="BRT3" />
+	<zone name="right/America/Glace_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Godthab" value="WGST" />
+	<zone name="right/America/Goose_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Grand_Turk" value="AST4" />
+	<zone name="right/America/Grenada" value="AST4" />
+	<zone name="right/America/Guadeloupe" value="AST4" />
+	<zone name="right/America/Guatemala" value="CST6" />
+	<zone name="right/America/Guayaquil" value="ECT5" />
+	<zone name="right/America/Guyana" value="GYT4" />
+	<zone name="right/America/Halifax" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Havana" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
+	<zone name="right/America/Hermosillo" value="MST7" />
+	<zone name="right/America/Indiana/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Indiana/Knox" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Indiana/Marengo" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Indiana/Petersburg" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Indiana/Tell_City" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Indiana/Vevay" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Indiana/Vincennes" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Indiana/Winamac" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Inuvik" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Iqaluit" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Jamaica" value="EST5" />
+	<zone name="right/America/Jujuy" value="ART3" />
+	<zone name="right/America/Juneau" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Kentucky/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Kentucky/Monticello" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Knox_IN" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Kralendijk" value="AST4" />
+	<zone name="right/America/La_Paz" value="BOT4" />
+	<zone name="right/America/Lima" value="PET5" />
+	<zone name="right/America/Los_Angeles" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Lower_Princes" value="AST4" />
+	<zone name="right/America/Maceio" value="BRT3" />
+	<zone name="right/America/Managua" value="CST6" />
+	<zone name="right/America/Manaus" value="AMT4" />
+	<zone name="right/America/Marigot" value="AST4" />
+	<zone name="right/America/Martinique" value="AST4" />
+	<zone name="right/America/Matamoros" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" />
+	<zone name="right/America/Mendoza" value="ART3" />
+	<zone name="right/America/Menominee" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Merida" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="right/America/Metlakatla" value="PST8" />
+	<zone name="right/America/Mexico_City" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="right/America/Miquelon" value="PMST3PMDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Moncton" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Monterrey" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="right/America/Montevideo" value="UYT3" />
+	<zone name="right/America/Montreal" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Montserrat" value="AST4" />
+	<zone name="right/America/Nassau" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/New_York" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Nipigon" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Nome" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Noronha" value="FNT2" />
+	<zone name="right/America/North_Dakota/Beulah" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/North_Dakota/Center" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/North_Dakota/New_Salem" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Ojinaga" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Panama" value="EST5" />
+	<zone name="right/America/Pangnirtung" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Paramaribo" value="SRT3" />
+	<zone name="right/America/Phoenix" value="MST7" />
+	<zone name="right/America/Port-au-Prince" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Port_of_Spain" value="AST4" />
+	<zone name="right/America/Porto_Acre" value="ACT5" />
+	<zone name="right/America/Porto_Velho" value="AMT4" />
+	<zone name="right/America/Puerto_Rico" value="AST4" />
+	<zone name="right/America/Rainy_River" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Rankin_Inlet" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Recife" value="BRT3" />
+	<zone name="right/America/Regina" value="CST6" />
+	<zone name="right/America/Resolute" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Rio_Branco" value="ACT5" />
+	<zone name="right/America/Rosario" value="ART3" />
+	<zone name="right/America/Santa_Isabel" value="PST8PDT,M4.1.0,M10.5.0" />
+	<zone name="right/America/Santarem" value="BRT3" />
+	<zone name="right/America/Santiago" value="CLT3" />
+	<zone name="right/America/Santo_Domingo" value="AST4" />
+	<zone name="right/America/Sao_Paulo" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
+	<zone name="right/America/Scoresbysund" value="EGT1EGST,M3.5.0/0,M10.5.0/1" />
+	<zone name="right/America/Shiprock" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Sitka" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/St_Barthelemy" value="AST4" />
+	<zone name="right/America/St_Johns" value="NST3:30NDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/St_Kitts" value="AST4" />
+	<zone name="right/America/St_Lucia" value="AST4" />
+	<zone name="right/America/St_Thomas" value="AST4" />
+	<zone name="right/America/St_Vincent" value="AST4" />
+	<zone name="right/America/Swift_Current" value="CST6" />
+	<zone name="right/America/Tegucigalpa" value="CST6" />
+	<zone name="right/America/Thule" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Thunder_Bay" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Tijuana" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Toronto" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Tortola" value="AST4" />
+	<zone name="right/America/Vancouver" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Virgin" value="AST4" />
+	<zone name="right/America/Whitehorse" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Winnipeg" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Yakutat" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="right/America/Yellowknife" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/Antarctica/Casey" value="AWST-8" />
+	<zone name="right/Antarctica/Davis" value="DAVT-7" />
+	<zone name="right/Antarctica/DumontDUrville" value="DDUT-10" />
+	<zone name="right/Antarctica/Macquarie" value="MIST-11" />
+	<zone name="right/Antarctica/Mawson" value="MAWT-5" />
+	<zone name="right/Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="right/Antarctica/Palmer" value="CLT3" />
+	<zone name="right/Antarctica/Rothera" value="ROTT3" />
+	<zone name="right/Antarctica/South_Pole" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="right/Antarctica/Syowa" value="SYOT-3" />
+	<zone name="right/Antarctica/Troll" value="UTC0CEST-2,M3.5.0/1,M10.5.0/3" />
+	<zone name="right/Antarctica/Vostok" value="VOST-6" />
+	<zone name="right/Arctic/Longyearbyen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Asia/Aden" value="AST-3" />
+	<zone name="right/Asia/Almaty" value="ALMT-6" />
+	<zone name="right/Asia/Amman" value="EEST" />
+	<zone name="right/Asia/Anadyr" value="ANAT-12" />
+	<zone name="right/Asia/Aqtau" value="AQTT-5" />
+	<zone name="right/Asia/Aqtobe" value="AQTT-5" />
+	<zone name="right/Asia/Ashgabat" value="TMT-5" />
+	<zone name="right/Asia/Ashkhabad" value="TMT-5" />
+	<zone name="right/Asia/Baghdad" value="AST-3" />
+	<zone name="right/Asia/Bahrain" value="AST-3" />
+	<zone name="right/Asia/Baku" value="AZT-4AZST,M3.5.0/4,M10.5.0/5" />
+	<zone name="right/Asia/Bangkok" value="ICT-7" />
+	<zone name="right/Asia/Beirut" value="EET-2EEST,M3.5.0/0,M10.5.0/0" />
+	<zone name="right/Asia/Bishkek" value="KGT-6" />
+	<zone name="right/Asia/Brunei" value="BNT-8" />
+	<zone name="right/Asia/Calcutta" value="IST-5:30" />
+	<zone name="right/Asia/Chita" value="IRKT-8" />
+	<zone name="right/Asia/Choibalsan" value="CHOT-8CHOST,M3.5.6,M9.5.6/0" />
+	<zone name="right/Asia/Chongqing" value="CST-8" />
+	<zone name="right/Asia/Chungking" value="CST-8" />
+	<zone name="right/Asia/Colombo" value="IST-5:30" />
+	<zone name="right/Asia/Dacca" value="BDT-6" />
+	<zone name="right/Asia/Damascus" value="EET-2EEST,M3.5.5/0,M10.5.5/0" />
+	<zone name="right/Asia/Dhaka" value="BDT-6" />
+	<zone name="right/Asia/Dili" value="TLT-9" />
+	<zone name="right/Asia/Dubai" value="GST-4" />
+	<zone name="right/Asia/Dushanbe" value="TJT-5" />
+	<zone name="right/Asia/Gaza" value="EEST" />
+	<zone name="right/Asia/Harbin" value="CST-8" />
+	<zone name="right/Asia/Hebron" value="EEST" />
+	<zone name="right/Asia/Ho_Chi_Minh" value="ICT-7" />
+	<zone name="right/Asia/Hong_Kong" value="HKT-8" />
+	<zone name="right/Asia/Hovd" value="HOVT-7HOVST,M3.5.6,M9.5.6/0" />
+	<zone name="right/Asia/Irkutsk" value="IRKT-8" />
+	<zone name="right/Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Asia/Jakarta" value="WIB-7" />
+	<zone name="right/Asia/Jayapura" value="WIT-9" />
+	<zone name="right/Asia/Jerusalem" value="IDDT" />
+	<zone name="right/Asia/Kabul" value="AFT-4:30" />
+	<zone name="right/Asia/Kamchatka" value="PETT-12" />
+	<zone name="right/Asia/Karachi" value="PKT-5" />
+	<zone name="right/Asia/Kashgar" value="XJT-6" />
+	<zone name="right/Asia/Kathmandu" value="NPT-5:45" />
+	<zone name="right/Asia/Katmandu" value="NPT-5:45" />
+	<zone name="right/Asia/Khandyga" value="YAKT-9" />
+	<zone name="right/Asia/Kolkata" value="IST-5:30" />
+	<zone name="right/Asia/Krasnoyarsk" value="KRAT-7" />
+	<zone name="right/Asia/Kuala_Lumpur" value="MYT-8" />
+	<zone name="right/Asia/Kuching" value="MYT-8" />
+	<zone name="right/Asia/Kuwait" value="AST-3" />
+	<zone name="right/Asia/Macao" value="CST-8" />
+	<zone name="right/Asia/Macau" value="CST-8" />
+	<zone name="right/Asia/Magadan" value="MAGT-10" />
+	<zone name="right/Asia/Makassar" value="WITA-8" />
+	<zone name="right/Asia/Manila" value="PHT-8" />
+	<zone name="right/Asia/Muscat" value="GST-4" />
+	<zone name="right/Asia/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Asia/Novokuznetsk" value="KRAT-7" />
+	<zone name="right/Asia/Novosibirsk" value="NOVT-6" />
+	<zone name="right/Asia/Omsk" value="OMST-6" />
+	<zone name="right/Asia/Oral" value="ORAT-5" />
+	<zone name="right/Asia/Phnom_Penh" value="ICT-7" />
+	<zone name="right/Asia/Pontianak" value="WIB-7" />
+	<zone name="right/Asia/Pyongyang" value="KST-8:30" />
+	<zone name="right/Asia/Qatar" value="AST-3" />
+	<zone name="right/Asia/Qyzylorda" value="QYZT-6" />
+	<zone name="right/Asia/Rangoon" value="MMT-6:30" />
+	<zone name="right/Asia/Riyadh" value="AST-3" />
+	<zone name="right/Asia/Saigon" value="ICT-7" />
+	<zone name="right/Asia/Sakhalin" value="SAKT-10" />
+	<zone name="right/Asia/Samarkand" value="UZT-5" />
+	<zone name="right/Asia/Seoul" value="KST-9" />
+	<zone name="right/Asia/Shanghai" value="CST-8" />
+	<zone name="right/Asia/Singapore" value="SGT-8" />
+	<zone name="right/Asia/Srednekolymsk" value="SRET-11" />
+	<zone name="right/Asia/Taipei" value="CST-8" />
+	<zone name="right/Asia/Tashkent" value="UZT-5" />
+	<zone name="right/Asia/Tbilisi" value="GET-4" />
+	<zone name="right/Asia/Tehran" value="IRDT" />
+	<zone name="right/Asia/Tel_Aviv" value="IDDT" />
+	<zone name="right/Asia/Thimbu" value="BTT-6" />
+	<zone name="right/Asia/Thimphu" value="BTT-6" />
+	<zone name="right/Asia/Tokyo" value="JST-9" />
+	<zone name="right/Asia/Ujung_Pandang" value="WITA-8" />
+	<zone name="right/Asia/Ulaanbaatar" value="ULAT-8ULAST,M3.5.6,M9.5.6/0" />
+	<zone name="right/Asia/Ulan_Bator" value="ULAT-8ULAST,M3.5.6,M9.5.6/0" />
+	<zone name="right/Asia/Urumqi" value="XJT-6" />
+	<zone name="right/Asia/Ust-Nera" value="VLAT-10" />
+	<zone name="right/Asia/Vientiane" value="ICT-7" />
+	<zone name="right/Asia/Vladivostok" value="VLAT-10" />
+	<zone name="right/Asia/Yakutsk" value="YAKT-9" />
+	<zone name="right/Asia/Yekaterinburg" value="YEKT-5" />
+	<zone name="right/Asia/Yerevan" value="AMT-4" />
+	<zone name="right/Atlantic/Azores" value="AZOT1AZOST,M3.5.0/0,M10.5.0/1" />
+	<zone name="right/Atlantic/Bermuda" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="right/Atlantic/Canary" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Atlantic/Cape_Verde" value="CVT1" />
+	<zone name="right/Atlantic/Faeroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Atlantic/Faroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Atlantic/Jan_Mayen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Atlantic/Madeira" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Atlantic/Reykjavik" value="GMT0" />
+	<zone name="right/Atlantic/South_Georgia" value="GST2" />
+	<zone name="right/Atlantic/St_Helena" value="GMT0" />
+	<zone name="right/Atlantic/Stanley" value="FKST3" />
+	<zone name="right/Australia/ACT" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/Adelaide" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/Brisbane" value="AEST-10" />
+	<zone name="right/Australia/Broken_Hill" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/Canberra" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/Currie" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/Darwin" value="ACST-9:30" />
+	<zone name="right/Australia/Eucla" value="ACWST-8:45" />
+	<zone name="right/Australia/Hobart" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/LHI" value="LHST-10:30LHDT-11,M10.1.0,M4.1.0" />
+	<zone name="right/Australia/Lindeman" value="AEST-10" />
+	<zone name="right/Australia/Lord_Howe" value="LHST-10:30LHDT-11,M10.1.0,M4.1.0" />
+	<zone name="right/Australia/Melbourne" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/NSW" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/North" value="ACST-9:30" />
+	<zone name="right/Australia/Perth" value="AWST-8" />
+	<zone name="right/Australia/Queensland" value="AEST-10" />
+	<zone name="right/Australia/South" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/Sydney" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/Tasmania" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/Victoria" value="AEST-10AEDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Australia/West" value="AWST-8" />
+	<zone name="right/Australia/Yancowinna" value="ACST-9:30ACDT,M10.1.0,M4.1.0/3" />
+	<zone name="right/Brazil/Acre" value="ACT5" />
+	<zone name="right/Brazil/DeNoronha" value="FNT2" />
+	<zone name="right/Brazil/East" value="BRT3BRST,M10.3.0/0,M2.3.0/0" />
+	<zone name="right/Brazil/West" value="AMT4" />
+	<zone name="right/CET" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/Canada/Atlantic" value="AST4ADT,M3.2.0,M11.1.0" />
+	<zone name="right/Canada/Central" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/Canada/East-Saskatchewan" value="CST6" />
+	<zone name="right/Canada/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/Canada/Newfoundland" value="NST3:30NDT,M3.2.0,M11.1.0" />
+	<zone name="right/Canada/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/Canada/Saskatchewan" value="CST6" />
+	<zone name="right/Canada/Yukon" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/Chile/Continental" value="CLT3" />
+	<zone name="right/Chile/EasterIsland" value="EAST5" />
+	<zone name="right/Cuba" value="CST5CDT,M3.2.0/0,M11.1.0/1" />
+	<zone name="right/EET" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/EST" value="EST5" />
+	<zone name="right/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/Egypt" value="EET-2" />
+	<zone name="right/Eire" value="GMT0IST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Etc/GMT" value="GMT0" />
+	<zone name="right/Etc/GMT+0" value="GMT0" />
+	<zone name="right/Etc/GMT+1" value="&lt;GMT+1&gt;1" />
+	<zone name="right/Etc/GMT+10" value="&lt;GMT+10&gt;10" />
+	<zone name="right/Etc/GMT+11" value="&lt;GMT+11&gt;11" />
+	<zone name="right/Etc/GMT+12" value="&lt;GMT+12&gt;12" />
+	<zone name="right/Etc/GMT+2" value="&lt;GMT+2&gt;2" />
+	<zone name="right/Etc/GMT+3" value="&lt;GMT+3&gt;3" />
+	<zone name="right/Etc/GMT+4" value="&lt;GMT+4&gt;4" />
+	<zone name="right/Etc/GMT+5" value="&lt;GMT+5&gt;5" />
+	<zone name="right/Etc/GMT+6" value="&lt;GMT+6&gt;6" />
+	<zone name="right/Etc/GMT+7" value="&lt;GMT+7&gt;7" />
+	<zone name="right/Etc/GMT+8" value="&lt;GMT+8&gt;8" />
+	<zone name="right/Etc/GMT+9" value="&lt;GMT+9&gt;9" />
+	<zone name="right/Etc/GMT-0" value="GMT0" />
+	<zone name="right/Etc/GMT-1" value="&lt;GMT-1&gt;-1" />
+	<zone name="right/Etc/GMT-10" value="&lt;GMT-10&gt;-10" />
+	<zone name="right/Etc/GMT-11" value="&lt;GMT-11&gt;-11" />
+	<zone name="right/Etc/GMT-12" value="&lt;GMT-12&gt;-12" />
+	<zone name="right/Etc/GMT-13" value="&lt;GMT-13&gt;-13" />
+	<zone name="right/Etc/GMT-14" value="&lt;GMT-14&gt;-14" />
+	<zone name="right/Etc/GMT-2" value="&lt;GMT-2&gt;-2" />
+	<zone name="right/Etc/GMT-3" value="&lt;GMT-3&gt;-3" />
+	<zone name="right/Etc/GMT-4" value="&lt;GMT-4&gt;-4" />
+	<zone name="right/Etc/GMT-5" value="&lt;GMT-5&gt;-5" />
+	<zone name="right/Etc/GMT-6" value="&lt;GMT-6&gt;-6" />
+	<zone name="right/Etc/GMT-7" value="&lt;GMT-7&gt;-7" />
+	<zone name="right/Etc/GMT-8" value="&lt;GMT-8&gt;-8" />
+	<zone name="right/Etc/GMT-9" value="&lt;GMT-9&gt;-9" />
+	<zone name="right/Etc/GMT0" value="GMT0" />
+	<zone name="right/Etc/Greenwich" value="GMT0" />
+	<zone name="right/Etc/UCT" value="UCT0" />
+	<zone name="right/Etc/UTC" value="UTC0" />
+	<zone name="right/Etc/Universal" value="UTC0" />
+	<zone name="right/Etc/Zulu" value="UTC0" />
+	<zone name="right/Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Andorra" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Athens" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Belfast" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Europe/Belgrade" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Berlin" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Bratislava" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Brussels" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Bucharest" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Budapest" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Busingen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Chisinau" value="EET-2EEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Copenhagen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Dublin" value="GMT0IST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Europe/Gibraltar" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Guernsey" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Europe/Helsinki" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Isle_of_Man" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Europe/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Jersey" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Europe/Kaliningrad" value="EET-2" />
+	<zone name="right/Europe/Kiev" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Lisbon" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Europe/Ljubljana" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/London" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Europe/Luxembourg" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Madrid" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Malta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Mariehamn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Minsk" value="MSK-3" />
+	<zone name="right/Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Moscow" value="MSK-3" />
+	<zone name="right/Europe/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Oslo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Paris" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Podgorica" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Prague" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Riga" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Rome" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Samara" value="SAMT-4" />
+	<zone name="right/Europe/San_Marino" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Sarajevo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Simferopol" value="MSK-3" />
+	<zone name="right/Europe/Skopje" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Sofia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Stockholm" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Tallinn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Tirane" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Tiraspol" value="EET-2EEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Uzhgorod" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Vaduz" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Vatican" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Vienna" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Vilnius" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Volgograd" value="MSK-3" />
+	<zone name="right/Europe/Warsaw" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Zagreb" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Europe/Zaporozhye" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/Europe/Zurich" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/GB" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="right/GB-Eire" value="GMT0BST,M3.5.0/1,M10.5.0" />
+	<zone name="right/GMT" value="GMT0" />
+	<zone name="right/GMT+0" value="GMT0" />
+	<zone name="right/GMT-0" value="GMT0" />
+	<zone name="right/GMT0" value="GMT0" />
+	<zone name="right/Greenwich" value="GMT0" />
+	<zone name="right/HST" value="HST10" />
+	<zone name="right/Hongkong" value="HKT-8" />
+	<zone name="right/Iceland" value="GMT0" />
+	<zone name="right/Indian/Antananarivo" value="EAT-3" />
+	<zone name="right/Indian/Chagos" value="IOT-6" />
+	<zone name="right/Indian/Christmas" value="CXT-7" />
+	<zone name="right/Indian/Cocos" value="CCT-6:30" />
+	<zone name="right/Indian/Comoro" value="EAT-3" />
+	<zone name="right/Indian/Kerguelen" value="TFT-5" />
+	<zone name="right/Indian/Mahe" value="SCT-4" />
+	<zone name="right/Indian/Maldives" value="MVT-5" />
+	<zone name="right/Indian/Mauritius" value="MUT-4" />
+	<zone name="right/Indian/Mayotte" value="EAT-3" />
+	<zone name="right/Indian/Reunion" value="RET-4" />
+	<zone name="right/Iran" value="IRDT" />
+	<zone name="right/Israel" value="IDDT" />
+	<zone name="right/Jamaica" value="EST5" />
+	<zone name="right/Japan" value="JST-9" />
+	<zone name="right/Kwajalein" value="MHT-12" />
+	<zone name="right/Libya" value="EET-2" />
+	<zone name="right/MET" value="MET-1MEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/MST" value="MST7" />
+	<zone name="right/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/Mexico/BajaNorte" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/Mexico/BajaSur" value="MST7MDT,M4.1.0,M10.5.0" />
+	<zone name="right/Mexico/General" value="CST6CDT,M4.1.0,M10.5.0" />
+	<zone name="right/NZ" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="right/NZ-CHAT" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
+	<zone name="right/Navajo" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/PRC" value="CST-8" />
+	<zone name="right/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/Pacific/Apia" value="WSST-13WSDT,M9.5.0/3,M4.1.0/4" />
+	<zone name="right/Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
+	<zone name="right/Pacific/Bougainville" value="BST-11" />
+	<zone name="right/Pacific/Chatham" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
+	<zone name="right/Pacific/Chuuk" value="CHUT-10" />
+	<zone name="right/Pacific/Easter" value="EAST5" />
+	<zone name="right/Pacific/Efate" value="VUT-11" />
+	<zone name="right/Pacific/Enderbury" value="PHOT-13" />
+	<zone name="right/Pacific/Fakaofo" value="TKT-13" />
+	<zone name="right/Pacific/Fiji" value="FJT-12FJST,M11.1.0,M1.3.0/3" />
+	<zone name="right/Pacific/Funafuti" value="TVT-12" />
+	<zone name="right/Pacific/Galapagos" value="GALT6" />
+	<zone name="right/Pacific/Gambier" value="GAMT9" />
+	<zone name="right/Pacific/Guadalcanal" value="SBT-11" />
+	<zone name="right/Pacific/Guam" value="ChST-10" />
+	<zone name="right/Pacific/Honolulu" value="HST10" />
+	<zone name="right/Pacific/Johnston" value="HST10" />
+	<zone name="right/Pacific/Kiritimati" value="LINT-14" />
+	<zone name="right/Pacific/Kosrae" value="KOST-11" />
+	<zone name="right/Pacific/Kwajalein" value="MHT-12" />
+	<zone name="right/Pacific/Majuro" value="MHT-12" />
+	<zone name="right/Pacific/Marquesas" value="MART9:30" />
+	<zone name="right/Pacific/Midway" value="SST11" />
+	<zone name="right/Pacific/Nauru" value="NRT-12" />
+	<zone name="right/Pacific/Niue" value="NUT11" />
+	<zone name="right/Pacific/Norfolk" value="NFT-11" />
+	<zone name="right/Pacific/Noumea" value="NCT-11" />
+	<zone name="right/Pacific/Pago_Pago" value="SST11" />
+	<zone name="right/Pacific/Palau" value="PWT-9" />
+	<zone name="right/Pacific/Pitcairn" value="PST8" />
+	<zone name="right/Pacific/Pohnpei" value="PONT-11" />
+	<zone name="right/Pacific/Ponape" value="PONT-11" />
+	<zone name="right/Pacific/Port_Moresby" value="PGT-10" />
+	<zone name="right/Pacific/Rarotonga" value="CKT10" />
+	<zone name="right/Pacific/Saipan" value="ChST-10" />
+	<zone name="right/Pacific/Samoa" value="SST11" />
+	<zone name="right/Pacific/Tahiti" value="TAHT10" />
+	<zone name="right/Pacific/Tarawa" value="GILT-12" />
+	<zone name="right/Pacific/Tongatapu" value="TOT-13" />
+	<zone name="right/Pacific/Truk" value="CHUT-10" />
+	<zone name="right/Pacific/Wake" value="WAKT-12" />
+	<zone name="right/Pacific/Wallis" value="WFT-12" />
+	<zone name="right/Pacific/Yap" value="CHUT-10" />
+	<zone name="right/Poland" value="CET-1CEST,M3.5.0,M10.5.0/3" />
+	<zone name="right/Portugal" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="right/ROC" value="CST-8" />
+	<zone name="right/ROK" value="KST-9" />
+	<zone name="right/Singapore" value="SGT-8" />
+	<zone name="right/Turkey" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
+	<zone name="right/UCT" value="UCT0" />
+	<zone name="right/US/Alaska" value="AKST9AKDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Aleutian" value="HST10HDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Arizona" value="MST7" />
+	<zone name="right/US/Central" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/East-Indiana" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Hawaii" value="HST10" />
+	<zone name="right/US/Indiana-Starke" value="CST6CDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Michigan" value="EST5EDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Pacific-New" value="PST8PDT,M3.2.0,M11.1.0" />
+	<zone name="right/US/Samoa" value="SST11" />
+	<zone name="right/UTC" value="UTC0" />
+	<zone name="right/Universal" value="UTC0" />
+	<zone name="right/W-SU" value="MSK-3" />
+	<zone name="right/WET" value="WET0WEST,M3.5.0/1,M10.5.0" />
+	<zone name="right/Zulu" value="UTC0" />
     </timezones>
 </configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/translate.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/translate.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..453ef3afbf996a6c66e39052053b0fa3e9ba4ad4
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/translate.conf.xml
@@ -0,0 +1,28 @@
+<include>
+  <configuration name="translate.conf" description="Number Translation Rules">
+    <profiles>
+      <profile name="US">
+	<rule regex="^\+(\d+)$" replace="$1"/>
+	<rule regex="^(1[2-9]\d{2}[2-9]\d{6})$" replace="$1"/>
+	<rule regex="^([2-9]\d{2}[2-9]\d{6})$" replace="1$1"/>
+	<rule regex="^([2-9]\d{6})$" replace="1${areacode}$1"/>
+	<rule regex="^011(\d+)$" replace="$1"/>
+      </profile>
+      <profile name="GB">
+	<rule regex="^\+(\d+)$" replace="$1"/>
+	<rule regex="^$" replace="$1"/>
+      </profile>
+      <profile name="HK">
+	<rule regex="\+(\d+)$" replace="$1"/>
+	<rule regex="^(852\d{8})$" replace="$1"/>
+	<rule regex="^(\d{8})$" replace="852$1"/>
+      </profile>
+    </profiles>
+    <!--
+      <profile name="">
+	<rule regex="^\+(\d+)$" replace="$1"/>
+	<rule regex="^$" replace="$1"/>
+      </profile>
+    -->
+  </configuration>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/tts_commandline.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/tts_commandline.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c5da4aba55ae602f835e9e2d4547ba2f8c685425
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/tts_commandline.conf.xml
@@ -0,0 +1,15 @@
+<configuration name="tts_commandline.conf" description="TextToSpeech Commandline configuration">
+    <settings>
+	<!--
+	Some variables will be replaced :
+	${text}: input text (quoted)
+	${rate}: sample rate (example: 8000)
+	${voice}: voice_name passed to TTS(quoted)
+	${file}: output file (quoted, including .wav extension)
+    
+    Example commands can be found at:
+    https://freeswitch.org/confluence/display/FREESWITCH/mod_tts_commandline#mod_tts_commandline-Examplecommands
+	-->
+	<param name="command" value="echo ${text} | text2wave -f ${rate} > ${file}"/>
+    </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/unicall.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/unicall.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eeaa0782f764af99e908c9afa9a7bfc075c375a0
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/unicall.conf.xml
@@ -0,0 +1,25 @@
+<configuration name="unicall.conf" description="Unicall Configuration">
+  <settings>
+    <param name="context" value="default"/>
+    <param name="dialplan" value="XML"/>
+    <param name="suppress-dtmf-tone" value="true"/>
+  </settings>
+  <spans>
+    <span id="1">
+      <param name="protocol-class" value="mfcr2"/>
+      <param name="protocol-variant" value="ar"/>
+      <param name="protocol-end" value="peer"/>
+      <param name="outgoing-allowed" value="true"/>
+      <param name="dialplan" value="XML"/>
+      <param name="context" value="default"/>
+    </span>
+    <span id="2">
+      <param name="protocol-class" value="mfcr2"/>
+      <param name="protocol-variant" value="ar"/>
+      <param name="protocol-end" value="peer"/>
+      <param name="outgoing-allowed" value="true"/>
+      <param name="dialplan" value="XML"/>
+      <param name="context" value="default"/>
+    </span>
+  </spans>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/unimrcp.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/unimrcp.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..45dda798a1f77b0221b8c64b0dd4aa1d2257b197
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/unimrcp.conf.xml
@@ -0,0 +1,23 @@
+<configuration name="unimrcp.conf" description="UniMRCP Client">
+  <settings>
+    <!-- UniMRCP profile to use for TTS -->
+    <param name="default-tts-profile" value="voxeo-prophecy8.0-mrcp1"/>
+    <!-- UniMRCP profile to use for ASR -->
+    <param name="default-asr-profile" value="voxeo-prophecy8.0-mrcp1"/>
+    <!-- UniMRCP logging level to appear in freeswitch.log.  Options are:
+         EMERGENCY|ALERT|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG -->
+    <param name="log-level" value="DEBUG"/>
+    <!-- Enable events for profile creation, open, and close -->
+    <param name="enable-profile-events" value="false"/>
+
+    <param name="max-connection-count" value="100"/>
+    <param name="offer-new-connection" value="1"/>
+    <param name="request-timeout" value="3000"/>
+  </settings>
+
+  <profiles>
+    <X-PRE-PROCESS cmd="include" data="../mrcp_profiles/*.xml"/>
+  </profiles>
+
+</configuration>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/v8.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/v8.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0f57fff7419ac72d7e7e02d39d418c1830a11bd7
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/v8.conf.xml
@@ -0,0 +1,15 @@
+<configuration name="v8.conf" description="Google V8 JavaScript Plug-Ins">
+  <settings>
+    <!-- <param name="script-caching" value="enabled"/> -->
+    <!-- <param name="cache-expires-sec" value="3600"/> -->
+    <!-- <param name="startup-script" value="startup1.js"/> -->
+    <!-- <param name="startup-script" value="startup2.js"/> -->
+    <!-- <param name="xml-handler-script" value="directory.js"/> -->
+    <!-- <param name="xml-handler-bindings" value="directory"/> -->
+    <!-- <hook event="CUSTOM" subclass="sofia::register" script="catch-event.js"/> -->
+    <!-- <hook event="CHANNEL_HANGUP" script="hangup-event.js"/> -->
+  </settings>
+  <modules>
+    <!-- <load module="mod_v8_skel"/> -->
+  </modules>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/verto.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/verto.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..899aaeb6c2de50acdc722eeb40dc41bbe337f131
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/verto.conf.xml
@@ -0,0 +1,62 @@
+<configuration name="verto.conf" description="HTML5 Verto Endpoint">
+
+  <settings>
+    <param name="debug" value="0"/>
+    <!-- seconds to wait before hanging up a disconnected channel -->
+    <!-- <param name="detach-timeout-sec" value="120"/> -->
+    <!-- enable broadcasting all FreeSWITCH events in Verto -->
+    <!-- <param name="enable-fs-events" value="false"/> -->
+    <!-- enable broadcasting FreeSWITCH presence events in Verto -->
+    <!-- <param name="enable-presence" value="true"/> -->
+  </settings>
+
+  <profiles>
+    <profile name="default-v4">
+      <param name="bind-local" value="$${local_ip_v4}:8081"/>
+      <param name="bind-local" value="$${local_ip_v4}:8082" secure="true"/>
+      <param name="force-register-domain" value="$${domain}"/>
+      <param name="secure-combined" value="$${certs_dir}/wss.pem"/>
+      <param name="secure-chain" value="$${certs_dir}/wss.pem"/>
+      <param name="userauth" value="true"/>
+      <!-- setting this to true will allow anyone to register even with no account so use with care -->
+      <param name="blind-reg" value="false"/>
+      <param name="mcast-ip" value="224.1.1.1"/>
+      <param name="mcast-port" value="1337"/>
+      <param name="rtp-ip" value="$${local_ip_v4}"/>
+      <param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
+      <param name="local-network" value="localnet.auto"/>
+      <param name="outbound-codec-string" value="opus,h264,vp8"/>
+      <param name="inbound-codec-string" value="opus,h264,vp8"/>
+
+      <param name="apply-candidate-acl" value="localnet.auto"/>
+      <param name="apply-candidate-acl" value="wan_v4.auto"/>
+      <param name="apply-candidate-acl" value="rfc1918.auto"/>
+      <param name="apply-candidate-acl" value="any_v4.auto"/>
+      <param name="timer-name" value="soft"/>
+      
+    </profile>
+
+    <profile name="default-v6">
+      <param name="bind-local" value="[$${local_ip_v6}]:8081"/>
+      <param name="bind-local" value="[$${local_ip_v6}]:8082" secure="true"/>
+      <param name="force-register-domain" value="$${domain}"/>
+      <param name="secure-combined" value="$${certs_dir}/wss.pem"/>
+      <param name="secure-chain" value="$${certs_dir}/wss.pem"/>
+      <param name="userauth" value="true"/>
+      <!-- setting this to true will allow anyone to register even with no account so use with care -->
+      <param name="blind-reg" value="false"/>
+      <param name="rtp-ip" value="$${local_ip_v6}"/>
+      <!--  <param name="ext-rtp-ip" value=""/> -->
+      <param name="outbound-codec-string" value="opus,h264,vp8"/>
+      <param name="inbound-codec-string" value="opus,h264,vp8"/>
+
+      <param name="apply-candidate-acl" value="wan_v6.auto"/>
+      <param name="apply-candidate-acl" value="rfc1918.auto"/>
+      <param name="apply-candidate-acl" value="any_v6.auto"/>
+      <param name="apply-candidate-acl" value="wan_v4.auto"/>
+      <param name="apply-candidate-acl" value="any_v4.auto"/>
+      <param name="timer-name" value="soft"/>
+      
+    </profile>
+  </profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/voicemail.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/voicemail.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..33d5a977602c3bf198f6ea0e166dc374813a82e4
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/voicemail.conf.xml
@@ -0,0 +1,74 @@
+<configuration name="voicemail.conf" description="Voicemail">
+  <settings>
+  </settings>
+  <profiles>
+    <profile name="default">
+      <param name="file-extension" value="wav"/>
+      <param name="terminator-key" value="#"/>
+      <param name="max-login-attempts" value="3"/>
+      <param name="digit-timeout" value="10000"/>
+      <param name="min-record-len" value="3"/>
+      <param name="max-record-len" value="300"/>
+      <param name="max-retries" value="3"/>
+      <param name="tone-spec" value="%(1000, 0, 640)"/>
+      <param name="callback-dialplan" value="XML"/>
+      <param name="callback-context" value="default"/>
+      <param name="play-new-messages-key" value="1"/>
+      <param name="play-saved-messages-key" value="2"/>
+      <!-- play-new-messages-lifo and play-saved-messages-lifo default is false, playing oldest messages first
+	   <param name="play-new-messages-lifo" value="false"/>
+	   <param name="play-saved-messages-lifo" value="false"/>
+      -->
+      <param name="login-keys" value="0"/>
+      <param name="main-menu-key" value="0"/>
+      <param name="config-menu-key" value="5"/>
+      <param name="record-greeting-key" value="1"/>
+      <param name="choose-greeting-key" value="2"/>
+      <param name="change-pass-key" value="6"/>
+      <param name="record-name-key" value="3"/>
+      <param name="record-file-key" value="3"/>
+      <param name="listen-file-key" value="1"/>
+      <param name="save-file-key" value="2"/>
+      <param name="delete-file-key" value="7"/>
+      <param name="undelete-file-key" value="8"/>
+      <param name="email-key" value="4"/>
+      <param name="pause-key" value="0"/>
+      <param name="restart-key" value="1"/>
+      <param name="ff-key" value="6"/>
+      <param name="rew-key" value="4"/>
+      <param name="skip-greet-key" value="#"/>
+      <param name="previous-message-key" value="1"/>
+      <param name="next-message-key" value="3"/>
+      <param name="skip-info-key" value="*"/>
+      <param name="repeat-message-key" value="0"/>
+      <param name="record-silence-threshold" value="200"/>
+      <param name="record-silence-hits" value="2"/>
+      <param name="web-template-file" value="web-vm.tpl"/>
+      <param name="db-password-override" value="false"/>
+      <param name="allow-empty-password-auth" value="true"/>
+      <!-- if you need to change the sample rate of the recorded files e.g. gmail voicemail player -->
+      <!--<param name="record-sample-rate" value="11025"/>-->
+      <!-- the next two both must be set for this to be enabled
+           the extension is in the format of <dest> [<dialplan>] [<context>]
+       -->
+      <param name="operator-extension" value="operator XML default"/>
+      <param name="operator-key" value="9"/>
+      <param name="vmain-extension" value="vmain XML default"/>
+      <param name="vmain-key" value="*"/>
+      <!-- playback created files as soon as they were recorded by default -->
+      <!--<param name="auto-playback-recordings" value="true"/>-->
+      <email>
+	<param name="template-file" value="voicemail.tpl"/>
+	<param name="notify-template-file" value="notify-voicemail.tpl"/>
+	<!-- this is the format voicemail_time will have -->
+        <param name="date-fmt" value="%A, %B %d %Y, %I %M %p"/>
+        <param name="email-from" value="${voicemail_account}@${voicemail_domain}"/>
+      </email>
+      <!--<param name="storage-dir" value="$${storage_dir}"/>-->
+      <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+      <!--<param name="record-comment" value="Your Comment"/>-->
+      <!--<param name="record-title" value="Your Title"/>-->
+      <!--<param name="record-copyright" value="Your Copyright"/>-->
+    </profile>
+  </profiles>
+</configuration> 
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/voicemail_ivr.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/voicemail_ivr.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1cdf3c222ec7a1c3802ebc2aa3c8d2ef504c1e62
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/voicemail_ivr.conf.xml
@@ -0,0 +1,211 @@
+<configuration name="voicemail_ivr.conf" description="Voicemail IVR">
+<profiles>
+	<profile name="default">
+		<settings>
+			<param name="IVR-Maximum-Attempts" value="3" />
+			<param name="IVR-Entry-Timeout" value="3000" />
+			<param name="Record-Format" value="wav" />
+			<!--<param name="Record-Sample-Rate" value="8000" />-->
+			<param name="Record-Silence-Hits" value="4" />
+			<param name="Record-Silence-Threshold" value="200" />
+			<param name="Record-Maximum-Length" value="30" />
+			<!--<param name="Record-Minimum-Length" value="3" />-->
+			<param name="Exit-Purge" value="true" />
+			<param name="Password-Mask" value="XXX." />
+			<param name="User-Mask" value="X." />
+
+		</settings>
+		<apis>
+			<api name="auth_login" value="vm_fsdb_auth_login" />
+			<api name="msg_list" value="vm_fsdb_msg_list" />
+			<api name="msg_count" value="vm_fsdb_msg_count" />
+			<api name="msg_delete" value="vm_fsdb_msg_delete" />
+			<api name="msg_undelete" value="vm_fsdb_msg_undelete" />
+			<api name="msg_save" value="vm_fsdb_msg_save" />
+			<api name="msg_purge" value="vm_fsdb_msg_purge" />
+			<api name="msg_get" value="vm_fsdb_msg_get" />
+			<api name="msg_forward" value="vm_fsdb_msg_forward" />
+			<api name="pref_greeting_set" value="vm_fsdb_pref_greeting_set" />
+			<api name="pref_greeting_get" value="vm_fsdb_pref_greeting_get" />
+			<api name="pref_recname_set" value="vm_fsdb_pref_recname_set" />
+			<api name="pref_password_set" value="vm_fsdb_pref_password_set" />
+		</apis>
+		<menus>
+			<menu name="std_authenticate">
+			<phrases>
+				<phrase name="fail_auth" value="fail_auth@voicemail_ivr" />
+			</phrases>
+			<keys>
+			</keys>
+			</menu>
+
+			<menu name="std_authenticate_ask_user">
+			<phrases>
+				<phrase name="instructions" value="enter_id@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+			</keys>
+			</menu>
+
+			<menu name="std_authenticate_ask_password">
+			<phrases>
+				<phrase name="instructions" value="enter_pass@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+			</keys>
+			</menu>
+
+			<menu name="std_main_menu">
+			<settings>
+				<param name="Action-On-New-Message" value="new_msg:std_navigator" />
+			</settings>
+			<phrases>
+				<phrase name="msg_count" value="message_count@voicemail_ivr" />
+				<phrase name="say_date" value="say_date_event@voicemail_ivr" />
+				<phrase name="say_msg_number" value="say_message_number@voicemail_ivr" />
+				<phrase name="menu_options" value="menu@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="1" action="new_msg:std_navigator" variable="VM-Key-Play-New-Messages" />
+				<key dtmf="2" action="saved_msg:std_navigator" variable="VM-Key-Play-Saved-Messages" />
+				<key dtmf="5" action="menu:std_preference" variable="VM-Key-Config-Menu"/>
+				<key dtmf="#" action="return" variable="VM-Key-Terminator" />
+			</keys>
+			</menu>
+
+			<menu name="std_navigator">
+			<settings>
+				<!--<param name="Nav-Action-On-Delete" value="next_msg" />-->
+			</settings>
+			<phrases>
+				<phrase name="msg_count" value="message_count@voicemail_ivr" />
+				<phrase name="say_date" value="say_date_event@voicemail_ivr" />
+				<phrase name="say_msg_number" value="say_message_number@voicemail_ivr" />
+				<phrase name="menu_options" value="listen_file_check@voicemail_ivr" />
+				<phrase name="ack" value="ack@voicemail_ivr" />
+				<phrase name="play_message" value="play_message@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="1" action="skip_intro" variable="VM-Key-Main-Listen-File" />
+				<key dtmf="6" action="next_msg" variable="VM-Key-Main-Next-Msg" />
+				<key dtmf="4" action="prev_msg" />
+				<key dtmf="7" action="delete_msg" variable="VM-Key-Main-Delete-File" /> <!-- Same key for undelete if it already deleted -->
+				<key dtmf="8" action="menu:std_forward" variable="VM-Key-Main-Forward" />
+				<key dtmf="2" action="save_msg" variable="VM-Key-Main-Save-File" />
+				<key dtmf="5" action="callback" variable="VM-Key-Main-Callback" />
+				<key dtmf="#" action="return" /> <!-- TODO Might Conflict with future fast-forward -->
+			</keys>
+			</menu>
+
+			<menu name="std_preference">
+			<phrases>
+				<phrase name="menu_options" value="config_menu@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="1" action="menu:std_record_greeting_with_slot" variable="VM-Key-Record-Greeting" />
+				<key dtmf="2" action="menu:std_select_greeting_slot" variable="VM-Key-Choose-Greeting" />
+				<key dtmf="3" action="menu:std_record_name" variable="VM-Key-Record-Name" />
+				<key dtmf="6" action="menu:std_set_password" variable="VM-Key-Change-Password" />
+				<key dtmf="0" action="return" variable="VM-Key-Main-Menu" />
+			</keys>
+			</menu>
+
+			<menu name="std_record_greeting">
+			<phrases>
+				<phrase name="instructions" value="record_greeting@voicemail_ivr" />
+				<phrase name="play_recording" value="play_recording@voicemail_ivr" />
+				<phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+				<key dtmf="2" action="save" variable="VM-Key-Save-File" />
+				<key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+				<key dtmf="#" action="skip_instruction" />
+			</keys>
+			</menu>
+
+
+			<menu name="std_record_name">
+			<phrases>
+				<phrase name="instructions" value="record_name@voicemail_ivr" />
+				<phrase name="play_recording" value="play_recording@voicemail_ivr" />
+				<phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+				<key dtmf="2" action="save" variable="VM-Key-Save-File" />
+				<key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+				<key dtmf="#" action="skip_instruction" />
+			</keys>
+			</menu>
+
+			<menu name="std_record_message">
+			<phrases>
+				<phrase name="instructions" value="record_message@voicemail_ivr" />
+				<phrase name="play_recording" value="play_recording@voicemail_ivr" />
+				<phrase name="menu_options" value="record_file_check@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="1" action="listen" variable="VM-Key-Listen-File" />
+				<key dtmf="2" action="save" variable="VM-Key-Save-File" />
+				<key dtmf="4" action="rerecord" variable="VM-Key-ReRecord-File" />
+				<key dtmf="#" action="skip_instruction" />
+			</keys>
+			</menu>			
+
+			<menu name="std_forward_ask_prepend">
+			<phrases>
+				<phrase name="menu_options" value="forward_ask_prepend@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="1" action="prepend" variable="VM-Key-Prepend" />
+				<key dtmf="8" action="forward" variable="VM-Key-Forward" />
+				<key dtmf="#" action="return" variable="VM-Key-Return" />
+			</keys>
+			</menu>
+
+			<menu name="std_forward_ask_extension">
+			<phrases>
+				<phrase name="instructions" value="forward_ask_extension@voicemail_ivr" />
+				<phrase name="ack" value="ack@voicemail_ivr" />
+				<phrase name="invalid_extension" value="invalid_extension@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+			</keys>
+			</menu>
+
+			<menu name="std_select_greeting_slot">
+			<phrases>
+				<phrase name="instructions" value="choose_greeting@voicemail_ivr" />
+				<phrase name="invalid_slot" value="choose_greeting_fail@voicemail_ivr" />
+				<phrase name="selected_slot" value="greeting_selected@voicemail_ivr" />
+			</phrases>
+			<keys>
+			</keys>
+			</menu>
+
+			<menu name="std_record_greeting_with_slot">
+			<phrases>
+				<phrase name="instructions" value="choose_greeting@voicemail_ivr" />
+			</phrases>
+			<keys>
+			</keys>
+			</menu>
+
+			<menu name="std_set_password">
+			<phrases>
+				<phrase name="instructions" value="enter_pass@voicemail_ivr" />
+			</phrases>
+			<keys>
+				<key dtmf="#" action="ivrengine:terminate_entry" variable="VM-Key-Terminator" />
+			</keys>
+			</menu>
+		</menus>
+	</profile>
+</profiles>
+</configuration>
+
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/vpx.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/vpx.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ee7549025da72219e283839a871be6778b36ec4e
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/vpx.conf.xml
@@ -0,0 +1,237 @@
+<configuration name="vpx.conf" description="VPX Config">
+  <settings>
+    <!-- <param name="debug" value="1"/> -->
+
+    <!-- max bitrate the system support, truncate if over limit: bps string -->
+    <!-- <param name="max-bitrate" value="5mb"/> -->
+
+    <!-- maximum rtp payload size before encryption: 500..1440 -->
+    <!-- <param name="rtp-slice-size" value="1200"/> -->
+
+    <!-- minimum time to generate a new key frame in ms: 10..3000 /> -->
+    <!-- <param name="key-frame-min-freq" value="250"/> -->
+
+    <!-- integer, or 'auto', or 'cpu[/<divisor>[/<max>]]' -->
+    <!-- <param name="dec-threads" value="cpu/2/4"/> -->
+    <!-- <param name="enc-threads" value="1"/> -->
+  </settings>
+
+  <profiles>
+    <profile name="vp8">
+      <!-- integer, or 'auto', or 'cpu[/<divisor>[/<max>]]' -->
+      <!-- <param name="dec-threads" value="cpu/2/4"/> -->
+      <!-- <param name="enc-threads" value="1"/> -->
+
+      <!-- 0..3 -->
+      <!-- <param name="g-profile" value="2"/> -->
+      <!-- DEFAULT | PARTITIONS -->
+      <!-- <param name="g-error-resilient" value="PARTITIONS"/> -->
+      <!-- ONE_PASS, FIRST_PASS, LAST_PASS"/> -->
+      <!-- <param name="g-pass" value="ONE_PASS"/> -->
+      <!-- 0..25 -->
+      <!-- <param name="g-lag-in-frames" value="0"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-dropframe-thresh" value="0"/> -->
+      <!-- 0, 1 -->
+      <!-- <param name="rc-resize-allowed" value="1"/> -->
+      <!-- 0.. -->
+      <!-- <param name="rc-scaled-width" value="1"/> -->
+      <!-- 0.. -->
+      <!-- <param name="rc-scaled-height" value="1"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-resize-up-thresh" value="60"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-resize-down-thresh" value="30"/> -->
+      <!-- VBR, CBR, CQ, Q -->
+      <!-- <param name="rc-end-usage" value="CBR"/> -->
+      <!-- bps string -->
+      <!-- <param name="rc-target-bitrate" value="1mb"/> -->
+      <!-- 0..63 -->
+      <!-- <param name="rc-min-quantizer" value="0"/> -->
+      <!-- 0..63 -->
+      <!-- <param name="rc-max-quantizer" value="63"/> -->
+      <!-- 0..1000 -->
+      <!-- <param name="rc-undershoot-pct" value="100"/> -->
+      <!-- 0..1000 -->
+      <!-- <param name="rc-overshoot-pct" value="15"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-buf-sz" value="5000"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-buf-initial-sz" value="1000"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-buf-optimal-sz" value="1000"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-2pass-vbr-bias-pct" value="50"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-2pass-vbr-minsection-pct" value="0"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-2pass-vbr-maxsection-pct" value="400"/> -->
+      <!-- AUTO, DISABLED -->
+      <!-- <param name="kf-mode" value="AUTO"/> -->
+      <!-- 0.. -->
+      <!-- <param name="kf-min-dist" value="0"/> -->
+      <!-- 0.. -->
+      <!-- <param name="kf-max-dist" value="360"/> -->
+      <!-- 0..5 -->
+      <!-- <param name="ss-number-layers" value="1"/> -->
+      <!-- 0..5 -->
+      <!-- <param name="ts-number-layers" value="1"/> -->
+      <!-- 0..16 -->
+      <!-- <param name="ts-periodicity" value="0"/> -->
+      <!-- 0..3 -->
+      <!-- <param name="temporal-layering-mode" value="0"/> -->
+
+      <!-- params SET by codec_control -->
+      <!-- -16..16 -->
+      <!-- <param name="cpuused" value="-6"/> -->
+      <!-- 0..3, if cpu==1 then 0 else 3 -->
+      <!-- <param name="token-parts" value="3"/> -->
+      <!-- 0.. -->
+      <!-- <param name="static-thresh" value="100"/> -->
+      <!-- 0..6 -->
+      <!-- <param name="noise-sensitivity" value="1"/> -->
+    </profile>
+
+    <profile name="vp9">
+      <!-- integer, or 'auto', or 'cpu[/<divisor>[/<max>]]' -->
+      <!-- <param name="dec-threads" value="cpu/2/4"/> -->
+      <!-- <param name="enc-threads" value="1"/> -->
+
+      <param name="g-profile" value="0"/>
+      <!-- DEFAULT | PARTITIONS -->
+      <!-- <param name="g-error-resilient" value="PARTITIONS"/> -->
+      <!-- ONE_PASS, FIRST_PASS, LAST_PASS"/> -->
+      <!-- <param name="g-pass" value="ONE_PASS"/> -->
+      <!-- 0..25 -->
+      <!-- <param name="g-lag-in-frames" value="0"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-dropframe-thresh" value="0"/> -->
+      <!-- 0, 1 -->
+      <!-- <param name="rc-resize-allowed" value="1"/> -->
+
+      <!-- 0.. -->
+      <!-- <param name="rc-scaled-width" value="0"/> -->
+      <!-- 0.. -->
+      <!-- <param name="rc-scaled-height" value="0"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-resize-up-thresh" value="0"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-resize-down-thresh" value="0"/> -->
+      <!-- VBR, CBR, CQ, Q -->
+      <!-- <param name="rc-end-usage" value="CBR"/> -->
+      <!-- bps string -->
+      <!-- <param name="rc-target-bitrate" value="1mb"/> -->
+      <!-- 0..63 -->
+      <!-- <param name="rc-min-quantizer" value="0"/> -->
+      <!-- 0..63 -->
+      <!-- <param name="rc-max-quantizer" value="63"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-undershoot-pct" value="100"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-overshoot-pct" value="15"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-buf-sz" value="5000"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-buf-initial-sz" value="1000"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-buf-optimal-sz" value="1000"/> -->
+      <!-- 0..100 -->
+      <!-- <param name="rc-2pass-vbr-bias-pct" value="50"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-2pass-vbr-minsection-pct" value="0"/> -->
+      <!-- 1.. -->
+      <!-- <param name="rc-2pass-vbr-maxsection-pct" value="2000"/> -->
+      <!-- AUTO, DISABLED -->
+      <!-- <param name="kf-mode" value="AUTO"/> -->
+      <!-- 0.. -->
+      <!-- <param name="kf-min-dist" value="0"/> -->
+      <!-- 0.. -->
+      <!-- <param name="kf-max-dist" value="360"/> -->
+      <!-- 0..5 -->
+      <!-- <param name="ss-number-layers" value="1"/> -->
+      <!-- 0..5 -->
+      <!-- <param name="ts-number-layers" value="1"/> -->
+      <!-- 0..16 -->
+      <!-- <param name="ts-periodicity" value="1"/> -->
+      <!-- 0..3 -->
+      <!-- <param name="temporal-layering-mode" value="0"/> -->
+
+      <!-- params SET by codec_control -->
+      <!-- 0, 1 -->
+      <!-- <param name="lossless" value="0"/> -->
+      <!-- -8..8 -->
+      <!-- <param name="cpuused" value="-8"/> -->
+      <!-- 0..3, if cpu==1 then 0 else 3 -->
+      <!-- <param name="token-parts" value="3"/> -->
+      <!-- 0.. -->
+      <!-- <param name="static-thresh" value="1000"/> -->
+      <!-- 0..6 -->
+      <!-- <param name="noise-sensitivity" value="0"/> -->
+      <!-- 0.. -->
+      <!-- <param name="max-intra-bitrate-pct" value="0"/> -->
+      <!-- DEFAULT, SCREEN -->
+      <!-- <param name="vp9e-tune-content" value="SCREEN"/> -->
+    </profile>
+
+    <profile name="conference">
+      <param name="dec-threads" value="cpu/2/4"/>
+      <param name="enc-threads" value="1"/>
+      <codecs>
+        <!-- profiles will be parsed at runtime
+          to overwrite this profile params if codec matches -->
+        <codec name="vp8" profile="vp8"/>
+        <!-- <codec name="vp8" profile="conference-vp8"/> -->
+        <codec name="vp9" profile="vp9"/>
+      </codecs>
+    </profile>
+
+    <profile name="conference-vp8">
+      <param name="dec-threads" value="cpu/2/4"/>
+      <param name="enc-threads" value="cpu/2/4"/>
+      <param name="g-profile" value="2"/>
+      <!-- DEFULT | PARTITIONS -->
+      <param name="g-error-resilient" value="PARTITIONS"/>
+      <!-- ONE_PASS, FIRST_PASS, LAST_PASS"/> -->
+      <!-- <param name="g-pass" value="ONE_PASS"/> -->
+      <!-- <param name="g-lag-in-frames" value="0"/> -->
+      <!-- <param name="rc-dropframe-thresh" value="0"/> -->
+      <!-- <param name="rc-resize-allowed" value="1"/> -->
+      <!-- <param name="rc-scaled-width" value="0"/> -->
+      <!-- <param name="rc-scaled-height" value="0"/> -->
+      <!-- <param name="rc-resize-up-thresh" value="0"/> -->
+      <!-- <param name="rc-resize-down-thresh" value="0"/> -->
+      <!-- VBR, CBR, CQ, Q -->
+      <param name="rc-end-usage" value="CBR"/>
+      <!-- bps -->
+      <param name="rc-target-bitrate" value="1mb"/>
+      <param name="rc-min-quantizer" value="0"/>
+      <param name="rc-max-quantizer" value="63"/>
+      <param name="rc-undershoot-pct" value="100"/>
+      <param name="rc-overshoot-pct" value="50"/>
+      <param name="rc-buf-sz" value="5000"/>
+      <param name="rc-buf-initial-sz" value="1000"/>
+      <param name="rc-buf-optimal-sz" value="1000"/>
+      <!-- <param name="rc-2pass-vbr-bias-pct" value="0"/> -->
+      <!-- <param name="rc-2pass-vbr-minsection-pct" value="0"/> -->
+      <!-- <param name="rc-2pass-vbr-maxsection-pct" value="0"/> -->
+      <!-- AUTO, DISABLED -->
+      <param name="kf-mode" value="AUTO"/>
+      <param name="kf-min-dist" value="0"/>
+      <param name="kf-max-dist" value="240"/>
+      <!-- <param name="ss-number-layers" value="0"/> -->
+      <!-- <param name="ts-number-layers" value="0"/> -->
+      <!-- <param name="ts-periodicity" value="0"/> -->
+      <!-- <param name="temporal-layering-mode" value="0"/> -->
+
+      <!-- params SET by codec_control -->
+      <param name="lossless" value="0"/>
+      <!-- cpuused -16..16 -->
+      <param name="cpuused" value="-6"/>
+      <!-- cpu string or integer -->
+      <param name="token-parts" value="cpu/2/3"/>
+      <param name="static-thresh" value="100"/>
+      <param name="noise-sensitivity" value="1"/>
+      <!-- <param name="max-intra-bitrate-pct" value="0"/> -->
+    </profile>
+  </profiles>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_cdr.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_cdr.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bdb20e63e0caa608fe80e210ecc9fa479f596b0e
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_cdr.conf.xml
@@ -0,0 +1,71 @@
+<configuration name="xml_cdr.conf" description="XML CDR CURL logger">
+  <settings>
+    <!-- the url to post to if blank web posting is disabled  -->
+    <!-- <param name="url" value="http://localhost/cdr_curl/post.php"/> -->
+
+    <!-- optional: credentials to send to web server -->
+    <!--    <param name="cred" value="user:pass"/> -->
+
+    <!-- the total number of retries (not counting the first 'try') to post to webserver incase of failure -->
+    <!-- <param name="retries" value="2"/> -->
+
+    <!-- delay between retries in seconds, default is 5 seconds -->
+    <!-- <param name="delay" value="1"/> -->
+
+    <!-- Log via http and on disk, default is false -->
+    <!-- <param name="log-http-and-disk" value="true"/> -->
+
+    <!-- optional: if not present we do not log every record to disk -->
+    <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank value will default to ${prefix}/logs/xml_cdr -->
+    <param name="log-dir" value=""/>
+
+    <!-- optional: if not present we do log the b leg -->
+    <!-- true or false if we should create a cdr for the b leg of a call-->
+    <param name="log-b-leg" value="false"/>
+    
+    <!-- optional: if not present, all filenames are the uuid of the call -->
+    <!-- true or false if a leg files are prefixed "a_" -->
+    <param name="prefix-a-leg" value="true"/>
+
+    <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding, 'base64' for base64 encoding or 'textxml' for text/xml -->
+    <param name="encode" value="true"/>
+
+    <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting --> 
+    <!--<param name="disable-100-continue" value="true"/>--> 
+    
+    <!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir -->
+    <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/xml_cdr -->
+    <!-- <param name="err-log-dir" value="$${temp_dir}"/> -->
+
+    <!-- which auhtentification scheme to use. Supported values are: basic, digest, NTLM, GSS-NEGOTIATE or "any" for automatic detection -->
+    <!--<param name="auth-scheme" value="basic"/>--> 
+
+    <!-- optional: this will enable the CA root certificate check by libcurl to
+         verify that the certificate was issued by a major Certificate Authority.
+         note: default value is disabled. only enable if you want this! -->
+    <!--<param name="enable-cacert-check" value="true"/>-->
+    <!-- optional: verify that the server is actually the one listed in the cert -->
+    <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
+
+    <!-- optional: these options can be used to specify custom SSL certificates
+         to use for HTTPS communications. Either use both options or neither.
+         Specify your public key with 'ssl-cert-path' and the private key with
+         'ssl-key-path'. If your private key has a password, specify it with
+         'ssl-key-password'. -->
+    <!-- <param name="ssl-cert-path" value="$${certs_dir}/public_key.pem"/> -->
+    <!-- <param name="ssl-key-path" value="$${certs_dir}/private_key.pem"/> -->
+    <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
+
+    <!-- optional: use a custom CA certificate in PEM format to verify the peer
+         with. This is useful if you are acting as your own certificate authority.
+         note: only makes sense if used in combination with "enable-cacert-check." -->
+    <!-- <param name="ssl-cacert-file" value="$${certs_dir}/cacert.pem"/> -->
+
+    <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
+         "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
+    <!-- <param name="ssl-version" value="TLSv1"/> -->
+
+    <!-- optional: enables cookies and stores them in the specified file. -->
+    <!-- <param name="cookie-file" value="$${run_dir}/mod_xml_cdr-cookie.txt"/> -->
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_curl.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_curl.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..19214ee0652b5281a721029298c4ff3f4222694c
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_curl.conf.xml
@@ -0,0 +1,49 @@
+<configuration name="xml_curl.conf" description="cURL XML Gateway">
+  <bindings>
+    <binding name="example">
+      <!-- Allow to bind on a particular IP for requests sent -->
+      <!--<param name="bind-local" value="$${local_ip_v4}" />-->
+      <!-- The url to a gateway cgi that can generate xml similar to
+	   what's in this file only on-the-fly (leave it commented if you dont
+	   need it) -->
+      <!-- one or more |-delim of configuration|directory|dialplan -->
+      <!-- <param name="gateway-url" value="http://www.freeswitch.org/gateway.xml" bindings="dialplan"/> -->
+      <!-- set this to provide authentication credentials to the server -->
+      <!--<param name="gateway-credentials" value="muser:mypass"/>-->
+      <!--<param name="auth-scheme" value="basic"/>-->
+
+      <!-- optional: this will enable the CA root certificate check by libcurl to
+           verify that the certificate was issued by a major Certificate Authority.
+           note: default value is disabled. only enable if you want this! -->
+      <!--<param name="enable-cacert-check" value="true"/>-->
+      <!-- optional: verify that the server is actually the one listed in the cert -->
+      <!-- <param name="enable-ssl-verifyhost" value="true"/> -->
+
+      <!-- optional: these options can be used to specify custom SSL certificates
+           to use for HTTPS communications. Either use both options or neither.
+           Specify your public key with 'ssl-cert-path' and the private key with
+           'ssl-key-path'. If your private key has a password, specify it with
+           'ssl-key-password'. -->
+      <!-- <param name="ssl-cert-path" value="$${certs_dir}/public_key.pem"/> -->
+      <!-- <param name="ssl-key-path" value="$${certs_dir}/private_key.pem"/> -->
+      <!-- <param name="ssl-key-password" value="MyPrivateKeyPassword"/> -->
+      <!-- optional timeout -->
+      <!-- <param name="timeout" value="10"/> -->
+
+      <!-- optional: use a custom CA certificate in PEM format to verify the peer
+           with. This is useful if you are acting as your own certificate authority.
+           note: only makes sense if used in combination with "enable-cacert-check." -->
+      <!-- <param name="ssl-cacert-file" value="$${certs_dir}/cacert.pem"/> -->
+
+      <!-- optional: specify the SSL version to force HTTPS to use. Valid options are
+           "SSLv3" and "TLSv1". Otherwise libcurl will auto-negotiate the version. -->
+      <!-- <param name="ssl-version" value="TLSv1"/> -->
+
+      <!-- optional: enables cookies and stores them in the specified file. -->
+      <!-- <param name="cookie-file" value="$${temp_dir}/cookie-mod_xml_curl.txt"/> -->
+
+      <!-- one or more of these imply you want to pick the exact variables that are transmitted -->
+      <!--<param name="enable-post-var" value="Unique-ID"/>-->
+    </binding>
+  </bindings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_rpc.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_rpc.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c5c335429358907c1e495a861c173a6436e978c6
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_rpc.conf.xml
@@ -0,0 +1,16 @@
+<configuration name="xml_rpc.conf" description="XML RPC">
+  <settings>
+    <!-- The port where you want to run the http service (default 8080) -->
+    <param name="http-port" value="8080"/>
+    <!-- if all 3 of the following params exist all http traffic will require auth -->
+    <param name="auth-realm" value="freeswitch"/>
+    <param name="auth-user" value="freeswitch"/>
+    <param name="auth-pass" value="works"/>
+
+
+    <!-- regex pattern to match against commands called against this service.
+         If a command with arguments matches, it will be logged at INFO level -->
+    <!--<param name="commands-to-log" value=""/> -->
+
+  </settings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_scgi.conf.xml b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_scgi.conf.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b9662d163815cfea1fb4b90638765abd46df4043
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/autoload_configs/xml_scgi.conf.xml
@@ -0,0 +1,12 @@
+<configuration name="xml_scgi.conf" description="SCGI XML Gateway">
+  <bindings>
+    <binding name="example">
+      <!-- one or more |-delim of configuration|directory|dialplan -->
+      <!-- <param name="host" value="127.0.0.1" bindings="dialplan"/> -->
+      <!-- <param name="port" value="8080"/> -->
+      <!-- <param name="timeout" value="10"/> -->
+      <!-- one or more of these imply you want to pick the exact variables that are transmitted -->
+      <!--<param name="enable-post-var" value="Unique-ID"/>-->
+    </binding>
+  </bindings>
+</configuration>
diff --git a/bbb-voice-conference/config/freeswitch/conf/chatplan/default.xml b/bbb-voice-conference/config/freeswitch/conf/chatplan/default.xml
new file mode 100644
index 0000000000000000000000000000000000000000..22d34da552d52334b53ee83032d535bf4c0203c5
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/chatplan/default.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<include>
+  <context name="default">
+
+    <extension name="demo">
+      <condition field="to" expression="^(.*)$">
+	<!--	<action application="lua" data="test.lua"/> -->
+
+	<action application="reply" data="Hello, you said: ${body}"/>
+      </condition>
+    </extension>
+
+  </context>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/default.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/default.xml
index bd9556ace31585c2c50d0a9b609dcce70a38aee0..65bedaa1bc5a107e9f820213b172328f825feb8d 100644
--- a/bbb-voice-conference/config/freeswitch/conf/dialplan/default.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/default.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
     NOTICE:
-    
-    This context is usually accessed via authenticated callers on the sip profile on port 5060 
+
+    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.
@@ -16,106 +16,15 @@
     <extension name="unloop">
       <condition field="${unroll_loops}" expression="^true$"/>
       <condition field="${sip_looped_call}" expression="^true$">
-	<action application="deflect" data="${destination_number}"/>
-      </condition>
-    </extension>
-
-      <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>
-
-<!--
-      <condition>
-	<action application="hash" data="insert/${domain_name}-spymap/${caller_id_number}/${uuid}"/>
-	<action application="hash" data="insert/${domain_name}-last_dial/${caller_id_number}/${destination_number}"/>
-	<action application="hash" data="insert/${domain_name}-last_dial/global/${uuid}"/>
-      </condition>
-    </extension>
-
-    <extension name="eavesdrop">
-      <condition field="destination_number" expression="^88(\d{4})$|^\*0(.*)$">
-	<action application="answer"/>
-	<action application="eavesdrop" data="${hash(select/${domain_name}-spymap/$1)}"/>
-      </condition>
-    </extension>
-
-    <extension name="eavesdrop">
-      <condition field="destination_number" expression="^779$">
-	<action application="answer"/>
-	<action application="set" data="eavesdrop_indicate_failed=tone_stream://%(500, 0, 320)"/>
-	<action application="set" data="eavesdrop_indicate_new=tone_stream://%(500, 0, 620)"/>
-	<action application="set" data="eavesdrop_indicate_idle=tone_stream://%(250, 0, 920)"/>
-	<action application="eavesdrop" data="all"/>
-      </condition>
-    </extension>
--->
-
-    <!-- BBB testing -->
-
-    <!--extension name="bbb_conferences">
-      <condition field="destination_number" expression="^(7\d{4})$">
-	  <action application="answer"/>
-	  <action application="conference" data="$1@wideband"/>
-      </condition>
-    </extension>-->
-
-    <extension name="echo">
-      <condition field="destination_number" expression="^9196$">
-	<action application="answer"/>
-	<action application="echo"/>
-      </condition>
-    </extension>
-
-    <extension name="milliwatt">
-      <condition field="destination_number" expression="^9197$">
-	<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="^9198$">
-	<action application="answer"/>
-	<action application="playback" data="tone_stream://path=${base_dir}/conf/tetris.ttml;loops=10"/>
+        <action application="deflect" data="${destination_number}"/>
       </condition>
     </extension>
 
     <!--
-	You will no longer hear the bong tone.  The wav file is playing stating the call is secure.
-	The file will not play unless you have both TLS and SRTP active.
-    -->
-
-    <extension name="hold_music">
-      <condition field="destination_number" expression="^9664$"/>
-      <condition field="${sip_has_crypto}" expression="^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$">
-	<action application="answer"/>
-	<action application="execute_extension" data="is_secure XML features"/>
-	<action application="playback" data="$${hold_music}"/>
-	<anti-action application="set" data="zrtp_secure_media=true"/>
-	<anti-action application="answer"/>
-	<anti-action application="playback" data="silence_stream://2000"/>
-	<anti-action application="execute_extension" data="is_zrtp_secure XML features"/>
-	<anti-action application="playback" data="$${hold_music}"/>
-      </condition>
-    </extension>
-
-    <!--
-	You can place files in the default directory to get included.
+        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 usually get ignored due to the file in 
-	default/99999_enum.xml as it will transfer the call to the enum dialplan.
-
-	WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-    -->
-
-    <!-- SEE WARNING ABOVE IF YOU ARE TRYING TO ADD EXTENSIONS HERE! -->
 
   </context>
 </include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/default/99999_enum.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/99999_enum.xml
deleted file mode 100644
index 6fd21518591634fab111a3184d356d4cc6021b71..0000000000000000000000000000000000000000
--- a/bbb-voice-conference/config/freeswitch/conf/dialplan/default/99999_enum.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<include>
-  <extension name="enum">
-    <condition field="${module_exists(mod_enum)}" expression="true"/>
-    <condition field="destination_number" expression="^(.*)$">
-      <action application="transfer" data="$1 enum"/>
-    </condition>
-  </extension>
-</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_conference.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_conference.xml
new file mode 100644
index 0000000000000000000000000000000000000000..719ecb3e8ca3d0d53fab9ae143bf7966d0100882
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_conference.xml
@@ -0,0 +1,19 @@
+<include>
+    <extension name="bbb_conferences_ws">
+      <condition field="${bbb_authorized}" expression="true" break="on-false"/>
+      <condition field="${sip_via_protocol}" expression="^wss?$"/>
+      <condition field="destination_number" expression="^(\d{5,11})$">
+        <action application="jitterbuffer" data="60:120"/>
+        <action application="answer"/>
+        <action application="conference" data="$1@cdquality"/>
+      </condition>
+    </extension>
+    <extension name="bbb_conferences">
+      <condition field="${bbb_authorized}" expression="true" break="on-false"/>
+      <condition field="destination_number" expression="^(\d{5,11})$">
+        <action application="jitterbuffer" data="60:120"/>
+        <action application="answer"/>
+        <action application="conference" data="$1@cdquality"/>
+      </condition>
+    </extension>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_echo_test.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_echo_test.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b91896e163bb3d781ae6e08d7eac9f57266a1227
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_echo_test.xml
@@ -0,0 +1,13 @@
+<include>
+  <extension name="bbb_echo_test_direct">
+    <condition field="${bbb_authorized}" expression="true" break="on-false"/>
+    <condition field="destination_number" expression="^echo(\d{5,11})$">
+      <action application="set" data="vbridge=$1"/>
+      <action application="answer"/>
+      <action application="set" data="bbb_from_echo=true"/>
+      <action application="bind_digit_action" data="direct_from_echo,1,exec:execute_extension,ECHO_TO_CONFERENCE XML default"/>
+      <action application="sleep" data="500"/>
+      <action application="echo"/>
+    </condition>
+  </extension>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_echo_to_conference.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_echo_to_conference.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6711ba309eb710773a19e2b9e883ff2fd897d590
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/default/bbb_echo_to_conference.xml
@@ -0,0 +1,10 @@
+<include>
+  <extension name="ECHO_TO_CONFERENCE">
+    <condition field="${bbb_from_echo}" expression="true" break="on-false"/>
+    <condition field="destination_number" expression="^(ECHO_TO_CONFERENCE)$">
+      <action application="jitterbuffer" data="60:120"/>
+      <action application="answer"/>
+      <action application="conference" data="${vbridge}@cdquality"/>
+    </condition>
+  </extension>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/features.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/features.xml
index 901b3091b7c137cb11dbbfff342acc026e6ede86..665925f964c9a09bc8ab0179a7345bb8ff09e977 100644
--- a/bbb-voice-conference/config/freeswitch/conf/dialplan/features.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/features.xml
@@ -11,6 +11,14 @@
       </condition>
     </extension>
 
+    <extension name="att_xfer">
+     <condition field="destination_number" expression="^att_xfer$">
+       <action application="read" data="3 4 'tone_stream://%(10000,0,350,440)' digits 30000 #"/>
+       <action application="set" data="origination_cancel_key=#"/>
+       <action application="att_xfer" data="user/${digits}@$${domain}"/>
+     </condition>
+    </extension>
+
     <extension name="is_transfer">
       <condition field="destination_number" expression="^is_transfer$"/>
       <condition field="${digits}" expression="^(\d+)$">
@@ -48,7 +56,7 @@
     <extension name="is_secure" continue="true">
       <!-- Only Truly consider it secure if its TLS and SRTP --> 
       <condition field="${sip_via_protocol}" expression="tls"/>
-      <condition field="${sip_secure_media_confirmed}" expression="^true$">
+      <condition field="${rtp_secure_media_confirmed}" expression="^true$">
 	<action application="sleep" data="1000"/>
 	<action application="playback" data="misc/call_secured.wav"/>
 	<anti-action application="eval" data="not_secure"/>
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/public.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/public.xml
index d869401e4dfcc8a2da0ec4f8c004b3333b4c9e5f..faf9b1f301cb8aadb7cbab2bd559d447f6c262ab 100644
--- a/bbb-voice-conference/config/freeswitch/conf/dialplan/public.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/public.xml
@@ -27,52 +27,17 @@
     <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="^(10[01][0-9])$">
-	<action application="transfer" data="$1 XML default"/>
-      </condition>
-    </extension>
-    
-
-    <!-- BBB testing -->
-
-    <extension name="bbb_conferences">
-      <condition field="destination_number" expression="^(\d{5})$">
-          <action application="answer"/>
-          <action application="conference" data="$1@wideband"/>
-          <!-- <action application="conference" data="$1@wideband"/> -->
+	<action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
       </condition>
     </extension>
 
     <!--
-	You can place files in the public directory to get included.
+        You can place files in the public directory to get included.
     -->
     <X-PRE-PROCESS cmd="include" data="public/*.xml"/>
-    <!--
-	If you have made it this far lets challenge the caller and if they authenticate
-	lets try what they dialed in the default context. (commented out by default)
-    -->
-    <!--
-    <extension name="check_auth" continue="true">
-      <condition field="${sip_authorized}" expression="^true$" break="never">
-	<anti-action application="respond" data="407"/>
-      </condition>
-    </extension>
-    
-    <extension name="transfer_to_default">
-      <condition>
-	<action application="transfer" data="${destination_number} XML default"/>
-      </condition>
-    </extension>
-    -->
+
+
   </context>
+
 </include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/public/00_inbound_did.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/public/00_inbound_did.xml
deleted file mode 100644
index d40b3ab2c902cd8a9f274130aebc49f1459b3843..0000000000000000000000000000000000000000
--- a/bbb-voice-conference/config/freeswitch/conf/dialplan/public/00_inbound_did.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<include>
-  <extension name="public_did">
-    <condition field="destination_number" expression="^(5551212)$">
-      <!--
-	  If you're hosting multiple domains you will want to set the
-	  target_domain on these calls so they hit the proper domain after you
-	  transfer the caller into the default context. 
-	  
-	  $${domain} is the default domain set from vars.xml but you can set it
-	  to any domain you have setup in your user directory.
-
-      --> 
-      <action application="set" data="domain_name=$${domain}"/>
-      <!-- This example maps the DID 5551212 to ring 1000 in the default context -->
-      <action application="transfer" data="1000 XML default"/>
-    </condition>
-  </extension>
-</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/public/bbb_sip.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/public/bbb_sip.xml
new file mode 100644
index 0000000000000000000000000000000000000000..367914f11a0ae6624c9a92f26744cb48d97148af
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/public/bbb_sip.xml
@@ -0,0 +1,9 @@
+<include>
+    <extension name="bbb_sp_call" continue="true">
+      <condition field="network_addr" expression="${domain}" break="on-false">
+        <action application="set" data="bbb_authorized=true"/>
+        <action application="transfer" data="${destination_number} XML default"/>
+      </condition>
+    </extension>
+</include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/public/bbb_webrtc.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/public/bbb_webrtc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0582cceec681bfaead12c69187ab89c3b3366341
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/public/bbb_webrtc.xml
@@ -0,0 +1,12 @@
+<include>
+
+    <extension name="bbb_webrtc_call" continue="true">
+      <condition field="${sip_via_protocol}" expression="^wss?$" break="on-false">
+	<action application="set" data="bbb_authorized=true"/>
+	<action application="set" data="jb_use_timestamps=true"/>
+        <action application="transfer" data="${destination_number} XML default"/>
+      </condition>
+    </extension>
+
+</include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns.xml
new file mode 100644
index 0000000000000000000000000000000000000000..55f261fd5ba0240544cccc78f3352f647d3102eb
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    NOTICE:
+
+    This context is used for skinny to match dialed number
+
+    The special applications:
+    - skinny-process tells skinny to process the call (route, set call forwarding, ...)
+    - skinny-drop tells skinny to drop the call
+    - skinny-wait tells skinny to wait 'data' seconds for more numbers before drop
+-->
+<!-- http://wiki.freeswitch.org/wiki/Mod_skinny -->
+<include>
+  <context name="skinny-patterns">
+    <!--
+    Wait 10 seconds for another digit by default, if data not specified, uses profile default
+    -->
+    <extension name="Default">
+      <condition>
+        <action application="skinny-wait" data="10"/>
+      </condition>
+    </extension>
+
+    <!--
+	You can place files in the skinny-patterns directory to get included.
+    -->
+    <X-PRE-PROCESS cmd="include" data="skinny-patterns/*.xml"/>
+
+  </context>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/20-Demo.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/20-Demo.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f69658128fa52eab16d37dbc9f0ca6a4184bd587
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/20-Demo.xml
@@ -0,0 +1,8 @@
+<include>
+  <extension name="Demo">
+    <condition field="destination_number" expression="^(9[0-9]{3})$">
+      <action application="skinny-process"/>
+    </condition>
+  </extension>
+</include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/20-Local_extension.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/20-Local_extension.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9ad5651328a17a141e328873d04110b2577e3122
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/20-Local_extension.xml
@@ -0,0 +1,13 @@
+<include>
+  <extension name="Local_Extension">
+    <condition field="destination_number" expression="^(10[01][0-9])$">
+      <action application="skinny-process"/>
+    </condition>
+  </extension>
+  <extension name="Local_Extension_Skinny">
+    <condition field="destination_number" expression="^(11[01][0-9])$">
+      <action application="skinny-process"/>
+    </condition>
+  </extension>
+</include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/90-External.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/90-External.xml
new file mode 100644
index 0000000000000000000000000000000000000000..50d6c37f246cb69aa58f0ad82e31b7ed1d984353
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/90-External.xml
@@ -0,0 +1,8 @@
+<include>
+  <extension name="External">
+    <condition field="destination_number" expression="^(0[0-9]{10,})$">
+      <action application="skinny-process"/>
+    </condition>
+  </extension>
+</include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/99-Default_Drop.xml b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/99-Default_Drop.xml
new file mode 100644
index 0000000000000000000000000000000000000000..897fd8fb946ffba69a28ded6276e978a27ac9062
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/dialplan/skinny-patterns/99-Default_Drop.xml
@@ -0,0 +1,9 @@
+<include>
+  <!-- drop long dialed number -->
+  <extension name="Default_Drop">
+    <condition field="destination_number" expression="^(.{14,})$">
+      <action application="skinny-drop"/>
+    </condition>
+  </extension>
+</include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default.xml
index 6b4d787523aa766d61c27e2c155143408d4ad682..54100b95dd840be18a45ab4a456c1752c4b82bb6 100644
--- a/bbb-voice-conference/config/freeswitch/conf/directory/default.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/directory/default.xml
@@ -1,9 +1,9 @@
 <!--
-    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
-    
+    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
@@ -11,17 +11,20 @@
     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 
+    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 
+
+    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})}"/>
+      <param name="dial-string" value="{^^:sip_invite_domain=${dialed_domain}:presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})},${verto_contact(${dialed_user}@${dialed_domain})}"/>
+      <!-- These are required for Verto to function properly -->
+      <param name="jsonrpc-allowed-methods" value="verto"/>
+      <!-- <param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/> -->
     </params>
 
     <variables>
@@ -38,6 +41,40 @@
 	</users>
       </group>
 
+      <group name="sales">
+	<users>
+	  <!--
+	      type="pointer" is a pointer so you can have the
+	      same user in multiple groups.  It basically means
+	      to keep searching for the user in the directory.
+	  -->
+	  <user id="1000" type="pointer"/>
+	  <user id="1001" type="pointer"/>
+	  <user id="1002" type="pointer"/>
+	  <user id="1003" type="pointer"/>
+	  <user id="1004" type="pointer"/>
+	</users>
+      </group>
+
+      <group name="billing">
+	<users>
+	  <user id="1005" type="pointer"/>
+	  <user id="1006" type="pointer"/>
+	  <user id="1007" type="pointer"/>
+	  <user id="1008" type="pointer"/>
+	  <user id="1009" type="pointer"/>
+	</users>
+      </group>
+
+      <group name="support">
+	<users>
+	  <user id="1010" type="pointer"/>
+	  <user id="1011" type="pointer"/>
+	  <user id="1012" type="pointer"/>
+	  <user id="1013" type="pointer"/>
+	  <user id="1014" type="pointer"/>
+	</users>
+      </group>
     </groups>
 
   </domain>
diff --git a/bbb-voice-conference/config/freeswitch/conf/directory/default/bbbuser.xml b/bbb-voice-conference/config/freeswitch/conf/directory/default/bbbuser.xml
index 1d9b6188ef91b3ba8d04793e0597422751d8bd83..2c6afc72fe01203e11042b35f33c36ab43402a95 100644
--- a/bbb-voice-conference/config/freeswitch/conf/directory/default/bbbuser.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/directory/default/bbbuser.xml
@@ -1,13 +1,13 @@
 <include>
   <!--
-      ipauth if you have an cidr= in the user attributes ie cidr="1.2.3.4/32"  
-      see <node type="allow" domain="$${domain}"/> in default acl.conf.xml 
+      ipauth if you have an cidr= in the user attributes ie cidr="1.2.3.4/32"
+      see <node type="allow" domain="$${domain}"/> in default acl.conf.xml
   -->
   <user id="bbbuser">
     <params>
       <!-- omit password for authless registration -->
       <param name="password" value="secret"/>
-      <!-- What this user is allowed to acces --> 
+      <!-- What this user is allowed to acces -->
       <!--<param name="http-allowed-api" value="jsapi,voicemail,status"/> -->
     </params>
     <variables>
@@ -18,7 +18,7 @@
       <!-- Don't write a CDR if this is false valid values are: true, false, a_leg and b_leg -->
       <variable name="process_cdr" value="true"/>
       <!-- sip_secure_media will offer mandatory SRTP on invite AES_CM_128_HMAC_SHA1_32, AES_CM_128_HMAC_SHA1_80 or true-->
-      <variable name="sip_secure_media" value="false"/>
+      <variable name="rtp_secure_media" value="false"/>
     </variables>
 
     <vcard>
@@ -26,3 +26,4 @@
     </vcard>
   </user>
 </include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/extensions.conf b/bbb-voice-conference/config/freeswitch/conf/extensions.conf
index 184e3758eb934719682f7b48398320d783679268..c2f02f62db2c774aa6701809184c6c2e393f9eff 100644
--- a/bbb-voice-conference/config/freeswitch/conf/extensions.conf
+++ b/bbb-voice-conference/config/freeswitch/conf/extensions.conf
@@ -1,21 +1,21 @@
 [default]
 
 ; Things you're used to....
-;exten => music,n,Dial(SIP/1234@conference.freeswitch.org|120)
+exten => music,n,Dial(SIP/1234@conference.freeswitch.org|120)
 
-;exten => _1XXXXX,n,set(cool=${EXTEN})
-;exten => _1XXXXX,n,set(myvar=true)
-;exten => _1XXXXX,n,Goto(default|music)
-;exten => 2137991400/1000,n,Goto(default|music)
+exten => _1XXXXX,n,set(cool=${EXTEN})
+exten => _1XXXXX,n,set(myvar=true)
+exten => _1XXXXX,n,Goto(default|music)
+exten => 2137991400/1000,n,Goto(default|music)
 
 
 ; Some new magic you can do....
-;exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,enum($1)
-;exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,bridge(${enum_auto_route})
+exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,enum($1)
+exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,bridge(${enum_auto_route})
 
 ; instead of exten, put anything about the call you would rather match on.
 ; either the names of a field in caller_profile or a string of variables to expand.
-;caller_id_number => 2137991400,n,Goto(default|music) 
-;${sip_from_user} => bill,n,Goto(default|music)
+caller_id_number => 2137991400,n,Goto(default|music)
+${sip_from_user} => bill,n,Goto(default|music)
 
 
diff --git a/bbb-voice-conference/config/freeswitch/conf/freeswitch.serial b/bbb-voice-conference/config/freeswitch/conf/freeswitch.serial
deleted file mode 100644
index d72590a059566000bd7d5f646582fe46f9b3c2f5..0000000000000000000000000000000000000000
Binary files a/bbb-voice-conference/config/freeswitch/conf/freeswitch.serial and /dev/null differ
diff --git a/bbb-voice-conference/config/freeswitch/conf/freeswitch.xml b/bbb-voice-conference/config/freeswitch/conf/freeswitch.xml
index 80e7728e0d471794b50d4819a8c672996c18cc5f..dc66fca170aae5ded8c9c2cb48fd49d8f4f89b5c 100644
--- a/bbb-voice-conference/config/freeswitch/conf/freeswitch.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/freeswitch.xml
@@ -1,24 +1,24 @@
 <?xml version="1.0"?>
 <!--
-    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
-    
-    This is the FreeSWITCH default config.  Everything you see before you now traverses 
+    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
+
+    This is the FreeSWITCH default config.  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 our FAQ located at:
-    
+
     http://wiki.freeswitch.org/wiki/FreeSwitch_FAQ
-    
-    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE 
+
+    NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
 -->
 <document type="freeswitch/xml">
-  <!--#comment 
+  <!--#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
@@ -26,10 +26,10 @@
       #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.
   -->
@@ -41,27 +41,32 @@
   <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>
 
+  <section name="chatplan" description="Regex/XML Chatplan">
+    <X-PRE-PROCESS cmd="include" data="chatplan/*.xml"/>
+  </section>
+
   <!-- mod_dingaling is reliant on the vcard data in the "directory" section. -->
-  <!-- mod_sofia is reliant on the user data for authorization --> 
+  <!-- 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>
 
-  <!-- phrases section (under development still) -->
-  <section name="phrases" description="Speech Phrase Management">
-    <macros>
-      <X-PRE-PROCESS cmd="include" data="lang/de/*.xml"/>
-      <X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/>
-      <X-PRE-PROCESS cmd="include" data="lang/fr/*.xml"/>
-      <X-PRE-PROCESS cmd="include" data="lang/ru/*.xml"/>
-    </macros>
+  <!-- languages section (under development still) -->
+  <section name="languages" description="Language Management">
+    <X-PRE-PROCESS cmd="include" data="lang/de/*.xml"/>
+    <X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/>
+    <X-PRE-PROCESS cmd="include" data="lang/fr/*.xml"/>
+    <X-PRE-PROCESS cmd="include" data="lang/ru/*.xml"/>
+    <X-PRE-PROCESS cmd="include" data="lang/he/*.xml"/>
+    <X-PRE-PROCESS cmd="include" data="lang/es/es_ES.xml"/>
+    <X-NO-PRE-PROCESS cmd="include" data="lang/es/es_MX.xml"/>
+    <X-PRE-PROCESS cmd="include" data="lang/pt/pt_BR.xml"/>
+    <X-NO-PRE-PROCESS cmd="include" data="lang/pt/pt_PT.xml"/>
+    <X-NO-PRE-PROCESS cmd="include" data="lang/sv/*.xml"/>
   </section>
-
 </document>
-
-
diff --git a/bbb-voice-conference/config/freeswitch/conf/ivr_menus/demo_ivr.xml b/bbb-voice-conference/config/freeswitch/conf/ivr_menus/demo_ivr.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8059d57ccfdf0ac2d4fae626ee3c83c69f28b251
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/ivr_menus/demo_ivr.xml
@@ -0,0 +1,64 @@
+<include>
+  <!-- demo IVR setup -->
+  <!-- demo IVR, Main Menu -->
+  <menu name="demo_ivr"
+      greet-long="phrase:demo_ivr_main_menu"
+      greet-short="phrase:demo_ivr_main_menu_short"
+      invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
+      exit-sound="voicemail/vm-goodbye.wav"
+      confirm-macro=""
+      confirm-key=""
+      tts-engine="flite"
+      tts-voice="rms"
+      confirm-attempts="3"
+      timeout="10000"
+      inter-digit-timeout="2000"
+      max-failures="3"
+      max-timeouts="3"
+      digit-len="4">
+
+    <!-- The following are the definitions for the digits the user dials -->
+    <!-- Digit 1 transfer caller to the public FreeSWITCH conference -->
+    <entry action="menu-exec-app" digits="1" param="bridge sofia/$${domain}/888@conference.freeswitch.org"/>
+    <entry action="menu-exec-app" digits="2" param="transfer 9196 XML default"/>    <!-- FS echo -->
+    <entry action="menu-exec-app" digits="3" param="transfer 9664 XML default"/>    <!-- MOH -->
+    <entry action="menu-exec-app" digits="4" param="transfer 9191 XML default"/>    <!-- ClueCon -->
+    <entry action="menu-exec-app" digits="5" param="transfer 1234*256 enum"/>       <!-- Screaming monkeys -->
+    <entry action="menu-sub" digits="6" param="demo_ivr_submenu"/>                  <!-- demo sub menu -->
+    <!-- Using a regex in the digits tag lets you define a dial pattern for the caller
+         You may define multiple regexes if you need a different pattern for some reason -->
+    <entry action="menu-exec-app" digits="/^(10[01][0-9])$/" param="transfer $1 XML features"/>
+    <entry action="menu-top" digits="9"/>          <!-- Repeat this menu -->
+  </menu>
+
+  <!-- Demo IVR, Sub Menu -->
+  <menu name="demo_ivr_submenu"
+      greet-long="phrase:demo_ivr_sub_menu"
+      greet-short="phrase:demo_ivr_sub_menu_short"
+      invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
+      exit-sound="voicemail/vm-goodbye.wav"
+      timeout="15000"
+      max-failures="3"
+      max-timeouts="3">
+
+    <!-- The demo IVR sub menu prompt basically just says, "press star to return to previous menu..." -->
+    <entry action="menu-top" digits="*"/>
+   </menu>
+
+
+<!-- TTS sample; non-functional but it demonstrates say: and TTS -->
+<!--
+  <menu name="demo3"
+      greet-long="say:Press 1 to join the conference, Press 2 to join the other conference"
+      greet-short="say:Press 1 to join the conference, Press 2 to join the other conference"
+      invalid-sound="say:invalid extension"
+      exit-sound="say:exit sound"
+      timeout ="15000"
+      max-failures="3">
+    <entry action="menu-exit" digits="*"/>
+    <entry action="menu-play-sound" digits="1" param="say:You pressed 1"/>
+    <entry action="menu-exec-app" digits="2" param="transfert 1000 XML default"/>
+    <entry action="menu-exec-app" digits="3" param="transfert 1001 XML default"/>
+  </menu>
+-->
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/ivr_menus/new_demo_ivr.xml b/bbb-voice-conference/config/freeswitch/conf/ivr_menus/new_demo_ivr.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f2ca7dc68e19ca1ea7882d6df4be4fac2faacdec
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/ivr_menus/new_demo_ivr.xml
@@ -0,0 +1,69 @@
+<include>
+  <!-- new demo IVR, Main Menu -->
+  <menu name="new_demo_ivr"
+      greet-long="phrase:new_demo_ivr_main_menu"
+      greet-short="phrase:new_demo_ivr_main_menu_short"
+      invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
+      exit-sound="voicemail/vm-goodbye.wav"
+      confirm-macro=""
+      confirm-key=""
+      tts-engine="flite"
+      tts-voice="rms"
+      confirm-attempts="3"
+      timeout="10000"
+      inter-digit-timeout="2000"
+      max-failures="3"
+      max-timeouts="3"
+      digit-len="4">
+
+    <entry action="menu-sub"      digits="1" param="freeswitch_ivr_submenu"/>            <!-- FreeSWITCH sub menu -->
+    <entry action="menu-sub"      digits="2" param="freeswitch_solutions_ivr_submenu"/>  <!-- FreeSWITCH Solutions sub menu -->
+    <entry action="menu-sub"      digits="3" param="cluecon_ivr_submenu"/>               <!-- ClueCon sub menu -->
+    <entry action="menu-exec-app" digits="4" param="5000 XML default"/>                  <!-- original demo IVR -->
+    <entry action="menu-top"      digits="9"/>                                           <!-- Repeat this menu -->
+  </menu>
+
+  <!-- FreeSWITCH IVR Sub Menu -->
+  <menu name="freeswitch_ivr_submenu"
+      greet-long="phrase:learn_about_freeswitch_sub_menu"
+      greet-short="phrase:learn_about_freeswitch_sub_menu"
+      invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
+      exit-sound="voicemail/vm-goodbye.wav"
+      timeout="15000"
+      max-failures="3"
+      max-timeouts="3">
+
+    <entry action="menu-sub" digits="9" param="freeswitch_ivr_submenu"/>
+    <entry action="menu-top" digits="*"/>
+  </menu>
+
+  <!-- FreeSWITCH Solutions IVR Sub Menu -->
+  <menu name="freeswitch_solutions_ivr_submenu"
+      greet-long="phrase:learn_about_freeswitch_solutions_sub_menu"
+      greet-short="phrase:learn_about_freeswitch_solutions_sub_menu"
+      invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
+      exit-sound="voicemail/vm-goodbye.wav"
+      timeout="15000"
+      max-failures="3"
+      max-timeouts="3">
+
+    <entry action="menu-sub" digits="9" param="freeswitch_solutions_ivr_submenu"/>
+    <entry action="menu-top" digits="*"/>
+  </menu>
+
+  <!-- ClueCon IVR Sub Menu -->
+  <menu name="cluecon_ivr_submenu"
+      greet-long="phrase:learn_about_cluecon_sub_menu"
+      greet-short="phrase:learn_about_cluecon_sub_menu"
+      invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav"
+      exit-sound="voicemail/vm-goodbye.wav"
+      timeout="15000"
+      max-failures="3"
+      max-timeouts="3">
+
+    <entry action="menu-sub" digits="9" param="cluecon_ivr_submenu"/>
+    <entry action="menu-top" digits="*"/>
+  </menu>
+
+
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/jingle_profiles/client.xml b/bbb-voice-conference/config/freeswitch/conf/jingle_profiles/client.xml
new file mode 100644
index 0000000000000000000000000000000000000000..20a8dd809d1778ad3641d076147ec211839f6ecc
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/jingle_profiles/client.xml
@@ -0,0 +1,36 @@
+<include>
+  <!-- Client Profile (Original mode) -->
+  <!-- to use this profile take the x- away from the open and close tags so its <profile> and </profile> -->
+  <x-profile type="client">
+    <param name="name" value="$${xmpp_client_profile}"/>
+    <param name="login" value="myjid@myserver.com/talk"/>
+    <param name="password" value="mypass"/>
+    <param name="dialplan" value="XML"/>
+    <param name="context" value="public"/>
+    <param name="message" value="Jingle all the way"/>
+    <param name="rtp-ip" value="$${bind_server_ip}"/>
+    <!-- <param name="ext-rtp-ip" value="auto-nat"/> -->
+    <param name="auto-login" value="true"/>
+    <!-- SASL "plain" or "md5" -->
+    <param name="sasl" value="plain"/>
+    <!-- if the server where the jabber is hosted is not the same as the one in the jid -->
+    <!--<param name="server" value="alternate.server.com"/>-->
+    <!-- Enable TLS or not -->
+    <param name="tls" value="true"/>
+    <!-- disable to trade async for more calls -->
+    <param name="use-rtp-timer" value="true"/>
+    <!-- default extension (if one cannot be determined) -->
+    <param name="exten" value="888"/>
+    <!-- VAD choose one -->
+    <!-- <param name="vad" value="in"/> -->
+    <!-- <param name="vad" value="out"/> -->
+    <!--<param name="vad" value="both"/>-->
+    <!--<param name="avatar" value="/path/to/tiny.jpg"/>-->
+    <!--<param name="candidate-acl" value="wan.auto"/>-->
+    <param name="local-network-acl" value="localnet.auto"/>
+
+    <!-- google voice does not work on this yet ....ikr... -->
+    <!--<param name="use-jingle" value="true"/>-->
+
+  </x-profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/jingle_profiles/server.xml b/bbb-voice-conference/config/freeswitch/conf/jingle_profiles/server.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b60dc27ea6d9eeec37bc5a28faecd2ee437114e8
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/jingle_profiles/server.xml
@@ -0,0 +1,21 @@
+<include>
+  <!-- Component (Server to Server Login) -->
+  <!-- to use this profile take the x- away from the open and close tags so its <profile> and </profile> -->
+  <x-profile type="component">
+    <param name="name" value="$${xmpp_server_profile}"/>
+    <param name="password" value="secret"/>
+    <param name="dialplan" value="XML"/>
+    <param name="context" value="public"/>
+    <param name="rtp-ip" value="$${bind_server_ip}"/>
+    <param name="server" value="jabber.server.org:5347"/>
+    <!-- disable to trade async for more calls -->
+    <param name="use-rtp-timer" value="true"/>
+    <!-- "_auto_" means the extension will be automaticly set to the called jid -->
+    <param name="exten" value="_auto_"/>
+    <!--<param name="vad" value="both"/>-->
+    <!--<param name="avatar" value="/path/to/tiny.jpg"/>-->
+    <!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
+    <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
+    <!--<param name="candidate-acl" value="wan.auto"/>-->
+  </x-profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/de/de.xml b/bbb-voice-conference/config/freeswitch/conf/lang/de/de.xml
index 5239489f75720207cec1d373abf6aa0e1a4af3b1..a7dbab0c0c8859afb5f84a1cef6182f2963c80c3 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/de/de.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/de/de.xml
@@ -1,7 +1,22 @@
 <include>
-  <language name="de" sound-path="/snds" tts-engine="cepstral" tts-voice="david">
-    <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
-    <!--voicemail_de_tts is purely implemented with tts, we need a files based implementation too -->
-    <X-PRE-PROCESS cmd="include" data="vm/tts.xml"/>
+  <language name="de" sound-prefix="/snds" tts-engine="cepstral" tts-voice="david">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
+        <!--voicemail_de_tts is purely implemented with tts, we need a files based implementation too -->
+        <X-PRE-PROCESS cmd="include" data="vm/tts.xml"/>
+      </macros>
+    </phrases>
   </language>
 </include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/de/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/de/demo/demo.xml
index 61582b2052ba4d9ea1a4bf75251a993db2095ade..fa77948b65c47217c5634be78ee6249665d0b34a 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/de/demo/demo.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/de/demo/demo.xml
@@ -1,71 +1,82 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-    <macro name="msgcount">
-      <input pattern="(.*)">
-	<match>
-	  <action function="execute" data="sleep(1000)"/>
-	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
-	  <action function="say" data="$1" method="pronounced" type="items"/>
-	  <action function="play-file" data="voicemail/vm-messages.wav"/>
-	  <!-- or -->
-	  <!--<action function="speak-text" data="Sie haben $1 Nachrichten"/>-->
-	</match>
-      </input>
-    </macro>
-    <macro name="saydate">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="timespec">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="ip-addr">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="iterated" type="ip_address"/>
-	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="spell">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="spell-phonetic">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="tts-timeleft">
-      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
-      <!-- If the function "break" is encountered all parsing will cease -->
-      <input pattern="(\d+):(\d+)">
-	<match>
-	  <action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
-	  <action function="break"/>
-	</match>
-	<nomatch>
-	  <action function="speak-text" data="Die Eingabe war ungültig."/>
-	</nomatch>
-      </input>
-      <input pattern="(\d+) min (\d+) sek">
-	<match>
-	  <action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
-	</match>
-	<nomatch>
-	  <action function="speak-text" data="Die Eingabe war ungültig."/>
-	</nomatch>
-      </input>
-    </macro>
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+  <macro name="msgcount">
+    <input pattern="(.*)">
+      <match>
+        <action function="execute" data="sleep(1000)"/>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+        <!-- or -->
+        <!--<action function="speak-text" data="Sie haben $1 Nachrichten"/>-->
+      </match>
+    </input>
+  </macro>
+  <macro name="saydate">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="timespec">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="time_measurement"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="ip-addr">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="iterated" type="ip_address"/>
+        <action function="say" data="$1" method="pronounced" type="ip_address"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="spell">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="spell-phonetic">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="tts-timeleft">
+    <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
+    <!-- If the function "break" is encountered all parsing will cease -->
+    <input pattern="(\d+):(\d+)">
+      <match>
+        <action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
+        <action function="break"/>
+      </match>
+      <nomatch>
+        <action function="speak-text" data="Die Eingabe war ungültig."/>
+      </nomatch>
+    </input>
+    <input pattern="(\d+) min (\d+) sek">
+      <match>
+        <action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
+      </match>
+      <nomatch>
+        <action function="speak-text" data="Die Eingabe war ungültig."/>
+      </nomatch>
+    </input>
+  </macro>
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/sounds.xml
new file mode 100644
index 0000000000000000000000000000000000000000..10643d9ddf5b6801312b2e042c0ee9d143b337ba
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/sounds.xml
@@ -0,0 +1,413 @@
+<include>
+
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+        <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-abort.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^(1):(.*)$" break_on_match="true">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action application="log" data="INFO $1 $2"/>
+        <action function="say" data="$1" method="pronounced" type="items" gender="feminine"/>
+        <action function="play-file" data="voicemail/vm-$2.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items" gender="feminine"/>
+        <action function="play-file" data="voicemail/vm-$2.wav"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+        <!-- To listen to new messages -->
+        <action function="play-file" data="voicemail/vm-listen_new.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+        <!-- To listen to saved messages -->
+        <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+        <!-- For advanced options -->
+        <action function="play-file" data="voicemail/vm-advanced.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+        <!-- To exit -->
+        <action function="play-file" data="voicemail/vm-to_exit.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+        <!-- To record a greeting -->
+        <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+        <!-- To choose greeting -->
+        <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+        <!-- To record your name -->
+        <action function="play-file" data="voicemail/vm-record_name2.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+        <!-- To change password -->
+        <action function="play-file" data="voicemail/vm-change_password.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+        <!-- To return to main menu -->
+        <action function="play-file" data="voicemail/vm-main_menu.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-record_name1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-rerecord.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-continue.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+        <action function="play-file" data="voicemail/vm-followed_by.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-return_call.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-return_call.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-record_message.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-greeting.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-selected.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-person.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-not_available.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message_number.wav"/>
+        <action application="log" data="INFO $1 $2"/>
+        <action function="say" data="$2" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
+  <macro name="voicemail_ack">
+    <input pattern="^(too-small)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-too-small.wav"/>
+      </match>
+    </input>
+    <input pattern="^(deleted)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(saved)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(emailed)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(marked-urgent)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+        <action application="log" data="INFO $1"/>
+        <action function="say" data="$1" method="counted" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_disk_quota_exceeded">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_announce_ext">
+    <input pattern="^([^\:]+):(.*)$">
+      <match>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_full">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_empty">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/tts.xml
index 7a8f18cf5042a8af6840736e6281dc493c120a6e..f91cae1b997cfc21520e0fdeffe9a354884bf356 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/tts.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/de/vm/tts.xml
@@ -1,8 +1,9 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Bitte geben Sie Ihren Benutzernamen ein, gefolgt von $1."/>
+        <action function="speak-text" data="Bitte geben Sie Ihren Benutzernamen ein, gefolgt von $1."/>
       </match>
     </input>
   </macro>
@@ -10,7 +11,7 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Bitte geben Sie Ihr Passwort ein, gefolgt von $1."/>
+        <action function="speak-text" data="Bitte geben Sie Ihr Passwort ein, gefolgt von $1."/>
       </match>
     </input>
   </macro>
@@ -18,7 +19,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Falsche Benutzerdaten."/>
+        <action function="speak-text" data="Falsche Benutzerdaten."/>
       </match>
     </input>
   </macro>
@@ -26,7 +27,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Willkommen in Ihrem Postfach."/>
+        <action function="speak-text" data="Willkommen in Ihrem Postfach."/>
       </match>
     </input>
   </macro>
@@ -34,7 +35,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Auf Wiedersehen."/>
+        <action function="speak-text" data="Auf Wiedersehen."/>
       </match>
     </input>
   </macro>
@@ -42,7 +43,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Zu viele Fehlversuche."/>
+        <action function="speak-text" data="Zu viele Fehlversuche."/>
       </match>
     </input>
   </macro>
@@ -50,12 +51,12 @@
   <macro name="voicemail_message_count">
     <input pattern="^1:(.*)$">
       <match>
-	<action function="speak-text" data="Sie haben 1 $2 Nachricht im Ordner ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Sie haben 1 $2 Nachricht im Ordner ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^([0,2-9]+):(.*)$">
       <match>
-	<action function="speak-text" data="Sie haben $1 $2 Nachrichten im Ordner ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Sie haben $1 $2 Nachrichten im Ordner ${voicemail_current_folder}."/>
       </match>
     </input>
   </macro>
@@ -63,27 +64,25 @@
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="Um neue Nachrichten zu hören, drücken Sie $1. Um gespeicherte Nachrichten zu hören, drücken Sie $2, Für erweiterte Optionen, drücken Sie $3. Zum beenden drücken Sie $4."/>
+        <action function="speak-text"
+                data="Um neue Nachrichten zu hören, drücken Sie $1. Um gespeicherte Nachrichten zu hören, drücken Sie $2, Für erweiterte Optionen, drücken Sie $3. Zum beenden drücken Sie $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="Um eine Ansage aufzunehmen, drücken Sie $1. Um eine Ansage auszuwählen, drücken Sie $2. Um ihren Namen aufzunehmen, drücken Sie $3. Um zum Hauptmenü zurückzukehren, drücken Sie $4."/>
+        <action function="speak-text"
+                data="Um eine Ansage aufzunehmen, drücken Sie $1. Um eine Ansage auszuwählen, drücken Sie $2. Um ihren Namen aufzunehmen, drücken Sie $3. Um zum Hauptmenü zurückzukehren, drücken Sie $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="Sprechen Sie Ihren Namen nach dem Ton, drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
+        <action function="speak-text" data="Sprechen Sie Ihren Namen nach dem Ton, drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
       </match>
     </input>
   </macro>
@@ -91,8 +90,8 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="Um die Aufzeichnung anzuhören, drücken Sie $1. Um die Aufzeichnung zu speichern, drücken Sie $2. Für eine erneute Aufnahme drücken Sie $3."/>
+        <action function="speak-text"
+                data="Um die Aufzeichnung anzuhören, drücken Sie $1. Um die Aufzeichnung zu speichern, drücken Sie $2. Für eine erneute Aufnahme drücken Sie $3."/>
       </match>
     </input>
   </macro>
@@ -100,8 +99,8 @@
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="Drücken Sie $1 um diese Nachricht als wichtig zu markieren. Um fortzufahren drücken Sie $2."/>
+        <action function="speak-text"
+                data="Drücken Sie $1 um diese Nachricht als wichtig zu markieren. Um fortzufahren drücken Sie $2."/>
       </match>
     </input>
   </macro>
@@ -109,8 +108,8 @@
   <macro name="voicemail_listen_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="Drücken Sie $1 um die Nachricht erneut zu hören. Um die Nachricht zu speichern, drücken Sie $2. Zum löschen der Nachricht drücken Sie $3. Für die Weiterleitung als Email, drücken Sie $4."/>
+        <action function="speak-text"
+                data="Drücken Sie $1 um die Nachricht erneut zu hören. Um die Nachricht zu speichern, drücken Sie $2. Zum löschen der Nachricht drücken Sie $3. Für die Weiterleitung als Email, drücken Sie $4."/>
       </match>
     </input>
   </macro>
@@ -118,7 +117,7 @@
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="Wählen Sie eine Ansage zwischen 1 und 3."/>
+        <action function="speak-text" data="Wählen Sie eine Ansage zwischen 1 und 3."/>
       </match>
     </input>
   </macro>
@@ -126,7 +125,7 @@
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="Ungültige Eingabe."/>
+        <action function="speak-text" data="Ungültige Eingabe."/>
       </match>
     </input>
   </macro>
@@ -134,7 +133,7 @@
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="Zeichnen Sie Ihre Ansage nach dem Ton auf. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
+        <action function="speak-text" data="Zeichnen Sie Ihre Ansage nach dem Ton auf. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
       </match>
     </input>
   </macro>
@@ -142,7 +141,7 @@
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="Sprechen Sie nach dem Ton. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
+        <action function="speak-text" data="Sprechen Sie nach dem Ton. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
       </match>
     </input>
   </macro>
@@ -150,7 +149,7 @@
   <macro name="voicemail_greeting_selected">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="Ansage $1 ausgewählt."/>
+        <action function="speak-text" data="Ansage $1 ausgewählt."/>
       </match>
     </input>
   </macro>
@@ -158,7 +157,7 @@
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1 ist nicht verfügbar."/>
+        <action function="speak-text" data="$1 ist nicht verfügbar."/>
       </match>
     </input>
   </macro>
@@ -166,7 +165,7 @@
   <macro name="voicemail_say_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1"/>
+        <action function="speak-text" data="$1"/>
       </match>
     </input>
   </macro>
@@ -174,7 +173,7 @@
   <macro name="voicemail_say_message_number">
     <input pattern="^([a-z]+):(.*)$">
       <match>
-	<action function="speak-text" data="$1 Nachricht Nummer $2."/>
+        <action function="speak-text" data="$1 Nachricht Nummer $2."/>
       </match>
     </input>
   </macro>
@@ -182,7 +181,7 @@
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
@@ -190,7 +189,7 @@
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
@@ -198,7 +197,7 @@
   <macro name="voicemail_ack">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="Nachricht $1"/>
+        <action function="speak-text" data="Nachricht $1"/>
       </match>
     </input>
   </macro>
@@ -206,9 +205,20 @@
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$strftime($1|%A, %B %d %Y, %I %M %p)"/>
+        <action function="speak-text" data="$strftime($1|%A, %B %d %Y, %I %M %p)"/>
       </match>
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo-ivr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo-ivr.xml
index ec7d7bccd21aac77b6bb1bab1b6e37931c0cea7c..98f155a26564081f04e339f2681b0d5799006375 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo-ivr.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo-ivr.xml
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-
+<include>
 
   <macro name="demo_ivr_count">
     <input pattern="^(\d+)$">
@@ -69,7 +67,7 @@
 
   <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
   <!-- The short version has all the options but not the initial greeting -->
-  <macro name="demo_ivr_main_menu_short" pause="100"> 
+  <macro name="demo_ivr_main_menu_short" pause="100">
     <input pattern="(.*)">
       <match>
         <!-- Menu option 1: Call FreeSWITCH conference-->
@@ -132,7 +130,7 @@
 
   <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
   <!-- The short version has all the options but not the initial greeting -->
-  <macro name="demo_ivr_sub_menu_short"> 
+  <macro name="demo_ivr_sub_menu_short">
     <input pattern="(.*)">
       <match>
         <!-- Menu option *: Return to top menu -->
@@ -140,9 +138,19 @@
         <action function="play-file" data="ivr/ivr-please.wav"/>
         <action function="play-file" data="voicemail/vm-press.wav"/>
         <action function="play-file" data="digits/star.wav"/>
-
       </match>
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo.xml
index e3e6f0214205ec84274fbec5b77eb0f405f179b2..bcfe6a822760be8c0c5ef31a61783c33489d4d34 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/demo.xml
@@ -1,71 +1,82 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-    <macro name="msgcount">
-      <input pattern="(.*)">
-	<match>
-	  <action function="execute" data="sleep(1000)"/>
-	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
-	  <action function="say" data="$1" method="pronounced" type="items"/>
-	  <action function="play-file" data="voicemail/vm-messages.wav"/>
-	  <!-- or -->
-	  <!--<action function="speak-text" data="you have $1 messages"/>-->
-	</match>
-      </input>
-    </macro>
-    <macro name="saydate">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="timespec">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="ip-addr">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="iterated" type="ip_address"/>
-	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="spell">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="spell-phonetic">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="tts-timeleft">
-      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
-      <!-- If the function "break" is encountered all parsing will cease -->
-      <input pattern="(\d+):(\d+)">
-	<match>
-	  <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
-	  <action function="break"/>
-	</match>
-	<nomatch>
-	  <action function="speak-text" data="That input was invalid."/>
-	</nomatch>
-      </input>
-      <input pattern="(\d+) min (\d+) sec">
-	<match>
-	  <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
-	</match>
-	<nomatch>
-	  <action function="speak-text" data="That input was invalid."/>
-	</nomatch>
-      </input>
-    </macro>
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+  <macro name="msgcount">
+    <input pattern="(.*)">
+      <match>
+        <action function="execute" data="sleep(1000)"/>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+        <!-- or -->
+        <!--<action function="speak-text" data="you have $1 messages"/>-->
+      </match>
+    </input>
+  </macro>
+  <macro name="saydate">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="timespec">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="time_measurement"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="ip-addr">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="iterated" type="ip_address"/>
+        <action function="say" data="$1" method="pronounced" type="ip_address"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="spell">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="spell-phonetic">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="tts-timeleft">
+    <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
+    <!-- If the function "break" is encountered all parsing will cease -->
+    <input pattern="(\d+):(\d+)">
+      <match>
+        <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
+        <action function="break"/>
+      </match>
+      <nomatch>
+        <action function="speak-text" data="That input was invalid."/>
+      </nomatch>
+    </input>
+    <input pattern="(\d+) min (\d+) sec">
+      <match>
+        <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
+      </match>
+      <nomatch>
+        <action function="speak-text" data="That input was invalid."/>
+      </nomatch>
+    </input>
+  </macro>
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/funnies.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/funnies.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e901c5ad9ca3b63828d1718bd97718939caf241e
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/funnies.xml
@@ -0,0 +1,35 @@
+<include>
+  <macro name="funny_prompts" pause="750">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="ivr/ivr-wakey_wakey_sunshine.wav"/>
+        <action function="play-file" data="ivr/ivr-no_no_no.wav"/>
+        <action function="play-file" data="ivr/ivr-did_you_mean_to_press_key.wav"/>
+        <action function="play-file" data="ivr/ivr-seriously_mean_to_press_key.wav"/>
+        <action function="play-file" data="ivr/ivr-oh_whatever.wav"/>
+        <action function="play-file" data="ivr/ivr-one_more_mistake.wav"/>
+        <action function="play-file" data="ivr/ivr-congratulations_you_pressed_star.wav"/>
+        <action function="play-file" data="ivr/ivr-engineers_busy_assisting_other_sales.wav"/>
+        <action function="play-file" data="ivr/ivr-message_self_destruct.wav"/>
+        <action function="play-file" data="ivr/ivr-all_your_call_are_belong_to_us.wav"/>
+        <action function="play-file" data="ivr/ivr-love_those_touch_tones.wav"/>
+        <action function="play-file" data="ivr/ivr-yes_we_have_no_bananas.wav"/>
+        <action function="play-file" data="ivr/ivr-dude_you_suck.wav"/>
+        <action function="play-file" data="ivr/ivr-on_hold_indefinitely.wav"/>
+        <action function="play-file" data="ivr/ivr-youre_doing_it_wrong.wav"/>
+        <action function="play-file" data="ivr/ivr-were_asterisk_free.wav"/>
+        <action function="play-file" data="ivr/ivr-douche_telecom.wav"/>
+        <action function="play-file" data="ivr/ivr-asterisk_like_syphilis.wav"/>
+        <action function="play-file" data="ivr/ivr-freeguipy.wav"/>
+        <action function="play-file" data="ivr/ivr-terribly_wrong_awkward.wav"/>
+        <action function="play-file" data="ivr/ivr-it_was_that_bug.wav"/>
+        <action function="play-file" data="ivr/ivr-concentrate.wav"/>
+        <action function="play-file" data="ivr/ivr-founder_of_freesource.wav"/>
+        <action function="play-file" data="ivr/ivr-cold_foolish.wav"/>
+        <action function="play-file" data="ivr/ivr-trollover_minutes.wav"/>
+        <action function="play-file" data="ivr/ivr-yuno_silent_drill.wav"/>
+        <action function="play-file" data="ivr/ivr-beacuase.wav"/>
+      </match>
+    </input>
+  </macro>
+</include>
\ No newline at end of file
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/new-demo-ivr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/new-demo-ivr.xml
new file mode 100644
index 0000000000000000000000000000000000000000..619d9921e90104d6b3a31b37a67b692920867ed7
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/demo/new-demo-ivr.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+  <macro name="new_demo_ivr_main_menu" pause="100"> <!-- See conf/ivr_menus/ivr.conf.xml for an example on how to use this macro in an IVR -->
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="silence_stream://500"/>
+
+        <!-- Menu option 1: For information about FreeSWITCH... -->
+        <action function="play-file" data="misc/misc-information_about_freeswitch.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: To learn more about FreeSWITCH Solutions... -->
+        <action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: To hear about ClueCon -->
+        <action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: For other options -->
+        <action function="play-file" data="ivr/ivr-for_other_options.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as new_demo_ivr_main_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="new_demo_ivr_main_menu_short" pause="100"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option 1: For information about FreeSWITCH... -->
+        <action function="play-file" data="misc/misc-information_about_freeswitch.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: To learn more about FreeSWITCH Solutions... -->
+        <action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: To hear about ClueCon -->
+        <action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: For other options -->
+        <action function="play-file" data="ivr/ivr-for_other_options.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+
+      </match>
+    </input>
+  </macro>
+
+  <!-- More information about FreeSWITCH... -->
+  <macro name="learn_about_freeswitch_sub_menu">
+    <input pattern="(.*)">
+      <match>
+        <!-- Information about FreeSWITCH and OSTAG... -->
+        <action function="play-file" data="misc-freeswitch_is_state_of_the_art.wav"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="misc-it_is_stable_scalable_extensible.wav"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="misc-free_to_download.wav"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="misc-freeswitch_sponsored_by_ostag.wav"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="misc-ostag_learn_more.wav"/>
+        <action function="play-file" data="silence_stream://50"/>
+
+        <!-- Menu option 9: Repeat this information -->
+        <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+  <!-- More information about FreeSWITCH Solutions... -->
+  <macro name="learn_about_freeswitch_solutions_sub_menu">
+    <input pattern="(.*)">
+      <match>
+        <!-- Information about FreeSWITCH Solutions... -->
+        <action function="play-file" data="[[sounds from tony/brian]]"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="[[sounds from tony/brian]]"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="[[sounds from tony/brian]]"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="[[sounds from tony/brian]]"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="[[sounds from tony/brian]]"/>
+        <action function="play-file" data="silence_stream://50"/>
+
+        <!-- Menu option 9: Repeat this information -->
+        <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+  <!-- More information about ClueCon -->
+  <macro name="learn_about_cluecon_sub_menu">
+    <input pattern="(.*)">
+      <match>
+        <!-- Information about ClueCon... -->
+        <action function="play-file" data="misc-cluecon_is_premier_conference.wav"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="misc-chicago_each_summer.wav"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="misc-wide_range_of_persons.wav"/>
+        <action function="play-file" data="silence_stream://50"/>
+        <action function="play-file" data="misc-support_open_source_by_attending.wav"/>
+        <action function="play-file" data="silence_stream://500"/>
+        <action function="play-file" data="ivr-register_for_cluecon.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+        <action function="play-file" data="silence_stream://500"/>
+
+        <!-- Menu option 9: Repeat this information -->
+        <action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/sounds.xml
index 02d6b3671f98d61b9dd21acb8ea0b7d764ed039b..b715a7f825da83983682898fa40f3b0ec0d710d8 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/sounds.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/sounds.xml
@@ -1,121 +1,130 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-	<macro name="directory_intro">
-		<input pattern="^(last_name)" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-enter-person.wav"/>
-				<action function="play-file" data="directory/dir-last_name.wav"/>
-			</match>
-		</input>
-		<input pattern="^(first_name)" break_on_match="false">
-			<match>
-                <action function="play-file" data="directory/dir-enter-person.wav"/>
-                <action function="play-file" data="directory/dir-first_name.wav"/>
-			</match>
-		</input>
-		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-to_search_by.wav"/>
-				<action function="play-file" data="directory/dir-first_name.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-to_search_by.wav"/>
-				<action function="play-file" data="directory/dir-last_name.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
+<include>
 
-	<macro name="directory_min_search_digits">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-specify_mininum_first.wav"/>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_intro">
+    <input pattern="^(last_name)" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-enter_person.wav"/>
+        <action function="play-file" data="directory/dir-last_name.wav"/>
+      </match>
+    </input>
+    <input pattern="^(first_name)" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-enter_person.wav"/>
+        <action function="play-file" data="directory/dir-first_name.wav"/>
+      </match>
+    </input>
+    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-to_search_by.wav"/>
+        <action function="play-file" data="directory/dir-first_name.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-to_search_by.wav"/>
+        <action function="play-file" data="directory/dir-last_name.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count">
-		<input pattern="^0$" break_on_match="true">
-			<match>
-				<action function="play-file" data="directory/dir-no_match_entry.wav"/>
-			</match>
-		</input>
-		<input pattern="^(.*)$">
-			<match>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-				<action function="play-file" data="directory/dir-result_match.wav"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_min_search_digits">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-specify_mininum.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count_too_large">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-to_many_result.wav"/>
-			</match>
-		</input>
+  <macro name="directory_result_count">
+    <input pattern="^0$" break_on_match="true">
+      <match>
+        <action function="play-file" data="directory/dir-no_matching_results.wav"/>
+      </match>
+    </input>
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="directory/dir-result_match.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_count_too_large">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-too_many_result.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_last">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-no_more_result.wav"/>
-			</match>
-		</input>
+  <macro name="directory_result_last">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-no_more_results.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_item">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-result_number.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_item">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-result_number.wav"/>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_at">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-at_extension.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_at">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-at_extension.wav"/>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_menu">
+    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+      <match>
+        <action function="play-file" data="directory/dir-to_select_entry.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-for_next.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-for_prev.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-start_new_search.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_menu">
-		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
-			<match>
-				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-for_next.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-for_prev.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-to_make_new_search.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+  <macro name="directory_result_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-			</match>
-		</input>
-	</macro>
-
-	<macro name="directory_result_say_name">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
-
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/tts.xml
index 67ae5ab2656d1c8d7e25ef6c81a4eae3585984a3..d5f112dcda8a3aafafd5c2e05a53c664503bc8a6 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/tts.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/dir/tts.xml
@@ -1,96 +1,106 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
 
-	<macro name="directory_intro">
-		<input pattern="^(last_name)" break_on_match="false">
-			<match>
-				<action function="speak-text" data="Please enter the first few digit of the person last name"/>
-			</match>
-		</input>
-		<input pattern="^(first_name)" break_on_match="false">
-			<match>
-				<action function="speak-text" data="Please enter the first few digit of the person first name"/>
-			</match>
-		</input>
-		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="speak-text" data="to search by first name, press $2"/>
-			</match>
-		</input>
-		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="speak-text" data="to search by last name, press $2"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_intro">
+    <input pattern="^(last_name)" break_on_match="false">
+      <match>
+        <action function="speak-text" data="Please enter the first few digit of the person last name"/>
+      </match>
+    </input>
+    <input pattern="^(first_name)" break_on_match="false">
+      <match>
+        <action function="speak-text" data="Please enter the first few digit of the person first name"/>
+      </match>
+    </input>
+    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="speak-text" data="to search by first name, press $2"/>
+      </match>
+    </input>
+    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="speak-text" data="to search by last name, press $2"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_min_search_digits">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_min_search_digits">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count">
-		<input pattern="^0$" break_on_match="true">
-			<match>
-				<action function="speak-text" data="Your search match no user on this system, try again."/>
-			</match>
-		</input>
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="$1 result match your search"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_count">
+    <input pattern="^0$" break_on_match="true">
+      <match>
+        <action function="speak-text" data="Your search match no user on this system, try again."/>
+      </match>
+    </input>
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="$1 result match your search"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count_too_large">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="Your search returned too many result, please try again"/>
-			</match>
-		</input>
+  <macro name="directory_result_count_too_large">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="Your search returned too many result, please try again"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_last">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="No more result"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_last">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="No more result"/>
-			</match>
-		</input>
+  <macro name="directory_result_item">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="Result number $1"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_menu">
+    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+      <match>
+        <action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_item">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="Result number $1"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_at">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="at extension $1"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_menu">
-		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
-			<match>
-				<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="$1"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_at">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="at extension $1"/>
-			</match>
-		</input>
-	</macro>
-	<macro name="directory_result_say_name">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="$1"/>
-			</match>
-		</input>
-	</macro>
-
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/en.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/en.xml
index 6bd5a7d5fbde5ac4dabe3a2ab07b5a93e66eab38..24bee311c9bd92873d8b58b0d80eb4a2392ab634 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/en/en.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/en.xml
@@ -1,8 +1,25 @@
 <include>
-  <language name="en" sound-path="$${sounds_dir}/en/us/callie" tts-engine="cepstral" tts-voice="callie">
-    <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
-    <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
-    <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
-    <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
+  <language name="en" say-module="en" sound-prefix="$${sound_prefix}" tts-engine="cepstral" tts-voice="callie">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
+        <!-- voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
+        <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
+        <X-PRE-PROCESS cmd="include" data="ivr/*.xml"/>  <!-- IVR and custom phrases go here -->
+      </macros>
+      <X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
+    </phrases>
   </language>
 </include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/ivr/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/ivr/sounds.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9de7fa4eb76dcc43af8caa9c0a466f6e6ecd8e21
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/ivr/sounds.xml
@@ -0,0 +1,163 @@
+<include>
+  <macro name="fifo_position">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="ivr/ivr-you_are_number.wav"/>
+        <action function="say" data="${fifo_position}" method="pronounced" type="items"/>
+        <action function="play-file" data="ivr/ivr-in_line.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="queue_position">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="ivr/ivr-you_are_number.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="ivr/ivr-in_line.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="has_called_conf">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="$1"/>
+        <action function="sleep" data="100"/>
+        <action function="play-file" data="conference/conf-has_joined.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="has_left_conf">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="$1"/>
+        <action function="sleep" data="100"/>
+        <action function="play-file" data="conference/conf-has_left.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="callers_in_conf">
+    <input pattern="^1$" break_on_match="true">
+      <match>
+        <action function="sleep" data="500"/>
+        <!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
+        <action function="play-file" data="digits/1.wav"/>
+        <action function="sleep" data="100"/>
+        <action function="play-file" data="conference/conf-listener_in_conference.wav"/>
+      </match>
+    </input>
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="sleep" data="500"/>
+        <action function="play-file" data="ivr/ivr-there_are.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="sleep" data="100"/>
+        <action function="play-file" data="conference/conf-members_in_conference.wav"/>
+      </match>
+      <nomatch>
+        <action function="sleep" data="500"/>
+        <action function="play-file" data="ivr/ivr-there_are.wav"/>
+        <action function="play-file" data="digits/0.wav"/>
+        <action function="sleep" data="100"/>
+        <action function="play-file" data="conference/conf-members_in_conference.wav"/>
+      </nomatch>
+    </input>
+  </macro>
+
+  <macro name="enter_dest_number">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="sleep" data="1000"/>
+        <action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
+        <action function="sleep" data="1000"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="enter_src_number">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="sleep" data="1000"/>
+        <action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
+        <action function="sleep" data="1000"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="call_forward_set">
+    <input pattern="^(\d+):(\d+)$">
+      <match>
+        <action function="sleep" data="1000"/>
+        <action function="play-file" data="ivr/ivr-extension_number.wav"/>
+        <action function="sleep" data="400"/>
+        <action function="say" data="$1" method="iterated" type="number"/>
+        <action function="sleep" data="400"/>
+        <action function="play-file" data="digits/2.wav"/>
+        <action function="sleep" data="1000"/>
+        <action function="play-file" data="ivr/ivr-extension_number.wav"/>
+        <action function="sleep" data="400"/>
+        <action function="say" data="$2" method="iterated" type="number"/>
+        <action function="sleep" data="1000"/>
+        <action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
+        <action function="sleep" data="1500"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="call_forward_cancel">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="sleep" data="1000"/>
+        <action function="play-file" data="ivr/ivr-extension_number.wav"/>
+        <action function="sleep" data="400"/>
+        <action function="say" data="$1" method="iterated" type="number"/>
+        <action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
+        <action function="sleep" data="1500"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="screen_confirm">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="sleep" data="500"/>
+        <action function="play-file" data="ivr/ivr-call_from.wav"/>
+        <action function="sleep" data="250"/>
+        <!-- Note, be sure to pass in the full path to the file or else!! -->
+        <action function="play-file" data="$1"/>
+        <action function="sleep" data="500"/>
+        <action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
+        <action function="sleep" data="500"/>
+        <action function="play-file" data="ivr/ivr-to_reject.wav"/>
+        <action function="sleep" data="50"/>
+        <action function="play-file" data="ivr/ivr-hang_up.wav"/>
+        <action function="sleep" data="1500"/>
+        <action function="play-file" data="ivr/ivr-call_from.wav"/>
+        <action function="sleep" data="250"/>
+        <action function="play-file" data="$1"/>
+        <action function="sleep" data="500"/>
+        <action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
+        <action function="sleep" data="500"/>
+        <action function="play-file" data="ivr/ivr-to_reject.wav"/>
+        <action function="sleep" data="50"/>
+        <action function="play-file" data="ivr/ivr-hang_up.wav"/>
+        <action function="sleep" data="1500"/>
+      </match>
+    </input>
+  </macro>
+
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/sounds.xml
index 5a090411d74f954ec874e5fec56f2991114606ef..9545d817452d9a0cab44ed796636e6b84ad47447 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/sounds.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/sounds.xml
@@ -1,9 +1,10 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -11,8 +12,8 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -20,7 +21,23 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_change_pass_success">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-password_has_been_changed.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_change_pass_fail">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-password_not_valid.wav"/>
       </match>
     </input>
   </macro>
@@ -28,7 +45,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+        <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
       </match>
     </input>
   </macro>
@@ -36,7 +53,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
+        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
       </match>
     </input>
   </macro>
@@ -44,7 +61,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-abort.wav"/>
+        <action function="play-file" data="voicemail/vm-abort.wav"/>
       </match>
     </input>
   </macro>
@@ -52,18 +69,18 @@
   <macro name="voicemail_message_count">
     <input pattern="^(1):(.*)$" break_on_match="true">
       <match>
-	<action function="play-file" data="voicemail/vm-you_have.wav"/>
-	<action function="say" data="$1" method="pronounced" type="items"/>
-	<action function="play-file" data="voicemail/vm-$2.wav"/> 
-	<action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-$2.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
       </match>
     </input>
     <input pattern="^(\d+):(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-you_have.wav"/>
-	<action function="say" data="$1" method="pronounced" type="items"/>
-	<action function="play-file" data="voicemail/vm-$2.wav"/> 
-	<action function="play-file" data="voicemail/vm-messages.wav"/>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-$2.wav"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
       </match>
     </input>
   </macro>
@@ -71,28 +88,28 @@
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<!-- To listen to new messages -->
-	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="execute" data="sleep(100)"/>
+        <!-- To listen to new messages -->
+        <action function="play-file" data="voicemail/vm-listen_new.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
 
-	<!-- To listen to saved messages -->
-	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-	<action function="execute" data="sleep(100)"/>
+        <!-- To listen to saved messages -->
+        <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
 
-	<!-- For advanced options -->
-	<action function="play-file" data="voicemail/vm-advanced.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-	<action function="execute" data="sleep(100)"/>
+        <!-- For advanced options -->
+        <action function="play-file" data="voicemail/vm-advanced.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
 
-	<!-- To exit -->
-	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+        <!-- To exit -->
+        <action function="play-file" data="voicemail/vm-to_exit.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
       </match>
     </input>
   </macro>
@@ -100,34 +117,34 @@
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<!-- To record a greeting -->
-	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="execute" data="sleep(100)"/>
+        <!-- To record a greeting -->
+        <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
 
-	<!-- To choose greeting -->
-	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-	<action function="execute" data="sleep(100)"/>
+        <!-- To choose greeting -->
+        <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
 
-	<!-- To record your name -->
-	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-	<action function="execute" data="sleep(100)"/>
+        <!-- To record your name -->
+        <action function="play-file" data="voicemail/vm-record_name2.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
 
-	<!-- To change password -->
-	<action function="play-file" data="voicemail/vm-change_password.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
-	<action function="execute" data="sleep(100)"/>
+        <!-- To change password -->
+        <action function="play-file" data="voicemail/vm-change_password.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
 
-	<!-- To return to main menu -->
-	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+        <!-- To return to main menu -->
+        <action function="play-file" data="voicemail/vm-main_menu.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -135,7 +152,7 @@
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
+        <action function="play-file" data="voicemail/vm-record_name1.wav"/>
       </match>
     </input>
   </macro>
@@ -143,15 +160,15 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-rerecord.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -159,12 +176,12 @@
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-continue.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-continue.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -172,12 +189,12 @@
   <macro name="voicemail_forward_prepend">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -185,9 +202,9 @@
   <macro name="voicemail_forward_message_enter_extension">
     <input pattern="^([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
-	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+        <action function="play-file" data="voicemail/vm-followed_by.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -195,7 +212,7 @@
   <macro name="voicemail_invalid_extension">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+        <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
       </match>
     </input>
   </macro>
@@ -203,43 +220,43 @@
   <macro name="voicemail_listen_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-return_call.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-return_call.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
       </match>
     </input>
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-return_call.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-return_call.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -247,7 +264,7 @@
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+        <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
       </match>
     </input>
   </macro>
@@ -255,7 +272,7 @@
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+        <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
       </match>
     </input>
   </macro>
@@ -263,7 +280,7 @@
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
       </match>
     </input>
   </macro>
@@ -271,7 +288,7 @@
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-record_message.wav"/>
+        <action function="play-file" data="voicemail/vm-record_message.wav"/>
       </match>
     </input>
   </macro>
@@ -279,9 +296,9 @@
   <macro name="voicemail_greeting_selected">
     <input pattern="^(\d+)$">
       <match>
-	<action function="play-file" data="voicemail/vm-greeting.wav"/>
-	<action function="say" data="$1" method="pronounced" type="items"/>
-	<action function="play-file" data="voicemail/vm-selected.wav"/>
+        <action function="play-file" data="voicemail/vm-greeting.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-selected.wav"/>
       </match>
     </input>
   </macro>
@@ -289,9 +306,9 @@
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-person.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-not_available.wav"/>
+        <action function="play-file" data="voicemail/vm-person.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-not_available.wav"/>
       </match>
     </input>
   </macro>
@@ -299,7 +316,7 @@
   <macro name="voicemail_say_number">
     <input pattern="^(\d+)$">
       <match>
-	<action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
       </match>
     </input>
   </macro>
@@ -307,17 +324,28 @@
   <macro name="voicemail_say_message_number">
     <input pattern="^([a-z]+):(\d+)$">
       <match>
-	<action function="play-file" data="voicemail/vm-$1.wav"/> 
-	<action function="play-file" data="voicemail/vm-message_number.wav"/>
-	<action function="say" data="$2" method="pronounced" type="items"/> 
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message_number.wav"/>
+        <action function="say" data="$2" method="pronounced" type="items"/>
       </match>
     </input>
   </macro>
 
   <macro name="voicemail_say_phone_number">
+    <input pattern="^000|^$|^[Aa]non|^[Pp]rivate" break_on_match="true">
+      <match>
+        <action function="play-file" data="voicemail/vm-message_from.wav"/>
+        <action function="execute" data="sleep(100)"/>
+        <action function="play-file" data="ivr/ivr-anonymous_caller.wav"/>
+        <action function="execute" data="sleep(500)"/>
+      </match>
+    </input>
     <input pattern="^(.*)$">
       <match>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-message_from.wav"/>
+        <action function="execute" data="sleep(100)"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(500)"/>
       </match>
     </input>
   </macro>
@@ -325,39 +353,39 @@
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
   <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
-  <macro name="voicemail_ack"> 
+  <macro name="voicemail_ack">
     <input pattern="^(too-small)$">
       <match>
-	<action function="play-file" data="voicemail/vm-too-small.wav"/>
+        <action function="play-file" data="voicemail/vm-too-small.wav"/>
       </match>
     </input>
     <input pattern="^(deleted)$">
       <match>
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-	<action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
       </match>
     </input>
     <input pattern="^(saved)$">
       <match>
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-	<action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
       </match>
     </input>
     <input pattern="^(emailed)$">
       <match>
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-	<action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
       </match>
     </input>
     <input pattern="^(marked-urgent)$">
       <match>
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-	<action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
       </match>
     </input>
   </macro>
@@ -365,16 +393,16 @@
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
+        <action function="say" data="$1" method="pronounced" type="short_date_time"/>
       </match>
     </input>
   </macro>
 
   <macro name="voicemail_disk_quota_exceeded">
     <input pattern="^(.*)$">
-        <match>
-            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
-        </match>
+      <match>
+        <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+      </match>
     </input>
   </macro>
 
@@ -401,4 +429,16 @@
       </match>
     </input>
   </macro>
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/tts.xml
index 1fc877d50ea95b040d2b0b0452b4de1cf33f94f3..2de4b3781ea900889c0b7b7ef05693538a1eb017 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/tts.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/tts.xml
@@ -1,8 +1,9 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="please enter your i d, followed by $1."/>
+        <action function="speak-text" data="please enter your i d, followed by $1."/>
       </match>
     </input>
   </macro>
@@ -10,7 +11,7 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="please enter your password, followed by $1."/>
+        <action function="speak-text" data="please enter your password, followed by $1."/>
       </match>
     </input>
   </macro>
@@ -18,7 +19,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="login incorrect."/>
+        <action function="speak-text" data="login incorrect."/>
       </match>
     </input>
   </macro>
@@ -26,7 +27,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="welcome to your voicemail."/>
+        <action function="speak-text" data="welcome to your voicemail."/>
       </match>
     </input>
   </macro>
@@ -34,7 +35,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="goodbye."/>
+        <action function="speak-text" data="goodbye."/>
       </match>
     </input>
   </macro>
@@ -42,7 +43,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="too many failed attempts."/>
+        <action function="speak-text" data="too many failed attempts."/>
       </match>
     </input>
   </macro>
@@ -50,12 +51,12 @@
   <macro name="voicemail_message_count">
     <input pattern="^1:(.*)$" break_on_match="true">
       <match>
-	<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
+        <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^(\d+):(.*)$">
       <match>
-	<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
+        <action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
       </match>
     </input>
   </macro>
@@ -63,27 +64,25 @@
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
+        <action function="speak-text"
+                data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
+        <action function="speak-text"
+                data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
 
       </match>
     </input>
@@ -92,8 +91,8 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
+        <action function="speak-text"
+                data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
       </match>
     </input>
   </macro>
@@ -101,8 +100,8 @@
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To mark this message urgent, press $1, To continue, press $2."/>
+        <action function="speak-text"
+                data="To mark this message urgent, press $1, To continue, press $2."/>
       </match>
     </input>
   </macro>
@@ -110,7 +109,7 @@
   <macro name="voicemail_invalid_extension">
     <input pattern="^([0-9#*])$">
       <match>
-	<action function="speak-text" data="$1 is not a valid extension."/>
+        <action function="speak-text" data="$1 is not a valid extension."/>
       </match>
     </input>
   </macro>
@@ -118,7 +117,7 @@
   <macro name="voicemail_forward_message_enter_extension">
     <input pattern="^([0-9#*])$">
       <match>
-	<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
+        <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
       </match>
     </input>
   </macro>
@@ -126,7 +125,7 @@
   <macro name="voicemail_forward_prepend">
     <input pattern="^([0-9#*])$">
       <match>
-	<action function="speak-text" data="To record an announcement, press $1."/>
+        <action function="speak-text" data="To record an announcement, press $1."/>
       </match>
     </input>
   </macro>
@@ -134,8 +133,8 @@
   <macro name="voicemail_listen_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
+        <action function="speak-text"
+                data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
       </match>
     </input>
   </macro>
@@ -143,7 +142,7 @@
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="choose a greeting between 1 and 3."/>
+        <action function="speak-text" data="choose a greeting between 1 and 3."/>
       </match>
     </input>
   </macro>
@@ -151,7 +150,7 @@
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="invalid value."/>
+        <action function="speak-text" data="invalid value."/>
       </match>
     </input>
   </macro>
@@ -159,7 +158,7 @@
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
       </match>
     </input>
   </macro>
@@ -167,7 +166,7 @@
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
       </match>
     </input>
   </macro>
@@ -175,7 +174,7 @@
   <macro name="voicemail_greeting_selected">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="greeting $1 selected."/>
+        <action function="speak-text" data="greeting $1 selected."/>
       </match>
     </input>
   </macro>
@@ -183,7 +182,7 @@
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1 is not available."/>
+        <action function="speak-text" data="$1 is not available."/>
       </match>
     </input>
   </macro>
@@ -191,7 +190,7 @@
   <macro name="voicemail_say_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1"/>
+        <action function="speak-text" data="$1"/>
       </match>
     </input>
   </macro>
@@ -199,7 +198,7 @@
   <macro name="voicemail_say_message_number">
     <input pattern="^([a-z]+):(.*)$">
       <match>
-	<action function="speak-text" data="$1 message number $2."/>
+        <action function="speak-text" data="$1 message number $2."/>
       </match>
     </input>
   </macro>
@@ -207,7 +206,7 @@
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
@@ -215,7 +214,7 @@
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
@@ -223,7 +222,7 @@
   <macro name="voicemail_ack">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="message $1"/>
+        <action function="speak-text" data="message $1"/>
       </match>
     </input>
   </macro>
@@ -231,9 +230,20 @@
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
+        <action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
       </match>
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/voicemail_ivr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/voicemail_ivr.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1c48299430d59726ab3ffd0884b48f6a328c76cf
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/en/vm/voicemail_ivr.xml
@@ -0,0 +1,417 @@
+<include>
+
+  <macros name="voicemail_ivr">
+    <macro name="press_key">
+      <input pattern="^(.*):(.*)$">
+        <match>
+          <action function="play-file" data="$2"/>
+          <action function="play-file" data="voicemail/vm-press.wav"/>
+          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="plural_msg">
+      <input pattern="^[1]:(.*):(.*)$" break_on_match="true">
+        <match>
+          <action function="play-file" data="$1"/>
+        </match>
+      </input>
+      <input pattern="^.*:(.*):(.*)$" break_on_match="true">
+        <match>
+          <action function="play-file" data="$2"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="enter_id">
+      <input pattern="(.+)">
+        <match>
+          <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        </match>
+        <nomatch>
+          <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+          <action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
+        </nomatch>
+      </input>
+    </macro>
+
+    <macro name="enter_pass">
+      <input pattern="(.+)">
+        <match>
+          <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        </match>
+        <nomatch>
+          <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+          <action function="say" data="${VM-Key-Terminator}" method="pronounced" type="name_spelled"/>
+        </nomatch>
+
+      </input>
+    </macro>
+
+    <macro name="fail_auth">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="hello">
+      <input>
+        <match>
+          <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+        </match>
+      </input>
+    </macro>
+
+    <macro name="goodbye">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-goodbye.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="abort">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-abort.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="message_count">
+      <input field="${VM-Total-New-Urgent-Messages}" pattern="^(0)$">
+        <nomatch>
+          <action function="play-file" data="voicemail/vm-you_have.wav"/>
+          <action function="say" data="${VM-Total-New-Urgent-Messages}" method="pronounced" type="items"/>
+          <action function="play-file" data="voicemail/vm-urgent-new.wav"/>
+          <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-New-Urgent-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
+        </nomatch>
+      </input>
+      <input field="${VM-Total-New-Messages}" pattern="^(\d+)$">
+        <match>
+          <action function="play-file" data="voicemail/vm-you_have.wav"/>
+          <action function="say" data="${VM-Total-New-Messages}" method="pronounced" type="items"/>
+          <action function="play-file" data="voicemail/vm-new.wav"/>
+          <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-New-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
+        </match>
+      </input>
+      <input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
+        <nomatch>
+          <action function="play-file" data="currency/and.wav"/>
+          <action function="say" data="${VM-Total-Saved-Messages}" method="pronounced" type="items"/>
+          <action function="play-file" data="voicemail/vm-saved.wav"/>
+          <action function="phrase" phrase="plural_msg@voicemail_ivr" data="${VM-Total-Saved-Messages}:voicemail/vm-message.wav:voicemail/vm-messages.wav"/>
+        </nomatch>
+      </input>
+    </macro>
+
+    <macro name="menu">
+      <input field="${VM-Total-New-Messages}" pattern="^(0)$">
+        <nomatch>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-New-Messages}:voicemail/vm-listen_new.wav"/>
+	</nomatch>
+      </input>
+      <input field="${VM-Total-Saved-Messages}" pattern="^(0)$">
+	<nomatch>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Play-Saved-Messages}:voicemail/vm-listen_saved.wav"/>
+	</nomatch>
+      </input>
+      <input>
+	<match>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Config-Menu}:voicemail/vm-advanced.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-to_exit.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="config_menu">
+      <input>
+        <match>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Greeting}:voicemail/vm-to_record_greeting.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Choose-Greeting}:voicemail/vm-choose_greeting.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-Name}:voicemail/vm-record_name2.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Change-Password}:voicemail/vm-change_password.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Menu}:voicemail/vm-main_menu.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="record_name">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-record_name1.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="forward_ask_prepend">
+      <input>
+        <match>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="forward_ask_extension">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+          <!--<action function="phrase" phrase="play-file" data="voicemail/vm-followed_by.wav"/>-->
+          <!--<action function="say" data="${VM-Key-Terminate}" method="pronounced" type="name_spelled"/>-->
+        </match>
+      </input>
+    </macro>
+
+    <macro name="record_file_check">
+      <input>
+        <match>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Save-File}:voicemail/vm-save_recording.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Record-File}:voicemail/vm-rerecord.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="record_urgent_check">
+      <input>
+        <match>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Urgent}:voicemail/vm-mark-urgent.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Terminator}:voicemail/vm-continue.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="forward_prepend">
+      <input>
+        <match>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Prepend}:voicemail/vm-forward_add_intro.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Forward}:voicemail/vm-send_message_now.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="forward_message_enter_extension">
+      <input pattern="^([0-9#*])$">
+        <match>
+          <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+          <action function="play-file" data="voicemail/vm-followed_by.wav"/>
+          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="invalid_extension">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="listen_file_check">
+      <input>
+        <match>
+          <!--<action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Next-Msg}:voicemail/vm-for_next_msg.wav"/>--> <!-- Not existant in callie recordings -->
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Listen-File}:voicemail/vm-listen_to_recording.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Save-File}:voicemail/vm-save_recording.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Delete-File}:voicemail/vm-delete_recording.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
+        </match>
+      </input>
+      <input field="${VM-Message-Email}" pattern="^$">
+        <nomatch>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Email}:voicemail/vm-forward_to_email.wav"/>
+        </nomatch>
+      </input>
+      <input>
+        <match>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Callback}:voicemail/vm-return_call.wav"/>
+          <action function="phrase" phrase="press_key@voicemail_ivr" data="${VM-Key-Main-Forward}:voicemail/vm-to_forward.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="choose_greeting">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="choose_greeting_fail">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="record_greeting">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="record_message">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-record_message.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="greeting_selected">
+      <input pattern="^(\d+)$">
+        <match>
+	  <action function="play-file" data="${VM-Preference-Greeting-File-Path}"/>
+          <action function="play-file" data="voicemail/vm-greeting.wav"/>
+          <action function="say" data="$1" method="pronounced" type="items"/>
+          <action function="play-file" data="voicemail/vm-selected.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="play_greeting">
+      <input pattern="^(.*)$">
+        <match>
+          <action function="play-file" data="voicemail/vm-person.wav"/>
+          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+          <action function="play-file" data="voicemail/vm-not_available.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="say_number">
+      <input pattern="^(\d+)$">
+        <match>
+          <action function="say" data="$1" method="pronounced" type="items"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="say_message_number">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-${VM-Message-Type}.wav"/>
+          <action function="play-file" data="voicemail/vm-message_number.wav"/>
+          <action function="say" data="${VM-Message-Number}" method="pronounced" type="items"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="say_phone_number">
+      <input pattern="^(.*)$">
+        <match>
+          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="say_name">
+      <input pattern="^(.*)$">
+        <match>
+          <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        </match>
+      </input>
+    </macro>
+    <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
+    <macro name="ack">
+      <input pattern="^(too-small)$">
+        <match>
+          <action function="play-file" data="voicemail/vm-too-small.wav"/>
+        </match>
+      </input>
+      <input pattern="^(undeleted)$">
+        <match>
+          <action function="play-file" data="voicemail/vm-message.wav"/>
+          <action function="play-file" data="voicemail/vm-$1.wav"/>
+        </match>
+      </input>
+      <input pattern="^(deleted)$">
+        <match>
+          <action function="play-file" data="voicemail/vm-message.wav"/>
+          <action function="play-file" data="voicemail/vm-$1.wav"/>
+        </match>
+      </input>
+      <input pattern="^(saved)$">
+        <match>
+          <action function="play-file" data="voicemail/vm-message.wav"/>
+          <action function="play-file" data="voicemail/vm-$1.wav"/>
+        </match>
+      </input>
+      <input pattern="^(emailed)$">
+        <match>
+          <action function="play-file" data="voicemail/vm-message.wav"/>
+          <action function="play-file" data="voicemail/vm-$1.wav"/>
+        </match>
+      </input>
+      <input pattern="^(marked-urgent)$">
+        <match>
+          <action function="play-file" data="voicemail/vm-message.wav"/>
+          <action function="play-file" data="voicemail/vm-$1.wav"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="say_date">
+      <input pattern="^(.*)$">
+        <match>
+          <action function="say" data="$1" method="pronounced" type="short_date_time"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="say_date_event">
+      <input>
+        <match>
+          <action function="say" data="${VM-Message-Received-Epoch}" method="pronounced" type="short_date_time"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="play_message">
+      <input>
+        <match>
+          <action function="play-file" data="${VM-Message-File-Path}"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="play_recording">
+      <input>
+        <match>
+          <action function="play-file" data="${VM-Record-File-Path}"/>
+        </match>
+      </input>
+    </macro>
+
+    <macro name="disk_quota_exceeded">
+      <input>
+        <match>
+          <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+        </match>
+      </input>
+    </macro>
+  </macros>
+
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-es-ES.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-es-ES.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4c6919dd0eb32c90766725677e6a5555b41f3144
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-es-ES.xml
@@ -0,0 +1,71 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+    <macro name="msgcount">
+      <input pattern="(.*)">
+	<match>
+	  <action function="execute" data="sleep(1000)"/>
+	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
+	  <action function="say" data="$1" method="pronounced" type="items"/>
+	  <action function="play-file" data="voicemail/vm-messages.wav"/>
+	  <!-- or -->
+	  <!--<action function="speak-text" data="Usted tiene $1 mensajes"/>-->
+	</match>
+      </input>
+    </macro>
+    <macro name="saydate">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="timespec">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="ip-addr">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="iterated" type="ip_address"/>
+	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="spell">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="spell-phonetic">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="tts-timeleft">
+      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
+      <!-- If the function "break" is encountered all parsing will cease -->
+      <input pattern="(\d+):(\d+)">
+	<match>
+	  <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
+	  <action function="break"/>
+	</match>
+	<nomatch>
+	  <action function="speak-text" data="Esa fue una entrada inválida."/>
+	</nomatch>
+      </input>
+      <input pattern="(\d+) min (\d+) sec">
+	<match>
+	  <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
+	</match>
+	<nomatch>
+	  <action function="speak-text" data="Esa fue una entrada inválida."/>
+	</nomatch>
+      </input>
+    </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-es-MX.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-es-MX.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4c6919dd0eb32c90766725677e6a5555b41f3144
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-es-MX.xml
@@ -0,0 +1,71 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+    <macro name="msgcount">
+      <input pattern="(.*)">
+	<match>
+	  <action function="execute" data="sleep(1000)"/>
+	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
+	  <action function="say" data="$1" method="pronounced" type="items"/>
+	  <action function="play-file" data="voicemail/vm-messages.wav"/>
+	  <!-- or -->
+	  <!--<action function="speak-text" data="Usted tiene $1 mensajes"/>-->
+	</match>
+      </input>
+    </macro>
+    <macro name="saydate">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="timespec">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="ip-addr">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="iterated" type="ip_address"/>
+	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="spell">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="spell-phonetic">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="tts-timeleft">
+      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
+      <!-- If the function "break" is encountered all parsing will cease -->
+      <input pattern="(\d+):(\d+)">
+	<match>
+	  <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
+	  <action function="break"/>
+	</match>
+	<nomatch>
+	  <action function="speak-text" data="Esa fue una entrada inválida."/>
+	</nomatch>
+      </input>
+      <input pattern="(\d+) min (\d+) sec">
+	<match>
+	  <action function="speak-text" data="Quedan $1 minutos y $2 segundos $strftime(%Y-%m-%d)"/>
+	</match>
+	<nomatch>
+	  <action function="speak-text" data="Esa fue una entrada inválida."/>
+	</nomatch>
+      </input>
+    </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-ivr-es-ES.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-ivr-es-ES.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ec7d7bccd21aac77b6bb1bab1b6e37931c0cea7c
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-ivr-es-ES.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+
+  <macro name="demo_ivr_count">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
+    <input pattern="(.*)">
+      <match>
+        <!-- string together several existing sound files to create one long greeting -->
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
+        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
+        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
+
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
+        <action function="play-file" data="silence_stream://1500"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Register for ClueCon -->
+        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 6: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/6.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_main_menu_short" pause="100"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="silence_stream://1000"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
+  <macro name="demo_ivr_sub_menu">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
+
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_sub_menu_short"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-ivr-es-MX.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-ivr-es-MX.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ec7d7bccd21aac77b6bb1bab1b6e37931c0cea7c
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/demo/demo-ivr-es-MX.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+
+  <macro name="demo_ivr_count">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
+    <input pattern="(.*)">
+      <match>
+        <!-- string together several existing sound files to create one long greeting -->
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
+        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
+        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
+
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
+        <action function="play-file" data="silence_stream://1500"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Register for ClueCon -->
+        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 6: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/6.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_main_menu_short" pause="100"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="silence_stream://1000"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
+  <macro name="demo_ivr_sub_menu">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
+
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_sub_menu_short"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/sounds-es-ES.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/sounds-es-ES.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2bdc1492ec487b4876916e49096e0d20ac250c51
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/sounds-es-ES.xml
@@ -0,0 +1,121 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+	<macro name="directory_intro">
+		<input pattern="^(last_name)" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-enter_person.wav"/>
+				<action function="play-file" data="directory/dir-last_name.wav"/>
+			</match>
+		</input>
+		<input pattern="^(first_name)" break_on_match="false">
+			<match>
+                <action function="play-file" data="directory/dir-enter_person.wav"/>
+                <action function="play-file" data="directory/dir-first_name.wav"/>
+			</match>
+		</input>
+		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-to_search_by.wav"/>
+				<action function="play-file" data="directory/dir-first_name.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-to_search_by.wav"/>
+				<action function="play-file" data="directory/dir-last_name.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_min_search_digits">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-specify_mininum.wav"/>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count">
+		<input pattern="^0$" break_on_match="true">
+			<match>
+				<action function="play-file" data="directory/dir-no_matching_results.wav"/>
+			</match>
+		</input>
+		<input pattern="^(.*)$">
+			<match>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+				<action function="play-file" data="directory/dir-result_match.wav"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count_too_large">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-too_many_result.wav"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_last">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-no_more_results.wav"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_item">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-result_number.wav"/>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_at">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-at_extension.wav"/>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_menu">
+		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+			<match>
+				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-for_next.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-for_prev.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-start_new_search.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_say_name">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/sounds-es-MX.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/sounds-es-MX.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2bdc1492ec487b4876916e49096e0d20ac250c51
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/sounds-es-MX.xml
@@ -0,0 +1,121 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+	<macro name="directory_intro">
+		<input pattern="^(last_name)" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-enter_person.wav"/>
+				<action function="play-file" data="directory/dir-last_name.wav"/>
+			</match>
+		</input>
+		<input pattern="^(first_name)" break_on_match="false">
+			<match>
+                <action function="play-file" data="directory/dir-enter_person.wav"/>
+                <action function="play-file" data="directory/dir-first_name.wav"/>
+			</match>
+		</input>
+		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-to_search_by.wav"/>
+				<action function="play-file" data="directory/dir-first_name.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-to_search_by.wav"/>
+				<action function="play-file" data="directory/dir-last_name.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_min_search_digits">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-specify_mininum.wav"/>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count">
+		<input pattern="^0$" break_on_match="true">
+			<match>
+				<action function="play-file" data="directory/dir-no_matching_results.wav"/>
+			</match>
+		</input>
+		<input pattern="^(.*)$">
+			<match>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+				<action function="play-file" data="directory/dir-result_match.wav"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count_too_large">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-too_many_result.wav"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_last">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-no_more_results.wav"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_item">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-result_number.wav"/>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_at">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-at_extension.wav"/>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_menu">
+		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+			<match>
+				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-for_next.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-for_prev.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-start_new_search.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_say_name">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/tts-es-ES.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/tts-es-ES.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fbdeca703caf027ec5e8e008105e02e1b1658527
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/tts-es-ES.xml
@@ -0,0 +1,96 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+	<macro name="directory_intro">
+		<input pattern="^(last_name)" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Introduzca las primeras letras del apellido de la persona."/>
+			</match>
+		</input>
+		<input pattern="^(first_name)" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Introduzca las primeras letras del nombre de la persona."/>
+			</match>
+		</input>
+		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Para buscar por apellido, pulse $2"/>
+			</match>
+		</input>
+		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Para buscar por nombre, pulse $2"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_min_search_digits">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Necesita especificar un mínimo de $1 letras del nombre buscado. Por favor intente de nuevo."/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count">
+		<input pattern="^0$" break_on_match="true">
+			<match>
+				<action function="speak-text" data="No hay resultados que coincidan con su busqueda. Por favor intente de nuevo."/>
+			</match>
+		</input>
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="$1 resultados coinciden con su busqueda."/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count_too_large">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Su busqueda genera demasiados resultados. Por favor intente de nuevo."/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_last">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="No hay más resultados."/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_item">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Resultado número $1"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_menu">
+		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+			<match>
+				<action function="speak-text" data="Para seleccionar este resultado pulse $1, para el resultado siguiente pulse $2, para el resultado previo pulse $3, para empezar una nueva busqueda pulse $4"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_at">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="en la extensión $1"/>
+			</match>
+		</input>
+	</macro>
+	<macro name="directory_result_say_name">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="$1"/>
+			</match>
+		</input>
+	</macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/tts-es-MX.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/tts-es-MX.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ddf15d0a5031f44762fbe4e920c72e951daf1b92
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/dir/tts-es-MX.xml
@@ -0,0 +1,96 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+	<macro name="directory_intro">
+		<input pattern="^(last_name)" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Ingrese las primeras letras del apellido de la persona."/>
+			</match>
+		</input>
+		<input pattern="^(first_name)" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Ingrese las primeras letras del nombre de la persona."/>
+			</match>
+		</input>
+		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Para buscar por apellido, pulse $2"/>
+			</match>
+		</input>
+		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Para buscar por nombre, pulse $2"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_min_search_digits">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Necesita especificar un mínimo de $1 letras del nombre buscado. Por favor intente de nuevo."/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count">
+		<input pattern="^0$" break_on_match="true">
+			<match>
+				<action function="speak-text" data="No hay resultados que coincidan con su busqueda. Por favor intente de nuevo."/>
+			</match>
+		</input>
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="$1 resultados coinciden con su busqueda."/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count_too_large">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Su busqueda genera demasiados resultados. Por favor intente de nuevo."/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_last">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="No hay más resultados."/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_item">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Resultado número $1"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_menu">
+		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+			<match>
+				<action function="speak-text" data="Para seleccionar este resultado pulse $1, para el resultado siguiente pulse $2, para el resultado previo pulse $3, para empezar una nueva busqueda pulse $4"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_at">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="en la extensión $1"/>
+			</match>
+		</input>
+	</macro>
+	<macro name="directory_result_say_name">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="$1"/>
+			</match>
+		</input>
+	</macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/es_ES.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/es_ES.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3467bed1b0c85afe97949a5d2a822f76253a5ab5
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/es_ES.xml
@@ -0,0 +1,12 @@
+<include>
+  <language name="es" sound-path="$${sounds_dir}/es/ES/cristina" tts-engine="cepstral" tts-voice="marta">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/*-es-ES.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
+        <!--voicemail_es_ES_tts is purely implemented with tts, we have the files based one that is the default. -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds-es-ES.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
+        <X-PRE-PROCESS cmd="include" data="dir/sounds-es-ES.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
+      </macros>
+    </phrases>
+  </language>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/es_MX.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/es_MX.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e44f81944365ff92f726ec1439d96ab7ae42677e
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/es_MX.xml
@@ -0,0 +1,12 @@
+<include>
+  <language name="es" sound-path="$${sounds_dir}/es/mx/maria" tts-engine="cepstral" tts-voice="marta">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/*-es-MX.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
+        <!--voicemail_es_MX_tts is purely implemented with tts, we have the files based one that is the default. -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds-es-MX.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
+        <X-PRE-PROCESS cmd="include" data="dir/sounds-es-MX.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
+      </macros>
+    </phrases>
+  </language>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/sounds-es-ES.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/sounds-es-ES.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dcc9d9f76f576f114fc3118304b36d1e74b556ab
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/sounds-es-ES.xml
@@ -0,0 +1,404 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-abort.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^(1):(.*)$" break_on_match="true">
+      <match>
+	<action function="play-file" data="voicemail/vm-you_have.wav"/>
+	<action function="play-file" data="digits/un.wav"/>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$2.wav"/> 
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-you_have.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-messages.wav"/>
+	<action function="play-file" data="voicemail/vm-$2_s.wav"/> 
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To listen to new messages -->
+	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To listen to saved messages -->
+	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- For advanced options -->
+	<action function="play-file" data="voicemail/vm-advanced.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To exit -->
+	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To record a greeting -->
+	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To choose greeting -->
+	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To record your name -->
+	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To change password -->
+	<action function="play-file" data="voicemail/vm-change_password.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To return to main menu -->
+	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-continue.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-return_call.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-return_call.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_message.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-greeting.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-selected.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-person.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-not_available.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-$1.wav"/> 
+	<action function="play-file" data="voicemail/vm-message_number.wav"/>
+	<action function="say" data="$2" method="pronounced" type="items"/> 
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
+  <macro name="voicemail_ack"> 
+    <input pattern="^(too-small)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-too-small.wav"/>
+      </match>
+    </input>
+    <input pattern="^(deleted)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(saved)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(emailed)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(marked-urgent)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_disk_quota_exceeded">
+    <input pattern="^(.*)$">
+        <match>
+            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+        </match>
+    </input>
+  </macro>
+
+  <macro name="valet_announce_ext">
+    <input pattern="^([^\:]+):(.*)$">
+      <match>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_full">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_empty">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/sounds-es-MX.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/sounds-es-MX.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1f22c43bdc5e4799d57c96ce9df948d755a0bf6b
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/sounds-es-MX.xml
@@ -0,0 +1,404 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-abort.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^(1):(.*)$" break_on_match="true">
+      <match>
+	<action function="play-file" data="voicemail/vm-you_have.wav"/>
+	<action function="play-file" data="digits/un.wav"/>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$2.wav"/> 
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-you_have.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-messages.wav"/>
+	<action function="play-file" data="voicemail/vm-$2.wav"/> 
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To listen to new messages -->
+	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To listen to saved messages -->
+	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- For advanced options -->
+	<action function="play-file" data="voicemail/vm-advanced.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To exit -->
+	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To record a greeting -->
+	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To choose greeting -->
+	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To record your name -->
+	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To change password -->
+	<action function="play-file" data="voicemail/vm-change_password.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To return to main menu -->
+	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-continue.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-return_call.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-return_call.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_message.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-greeting.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-selected.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-person.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-not_available.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-$1.wav"/> 
+	<action function="play-file" data="voicemail/vm-message_number.wav"/>
+	<action function="say" data="$2" method="pronounced" type="items"/> 
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
+  <macro name="voicemail_ack"> 
+    <input pattern="^(too-small)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-too-small.wav"/>
+      </match>
+    </input>
+    <input pattern="^(deleted)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(saved)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(emailed)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(marked-urgent)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_disk_quota_exceeded">
+    <input pattern="^(.*)$">
+        <match>
+            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+        </match>
+    </input>
+  </macro>
+
+  <macro name="valet_announce_ext">
+    <input pattern="^([^\:]+):(.*)$">
+      <match>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_full">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_empty">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/tts-es-ES.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/tts-es-ES.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6dab48ca60ec8add5ab84d0dc0e02f5d6a7adcc8
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/tts-es-ES.xml
@@ -0,0 +1,238 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Por favor introduzca su número de usuario, seguido por $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Por favor introduzca su contraseña, seguido por $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Inicio de sesión incorrecto."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Bienvenido a su buzón de voz."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Adiós."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Demasiados intentos fallidos."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^1:(.*)$" break_on_match="true">
+      <match>
+	<action function="speak-text" data="Usted tiene 1 $1 mensaje en la bandeja de entrada ${voicemail_current_folder}."/>
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+	<action function="speak-text" data="Usted tiene $1 $2 mensajes en la bandeja de entrada ${voicemail_current_folder}."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para escuchar mensajes nuevos, pulse $1. Para escuchar mensajes guardados, pulse $2. Para opciones avanzadas, pulse $3. Para salir, pulse $4."/>
+      </match>
+    </input>
+  </macro>
+
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para grabar un saludo, pulse $1. Para elegir un saludo, pulse $2. Para grabar su nombre, pulse $3. Para cambiar su contraseña, pulse $5. Para el menú principal, pulse $5."/>
+      </match>
+    </input>
+  </macro>
+
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Por favor grabe su nombre después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para regrabar, pulse $3."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para marcar este mensaje como urgente, pulse $1. Para continuar, pulse $2."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="$1 no es una extensión válida."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="Introduzca la extensión a la cual quiere enviar este mensaje, seguido de $1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="Para grabar un saludo, pulse $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para eliminar la grabación, pulse $3. Para enviar la grabación a su e-mail, pulse $4. Para devolver la llamada, pulse $5. Para enviar este mensaje a otra extensión, pulse $6."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Elija un saludo entre 1 y 9."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Valor inválido."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Grabe su saludo después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Grabe su mensaje después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Saludo $1 seleccionado."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1 no está disponible."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(.*)$">
+      <match>
+	<action function="speak-text" data="$1 mensaje número $2."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_ack">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="mensaje $1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
+      </match>
+    </input>
+  </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/tts-es-MX.xml b/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/tts-es-MX.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce5722e9348a598c28ada57d25970aa4279b8b34
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/es/vm/tts-es-MX.xml
@@ -0,0 +1,238 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Por favor ingrese su número de usuario, seguido por $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Por favor ingrese su contraseña, seguido por $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Inicio de sesión incorrecto."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Bienvenido a su buzón de voz."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Adiós."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Demasiados intentos fallidos."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^1:(.*)$" break_on_match="true">
+      <match>
+	<action function="speak-text" data="Usted tiene 1 $1 mensaje en la bandeja de entrada ${voicemail_current_folder}."/>
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+	<action function="speak-text" data="Usted tiene $1 $2 mensajes en la bandeja de entrada ${voicemail_current_folder}."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para escuchar mensajes nuevos, pulse $1. Para escuchar mensajes guardados, pulse $2. Para opciones avanzadas, pulse $3. Para salir, pulse $4."/>
+      </match>
+    </input>
+  </macro>
+
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para grabar un saludo, pulse $1. Para elegir un saludo, pulse $2. Para grabar su nombre, pulse $3. Para cambiar su contraseña, pulse $5. Para el menú principal, pulse $5."/>
+      </match>
+    </input>
+  </macro>
+
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Después del tono, por favor anote su nombre, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para regrabar, pulse $3."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para marcar este mensaje como urgente, pulse $1. Para continuar, pulse $2."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="$1 no es una extensión válida."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="Introduzca la extensión a la cual quiere enviar este mensaje, seguido de $1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="Para grabar un saludo, pulse $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para escuchar la grabación, pulse $1. Para guardar la grabación, pulse $2. Para eliminar la grabación, pulse $3. Para enviar la grabación a su e-mail, pulse $4. Para devolver la llamada, pulse $5. Para enviar este mensaje a otra extensión, pulse $6."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Elija un saludo entre 1 y 9."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Valor inválido."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Grabe su saludo después del tono, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Grabe su mensaje después del tono, pulse cualquier tecla o deje de hablar para poner fin a la grabación."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Saludo $1 seleccionado."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1 no está disponible."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(.*)$">
+      <match>
+	<action function="speak-text" data="$1 mensaje número $2."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_ack">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="mensaje $1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
+      </match>
+    </input>
+  </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/demo/demo.xml
index 80660203a3b28d3dd9f8850930363f7ee45659bc..0d0de592acc22fcadb9aaead331889e1a80e8c66 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/fr/demo/demo.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/demo/demo.xml
@@ -1,18 +1,29 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-<macro name="msgcount">
-  <input pattern="(.*)">
-    <match>
-      <action function="play-file" data="tuas.wav"/>
-      <action function="say" data="$1" method="pronounced" type="items"/>
-      <action function="play-file" data="messages.wav"/>
-    </match>
-  </input>
-</macro>
-<macro name="timeleft">
-  <input pattern="(\d+):(\d+)">
-    <match>
-      <action function="speak-text" data="il reste $1 minutes et $2 secondes"/>
-    </match>
-  </input>
-</macro>
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+  <macro name="msgcount">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="tuas.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="messages.wav"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="timeleft">
+    <input pattern="(\d+):(\d+)">
+      <match>
+        <action function="speak-text" data="il reste $1 minutes et $2 secondes"/>
+      </match>
+    </input>
+  </macro>
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/sounds.xml
index 02d6b3671f98d61b9dd21acb8ea0b7d764ed039b..a0dcb2c0e9a4523f44e730f41d39abac99823bda 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/sounds.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/sounds.xml
@@ -1,121 +1,130 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-	<macro name="directory_intro">
-		<input pattern="^(last_name)" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-enter-person.wav"/>
-				<action function="play-file" data="directory/dir-last_name.wav"/>
-			</match>
-		</input>
-		<input pattern="^(first_name)" break_on_match="false">
-			<match>
-                <action function="play-file" data="directory/dir-enter-person.wav"/>
-                <action function="play-file" data="directory/dir-first_name.wav"/>
-			</match>
-		</input>
-		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-to_search_by.wav"/>
-				<action function="play-file" data="directory/dir-first_name.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-to_search_by.wav"/>
-				<action function="play-file" data="directory/dir-last_name.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
+<include>
 
-	<macro name="directory_min_search_digits">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-specify_mininum_first.wav"/>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_intro">
+    <input pattern="^(last_name)" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-enter-person.wav"/>
+        <action function="play-file" data="directory/dir-last_name.wav"/>
+      </match>
+    </input>
+    <input pattern="^(first_name)" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-enter-person.wav"/>
+        <action function="play-file" data="directory/dir-first_name.wav"/>
+      </match>
+    </input>
+    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-to_search_by.wav"/>
+        <action function="play-file" data="directory/dir-first_name.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-to_search_by.wav"/>
+        <action function="play-file" data="directory/dir-last_name.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count">
-		<input pattern="^0$" break_on_match="true">
-			<match>
-				<action function="play-file" data="directory/dir-no_match_entry.wav"/>
-			</match>
-		</input>
-		<input pattern="^(.*)$">
-			<match>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-				<action function="play-file" data="directory/dir-result_match.wav"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_min_search_digits">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-specify_mininum_first.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count_too_large">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-to_many_result.wav"/>
-			</match>
-		</input>
+  <macro name="directory_result_count">
+    <input pattern="^0$" break_on_match="true">
+      <match>
+        <action function="play-file" data="directory/dir-no_match_entry.wav"/>
+      </match>
+    </input>
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="directory/dir-result_match.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_count_too_large">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-to_many_result.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_last">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-no_more_result.wav"/>
-			</match>
-		</input>
+  <macro name="directory_result_last">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-no_more_result.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_item">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-result_number.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_item">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-result_number.wav"/>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_at">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-at_extension.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_at">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-at_extension.wav"/>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_menu">
+    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+      <match>
+        <action function="play-file" data="directory/dir-to_select_entry.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-for_next.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-for_prev.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-to_make_new_search.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_menu">
-		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
-			<match>
-				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-for_next.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-for_prev.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-to_make_new_search.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+  <macro name="directory_result_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-			</match>
-		</input>
-	</macro>
-
-	<macro name="directory_result_say_name">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
-
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/tts.xml
index 1f5b0caa63d21836514efb3614ff3fcd7c1f0fa9..7d3e5e309022c86b5bed190410ca0f4baec96d1a 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/tts.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/dir/tts.xml
@@ -1,101 +1,110 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
 
-	<macro name="directory_intro">
-		<input pattern="^(last_name)" break_on_match="false">
-			<match>
-				<action function="speak-text" data="Veuillez entrer les premières lettres du nom de famille"/>
-			</match>
-		</input>
-		<input pattern="^(first_name)" break_on_match="false">
-			<match>
-				<action function="speak-text" data="Veuillez entrer les premières lettres du prénom"/>
-			</match>
-		</input>
-		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="speak-text" data="pour chercher par prénom, tapez $2"/>
-			</match>
-		</input>
-		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="speak-text" data="pour chercher par nom de famille, tapez $2"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_intro">
+    <input pattern="^(last_name)" break_on_match="false">
+      <match>
+        <action function="speak-text" data="Veuillez entrer les premières lettres du nom de famille"/>
+      </match>
+    </input>
+    <input pattern="^(first_name)" break_on_match="false">
+      <match>
+        <action function="speak-text" data="Veuillez entrer les premières lettres du prénom"/>
+      </match>
+    </input>
+    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="speak-text" data="pour chercher par prénom, tapez $2"/>
+      </match>
+    </input>
+    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="speak-text" data="pour chercher par nom de famille, tapez $2"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_min_search_digits">
-		<input pattern="^(1)$">
-			<match>
-				<action function="speak-text" data="Vous devez entrer au minimum une lettre du nom de la personne, essayez encore"/>
-			</match>
-		</input>
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="Vous devez entrer au minimum $1 lettres du nom de la personne, essayer encore"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_min_search_digits">
+    <input pattern="^(1)$">
+      <match>
+        <action function="speak-text" data="Vous devez entrer au minimum une lettre du nom de la personne, essayez encore"/>
+      </match>
+    </input>
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="Vous devez entrer au minimum $1 lettres du nom de la personne, essayer encore"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count">
-		<input pattern="^0$" break_on_match="true">
-			<match>
-				<action function="speak-text" data="Votre recherche n'a retournée aucun résultat, essayez encore"/>
-			</match>
-		</input>
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="$1 résultats correspondent à votre recherche"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_count">
+    <input pattern="^0$" break_on_match="true">
+      <match>
+        <action function="speak-text" data="Votre recherche n'a retournée aucun résultat, essayez encore"/>
+      </match>
+    </input>
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="$1 résultats correspondent à votre recherche"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count_too_large">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="Votre recherche retourne trop de résultats, essayer encore"/>
-			</match>
-		</input>
+  <macro name="directory_result_count_too_large">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="Votre recherche retourne trop de résultats, essayer encore"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_last">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="Fin des résultats."/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_last">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="Fin des résultats."/>
-			</match>
-		</input>
+  <macro name="directory_result_item">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="Résultat numéro $1"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_menu">
+    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+      <match>
+        <action function="speak-text" data="Pour sélectionner ce nom, tapez $1, pour le nom suivant tapez $2, pour le nom précédent, tapez $3, pour faire une nouvelle recherche, tapez $4"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_item">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="Résultat numéro $1"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_at">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="au poste $1"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="directory_result_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="$1"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_menu">
-		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
-			<match>
-				<action function="speak-text" data="Pour sélectionner ce nom, tapez $1, pour le nom suivant tapez $2, pour le nom précédent, tapez $3, pour faire une nouvelle recherche, tapez $4"/>
-			</match>
-		</input>
-	</macro>
-
-	<macro name="directory_result_at">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="au poste $1"/>
-			</match>
-		</input>
-	</macro>
-	<macro name="directory_result_say_name">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="$1"/>
-			</match>
-		</input>
-	</macro>
-
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/fr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/fr.xml
index 12bec06f20cebdf844ad2657136673a1698e8a7f..124ca02415eca0de89cf001fa1b03456c0a4930c 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/fr/fr.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/fr.xml
@@ -1,8 +1,23 @@
 <include>
-  <language name="fr" sound-path="/snds" tts-engine="cepstral" tts-voice="david">
-    <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
-    <!--voicemail_fr_tts is purely implemented with tts, we need a files based implementation too -->
-	<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
-	<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
+  <language name="fr" say-module="fr" sound-prefix="$${sounds_dir}/fr/ca/june" tts-engine="cepstral" tts-voice="david">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
+        <!-- voicemail_fr_tts is purely implemented with tts, we need a files based implementation too -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
+        <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
+      </macros>
+    </phrases>
   </language>
 </include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/fr/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/fr/vm/sounds.xml
index 55190a6bac7f393fc4574aebe5115f2ae3291c69..9cd209eab13832df9704b25f3b343f2c87375ae6 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/fr/vm/sounds.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/fr/vm/sounds.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Entrez votre Identification, suivi par $1."/>
+        <action function="speak-text" data="Entrez votre Identification, suivi par $1."/>
       </match>
     </input>
   </macro>
@@ -11,7 +11,7 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Entrez votre code, suivi par $1."/>
+        <action function="speak-text" data="Entrez votre code, suivi par $1."/>
       </match>
     </input>
   </macro>
@@ -19,7 +19,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Identification incorrecte."/>
+        <action function="speak-text" data="Identification incorrecte."/>
       </match>
     </input>
   </macro>
@@ -27,7 +27,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Bienvenue sur votre répondeur."/>
+        <action function="speak-text" data="Bienvenue sur votre répondeur."/>
       </match>
     </input>
   </macro>
@@ -35,7 +35,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Au revoir."/>
+        <action function="speak-text" data="Au revoir."/>
       </match>
     </input>
   </macro>
@@ -43,7 +43,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="Trop de tentatives ont échouées."/>
+        <action function="speak-text" data="Trop de tentatives ont échouées."/>
       </match>
     </input>
   </macro>
@@ -51,17 +51,17 @@
   <macro name="voicemail_message_count">
     <input pattern="^([^:]+):urgent-new">
       <match>
-	<action function="speak-text" data="Vous avez $1 nouveaux messages urgents dans le répertoire ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Vous avez $1 nouveaux messages urgents dans le répertoire ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^([^:]+):new">
       <match>
-	<action function="speak-text" data="Vous avez $1 nouveaux messages dans le répertoire ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Vous avez $1 nouveaux messages dans le répertoire ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^([^:]+):saved">
       <match>
-	<action function="speak-text" data="Vous avez $1 messages sauvegardés dans le répertoire ${voicemail_current_folder}."/>
+        <action function="speak-text" data="Vous avez $1 messages sauvegardés dans le répertoire ${voicemail_current_folder}."/>
       </match>
     </input>
   </macro>
@@ -69,27 +69,25 @@
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="Pour écouter les nouveaux messages, tapez $1, Pour écouter les messages enregistrés, tapez $2, Pour les options avancées, tapez $3, pour sortir, tapez $4."/>
+        <action function="speak-text"
+                data="Pour écouter les nouveaux messages, tapez $1, Pour écouter les messages enregistrés, tapez $2, Pour les options avancées, tapez $3, pour sortir, tapez $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="pour enregistrer un message d'accueil, tapez $1, Pour choisir votre message d'accueil, tapez $2, Pour enregistrer votre nom, tapez $3, Pour changer votre mot de passe, tapez $4, Pour retourner au menu principal, tapez $5."/>
+        <action function="speak-text"
+                data="pour enregistrer un message d'accueil, tapez $1, Pour choisir votre message d'accueil, tapez $2, Pour enregistrer votre nom, tapez $3, Pour changer votre mot de passe, tapez $4, Pour retourner au menu principal, tapez $5."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="enregistrez votre nom après le bip, puis tapez une touche, ou arrêtez de parler pour arrêter l'enregistrement."/>
+        <action function="speak-text" data="enregistrez votre nom après le bip, puis tapez une touche, ou arrêtez de parler pour arrêter l'enregistrement."/>
 
       </match>
     </input>
@@ -98,8 +96,8 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="Pour écouter l'enregistrement, tapez $1, pour sauvegarder l'enregistrement, tapez $2, Pour réenregistrer, tapez $3."/>
+        <action function="speak-text"
+                data="Pour écouter l'enregistrement, tapez $1, pour sauvegarder l'enregistrement, tapez $2, Pour réenregistrer, tapez $3."/>
       </match>
     </input>
   </macro>
@@ -107,8 +105,8 @@
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="Pour indiquer que ce message est urgent, tapez $1, Pour continuer, tapez $2."/>
+        <action function="speak-text"
+                data="Pour indiquer que ce message est urgent, tapez $1, Pour continuer, tapez $2."/>
       </match>
     </input>
   </macro>
@@ -116,8 +114,8 @@
   <macro name="voicemail_listen_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])(:(.*))?$">
       <match>
-	<action function="speak-text" 
-		data="Pour réécouter l'enregistrement à nouveau, tapez $1, Pour sauvegarder l'enregistrement, tapez $2, Pour supprimer l'enregistrement, tapez $3, pour transférer l'enregistrement à votre email $8, tapez $4, Pour appeler l'auteur du message, tapez $5, Pour transférer ce message à un autre numéro, tapez $6."/>
+        <action function="speak-text"
+                data="Pour réécouter l'enregistrement à nouveau, tapez $1, Pour sauvegarder l'enregistrement, tapez $2, Pour supprimer l'enregistrement, tapez $3, pour transférer l'enregistrement à votre email $8, tapez $4, Pour appeler l'auteur du message, tapez $5, Pour transférer ce message à un autre numéro, tapez $6."/>
       </match>
     </input>
   </macro>
@@ -125,7 +123,7 @@
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="choisissez un message d'accueil entre 1 et 3."/>
+        <action function="speak-text" data="choisissez un message d'accueil entre 1 et 3."/>
       </match>
     </input>
   </macro>
@@ -133,7 +131,7 @@
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="valeur incorrecte."/>
+        <action function="speak-text" data="valeur incorrecte."/>
       </match>
     </input>
   </macro>
@@ -141,7 +139,7 @@
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="enregistrez votre message d'accueil après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
+        <action function="speak-text" data="enregistrez votre message d'accueil après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
       </match>
     </input>
   </macro>
@@ -149,7 +147,7 @@
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="enregistrez votre message après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
+        <action function="speak-text" data="enregistrez votre message après le bip, puis tapez une touche ou arrêtez de parler pour arrêter l'enregistrement."/>
       </match>
     </input>
   </macro>
@@ -157,7 +155,7 @@
   <macro name="voicemail_greeting_selected">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="message d'accueil numéro $1 sélectionné."/>
+        <action function="speak-text" data="message d'accueil numéro $1 sélectionné."/>
       </match>
     </input>
   </macro>
@@ -165,7 +163,7 @@
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1 n'est pas disponible."/>
+        <action function="speak-text" data="$1 n'est pas disponible."/>
       </match>
     </input>
   </macro>
@@ -173,7 +171,7 @@
   <macro name="voicemail_say_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1"/>
+        <action function="speak-text" data="$1"/>
       </match>
     </input>
   </macro>
@@ -181,12 +179,12 @@
   <macro name="voicemail_say_message_number">
     <input pattern="^new:(.*)$">
       <match>
-	<action function="speak-text" data="nouveau message numéro $1."/>
+        <action function="speak-text" data="nouveau message numéro $1."/>
       </match>
     </input>
     <input pattern="^saved:(.*)$">
       <match>
-	<action function="speak-text" data="message sauvegardé numéro $1."/>
+        <action function="speak-text" data="message sauvegardé numéro $1."/>
       </match>
     </input>
   </macro>
@@ -194,7 +192,7 @@
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
@@ -202,7 +200,7 @@
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
@@ -210,27 +208,27 @@
   <macro name="voicemail_ack">
     <input pattern="^(too-small)$">
       <match>
-	<action function="speak-text" data="message trop court"/>
+        <action function="speak-text" data="message trop court"/>
       </match>
     </input>
     <input pattern="^(deleted)$">
       <match>
-	<action function="speak-text" data="message supprimé"/>
+        <action function="speak-text" data="message supprimé"/>
       </match>
     </input>
     <input pattern="^(saved)$">
       <match>
-	<action function="speak-text" data="message sauvegardé"/>
+        <action function="speak-text" data="message sauvegardé"/>
       </match>
     </input>
     <input pattern="^(emailed)$">
       <match>
-	<action function="speak-text" data="message envoyé"/>
+        <action function="speak-text" data="message envoyé"/>
       </match>
     </input>
     <input pattern="^(marked-urgent)$">
       <match>
-	<action function="speak-text" data="message marqué urgent"/>
+        <action function="speak-text" data="message marqué urgent"/>
       </match>
     </input>
   </macro>
@@ -238,9 +236,20 @@
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="${strftime($1|%e/%m/%Y, %H heures %M)}"/>
+        <action function="speak-text" data="${strftime($1|%e/%m/%Y, %H heures %M)}"/>
       </match>
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
\ No newline at end of file
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/he/demo/demo-ivr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/he/demo/demo-ivr.xml
new file mode 100644
index 0000000000000000000000000000000000000000..df8d24b751ece5fc0fc998376de245612f38670d
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/he/demo/demo-ivr.xml
@@ -0,0 +1,157 @@
+<include>
+
+  <macro name="demo_ivr_count">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
+    <input pattern="(.*)">
+      <match>
+        <!-- string together several existing sound files to create one long greeting -->
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
+        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
+        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
+
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
+        <action function="play-file" data="silence_stream://1500"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Register for ClueCon -->
+        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 6: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/6.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_main_menu_short" pause="100">
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="silence_stream://1000"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
+  <macro name="demo_ivr_sub_menu">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
+
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_sub_menu_short">
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/he/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/he/demo/demo.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bcfe6a822760be8c0c5ef31a61783c33489d4d34
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/he/demo/demo.xml
@@ -0,0 +1,82 @@
+<include>
+  <macro name="msgcount">
+    <input pattern="(.*)">
+      <match>
+        <action function="execute" data="sleep(1000)"/>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+        <!-- or -->
+        <!--<action function="speak-text" data="you have $1 messages"/>-->
+      </match>
+    </input>
+  </macro>
+  <macro name="saydate">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="timespec">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="time_measurement"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="ip-addr">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="iterated" type="ip_address"/>
+        <action function="say" data="$1" method="pronounced" type="ip_address"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="spell">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="spell-phonetic">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="tts-timeleft">
+    <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
+    <!-- If the function "break" is encountered all parsing will cease -->
+    <input pattern="(\d+):(\d+)">
+      <match>
+        <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
+        <action function="break"/>
+      </match>
+      <nomatch>
+        <action function="speak-text" data="That input was invalid."/>
+      </nomatch>
+    </input>
+    <input pattern="(\d+) min (\d+) sec">
+      <match>
+        <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
+      </match>
+      <nomatch>
+        <action function="speak-text" data="That input was invalid."/>
+      </nomatch>
+    </input>
+  </macro>
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/he/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/he/dir/sounds.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5fd13fffc57783eed513f7f18a9ae5463b49cd17
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/he/dir/sounds.xml
@@ -0,0 +1,130 @@
+<include>
+
+  <macro name="directory_intro">
+    <input pattern="^(last_name)" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-enter_person.wav"/>
+        <action function="play-file" data="directory/dir-last_name.wav"/>
+      </match>
+    </input>
+    <input pattern="^(first_name)" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-enter_person.wav"/>
+        <action function="play-file" data="directory/dir-first_name.wav"/>
+      </match>
+    </input>
+    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-to_search_by.wav"/>
+        <action function="play-file" data="directory/dir-first_name.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-to_search_by.wav"/>
+        <action function="play-file" data="directory/dir-last_name.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="directory_min_search_digits">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-specify_mininum.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="directory_result_count">
+    <input pattern="^0$" break_on_match="true">
+      <match>
+        <action function="play-file" data="directory/dir-no_matching_results.wav"/>
+      </match>
+    </input>
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="directory/dir-result_match.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="directory_result_count_too_large">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-too_many_result.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="directory_result_last">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-no_more_results.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="directory_result_item">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-result_number.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="directory_result_at">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-at_extension.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="directory_result_menu">
+    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+      <match>
+        <action function="play-file" data="directory/dir-to_select_entry.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-for_next.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-for_prev.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-start_new_search.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="directory_result_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/he/he.xml b/bbb-voice-conference/config/freeswitch/conf/lang/he/he.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7cca73c1e80444a385a7cbe3d02c7c260394bbac
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/he/he.xml
@@ -0,0 +1,22 @@
+<include>
+  <language name="he" sound-prefix="$${sounds_dir}/he/daniel" tts-engine="cepstral" tts-voice="daniel">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
+        <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/>
+      </macros>
+    </phrases>
+  </language>
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/he/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/he/vm/sounds.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9c1a4dfd7d36a7d1b925d8c38fbd592842526c47
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/he/vm/sounds.xml
@@ -0,0 +1,417 @@
+<include>
+
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+        <!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="voicemail/vm-abort.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^(1):(.*)$" break_on_match="true">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-$2.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-$2.wav"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+        <!-- To listen to new messages -->
+        <action function="play-file" data="voicemail/vm-listen_new.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+
+        <!-- To listen to saved messages -->
+        <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+
+        <!-- For advanced options -->
+        <action function="play-file" data="voicemail/vm-advanced.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+
+        <!-- To exit -->
+        <action function="play-file" data="voicemail/vm-to_exit.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+        <!-- To record a greeting -->
+        <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+
+        <!-- To choose greeting -->
+        <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+
+        <!-- To record your name -->
+        <action function="play-file" data="voicemail/vm-record_name2.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+
+        <!-- To change password -->
+        <action function="play-file" data="voicemail/vm-change_password.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+        <action function="execute" data="sleep(100)"/>
+
+        <!-- To return to main menu -->
+        <action function="play-file" data="voicemail/vm-main_menu.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-record_name1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-rerecord.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-continue.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+        <action function="play-file" data="voicemail/vm-followed_by.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-return_call.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-return_call.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-to_forward.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-record_message.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-greeting.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-selected.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-person.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-not_available.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message_number.wav"/>
+        <action function="say" data="$2" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
+  <macro name="voicemail_ack">
+    <input pattern="^(too-small)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-too-small.wav"/>
+      </match>
+    </input>
+    <input pattern="^(deleted)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(saved)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(emailed)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(marked-urgent)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_disk_quota_exceeded">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_announce_ext">
+    <input pattern="^([^\:]+):(.*)$">
+      <match>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_full">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_empty">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-ivr-pt-BR.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-ivr-pt-BR.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ec7d7bccd21aac77b6bb1bab1b6e37931c0cea7c
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-ivr-pt-BR.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+
+  <macro name="demo_ivr_count">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
+    <input pattern="(.*)">
+      <match>
+        <!-- string together several existing sound files to create one long greeting -->
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
+        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
+        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
+
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
+        <action function="play-file" data="silence_stream://1500"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Register for ClueCon -->
+        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 6: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/6.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_main_menu_short" pause="100"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="silence_stream://1000"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
+  <macro name="demo_ivr_sub_menu">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
+
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_sub_menu_short"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-ivr-pt-PT.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-ivr-pt-PT.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ec7d7bccd21aac77b6bb1bab1b6e37931c0cea7c
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-ivr-pt-PT.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+
+  <macro name="demo_ivr_count">
+    <input pattern="^(\d+)$">
+      <match>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
+    <input pattern="(.*)">
+      <match>
+        <!-- string together several existing sound files to create one long greeting -->
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
+        <action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
+        <!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
+
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
+        <action function="play-file" data="silence_stream://1500"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Register for ClueCon -->
+        <action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 6: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/6.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_main_menu_short" pause="100"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option 1: Call FreeSWITCH conference-->
+        <action function="play-file" data="silence_stream://1000"/>
+        <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/1.wav"/>
+
+        <!-- Menu option 2: Do FreeSWITCH echo test -->
+        <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/2.wav"/>
+
+        <!-- Menu option 3: Listen to Music on Hold -->
+        <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/3.wav"/>
+
+        <!-- Menu option 4: Hear a sample submenu -->
+        <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/4.wav"/>
+
+        <!-- Menu option 5: Listen to screaming monkeys -->
+        <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/5.wav"/>
+
+        <!-- Menu option 9: Repeat these options -->
+        <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/9.wav"/>
+        <action function="play-file" data="silence_stream://2000"/>
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
+  <macro name="demo_ivr_sub_menu">
+    <input pattern="(.*)">
+      <match>
+        <action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
+        <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
+
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+  <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
+  <!-- The short version has all the options but not the initial greeting -->
+  <macro name="demo_ivr_sub_menu_short"> 
+    <input pattern="(.*)">
+      <match>
+        <!-- Menu option *: Return to top menu -->
+        <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+        <action function="play-file" data="ivr/ivr-please.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="play-file" data="digits/star.wav"/>
+
+      </match>
+    </input>
+  </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-pt-BR.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-pt-BR.xml
new file mode 100644
index 0000000000000000000000000000000000000000..846561a5416003cc2d82b23e0ec3b39db9598829
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-pt-BR.xml
@@ -0,0 +1,71 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+    <macro name="msgcount">
+      <input pattern="(.*)">
+	<match>
+	  <action function="execute" data="sleep(1000)"/>
+	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
+	  <action function="say" data="$1" method="pronounced" type="items"/>
+	  <action function="play-file" data="voicemail/vm-messages.wav"/>
+	  <!-- or -->
+	  <!--<action function="speak-text" data="you have $1 messages"/>-->
+	</match>
+      </input>
+    </macro>
+    <macro name="saydate">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="timespec">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="ip-addr">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="iterated" type="ip_address"/>
+	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="spell">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="spell-phonetic">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="tts-timeleft">
+      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
+      <!-- If the function "break" is encountered all parsing will cease -->
+      <input pattern="(\d+):(\d+)">
+	<match>
+	  <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
+	  <action function="break"/>
+	</match>
+	<nomatch>
+	  <action function="speak-text" data="Essa opção não é valida."/>
+	</nomatch>
+      </input>
+      <input pattern="(\d+) min (\d+) sec">
+	<match>
+	  <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
+	</match>
+	<nomatch>
+	  <action function="speak-text" data="Essa opção não é valida."/>
+	</nomatch>
+      </input>
+    </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-pt-PT.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-pt-PT.xml
new file mode 100644
index 0000000000000000000000000000000000000000..34464f7a6d46f3452df44cb9e566b1d64dbba64d
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/demo/demo-pt-PT.xml
@@ -0,0 +1,71 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+    <macro name="msgcount">
+      <input pattern="(.*)">
+	<match>
+	  <action function="execute" data="sleep(1000)"/>
+	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
+	  <action function="say" data="$1" method="pronounced" type="items"/>
+	  <action function="play-file" data="voicemail/vm-messages.wav"/>
+	  <!-- or -->
+	  <!--<action function="speak-text" data="Você tem $1 mensagens"/>-->
+	</match>
+      </input>
+    </macro>
+    <macro name="saydate">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="timespec">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="ip-addr">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="iterated" type="ip_address"/>
+	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="spell">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="spell-phonetic">
+      <input pattern="(.*)">
+	<match>
+	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
+	</match>
+      </input>
+    </macro>
+    <macro name="tts-timeleft">
+      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
+      <!-- If the function "break" is encountered all parsing will cease -->
+      <input pattern="(\d+):(\d+)">
+	<match>
+	  <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
+	  <action function="break"/>
+	</match>
+	<nomatch>
+	  <action function="speak-text" data="Essa era uma entrada inválida."/>
+	</nomatch>
+      </input>
+      <input pattern="(\d+) min (\d+) sec">
+	<match>
+	  <action function="speak-text" data="Faltam $1 minutos, $2 segundos $strftime(%Y-%m-%d)"/>
+	</match>
+	<nomatch>
+	  <action function="speak-text" data="Essa era uma entrada inválida."/>
+	</nomatch>
+      </input>
+    </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/sounds-pt-BR.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/sounds-pt-BR.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2bdc1492ec487b4876916e49096e0d20ac250c51
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/sounds-pt-BR.xml
@@ -0,0 +1,121 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+	<macro name="directory_intro">
+		<input pattern="^(last_name)" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-enter_person.wav"/>
+				<action function="play-file" data="directory/dir-last_name.wav"/>
+			</match>
+		</input>
+		<input pattern="^(first_name)" break_on_match="false">
+			<match>
+                <action function="play-file" data="directory/dir-enter_person.wav"/>
+                <action function="play-file" data="directory/dir-first_name.wav"/>
+			</match>
+		</input>
+		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-to_search_by.wav"/>
+				<action function="play-file" data="directory/dir-first_name.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-to_search_by.wav"/>
+				<action function="play-file" data="directory/dir-last_name.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_min_search_digits">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-specify_mininum.wav"/>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count">
+		<input pattern="^0$" break_on_match="true">
+			<match>
+				<action function="play-file" data="directory/dir-no_matching_results.wav"/>
+			</match>
+		</input>
+		<input pattern="^(.*)$">
+			<match>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+				<action function="play-file" data="directory/dir-result_match.wav"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count_too_large">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-too_many_result.wav"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_last">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-no_more_results.wav"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_item">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-result_number.wav"/>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_at">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-at_extension.wav"/>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_menu">
+		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+			<match>
+				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-for_next.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-for_prev.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-start_new_search.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_say_name">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/sounds-pt-PT.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/sounds-pt-PT.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2bdc1492ec487b4876916e49096e0d20ac250c51
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/sounds-pt-PT.xml
@@ -0,0 +1,121 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+	<macro name="directory_intro">
+		<input pattern="^(last_name)" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-enter_person.wav"/>
+				<action function="play-file" data="directory/dir-last_name.wav"/>
+			</match>
+		</input>
+		<input pattern="^(first_name)" break_on_match="false">
+			<match>
+                <action function="play-file" data="directory/dir-enter_person.wav"/>
+                <action function="play-file" data="directory/dir-first_name.wav"/>
+			</match>
+		</input>
+		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-to_search_by.wav"/>
+				<action function="play-file" data="directory/dir-first_name.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="play-file" data="directory/dir-to_search_by.wav"/>
+				<action function="play-file" data="directory/dir-last_name.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_min_search_digits">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-specify_mininum.wav"/>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count">
+		<input pattern="^0$" break_on_match="true">
+			<match>
+				<action function="play-file" data="directory/dir-no_matching_results.wav"/>
+			</match>
+		</input>
+		<input pattern="^(.*)$">
+			<match>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+				<action function="play-file" data="directory/dir-result_match.wav"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count_too_large">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-too_many_result.wav"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_last">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-no_more_results.wav"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_item">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-result_number.wav"/>
+				<action function="say" data="$1" method="pronounced" type="items"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_at">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="play-file" data="directory/dir-at_extension.wav"/>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_menu">
+		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+			<match>
+				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-for_next.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-for_prev.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+				<action function="play-file" data="directory/dir-start_new_search.wav"/>
+				<action function="play-file" data="directory/dir-press.wav"/>
+				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_say_name">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+			</match>
+		</input>
+	</macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/tts-pt-BR.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/tts-pt-BR.xml
new file mode 100644
index 0000000000000000000000000000000000000000..71b79c60a81687fe410ad8e67a770b834f5ce14a
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/tts-pt-BR.xml
@@ -0,0 +1,96 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+	<macro name="directory_intro">
+		<input pattern="^(last_name)" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Por favor marque as primeiras letras do apelido da pessoa"/>
+			</match>
+		</input>
+		<input pattern="^(first_name)" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Por favor marque as primeiras letras do nome da pessoa"/>
+			</match>
+		</input>
+		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Para buscar por primeiro nome, digite $2"/>
+			</match>
+		</input>
+		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Para buscar por apelido, digite $2"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_min_search_digits">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Você precisa dizer um mínimo de $1 letras do nome da pessoa, tente novamente."/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count">
+		<input pattern="^0$" break_on_match="true">
+			<match>
+				<action function="speak-text" data="Não foram encontrados resultados, tente novamente."/>
+			</match>
+		</input>
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="$1 resultados encontrados para a sua busca."/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count_too_large">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="A  sua busca devolveu muitos resultados, por favor tente novamente."/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_last">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Não há mais resultados."/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_item">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Resultado número $1"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_menu">
+		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+			<match>
+				<action function="speak-text" data="Para escolher este resultado digite $1, Para o resultado seguinte digite $2, Para o resultado anterior digite $3, Para uma nova busca digite $4"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_at">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="No ramal $1"/>
+			</match>
+		</input>
+	</macro>
+	<macro name="directory_result_say_name">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="$1"/>
+			</match>
+		</input>
+	</macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/tts-pt-PT.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/tts-pt-PT.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4f03c5abdb98afc0edf5511e04e757f33956705f
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/dir/tts-pt-PT.xml
@@ -0,0 +1,96 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+
+	<macro name="directory_intro">
+		<input pattern="^(last_name)" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Por favor introduza os primeiras letras do apelido da pessoa"/>
+			</match>
+		</input>
+		<input pattern="^(first_name)" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Por favor introduza os primeiros dígitos do primeiro nome da pessoa"/>
+			</match>
+		</input>
+		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Para pesquisar por primeiro nome, marque $2"/>
+			</match>
+		</input>
+		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+			<match>
+				<action function="speak-text" data="Para pesquisar por apelido, marque $2"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_min_search_digits">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Você necessita de especificar um mínimo de $1 letras do nome da pessoa, tente novamente."/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count">
+		<input pattern="^0$" break_on_match="true">
+			<match>
+				<action function="speak-text" data="Não foram encontrados resultados, tente novamente."/>
+			</match>
+		</input>
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="$1 resultados encontrados para a sua pesquisa."/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_count_too_large">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="A sua pesquisa devolveu demasiados resultados, por favor tente novamente."/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_last">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Não há mais resultados"/>
+			</match>
+		</input>
+
+	</macro>
+
+	<macro name="directory_result_item">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Resultado número $1"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_menu">
+		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+			<match>
+				<action function="speak-text" data="Para seleccionar este resultado marque $1, Para o resultado seguinte marque $2, Para o resultado anterior marque $3, Para iniciar uma nova pesquisa marque $4"/>
+			</match>
+		</input>
+	</macro>
+
+	<macro name="directory_result_at">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="Na extensão $1"/>
+			</match>
+		</input>
+	</macro>
+	<macro name="directory_result_say_name">
+		<input pattern="^(.*)$">
+			<match>
+				<action function="speak-text" data="$1"/>
+			</match>
+		</input>
+	</macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/pt_BR.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/pt_BR.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f85c5b6d5f11c19d72a777850471e042a90cfd0a
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/pt_BR.xml
@@ -0,0 +1,12 @@
+<include>
+  <language name="pt" sound-path="$${sounds_dir}/pt/BR/karina" tts-engine="cepstral" tts-voice="marta">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/*-pt-BR.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
+        <!--voicemail_pt_BR_tts is purely implemented with tts, we have the files based one that is the default. -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds-pt-BR.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
+        <X-PRE-PROCESS cmd="include" data="dir/sounds-pt-BR.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
+      </macros>
+    </phrases>
+  </language>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/pt_PT.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/pt_PT.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2ac59e9168b53f871adb558f835b58f001bf8762
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/pt_PT.xml
@@ -0,0 +1,12 @@
+<include>
+  <language name="pt" sound-path="$${sounds_dir}/pt/PT/karina" tts-engine="cepstral" tts-voice="marta">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/*-pt-PT.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
+        <!--voicemail_pt_PT_tts is purely implemented with tts, we have the files based one that is the default. -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds-pt-PT.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
+        <X-PRE-PROCESS cmd="include" data="dir/sounds-pt-PT.xml"/>  <!-- dir/tts.xml if you want to use tts and have cepstral -->
+      </macros>
+    </phrases>
+  </language>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/sounds-pt-BR.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/sounds-pt-BR.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1ab472a71e9058363a8bc3eae925f4208185d6c1
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/sounds-pt-BR.xml
@@ -0,0 +1,404 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-abort.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^(1):(.*)$" break_on_match="true">
+      <match>
+	<action function="play-file" data="voicemail/vm-you_have.wav"/>
+	<action function="play-file" data="digits/uma.wav"/>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$2.wav"/> 
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-you_have.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-messages.wav"/>
+	<action function="play-file" data="voicemail/vm-$2_s.wav"/> 
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To listen to new messages -->
+	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To listen to saved messages -->
+	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- For advanced options -->
+	<action function="play-file" data="voicemail/vm-advanced.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To exit -->
+	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To record a greeting -->
+	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To choose greeting -->
+	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To record your name -->
+	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To change password -->
+	<action function="play-file" data="voicemail/vm-change_password.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To return to main menu -->
+	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-continue.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-return_call.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-return_call.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_message.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-greeting.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-selected.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-person.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-not_available.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-$1.wav"/> 
+	<action function="play-file" data="voicemail/vm-message_number.wav"/>
+	<action function="say" data="$2" method="pronounced" type="items"/> 
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
+  <macro name="voicemail_ack"> 
+    <input pattern="^(too-small)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-too-small.wav"/>
+      </match>
+    </input>
+    <input pattern="^(deleted)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(saved)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(emailed)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(marked-urgent)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_disk_quota_exceeded">
+    <input pattern="^(.*)$">
+        <match>
+            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+        </match>
+    </input>
+  </macro>
+
+  <macro name="valet_announce_ext">
+    <input pattern="^([^\:]+):(.*)$">
+      <match>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_full">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_empty">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/sounds-pt-PT.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/sounds-pt-PT.xml
new file mode 100644
index 0000000000000000000000000000000000000000..587d3fe5bdd4caea9cd55fb004be623e7eedb391
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/sounds-pt-PT.xml
@@ -0,0 +1,404 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-abort.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^(1):(.*)$" break_on_match="true">
+      <match>
+	<action function="play-file" data="voicemail/vm-you_have.wav"/>
+	<action function="play-file" data="digits/uma.wav"/>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$2.wav"/>
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-you_have.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-messages.wav"/>
+	<action function="play-file" data="voicemail/vm-$2_s.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To listen to new messages -->
+	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To listen to saved messages -->
+	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- For advanced options -->
+	<action function="play-file" data="voicemail/vm-advanced.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To exit -->
+	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To record a greeting -->
+	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To choose greeting -->
+	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To record your name -->
+	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To change password -->
+	<action function="play-file" data="voicemail/vm-change_password.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(100)"/>
+
+	<!-- To return to main menu -->
+	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-continue.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-return_call.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-return_call.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-to_forward.wav"/>
+	<action function="play-file" data="voicemail/vm-press.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-record_message.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-greeting.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-selected.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-person.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-not_available.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-$1.wav"/> 
+	<action function="play-file" data="voicemail/vm-message_number.wav"/>
+	<action function="say" data="$2" method="pronounced" type="items"/> 
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
+  <macro name="voicemail_ack"> 
+    <input pattern="^(too-small)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-too-small.wav"/>
+      </match>
+    </input>
+    <input pattern="^(deleted)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(saved)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(emailed)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+    <input pattern="^(marked-urgent)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-message.wav"/>
+	<action function="play-file" data="voicemail/vm-$1.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_disk_quota_exceeded">
+    <input pattern="^(.*)$">
+        <match>
+            <action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
+        </match>
+    </input>
+  </macro>
+
+  <macro name="valet_announce_ext">
+    <input pattern="^([^\:]+):(.*)$">
+      <match>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_full">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_empty">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/tts-pt-BR.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/tts-pt-BR.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4f770457e58037deb67d45d09b3d7329812bbef6
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/tts-pt-BR.xml
@@ -0,0 +1,239 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Por favor digite o seu número de usuario, e depois $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Por favor digite a sua contrasenha, e depois $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Inicio incorreto da sessão."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Bem-vindo ao seu correio de voz."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Até logo."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Muitas tentativas fracassadas."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^1:(.*)$" break_on_match="true">
+      <match>
+	<action function="speak-text" data="Você tem 1 $1 mensagem no directório ${voicemail_current_folder}."/>
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+	<action function="speak-text" data="Você tem  $1 $2 mensagens no directório ${voicemail_current_folder}."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para ouvir as mensagens novas, digite $1, Para ouvir as mensagens armazenadas, digite $2, Para opções avançadas, digite $3, Para sair, digite $4."/>
+      </match>
+    </input>
+  </macro>
+
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para gravar a sua saudação, digite $1, Para escolher a sua saudação, digite $2, Para gravar o seu nome, digite $3, Para mudar a sua senha, digite $5, Para o menu principal, digite $5."/>
+      </match>
+    </input>
+  </macro>
+
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Após o sinal grave o seu nome, digite qualquer tecla ou deixe de falar para finalizar a gravação."/>
+
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para ouvir a gravação, digite $1, Para guardar a gravação, digite $2, Para gravar novamente, digite $3."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para marcar esta mensagem como urgente, digite $1, Para continuar, digite $2."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="$1 não é um ramal válido."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="Marque o ramal para o qual pretende encaminhar esta mensagem, e depois $1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="Para gravar um anúncio, digite $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para ouvir a gravação novamente, press $1, Para guardar a gravação, press $2,  Para borrar a gravação, press $3, Para enviar a gravação para o seu email, press $4, Para devolver a ligação agora, press $5, Para encaminhar esta mensagem para outro ramal, press $6."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Escolha uma saudação entre as opções 1 e 3."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Valor inválido."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Após o sinal grave a sua saudação, digite qualquer tecla ou deixe de falar para finalizar a gravação."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Após o sinal grave a sua mensagem, digite qualquer tecla ou deixe de falar para finalizar a gravação."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Saudação $1 selecionada."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1 não está disponível."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(.*)$">
+      <match>
+	<action function="speak-text" data="$1 mensagem número $2."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_ack">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Mensagem $1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
+      </match>
+    </input>
+  </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/tts-pt-PT.xml b/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/tts-pt-PT.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c3dfc3a0669ae570bd6f8ed959ede35d0411e4ff
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/pt/vm/tts-pt-PT.xml
@@ -0,0 +1,238 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Por favor introduza o seu número de utilizador, seguido de $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Por favor introduza a sua palavra passe, seguida de $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Falha na autenticação."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Bem-vindo ao seu correio de voz."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Até breve."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="speak-text" data="Demasiadas tentativas falhadas."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+    <input pattern="^1:(.*)$" break_on_match="true">
+      <match>
+	<action function="speak-text" data="Você tem 1 $1 mensagen no directório ${voicemail_current_folder}."/>
+      </match>
+    </input>
+    <input pattern="^(\d+):(.*)$">
+      <match>
+	<action function="speak-text" data="Você tem $1 $2 mensagens no directório ${voicemail_current_folder}."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para ouvir as mensagens novas, marque $1, Para ouvir as mensagens guardadas, marque $2, Para opções avançadas, marque $3, Para sair, marque $4."/>
+      </match>
+    </input>
+  </macro>
+
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para gravar a sua saudação, marque $1, Para escolher a sua saudação, marque $2, Para gravar o seu nome, marque $3, Para alterar a sua palavra passe, marque $5, Para o menu principal, marque $5."/>
+      </match>
+    </input>
+  </macro>
+
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Após o sinal grave o seu nome, pressione qualquer tecla ou deixe de falar para parar a gravação."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para ouvir a gravação, marque $1, Para guardar a gravação, marque $2, Para gravar novamente, marque $3."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para marcar esta mensagem como urgente, marque $1, Para continuar, marque $2."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="$1 não é uma extensão válida."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="Introduza a extensão para a qual pretende encaminhar esta mensagem, seguido de $1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="speak-text" data="Para gravar um anúncio, marque $1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="speak-text" 
+		data="Para ouvir a gravação novamente, marque $1, Para guardar a gravação, marque $2,  Para apagar a gravação, marque $3, Para encaminhar a gravação para o seu email, marque $4, Para devolver a chamada agora, marque $5, Para encaminhar esta mensagem para outra extensão, marque $6."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Seleccione uma saudação entre 1 e 3."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="valor inválido."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Após o sinal grave a sua saudação, pressione qualquer tecla ou deixe de falar para parar a gravação."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Após o sinal grave a sua mensagem, pressione qualquer tecla ou deixe de falar para parar a gravação."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Saudação $1 seleccionada."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1 não está disponível."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(.*)$">
+      <match>
+	<action function="speak-text" data="$1 mensagem número $2."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="$1."/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_ack">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="Mensagem $1"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
+      </match>
+    </input>
+  </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo-ivr.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo-ivr.xml
index 8c6f3f8624617417f39c03435f67e5d6650f9f13..7de0d7fd0d8481546c3c3ebb41a0bc2483d06fcd 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo-ivr.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo-ivr.xml
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-
+<include>
 
   <macro name="demo_ivr_count">
     <input pattern="^(\d+)$">
@@ -66,7 +64,7 @@
 
   <!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
   <!-- The short version has all the options but not the initial greeting -->
-  <macro name="demo_ivr_main_menu_short" pause="250"> 
+  <macro name="demo_ivr_main_menu_short" pause="250">
     <input pattern="(.*)">
       <match>
         <!-- Menu option 1: Call FreeSWITCH conference-->
@@ -129,7 +127,7 @@
 
   <!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
   <!-- The short version has all the options but not the initial greeting -->
-  <macro name="demo_ivr_sub_menu_short"> 
+  <macro name="demo_ivr_sub_menu_short">
     <input pattern="(.*)">
       <match>
         <!-- Menu option *: Return to top menu -->
@@ -142,4 +140,15 @@
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo.xml
index 7e450fbc83cf91d26c9c1ab5da90fc4b59aab87d..10c9dbc55212646be0047a9fe166230f369017e1 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/demo/demo.xml
@@ -1,100 +1,109 @@
-<?xml version="1.0" encoding="utf-8"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-
-    <macro name="saymoney">
-     <input pattern="(.*)">
-        <match>
-	  <action function="say" data="$1" method="pronounced" type="currency"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="msgcount">
-      <input pattern="(.*)">
-	<match>
-	  <action function="execute" data="sleep(1000)"/>
-	  <action function="play-file" data="voicemail/vm-you_have.wav"/>
-	  <action function="say" data="$1" method="pronounced" type="items"/>
-	  <action function="play-file" data="voicemail/vm-messages.wav"/>
-	  <!-- or -->
-	  <!--<action function="speak-text" data="you have $1 messages"/>-->
-	</match>
-      </input>
-    </macro>
-    <macro name="saydate">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="saydatetime">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="current_date_time"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="timespec">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="time_measurement"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="timespec2">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="CURRENT_DATE_TIME"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="ip-addr-interated">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="iterated" type="ip_address"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="ip-addr">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="ip_address"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="spell">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="spell-phonetic">
-      <input pattern="(.*)">
-	<match>
-	  <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
-	</match>
-      </input>
-    </macro>
-    <macro name="tts-timeleft">
-      <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
-      <!-- If the function "break" is encountered all parsing will cease -->
-      <input pattern="(\d+):(\d+)">
-	<match>
-	  <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
-	  <action function="break"/>
-	</match>
-	<nomatch>
-	  <action function="speak-text" data="That input was invalid."/>
-	</nomatch>
-      </input>
-      <input pattern="(\d+) min (\d+) sec">
-	<match>
-	  <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
-	</match>
-	<nomatch>
-	  <action function="speak-text" data="That input was invalid."/>
-	</nomatch>
-      </input>
-    </macro>
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+  <macro name="saymoney">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="currency"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="msgcount">
+    <input pattern="(.*)">
+      <match>
+        <action function="execute" data="sleep(1000)"/>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+        <!-- or -->
+        <!--<action function="speak-text" data="you have $1 messages"/>-->
+      </match>
+    </input>
+  </macro>
+  <macro name="saydate">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="saydatetime">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="timespec">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="time_measurement"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="timespec2">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="CURRENT_DATE_TIME"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="ip-addr-interated">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="iterated" type="ip_address"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="ip-addr">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="ip_address"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="spell">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="spell-phonetic">
+    <input pattern="(.*)">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="tts-timeleft">
+    <!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
+    <!-- If the function "break" is encountered all parsing will cease -->
+    <input pattern="(\d+):(\d+)">
+      <match>
+        <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
+        <action function="break"/>
+      </match>
+      <nomatch>
+        <action function="speak-text" data="That input was invalid."/>
+      </nomatch>
+    </input>
+    <input pattern="(\d+) min (\d+) sec">
+      <match>
+        <action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
+      </match>
+      <nomatch>
+        <action function="speak-text" data="That input was invalid."/>
+      </nomatch>
+    </input>
+  </macro>
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/sounds.xml
index 02d6b3671f98d61b9dd21acb8ea0b7d764ed039b..a0dcb2c0e9a4523f44e730f41d39abac99823bda 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/sounds.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/sounds.xml
@@ -1,121 +1,130 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
-	<macro name="directory_intro">
-		<input pattern="^(last_name)" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-enter-person.wav"/>
-				<action function="play-file" data="directory/dir-last_name.wav"/>
-			</match>
-		</input>
-		<input pattern="^(first_name)" break_on_match="false">
-			<match>
-                <action function="play-file" data="directory/dir-enter-person.wav"/>
-                <action function="play-file" data="directory/dir-first_name.wav"/>
-			</match>
-		</input>
-		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-to_search_by.wav"/>
-				<action function="play-file" data="directory/dir-first_name.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="play-file" data="directory/dir-to_search_by.wav"/>
-				<action function="play-file" data="directory/dir-last_name.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
+<include>
 
-	<macro name="directory_min_search_digits">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-specify_mininum_first.wav"/>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-				<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_intro">
+    <input pattern="^(last_name)" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-enter-person.wav"/>
+        <action function="play-file" data="directory/dir-last_name.wav"/>
+      </match>
+    </input>
+    <input pattern="^(first_name)" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-enter-person.wav"/>
+        <action function="play-file" data="directory/dir-first_name.wav"/>
+      </match>
+    </input>
+    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-to_search_by.wav"/>
+        <action function="play-file" data="directory/dir-first_name.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="play-file" data="directory/dir-to_search_by.wav"/>
+        <action function="play-file" data="directory/dir-last_name.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count">
-		<input pattern="^0$" break_on_match="true">
-			<match>
-				<action function="play-file" data="directory/dir-no_match_entry.wav"/>
-			</match>
-		</input>
-		<input pattern="^(.*)$">
-			<match>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-				<action function="play-file" data="directory/dir-result_match.wav"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_min_search_digits">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-specify_mininum_first.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count_too_large">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-to_many_result.wav"/>
-			</match>
-		</input>
+  <macro name="directory_result_count">
+    <input pattern="^0$" break_on_match="true">
+      <match>
+        <action function="play-file" data="directory/dir-no_match_entry.wav"/>
+      </match>
+    </input>
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="directory/dir-result_match.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_count_too_large">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-to_many_result.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_last">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-no_more_result.wav"/>
-			</match>
-		</input>
+  <macro name="directory_result_last">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-no_more_result.wav"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_item">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-result_number.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_item">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-result_number.wav"/>
-				<action function="say" data="$1" method="pronounced" type="items"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_at">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="directory/dir-at_extension.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_at">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="play-file" data="directory/dir-at_extension.wav"/>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_menu">
+    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+      <match>
+        <action function="play-file" data="directory/dir-to_select_entry.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-for_next.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-for_prev.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="directory/dir-to_make_new_search.wav"/>
+        <action function="play-file" data="directory/dir-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_menu">
-		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
-			<match>
-				<action function="play-file" data="directory/dir-to_select_entry.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-for_next.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-for_prev.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-				<action function="play-file" data="directory/dir-to_make_new_search.wav"/>
-				<action function="play-file" data="directory/dir-press.wav"/>
-				<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+  <macro name="directory_result_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
 
-			</match>
-		</input>
-	</macro>
-
-	<macro name="directory_result_say_name">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-			</match>
-		</input>
-	</macro>
-
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/tts.xml
index 67ae5ab2656d1c8d7e25ef6c81a4eae3585984a3..f0aafa267d815f859779c97575d22fa93e7261fb 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/tts.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/dir/tts.xml
@@ -1,96 +1,105 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
 
-	<macro name="directory_intro">
-		<input pattern="^(last_name)" break_on_match="false">
-			<match>
-				<action function="speak-text" data="Please enter the first few digit of the person last name"/>
-			</match>
-		</input>
-		<input pattern="^(first_name)" break_on_match="false">
-			<match>
-				<action function="speak-text" data="Please enter the first few digit of the person first name"/>
-			</match>
-		</input>
-		<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="speak-text" data="to search by first name, press $2"/>
-			</match>
-		</input>
-		<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
-			<match>
-				<action function="speak-text" data="to search by last name, press $2"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_intro">
+    <input pattern="^(last_name)" break_on_match="false">
+      <match>
+        <action function="speak-text" data="Please enter the first few digit of the person last name"/>
+      </match>
+    </input>
+    <input pattern="^(first_name)" break_on_match="false">
+      <match>
+        <action function="speak-text" data="Please enter the first few digit of the person first name"/>
+      </match>
+    </input>
+    <input pattern="^(last_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="speak-text" data="to search by first name, press $2"/>
+      </match>
+    </input>
+    <input pattern="^(first_name):([0-9#*])$" break_on_match="false">
+      <match>
+        <action function="speak-text" data="to search by last name, press $2"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_min_search_digits">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_min_search_digits">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count">
-		<input pattern="^0$" break_on_match="true">
-			<match>
-				<action function="speak-text" data="Your search match no user on this system, try again."/>
-			</match>
-		</input>
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="$1 result match your search"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_count">
+    <input pattern="^0$" break_on_match="true">
+      <match>
+        <action function="speak-text" data="Your search match no user on this system, try again."/>
+      </match>
+    </input>
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="$1 result match your search"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_count_too_large">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="Your search returned too many result, please try again"/>
-			</match>
-		</input>
+  <macro name="directory_result_count_too_large">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="Your search returned too many result, please try again"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_last">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="No more result"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_last">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="No more result"/>
-			</match>
-		</input>
+  <macro name="directory_result_item">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="Result number $1"/>
+      </match>
+    </input>
+  </macro>
 
-	</macro>
+  <macro name="directory_result_menu">
+    <input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
+      <match>
+        <action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_item">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="Result number $1"/>
-			</match>
-		</input>
-	</macro>
+  <macro name="directory_result_at">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="at extension $1"/>
+      </match>
+    </input>
+  </macro>
+  <macro name="directory_result_say_name">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="speak-text" data="$1"/>
+      </match>
+    </input>
+  </macro>
 
-	<macro name="directory_result_menu">
-		<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
-			<match>
-				<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
-			</match>
-		</input>
-	</macro>
-
-	<macro name="directory_result_at">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="at extension $1"/>
-			</match>
-		</input>
-	</macro>
-	<macro name="directory_result_say_name">
-		<input pattern="^(.*)$">
-			<match>
-				<action function="speak-text" data="$1"/>
-			</match>
-		</input>
-	</macro>
-
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/ru.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/ru.xml
index 25d63b611012964106a09cf666eb6f6589cbea68..5f52e768a4bc4b73988426b6c695947c0476559c 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/ru/ru.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/ru.xml
@@ -1,9 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--тестовые файлы Вы звуковые файлы можно взять тут svn co http://svn.freeswitch.ru/bbv/mod_say_ru/ru/  -->
 <include>
-  <language name="ru" sound-path="$${sounds_dir}/ru/RU/elena" tts-engine="cepstral" tts-voice="elena">
-    <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
-    <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
-    <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
+  <language name="ru" sound-prefix="$${sounds_dir}/ru/RU/elena" tts-engine="cepstral" tts-voice="elena">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
+        <!--voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>  <!-- vm/tts.xml if you want to use tts and have cepstral -->
+      </macros>
+    </phrases>
   </language>
 </include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/sounds.xml
index ffd9ec5d8c751ebbe3dfda67a5b530c07c7b8ceb..9b14458ba4fb3094d0d0b7e2168ff14a8c161639 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/sounds.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/sounds.xml
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="utf-8"?>
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-enter_id.wav"/>
-<!--	<action function="say" data="$1" method="pronounced" type="name_spelled"/>-->
+        <action function="play-file" data="voicemail/vm-enter_id.wav"/>
+        <!--<action function="say" data="$1" method="pronounced" type="name_spelled"/>-->
       </match>
     </input>
   </macro>
@@ -12,8 +12,8 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
-<!-- лишнее и так долго	<action function="say" data="$1" method="pronounced" type="name_spelled"/>-->
+        <action function="play-file" data="voicemail/vm-enter_pass.wav"/>
+        <!-- лишнее и так долго <action function="say" data="$1" method="pronounced" type="name_spelled"/>-->
       </match>
     </input>
   </macro>
@@ -21,7 +21,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
+        <action function="play-file" data="voicemail/vm-fail_auth.wav"/>
       </match>
     </input>
   </macro>
@@ -29,7 +29,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-hello.wav"/>
+        <action function="play-file" data="voicemail/vm-hello.wav"/>
       </match>
     </input>
   </macro>
@@ -37,7 +37,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-goodbye.wav"/>
+        <action function="play-file" data="voicemail/vm-goodbye.wav"/>
       </match>
     </input>
   </macro>
@@ -45,7 +45,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-	<action function="play-file" data="voicemail/vm-abort.wav"/>
+        <action function="play-file" data="voicemail/vm-abort.wav"/>
       </match>
     </input>
   </macro>
@@ -53,30 +53,30 @@
   <macro name="voicemail_message_count">
     <input pattern="^(\d+[0,2-9]1|[2-9]1|1):(.*)$"> <!--1, и всё что больше 20-ти 21,31,41 ..   -->
       <match>
-	<action function="play-file" data="voicemail/vm-you_have.wav"/>
-	<action function="say" data="$1" method="pronounced" type="MESSAGES"/>
-	<action function="play-file" data="voicemail/vm-$2.wav"/> 
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-<!--	<action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
+        <action function="play-file" data="voicemail/vm-$2.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <!--<action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
       </match>
     </input>
-    <!-- от 10 до 19 и ноль   --> <!-- от 5до 9 и больше 20-ти 25-29   -->
+    <!-- от 10 до 19 и ноль --> <!-- от 5до 9 и больше 20-ти 25-29 -->
     <input pattern="^(\d+1[0-9]|1[0-9]|0|\d+[0-9][0,5-9]|[2-9][0,5-9]|[0,5-9]):(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-you_have.wav"/>
-	<action function="say" data="$1" method="pronounced" type="MESSAGES"/>
-	<action function="play-file" data="voicemail/vm-$2x.wav"/> 
-	<action function="play-file" data="voicemail/vm-messagex.wav"/>
-<!--	<action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
+        <action function="play-file" data="voicemail/vm-$2x.wav"/>
+        <action function="play-file" data="voicemail/vm-messagex.wav"/>
+        <!--<action function="play-file" data="voicemail/vm-in_folder.wav"/>-->
       </match>
     </input>
-    <input pattern="^(\d+[0,2-9][2-4]|[2-9][2-4]|[2-4]):(.*)$"> 
+    <input pattern="^(\d+[0,2-9][2-4]|[2-9][2-4]|[2-4]):(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-you_have.wav"/>
-	<action function="say" data="$1" method="pronounced" type="MESSAGES"/>
-	<action function="play-file" data="voicemail/vm-$2x.wav"/> 
-	<action function="play-file" data="voicemail/vm-messages.wav"/>
-	<action function="play-file" data="voicemail/vm-in_folder.wav"/>
+        <action function="play-file" data="voicemail/vm-you_have.wav"/>
+        <action function="say" data="$1" method="pronounced" type="MESSAGES"/>
+        <action function="play-file" data="voicemail/vm-$2x.wav"/>
+        <action function="play-file" data="voicemail/vm-messages.wav"/>
+        <action function="play-file" data="voicemail/vm-in_folder.wav"/>
       </match>
     </input>
   </macro>
@@ -84,50 +84,48 @@
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-listen_new.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-advanced.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
-	<action function="play-file" data="voicemail/vm-to_exit.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-listen_new.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-listen_saved.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-advanced.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+        <action function="play-file" data="voicemail/vm-to_exit.wav"/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-record_name2.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-change_password.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-main_menu.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-record_name2.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$4" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-change_password.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$5" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-main_menu.wav"/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-record_name1.wav"/>
+        <action function="play-file" data="voicemail/vm-record_name1.wav"/>
       </match>
     </input>
   </macro>
@@ -135,15 +133,15 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-save_recording.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-rerecord.wav"/>
+        <action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-save_recording.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-rerecord.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$3" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -151,12 +149,12 @@
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-continue.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-continue.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -164,12 +162,12 @@
   <macro name="voicemail_forward_prepend">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
-	<action function="play-file" data="voicemail/vm-press.wav"/>
-	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-send_message_now.wav"/>
+        <action function="play-file" data="voicemail/vm-press.wav"/>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -177,9 +175,9 @@
   <macro name="voicemail_forward_message_enter_extension">
     <input pattern="^([0-9#*])$">
       <match>
-	<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
-	<action function="play-file" data="voicemail/vm-followed_by.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
+        <action function="play-file" data="voicemail/vm-followed_by.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -187,7 +185,7 @@
   <macro name="voicemail_invalid_extension">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
+        <action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
       </match>
     </input>
   </macro>
@@ -239,7 +237,7 @@
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
+        <action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
       </match>
     </input>
   </macro>
@@ -247,7 +245,7 @@
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
+        <action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
       </match>
     </input>
   </macro>
@@ -255,7 +253,7 @@
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
+        <action function="play-file" data="voicemail/vm-record_greeting.wav"/>
       </match>
     </input>
   </macro>
@@ -263,7 +261,7 @@
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-record_message.wav"/>
+        <action function="play-file" data="voicemail/vm-record_message.wav"/>
       </match>
     </input>
   </macro>
@@ -271,9 +269,9 @@
   <macro name="voicemail_greeting_selected">
     <input pattern="^(\d+)$">
       <match>
-	<action function="play-file" data="voicemail/vm-greeting.wav"/>
-	<action function="say" data="$1" method="pronounced" type="items"/>
-	<action function="play-file" data="voicemail/vm-selected.wav"/>
+        <action function="play-file" data="voicemail/vm-greeting.wav"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="play-file" data="voicemail/vm-selected.wav"/>
       </match>
     </input>
   </macro>
@@ -281,9 +279,9 @@
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="play-file" data="voicemail/vm-person.wav"/>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
-	<action function="play-file" data="voicemail/vm-not_available.wav"/>
+        <action function="play-file" data="voicemail/vm-person.wav"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="play-file" data="voicemail/vm-not_available.wav"/>
       </match>
     </input>
   </macro>
@@ -291,7 +289,7 @@
   <macro name="voicemail_say_number">
     <input pattern="^(\d+)$">
       <match>
-	<action function="say" data="$1" method="pronounced" type="items"/>
+        <action function="say" data="$1" method="pronounced" type="items"/>
       </match>
     </input>
   </macro>
@@ -299,9 +297,9 @@
   <macro name="voicemail_say_message_number">
     <input pattern="^([a-z]+):(\d+)$">
       <match>
-	<action function="play-file" data="voicemail/vm-$1.wav"/> 
-	<action function="play-file" data="voicemail/vm-message_number.wav"/>
-	<action function="say" data="$2" method="pronounced" type="items"/> 
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message_number.wav"/>
+        <action function="say" data="$2" method="pronounced" type="items"/>
       </match>
     </input>
   </macro>
@@ -309,7 +307,7 @@
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
@@ -317,39 +315,39 @@
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+        <action function="say" data="$1" method="pronounced" type="name_spelled"/>
       </match>
     </input>
   </macro>
   <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
-  <macro name="voicemail_ack"> 
+  <macro name="voicemail_ack">
     <input pattern="^(too-small)$">
       <match>
-	<action function="play-file" data="voicemail/vm-too-small.wav"/>
+        <action function="play-file" data="voicemail/vm-too-small.wav"/>
       </match>
     </input>
     <input pattern="^(deleted)$">
       <match>
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-	<action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
       </match>
     </input>
     <input pattern="^(saved)$">
       <match>
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-	<action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
       </match>
     </input>
     <input pattern="^(emailed)$">
       <match>
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-	<action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
       </match>
     </input>
     <input pattern="^(marked-urgent)$">
       <match>
-	<action function="play-file" data="voicemail/vm-message.wav"/>
-	<action function="play-file" data="voicemail/vm-$1.wav"/>
+        <action function="play-file" data="voicemail/vm-message.wav"/>
+        <action function="play-file" data="voicemail/vm-$1.wav"/>
       </match>
     </input>
   </macro>
@@ -357,9 +355,20 @@
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
+        <action function="say" data="$1" method="pronounced" type="current_date_time"/>
       </match>
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/tts.xml b/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/tts.xml
index 1fc877d50ea95b040d2b0b0452b4de1cf33f94f3..2de4b3781ea900889c0b7b7ef05693538a1eb017 100644
--- a/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/tts.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/ru/vm/tts.xml
@@ -1,8 +1,9 @@
-<include><!--This line will be ignored it's here to validate the xml and is optional -->
+<include>
+
   <macro name="voicemail_enter_id">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="please enter your i d, followed by $1."/>
+        <action function="speak-text" data="please enter your i d, followed by $1."/>
       </match>
     </input>
   </macro>
@@ -10,7 +11,7 @@
   <macro name="voicemail_enter_pass">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="please enter your password, followed by $1."/>
+        <action function="speak-text" data="please enter your password, followed by $1."/>
       </match>
     </input>
   </macro>
@@ -18,7 +19,7 @@
   <macro name="voicemail_fail_auth">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="login incorrect."/>
+        <action function="speak-text" data="login incorrect."/>
       </match>
     </input>
   </macro>
@@ -26,7 +27,7 @@
   <macro name="voicemail_hello">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="welcome to your voicemail."/>
+        <action function="speak-text" data="welcome to your voicemail."/>
       </match>
     </input>
   </macro>
@@ -34,7 +35,7 @@
   <macro name="voicemail_goodbye">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="goodbye."/>
+        <action function="speak-text" data="goodbye."/>
       </match>
     </input>
   </macro>
@@ -42,7 +43,7 @@
   <macro name="voicemail_abort">
     <input pattern="(.*)">
       <match>
-	<action function="speak-text" data="too many failed attempts."/>
+        <action function="speak-text" data="too many failed attempts."/>
       </match>
     </input>
   </macro>
@@ -50,12 +51,12 @@
   <macro name="voicemail_message_count">
     <input pattern="^1:(.*)$" break_on_match="true">
       <match>
-	<action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
+        <action function="speak-text" data="you have 1 $1 message in folder ${voicemail_current_folder}."/>
       </match>
     </input>
     <input pattern="^(\d+):(.*)$">
       <match>
-	<action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
+        <action function="speak-text" data="you have $1 $2 messages in folder ${voicemail_current_folder}."/>
       </match>
     </input>
   </macro>
@@ -63,27 +64,25 @@
   <macro name="voicemail_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
+        <action function="speak-text"
+                data="To listen to new messages, press $1, To listen to saved messages, press $2, For advanced options, press $3, to exit, press $4."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_config_menu">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
+        <action function="speak-text"
+                data="To record a greeting, press $1, To choose a greeting, press $2, To record your name, press $3, to change your password, press $5, to return to the main menu, press $5."/>
       </match>
     </input>
   </macro>
 
-
   <macro name="voicemail_record_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="at the tone, please record your name, press any key or stop talking to end the recording."/>
 
       </match>
     </input>
@@ -92,8 +91,8 @@
   <macro name="voicemail_record_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
+        <action function="speak-text"
+                data="To listen to the recording, press $1, To save the recording, press $2, To re record, press $3."/>
       </match>
     </input>
   </macro>
@@ -101,8 +100,8 @@
   <macro name="voicemail_record_urgent_check">
     <input pattern="^([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To mark this message urgent, press $1, To continue, press $2."/>
+        <action function="speak-text"
+                data="To mark this message urgent, press $1, To continue, press $2."/>
       </match>
     </input>
   </macro>
@@ -110,7 +109,7 @@
   <macro name="voicemail_invalid_extension">
     <input pattern="^([0-9#*])$">
       <match>
-	<action function="speak-text" data="$1 is not a valid extension."/>
+        <action function="speak-text" data="$1 is not a valid extension."/>
       </match>
     </input>
   </macro>
@@ -118,7 +117,7 @@
   <macro name="voicemail_forward_message_enter_extension">
     <input pattern="^([0-9#*])$">
       <match>
-	<action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
+        <action function="speak-text" data="enter the extension you wish to forward to, then press $1"/>
       </match>
     </input>
   </macro>
@@ -126,7 +125,7 @@
   <macro name="voicemail_forward_prepend">
     <input pattern="^([0-9#*])$">
       <match>
-	<action function="speak-text" data="To record an announcement, press $1."/>
+        <action function="speak-text" data="To record an announcement, press $1."/>
       </match>
     </input>
   </macro>
@@ -134,8 +133,8 @@
   <macro name="voicemail_listen_file_check">
     <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
       <match>
-	<action function="speak-text" 
-		data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
+        <action function="speak-text"
+                data="To listen to the recording again, press $1, To save the recording, press $2,  To delete the recording, press $3, to forward the recording to your email, press $4, to call the caller now, press $5, To forward this message to another extension, press $6."/>
       </match>
     </input>
   </macro>
@@ -143,7 +142,7 @@
   <macro name="voicemail_choose_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="choose a greeting between 1 and 3."/>
+        <action function="speak-text" data="choose a greeting between 1 and 3."/>
       </match>
     </input>
   </macro>
@@ -151,7 +150,7 @@
   <macro name="voicemail_choose_greeting_fail">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="invalid value."/>
+        <action function="speak-text" data="invalid value."/>
       </match>
     </input>
   </macro>
@@ -159,7 +158,7 @@
   <macro name="voicemail_record_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="record your greeting at the tone, press any key or stop talking to end the recording."/>
       </match>
     </input>
   </macro>
@@ -167,7 +166,7 @@
   <macro name="voicemail_record_message">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
+        <action function="speak-text" data="record your message at the tone, press any key or stop talking to end the recording."/>
       </match>
     </input>
   </macro>
@@ -175,7 +174,7 @@
   <macro name="voicemail_greeting_selected">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="greeting $1 selected."/>
+        <action function="speak-text" data="greeting $1 selected."/>
       </match>
     </input>
   </macro>
@@ -183,7 +182,7 @@
   <macro name="voicemail_play_greeting">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1 is not available."/>
+        <action function="speak-text" data="$1 is not available."/>
       </match>
     </input>
   </macro>
@@ -191,7 +190,7 @@
   <macro name="voicemail_say_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1"/>
+        <action function="speak-text" data="$1"/>
       </match>
     </input>
   </macro>
@@ -199,7 +198,7 @@
   <macro name="voicemail_say_message_number">
     <input pattern="^([a-z]+):(.*)$">
       <match>
-	<action function="speak-text" data="$1 message number $2."/>
+        <action function="speak-text" data="$1 message number $2."/>
       </match>
     </input>
   </macro>
@@ -207,7 +206,7 @@
   <macro name="voicemail_say_phone_number">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
@@ -215,7 +214,7 @@
   <macro name="voicemail_say_name">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="$1."/>
+        <action function="speak-text" data="$1."/>
       </match>
     </input>
   </macro>
@@ -223,7 +222,7 @@
   <macro name="voicemail_ack">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="message $1"/>
+        <action function="speak-text" data="message $1"/>
       </match>
     </input>
   </macro>
@@ -231,9 +230,20 @@
   <macro name="voicemail_say_date">
     <input pattern="^(.*)$">
       <match>
-	<action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
+        <action function="speak-text" data="${strftime($1|%A, %B %d %Y, %I:%M %p)}"/>
       </match>
     </input>
   </macro>
 
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+</include>
+<!--
+For Emacs:
+Local Variables:
+mode:xml
+indent-tabs-mode:nil
+tab-width:2
+c-basic-offset:2
+End:
+For VIM:
+vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
+-->
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/sv/sv.xml b/bbb-voice-conference/config/freeswitch/conf/lang/sv/sv.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8482b8f475c56762535739944020d7353a36d8c2
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/sv/sv.xml
@@ -0,0 +1,11 @@
+<include>
+  <language name="sv" sound-path="$${sounds_dir}/sv/se/jakob" tts-engine="" tts-voice="">
+    <phrases>
+      <macros>
+        <X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
+        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
+        <!--voicemail is purely implemented with files based one that is the default. -->
+      </macros>
+    </phrases>
+  </language>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/lang/sv/vm/sounds.xml b/bbb-voice-conference/config/freeswitch/conf/lang/sv/vm/sounds.xml
new file mode 100644
index 0000000000000000000000000000000000000000..aaee3c0b6b34b1fd0ee5c6267575b9e473eecbd5
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/lang/sv/vm/sounds.xml
@@ -0,0 +1,504 @@
+<include><!--This line will be ignored it's here to validate the xml and is optional -->
+  <macro name="voicemail_enter_id">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-knappa_in_din_anknytning_foljt_av.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_enter_pass">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-knappa_in_ditt_pinnummer_foljt_av.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_fail_auth">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-felaktig_inloggning.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_hello">
+    <input pattern="(.*)">
+      <match>
+	<!--<action function="play-file" data="voicemail/vm-hej.wav"/> -->
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_goodbye">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-hejda.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_abort">
+    <input pattern="(.*)">
+      <match>
+	<action function="play-file" data="voicemail/vm-for_manga_felaktiga_forsok.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_message_count">
+	<!-- 
+	Pattern matching needed:
+		0:*
+		1:new
+		*:new
+			:saved
+			:urgent
+			:urgent-new
+			:urgent-saved
+	-->
+	<input pattern="^(0):(.*)$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="play-file" data="voicemail/vm-inga.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
+		</match>
+	</input>
+	<input pattern="^(1):new$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
+			<action function="play-file" data="voicemail/vm-nytt.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
+		</match>
+	</input>
+	<input pattern="^(\d+):new$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items"/>
+			<action function="play-file" data="voicemail/vm-nya.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
+		</match>
+	</input>
+	<input pattern="^(1):saved$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
+			<action function="play-file" data="voicemail/vm-sparat.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
+		</match>
+	</input>
+	<input pattern="^(\d+):saved$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items"/>
+			<action function="play-file" data="voicemail/vm-sparade.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
+		</match>
+	</input>
+	<input pattern="^(1):urgent$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
+			<action function="play-file" data="voicemail/vm-viktigt.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
+		</match>
+	</input>
+	<input pattern="^(\d+):urgent$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items"/>
+			<action function="play-file" data="voicemail/vm-viktiga.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
+		</match>
+	</input>
+	<input pattern="^(1):urgent-new$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
+			<action function="play-file" data="voicemail/vm-viktigt_nytt.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
+		</match>
+	</input>
+	<input pattern="^(\d+):urgent-new$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items"/>
+			<action function="play-file" data="voicemail/vm-viktiga_nya.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
+		</match>
+	</input>
+	<input pattern="^(1):urgent-saved$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
+			<action function="play-file" data="voicemail/vm-viktigt_sparat.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelande..wav"/>
+		</match>
+	</input>
+	<input pattern="^(\d+):urgent-saved$" break_on_match="true">
+		<match>
+			<action function="play-file" data="voicemail/vm-du_har.wav"/>
+			<action function="say" data="$1" method="pronounced" type="items"/>
+			<action function="play-file" data="voicemail/vm-viktiga_sparade.wav"/> 
+			<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
+		</match>
+	</input>
+  </macro>
+
+  <macro name="voicemail_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To listen to new messages -->
+	<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_nya_meddelanden.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+
+	<!-- To listen to saved messages -->
+	<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_sparade_meddelanden.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+
+	<!-- For advanced options -->
+	<action function="play-file" data="voicemail/vm-for_avancerade_installningar.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+
+	<!-- To exit -->
+	<action function="play-file" data="voicemail/vm-for_att_avsluta.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_config_menu">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<!-- To record a greeting -->
+	<action function="play-file" data="voicemail/vm-for_att_spela_in_en_halsning.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+
+	<!-- To choose greeting -->
+	<action function="play-file" data="voicemail/vm-for_att_valja_utgaende_meddelande.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+
+	<!-- To record your name -->
+	<action function="play-file" data="voicemail/vm-for_att_spela_in_ditt_namn.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+
+	<!-- To change password -->
+	<action function="play-file" data="voicemail/vm-for_att_byta_losenord.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+
+	<!-- To return to main menu -->
+	<action function="play-file" data="voicemail/vm-for_att_lyssna_till_huvudmenyn.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-efter_tonen_kan_du_spela_in_ditt_namn.wav"/>
+	<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_spara_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_spela_in_igen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_urgent_check">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-for_att_markera_detta_meddelande_viktigt.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_fortsatta.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_prepend">
+    <input pattern="^([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-for_att_infoga_en_introduktion_till_detta_meddelande.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_skicka_detta_meddelande_nu.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_forward_message_enter_extension">
+    <input pattern="^([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-knappa_in_anknytningen_att_vidarebefordra_detta_meddelande_till.wav"/>
+	<action function="play-file" data="voicemail/vm-foljt_av.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_invalid_extension">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-det_var_en_felaktig_anknytning.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_listen_file_check">
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_spara_meddelandet.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_radera_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande_till_din_epost.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$4" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_ringa_tillbaka_nu.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+    <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+      <match>
+	<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_spara_meddelandet.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$2" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_radera_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$3" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_ringa_tillbaka_nu.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$5" method="pronounced" type="name_spelled"/>
+	<action function="execute" data="sleep(200)"/>
+	<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck.wav"/>
+	<action function="say" data="$6" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-valj_en_halsning_mellan_1_och_9.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_choose_greeting_fail">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-det_var_ett_felaktigt_val.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-spela_in_din_halsning_efter_tonen.wav"/>
+	<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_record_message">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-spela_in_ditt_meddelande_efter_tonen.wav"/>
+	<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
+	<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_greeting_selected">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-meddelande_nummer.wav"/>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+	<action function="play-file" data="voicemail/vm-markerad.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_play_greeting">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-personen_med_anknytning.wav"/>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+	<action function="play-file" data="voicemail/vm-not_ar_inte_tillganglig.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_number">
+    <input pattern="^(\d+)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="items"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_message_number">
+    <input pattern="^([a-z]+):(\d+)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-$1.wav"/> 
+	<action function="play-file" data="voicemail/vm-meddelande_nummer.wav"/>
+	<action function="say" data="$2" method="pronounced" type="items"/> 
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_phone_number">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_name">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+  <!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
+  <macro name="voicemail_ack"> 
+    <input pattern="^(too-small)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-din_inspelning_ar_kortare_an_tillaten_langd_vanligen_forsok_igen.wav"/>
+      </match>
+    </input>
+    <input pattern="^(deleted)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-meddelande.wav"/>
+	<action function="play-file" data="voicemail/vm-raderat.wav"/>
+      </match>
+    </input>
+    <input pattern="^(saved)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-meddelande.wav"/>
+	<action function="play-file" data="voicemail/vm-sparat.wav"/>
+      </match>
+    </input>
+    <input pattern="^(emailed)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-meddelande.wav"/>
+	<action function="play-file" data="voicemail/vm-skickat_pa_epost.wav"/>
+      </match>
+    </input>
+    <input pattern="^(marked-urgent)$">
+      <match>
+	<action function="play-file" data="voicemail/vm-meddelande.wav"/>
+	<action function="play-file" data="voicemail/vm-markerat_som_viktigt.wav"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_say_date">
+    <input pattern="^(.*)$">
+      <match>
+	<action function="say" data="$1" method="pronounced" type="current_date_time"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="voicemail_disk_quota_exceeded">
+    <input pattern="^(.*)$">
+        <match>
+            <action function="play-file" data="voicemail/vm-den_rostbrevladan_ar_full_vanligen_forsok_ringa_senare.wav"/>
+        </match>
+    </input>
+  </macro>
+
+  <macro name="valet_announce_ext">
+    <input pattern="^([^\:]+):(.*)$">
+      <match>
+        <action function="say" data="$2" method="pronounced" type="name_spelled"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_full">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+
+  <macro name="valet_lot_empty">
+    <input pattern="^(.*)$">
+      <match>
+        <action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
+      </match>
+    </input>
+  </macro>
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
diff --git a/bbb-voice-conference/config/freeswitch/conf/mime.types b/bbb-voice-conference/config/freeswitch/conf/mime.types
index 34d5fc905533ed3f22b1416d18532475ff8ffc0f..542ebf9dd77f9beeacd9c3321fe74731c3ca8048 100644
--- a/bbb-voice-conference/config/freeswitch/conf/mime.types
+++ b/bbb-voice-conference/config/freeswitch/conf/mime.types
@@ -1,204 +1,344 @@
-# 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
+#
+# MIME type configs overriden by the FreeSWITCH project.
+#
+audio/mpeg					mp3 mpga mp2 mp2a m2a m3a
+image/jpeg					jpg jpeg jpe
+#
+# Additional MIME types added by the FreeSWITCH project.  Any duplicate file extensions listed here will only be
+# used to map from MIME -> extension and not extension -> MIME
+audio/x-mpeg					mp3
+audio/mp3					mp3
+audio/x-mp3					mp3
+audio/mpeg3					mp3
+audio/x-mpeg3					mp3
+audio/mpg					mp3
+audio/x-mpegaudio				mp3
+audio/x-wave					wav
+audio/wave					wav
+audio/wav					wav
+#
+# The section below was taken from Apache httpd Project at
+# <https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types>
+#
+# This file maps Internet media types to unique file extension(s).
+# Although created for httpd, this file is used by many software systems
+# and has been placed in the public domain for unlimited redisribution.
+#
+# The table below contains both registered and (common) unregistered types.
+# A type that has no unique extension can be ignored -- they are listed
+# here to guide configurations toward known types and to make it easier to
+# identify "new" types.  File extensions are also commonly used to indicate
+# content languages and encodings, so choose them carefully.
+#
+# Internet media types should be registered as described in RFC 4288.
+# The registry is at <http://www.iana.org/assignments/media-types/>.
+#
+# MIME type (lowercased)			Extensions
+# ============================================	==========
+# application/1d-interleaved-parityfec
+# application/3gpp-ims+xml
+# application/activemessage
 application/andrew-inset			ez
-application/applefile
+# application/applefile
+application/applixware				aw
 application/atom+xml				atom
 application/atomcat+xml				atomcat
-application/atomicmail
+# application/atomicmail
 application/atomsvc+xml				atomsvc
-application/auth-policy+xml
-application/batch-smtp
-application/beep+xml
-application/cals-1840
+# application/auth-policy+xml
+# application/batch-smtp
+# application/beep+xml
+# application/calendar+xml
+# application/cals-1840
+# application/ccmp+xml
 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/cdmi-capability			cdmia
+application/cdmi-container			cdmic
+application/cdmi-domain				cdmid
+application/cdmi-object				cdmio
+application/cdmi-queue				cdmiq
+# application/cea-2018+xml
+# application/cellml+xml
+# application/cfw
+# application/cnrp+xml
+# application/commonground
+# application/conference-info+xml
+# application/cpl+xml
+# application/csta+xml
+# application/cstadata+xml
+application/cu-seeme				cu
+# application/cybercash
 application/davmount+xml			davmount
-application/dca-rft
-application/dec-dx
-application/dialog-info+xml
-application/dicom
-application/dns
-application/dvcs
+# application/dca-rft
+# application/dec-dx
+# application/dialog-info+xml
+# application/dicom
+# application/dns
+application/docbook+xml				dbk
+# application/dskpp+xml
+application/dssc+der				dssc
+application/dssc+xml				xdssc
+# 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/edi-consent
+# application/edi-x12
+# application/edifact
+application/emma+xml				emma
+# application/epp+xml
+application/epub+zip				epub
+# application/eshop
+# application/example
+application/exi					exi
+# application/fastinfoset
+# application/fastsoap
+# application/fits
 application/font-tdpfr				pfr
-application/h224
-application/http
+# application/framework-attributes+xml
+application/gml+xml				gml
+application/gpx+xml				gpx
+application/gxf					gxf
+# application/h224
+# application/held+xml
+# 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/ibe-key-request+xml
+# application/ibe-pkg-reply+xml
+# application/ibe-pp-data
+# application/iges
+# application/im-iscomposing+xml
+# application/index
+# application/index.cmd
+# application/index.obj
+# application/index.response
+# application/index.vnd
+application/inkml+xml				ink inkml
+# application/iotp
+application/ipfix				ipfix
+# application/ipp
+# application/isup
+application/java-archive			jar
+application/java-serialized-object		ser
+application/java-vm				class
 application/javascript				js
 application/json				json
-application/kpml-request+xml
-application/kpml-response+xml
+application/jsonml+json				jsonml
+# application/kpml-request+xml
+# application/kpml-response+xml
+application/lost+xml				lostxml
 application/mac-binhex40			hqx
 application/mac-compactpro			cpt
-application/macwriteii
+# application/macwriteii
+application/mads+xml				mads
 application/marc				mrc
+application/marcxml+xml				mrcx
 application/mathematica				ma nb mb
+# application/mathml-content+xml
+# application/mathml-presentation+xml
 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/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/media_control+xml
 application/mediaservercontrol+xml		mscml
-application/mikey
+application/metalink+xml			metalink
+application/metalink4+xml			meta4
+application/mets+xml				mets
+# application/mikey
+application/mods+xml				mods
+# application/moss-keys
+# application/moss-signature
+# application/mosskey-data
+# application/mosskey-request
+application/mp21				m21 mp21
 application/mp4					mp4s
-application/mpeg4-generic
-application/mpeg4-iod
-application/mpeg4-iod-xmt
+# application/mpeg4-generic
+# application/mpeg4-iod
+# application/mpeg4-iod-xmt
+# application/msc-ivr+xml
+# application/msc-mixer+xml
 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/nasdata
+# application/news-checkgroups
+# application/news-groupinfo
+# application/news-transmission
+# application/nss
+# application/ocsp-request
+# application/ocsp-response
+application/octet-stream	bin dms lrf mar so dist distz pkg bpk dump elc deploy
 application/oda					oda
-application/oebps-package+xml
-application/ogg					ogg
-application/parityfec
+application/oebps-package+xml			opf
+application/ogg					ogx
+application/omdoc+xml				omdoc
+application/onenote				onetoc onetoc2 onetmp onepkg
+application/oxps				oxps
+# application/parityfec
+application/patch-ops-error+xml			xer
 application/pdf					pdf
 application/pgp-encrypted			pgp
-application/pgp-keys
+# application/pgp-keys
 application/pgp-signature			asc sig
 application/pics-rules				prf
-application/pidf+xml
+# application/pidf+xml
+# application/pidf-diff+xml
 application/pkcs10				p10
 application/pkcs7-mime				p7m p7c
 application/pkcs7-signature			p7s
+application/pkcs8				p8
+application/pkix-attr-cert			ac
 application/pkix-cert				cer
 application/pkix-crl				crl
 application/pkix-pkipath			pkipath
 application/pkixcmp				pki
 application/pls+xml				pls
-application/poc-settings+xml
+# application/poc-settings+xml
 application/postscript				ai eps ps
-application/prs.alvestrand.titrax-sheet
+# application/prs.alvestrand.titrax-sheet
 application/prs.cww				cww
-application/prs.nprend
-application/prs.plucker
-application/qsig
+# application/prs.nprend
+# application/prs.plucker
+# application/prs.rdf-xml-crypt
+# application/prs.xsf+xml
+application/pskc+xml				pskcxml
+# application/qsig
 application/rdf+xml				rdf
 application/reginfo+xml				rif
 application/relax-ng-compact-syntax		rnc
-application/remote-printing
+# application/remote-printing
 application/resource-lists+xml			rl
-application/riscos
-application/rlmi+xml
+application/resource-lists-diff+xml		rld
+# application/riscos
+# application/rlmi+xml
 application/rls-services+xml			rs
+application/rpki-ghostbusters			gbr
+application/rpki-manifest			mft
+application/rpki-roa				roa
+# application/rpki-updown
 application/rsd+xml				rsd
 application/rss+xml				rss
 application/rtf					rtf
-application/rtx
-application/samlassertion+xml
-application/samlmetadata+xml
+# application/rtx
+# application/samlassertion+xml
+# application/samlmetadata+xml
 application/sbml+xml				sbml
+application/scvp-cv-request			scq
+application/scvp-cv-response			scs
+application/scvp-vp-request			spq
+application/scvp-vp-response			spp
 application/sdp					sdp
-application/set-payment
+# application/set-payment
 application/set-payment-initiation		setpay
-application/set-registration
+# application/set-registration
 application/set-registration-initiation		setreg
-application/sgml
-application/sgml-open-catalog
+# 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/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/soap+fastinfoset
+# application/soap+xml
+application/sparql-query			rq
+application/sparql-results+xml			srx
+# application/spirits-event+xml
 application/srgs				gram
 application/srgs+xml				grxml
+application/sru+xml				sru
+application/ssdl+xml				ssdl
 application/ssml+xml				ssml
-application/timestamp-query
-application/timestamp-reply
-application/tve-trigger
-application/vemmi
-application/vividence.scriptfile
-application/vnd.3gpp.bsf+xml
+# application/tamp-apex-update
+# application/tamp-apex-update-confirm
+# application/tamp-community-update
+# application/tamp-community-update-confirm
+# application/tamp-error
+# application/tamp-sequence-adjust
+# application/tamp-sequence-adjust-confirm
+# application/tamp-status-query
+# application/tamp-status-response
+# application/tamp-update
+# application/tamp-update-confirm
+application/tei+xml				tei teicorpus
+application/thraud+xml				tfi
+# application/timestamp-query
+# application/timestamp-reply
+application/timestamped-data			tsd
+# application/tve-trigger
+# application/ulpfec
+# application/vcard+xml
+# 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.3gpp.sms
+# application/vnd.3gpp2.bcmcsinfo+xml
+# application/vnd.3gpp2.sms
+application/vnd.3gpp2.tcap			tcap
 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.air-application-installer-package+zip	air
+application/vnd.adobe.formscentral.fcdt		fcdt
+application/vnd.adobe.fxp			fxp fxpl
+# application/vnd.adobe.partial-upload
 application/vnd.adobe.xdp+xml			xdp
 application/vnd.adobe.xfdf			xfdf
-application/vnd.aether.imp
+# application/vnd.aether.imp
+# application/vnd.ah-barcode
+application/vnd.ahead.space			ahead
+application/vnd.airzip.filesecure.azf		azf
+application/vnd.airzip.filesecure.azs		azs
+application/vnd.amazon.ebook			azw
+application/vnd.americandynamics.acc		acc
 application/vnd.amiga.ami			ami
+# application/vnd.amundsen.maze+xml
+application/vnd.android.package-archive		apk
 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.apple.mpegurl			m3u8
+# application/vnd.arastra.swi
+application/vnd.aristanetworks.swi		swi
+application/vnd.astraea-software.iota		iota
 application/vnd.audiograph			aep
-application/vnd.autopackage
-application/vnd.avistar+xml
+# application/vnd.autopackage
+# application/vnd.avistar+xml
 application/vnd.blueice.multipass		mpm
+# application/vnd.bluetooth.ep.oob
 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.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.cirpack.isdn-ext
 application/vnd.claymore			cla
+application/vnd.cloanto.rp9			rp9
 application/vnd.clonk.c4group			c4g c4d c4f c4p c4u
-application/vnd.commerce-battelle
-application/vnd.commonspace			csp cst
+application/vnd.cluetrust.cartomobile-config		c11amc
+application/vnd.cluetrust.cartomobile-config-pkg	c11amz
+# application/vnd.collection+json
+# application/vnd.commerce-battelle
+application/vnd.commonspace			csp
 application/vnd.contact.cmsg			cdbcmsg
 application/vnd.cosmocaller			cmc
 application/vnd.crick.clicker			clkx
@@ -208,46 +348,100 @@ 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.ctct.ws+xml
+# 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.cups-raster
+# application/vnd.cups-raw
+# application/vnd.curl
+application/vnd.curl.car			car
+application/vnd.curl.pcurl			pcurl
+# application/vnd.cybank
+application/vnd.dart				dart
 application/vnd.data-vision.rdz			rdz
+application/vnd.dece.data			uvf uvvf uvd uvvd
+application/vnd.dece.ttml+xml			uvt uvvt
+application/vnd.dece.unspecified		uvx uvvx
+application/vnd.dece.zip			uvz uvvz
 application/vnd.denovo.fcselayout-link		fe_launch
+# application/vnd.dir-bi.plate-dl-nosuffix
 application/vnd.dna				dna
 application/vnd.dolby.mlp			mlp
+# application/vnd.dolby.mobile.1
+# application/vnd.dolby.mobile.2
 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.ds-keypoint			kpxx
+application/vnd.dvb.ait				ait
+# application/vnd.dvb.dvbj
+# application/vnd.dvb.esgcontainer
+# application/vnd.dvb.ipdcdftnotifaccess
+# application/vnd.dvb.ipdcesgaccess
+# application/vnd.dvb.ipdcesgaccess2
+# application/vnd.dvb.ipdcesgpdd
+# application/vnd.dvb.ipdcroaming
+# application/vnd.dvb.iptv.alfec-base
+# application/vnd.dvb.iptv.alfec-enhancement
+# application/vnd.dvb.notif-aggregate-root+xml
+# application/vnd.dvb.notif-container+xml
+# application/vnd.dvb.notif-generic+xml
+# application/vnd.dvb.notif-ia-msglist+xml
+# application/vnd.dvb.notif-ia-registration-request+xml
+# application/vnd.dvb.notif-ia-registration-response+xml
+# application/vnd.dvb.notif-init+xml
+# application/vnd.dvb.pfr
+application/vnd.dvb.service			svc
+# application/vnd.dxr
+application/vnd.dynageo				geo
+# application/vnd.easykaraoke.cdgdownload
+# 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.ecowin.filerequest
+# application/vnd.ecowin.fileupdate
+# application/vnd.ecowin.series
+# application/vnd.ecowin.seriesrequest
+# application/vnd.ecowin.seriesupdate
+# application/vnd.emclient.accessrequest+xml
 application/vnd.enliven				nml
+# application/vnd.eprints.data+xml
 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.ericsson.quickcall
 application/vnd.eszigno3+xml			es3 et3
-application/vnd.eudora.data
+# application/vnd.etsi.aoc+xml
+# application/vnd.etsi.cug+xml
+# application/vnd.etsi.iptvcommand+xml
+# application/vnd.etsi.iptvdiscovery+xml
+# application/vnd.etsi.iptvprofile+xml
+# application/vnd.etsi.iptvsad-bc+xml
+# application/vnd.etsi.iptvsad-cod+xml
+# application/vnd.etsi.iptvsad-npvr+xml
+# application/vnd.etsi.iptvservice+xml
+# application/vnd.etsi.iptvsync+xml
+# application/vnd.etsi.iptvueprofile+xml
+# application/vnd.etsi.mcid+xml
+# application/vnd.etsi.overload-control-policy-dataset+xml
+# application/vnd.etsi.sci+xml
+# application/vnd.etsi.simservs+xml
+# application/vnd.etsi.tsl+xml
+# application/vnd.etsi.tsl.der
+# application/vnd.eudora.data
 application/vnd.ezpix-album			ez2
 application/vnd.ezpix-package			ez3
+# application/vnd.f-secure.mobile
 application/vnd.fdf				fdf
-application/vnd.ffsns
-application/vnd.fints
+application/vnd.fdsn.mseed			mseed
+application/vnd.fdsn.seed			seed dataless
+# application/vnd.ffsns
+# application/vnd.fints
 application/vnd.flographit			gph
 application/vnd.fluxtime.clip			ftc
-application/vnd.framemaker			fm frame maker
+# application/vnd.font-fontforge-sfd
+application/vnd.framemaker			fm frame maker book
 application/vnd.frogans.fnc			fnc
 application/vnd.frogans.ltf			ltf
 application/vnd.fsc.weblaunch			fsc
@@ -256,19 +450,29 @@ 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.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.fut-misnet
 application/vnd.fuzzysheet			fzs
 application/vnd.genomatix.tuxedo		txd
+# application/vnd.geocube+xml
+application/vnd.geogebra.file			ggb
+application/vnd.geogebra.tool			ggt
+application/vnd.geometry-explorer		gex gre
+application/vnd.geonext				gxt
+application/vnd.geoplan				g2w
+application/vnd.geospace			g3w
+# application/vnd.globalplatform.card-content-mgt
+# application/vnd.globalplatform.card-content-mgt-response
+application/vnd.gmx				gmx
 application/vnd.google-earth.kml+xml		kml
 application/vnd.google-earth.kmz		kmz
 application/vnd.grafeq				gqf gqs
-application/vnd.gridmp
+# application/vnd.gridmp
 application/vnd.groove-account			gac
 application/vnd.groove-help			ghf
 application/vnd.groove-identity-message		gim
@@ -276,9 +480,11 @@ application/vnd.groove-injector			grv
 application/vnd.groove-tool-message		gtm
 application/vnd.groove-tool-template		tpl
 application/vnd.groove-vcard			vcg
+# application/vnd.hal+json
+application/vnd.hal+xml				hal
 application/vnd.handheld-entertainment+xml	zmm
 application/vnd.hbci				hbci
-application/vnd.hcl-bireports
+# application/vnd.hcl-bireports
 application/vnd.hhe.lesson-player		les
 application/vnd.hp-hpgl				hpgl
 application/vnd.hp-hpid				hpid
@@ -286,37 +492,53 @@ 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.httphone
+application/vnd.hydrostatix.sof-data		sfd-hdstx
+# application/vnd.hzn-3d-crossword
+# 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.iccprofile			icc icm
 application/vnd.igloader			igl
 application/vnd.immervision-ivp			ivp
 application/vnd.immervision-ivu			ivu
-application/vnd.informedcontrol.rms+xml
+# application/vnd.informedcontrol.rms+xml
+# application/vnd.informix-visionary
+# application/vnd.infotech.project
+# application/vnd.infotech.project+xml
+# application/vnd.innopath.wamp.notification
+application/vnd.insors.igm			igm
 application/vnd.intercon.formnet		xpw xpx
-application/vnd.intertrust.digibox
-application/vnd.intertrust.nncp
+application/vnd.intergeo			i2g
+# application/vnd.intertrust.digibox
+# application/vnd.intertrust.nncp
 application/vnd.intu.qbo			qbo
 application/vnd.intu.qfx			qfx
+# application/vnd.iptc.g2.conceptitem+xml
+# application/vnd.iptc.g2.knowledgeitem+xml
+# application/vnd.iptc.g2.newsitem+xml
+# application/vnd.iptc.g2.newsmessage+xml
+# application/vnd.iptc.g2.packageitem+xml
+# application/vnd.iptc.g2.planningitem+xml
 application/vnd.ipunplugged.rcprofile		rcprofile
 application/vnd.irepository.package+xml		irp
 application/vnd.is-xpr				xpr
+application/vnd.isac.fcs			fcs
 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.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.joost.joda-archive		joda
 application/vnd.kahootz				ktz ktr
 application/vnd.kde.karbon			karbon
 application/vnd.kde.kchart			chrt
@@ -330,7 +552,9 @@ 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.kodak-descriptor		sse
+application/vnd.las.las+xml			lasxml
+# 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
@@ -341,20 +565,21 @@ 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.marlin.drm.actiontoken+xml
+# application/vnd.marlin.drm.conftoken+xml
+# application/vnd.marlin.drm.license+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.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.minisoft-hp3000-save
+# application/vnd.mitsubishi.misty-guard.trustweb
 application/vnd.mobius.daf			daf
 application/vnd.mobius.dis			dis
 application/vnd.mobius.mbk			mbk
@@ -364,149 +589,312 @@ 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.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.motorola.iprm
+application/vnd.mozilla.xul+xml			xul
 application/vnd.ms-artgalry			cil
-application/vnd.ms-asf				asf
+# application/vnd.ms-asf
 application/vnd.ms-cab-compressed		cab
+# application/vnd.ms-color.iccprofile
 application/vnd.ms-excel			xls xlm xla xlc xlt xlw
+application/vnd.ms-excel.addin.macroenabled.12		xlam
+application/vnd.ms-excel.sheet.binary.macroenabled.12	xlsb
+application/vnd.ms-excel.sheet.macroenabled.12		xlsm
+application/vnd.ms-excel.template.macroenabled.12	xltm
 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-office.activex+xml
+application/vnd.ms-officetheme			thmx
+# application/vnd.ms-opentype
+# application/vnd.ms-package.obfuscated-opentype
+application/vnd.ms-pki.seccat			cat
+application/vnd.ms-pki.stl			stl
+# application/vnd.ms-playready.initiator+xml
 application/vnd.ms-powerpoint			ppt pps pot
+application/vnd.ms-powerpoint.addin.macroenabled.12		ppam
+application/vnd.ms-powerpoint.presentation.macroenabled.12	pptm
+application/vnd.ms-powerpoint.slide.macroenabled.12		sldm
+application/vnd.ms-powerpoint.slideshow.macroenabled.12		ppsm
+application/vnd.ms-powerpoint.template.macroenabled.12		potm
+# application/vnd.ms-printing.printticket+xml
 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-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-word.document.macroenabled.12	docm
+application/vnd.ms-word.template.macroenabled.12	dotm
 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.msign
+# application/vnd.multiad.creator
+# application/vnd.multiad.creator.cif
+# application/vnd.music-niff
 application/vnd.musician			mus
-application/vnd.ncd.control
-application/vnd.nervana
-application/vnd.netfpx
+application/vnd.muvee.style			msty
+application/vnd.mynfc				taglet
+# application/vnd.ncd.control
+# application/vnd.ncd.reference
+# application/vnd.nervana
+# application/vnd.netfpx
 application/vnd.neurolanguage.nlu		nlu
+application/vnd.nitf				ntf nitf
 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.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.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.ntt-local.file-transfer
+# application/vnd.ntt-local.sip-ta_remote
+# application/vnd.ntt-local.sip-ta_tcp_stream
 application/vnd.oasis.opendocument.chart		odc
 application/vnd.oasis.opendocument.chart-template	otc
+application/vnd.oasis.opendocument.database		odb
 application/vnd.oasis.opendocument.formula		odf
-application/vnd.oasis.opendocument.formula-template	otf
+application/vnd.oasis.opendocument.formula-template	odft
 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.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-master		odm
 application/vnd.oasis.opendocument.text-template	ott
 application/vnd.oasis.opendocument.text-web		oth
-application/vnd.obn
+# application/vnd.obn
+# application/vnd.oftn.l10n+json
+# application/vnd.oipf.contentaccessdownload+xml
+# application/vnd.oipf.contentaccessstreaming+xml
+# application/vnd.oipf.cspg-hexbinary
+# application/vnd.oipf.dae.svg+xml
+# application/vnd.oipf.dae.xhtml+xml
+# application/vnd.oipf.mippvcontrolmessage+xml
+# application/vnd.oipf.pae.gem
+# application/vnd.oipf.spdiscovery+xml
+# application/vnd.oipf.spdlist+xml
+# application/vnd.oipf.ueprofile+xml
+# application/vnd.oipf.userprofile+xml
 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-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.ltkm
+# application/vnd.oma.bcast.notification+xml
+# application/vnd.oma.bcast.provisioningtrigger
+# 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.bcast.stkm
+# application/vnd.oma.cab-address-book+xml
+# application/vnd.oma.cab-feature-handler+xml
+# application/vnd.oma.cab-pcc+xml
+# application/vnd.oma.cab-user-prefs+xml
+# application/vnd.oma.dcd
+# application/vnd.oma.dcdc
 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.oma.drm.risd+xml
+# application/vnd.oma.group-usage-list+xml
+# application/vnd.oma.pal+xml
+# application/vnd.oma.poc.detailed-progress-report+xml
+# application/vnd.oma.poc.final-report+xml
+# application/vnd.oma.poc.groups+xml
+# application/vnd.oma.poc.invocation-descriptor+xml
+# application/vnd.oma.poc.optimized-progress-report+xml
+# application/vnd.oma.push
+# application/vnd.oma.scidm.messages+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.openxmlformats-officedocument.custom-properties+xml
+# application/vnd.openxmlformats-officedocument.customxmlproperties+xml
+# application/vnd.openxmlformats-officedocument.drawing+xml
+# application/vnd.openxmlformats-officedocument.drawingml.chart+xml
+# application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml
+# application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml
+# application/vnd.openxmlformats-officedocument.extended-properties+xml
+# application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml
+# application/vnd.openxmlformats-officedocument.presentationml.comments+xml
+# application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml
+# application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml
+# application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml
+application/vnd.openxmlformats-officedocument.presentationml.presentation	pptx
+# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.presprops+xml
+application/vnd.openxmlformats-officedocument.presentationml.slide	sldx
+# application/vnd.openxmlformats-officedocument.presentationml.slide+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml
+application/vnd.openxmlformats-officedocument.presentationml.slideshow	ppsx
+# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml
+# application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml
+# application/vnd.openxmlformats-officedocument.presentationml.tags+xml
+application/vnd.openxmlformats-officedocument.presentationml.template	potx
+# application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
+# application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet	xlsx
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml
+application/vnd.openxmlformats-officedocument.spreadsheetml.template	xltx
+# application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml
+# application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
+# application/vnd.openxmlformats-officedocument.theme+xml
+# application/vnd.openxmlformats-officedocument.themeoverride+xml
+# application/vnd.openxmlformats-officedocument.vmldrawing
+# application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.document	docx
+# application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
+application/vnd.openxmlformats-officedocument.wordprocessingml.template	dotx
+# application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
+# application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml
+# application/vnd.openxmlformats-package.core-properties+xml
+# application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
+# application/vnd.openxmlformats-package.relationships+xml
+# application/vnd.quobject-quoxdocument
+# application/vnd.osa.netdeploy
+application/vnd.osgeo.mapguide.package		mgp
+# application/vnd.osgi.bundle
 application/vnd.osgi.dp				dp
-application/vnd.otps.ct-kip+xml
-application/vnd.palm				prc pdb pqa oprc
-application/vnd.paos.xml
+application/vnd.osgi.subsystem			esa
+# application/vnd.otps.ct-kip+xml
+application/vnd.palm				pdb pqa oprc
+# application/vnd.paos.xml
+application/vnd.pawaafile			paw
 application/vnd.pg.format			str
 application/vnd.pg.osasli			ei6
-application/vnd.piaccess.application-licence
+# application/vnd.piaccess.application-licence
 application/vnd.picsel				efif
-application/vnd.poc.group-advertisement+xml
+application/vnd.pmi.widget			wg
+# 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.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.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.radisys.moml+xml
+# application/vnd.radisys.msml+xml
+# application/vnd.radisys.msml-audit+xml
+# application/vnd.radisys.msml-audit-conf+xml
+# application/vnd.radisys.msml-audit-conn+xml
+# application/vnd.radisys.msml-audit-dialog+xml
+# application/vnd.radisys.msml-audit-stream+xml
+# application/vnd.radisys.msml-conf+xml
+# application/vnd.radisys.msml-dialog+xml
+# application/vnd.radisys.msml-dialog-base+xml
+# application/vnd.radisys.msml-dialog-fax-detect+xml
+# application/vnd.radisys.msml-dialog-fax-sendrecv+xml
+# application/vnd.radisys.msml-dialog-group+xml
+# application/vnd.radisys.msml-dialog-speech+xml
+# application/vnd.radisys.msml-dialog-transform+xml
+# application/vnd.rainstor.data
+# application/vnd.rapid
+application/vnd.realvnc.bed			bed
 application/vnd.recordare.musicxml		mxl
-application/vnd.recordare.musicxml+xml
-application/vnd.renlearn.rlprint
+application/vnd.recordare.musicxml+xml		musicxml
+# application/vnd.renlearn.rlprint
+application/vnd.rig.cryptonote			cryptonote
+application/vnd.rim.cod				cod
 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.rn-realmedia-vbr		rmvb
+application/vnd.route66.link66+xml		link66
+# application/vnd.rs-274x
+# application/vnd.ruckus.download
+# application/vnd.s3sms
+application/vnd.sailingtracker.track		st
+# application/vnd.sbm.cid
+# application/vnd.sbm.mid2
+# 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
@@ -517,292 +905,456 @@ application/vnd.shana.informed.interchange	iif
 application/vnd.shana.informed.package		ipk
 application/vnd.simtech-mindmapper		twd twds
 application/vnd.smaf				mmf
+# application/vnd.smart.notebook
+application/vnd.smart.teacher			teacher
+# application/vnd.software602.filler.form+xml
+# application/vnd.software602.filler.form-xml-zip
 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.sss-cod
+# application/vnd.sss-dtf
+# application/vnd.sss-ntf
+application/vnd.stardivision.calc		sdc
+application/vnd.stardivision.draw		sda
+application/vnd.stardivision.impress		sdd
+application/vnd.stardivision.math		smf
+application/vnd.stardivision.writer		sdw vor
+application/vnd.stardivision.writer-global	sgl
+application/vnd.stepmania.package		smzip
+application/vnd.stepmania.stepchart		sm
+# application/vnd.street-stream
+application/vnd.sun.xml.calc			sxc
+application/vnd.sun.xml.calc.template		stc
+application/vnd.sun.xml.draw			sxd
+application/vnd.sun.xml.draw.template		std
+application/vnd.sun.xml.impress			sxi
+application/vnd.sun.xml.impress.template	sti
+application/vnd.sun.xml.math			sxm
+application/vnd.sun.xml.writer			sxw
+application/vnd.sun.xml.writer.global		sxg
+application/vnd.sun.xml.writer.template		stw
+# application/vnd.sun.wadl+xml
 application/vnd.sus-calendar			sus susp
 application/vnd.svd				svd
-application/vnd.swiftview-ics
+# application/vnd.swiftview-ics
+application/vnd.symbian.install			sis sisx
 application/vnd.syncml+xml			xsm
 application/vnd.syncml.dm+wbxml			bdm
 application/vnd.syncml.dm+xml			xdm
-application/vnd.syncml.ds.notification
+# application/vnd.syncml.dm.notification
+# application/vnd.syncml.ds.notification
 application/vnd.tao.intent-module-archive	tao
+application/vnd.tcpdump.pcap			pcap cap dmp
 application/vnd.tmobile-livetv			tmo
 application/vnd.trid.tpt			tpt
 application/vnd.triscape.mxs			mxs
 application/vnd.trueapp				tra
-application/vnd.truedoc
+# application/vnd.truedoc
+# application/vnd.ubisoft.webplayer
 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.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.vd-study
+# application/vnd.vectorworks
+# application/vnd.verimatrix.vcas
+# application/vnd.vidsoft.vidconference
 application/vnd.visio				vsd vst vss vsw
 application/vnd.visionary			vis
-application/vnd.vividence.scriptfile
+# application/vnd.vividence.scriptfile
 application/vnd.vsf				vsf
-application/vnd.wap.sic
-application/vnd.wap.slc
+# 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.wfa.wsc
+# application/vnd.wmc
+# application/vnd.wmf.bootstrap
+# application/vnd.wolfram.mathematica
+# application/vnd.wolfram.mathematica.package
+application/vnd.wolfram.player			nbp
 application/vnd.wordperfect			wpd
 application/vnd.wqd				wqd
-application/vnd.wrq-hp3000-labelled
+# 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.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.xfdl.webform
+# application/vnd.xmi+xml
+# 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.openscoreformat			osf
+application/vnd.yamaha.openscoreformat.osfpvg+xml	osfpvg
+# application/vnd.yamaha.remote-setup
 application/vnd.yamaha.smaf-audio		saf
 application/vnd.yamaha.smaf-phrase		spf
+# application/vnd.yamaha.through-ngn
+# application/vnd.yamaha.tunnel-udpencap
 application/vnd.yellowriver-custom-menu		cmp
+application/vnd.zul				zir zirz
 application/vnd.zzazz.deck+xml			zaz
 application/voicexml+xml			vxml
-application/watcherinfo+xml
-application/whoispp-query
-application/whoispp-response
+# application/vq-rtcpxr
+# application/watcherinfo+xml
+# application/whoispp-query
+# application/whoispp-response
+application/widget				wgt
 application/winhlp				hlp
-application/wita
-application/wordperfect5.1
+# application/wita
+# application/wordperfect5.1
 application/wsdl+xml				wsdl
 application/wspolicy+xml			wspolicy
+application/x-7z-compressed			7z
+application/x-abiword				abw
 application/x-ace-compressed			ace
+# application/x-amf
+application/x-apple-diskimage			dmg
+application/x-authorware-bin			aab x32 u32 vox
+application/x-authorware-map			aam
+application/x-authorware-seg			aas
 application/x-bcpio				bcpio
 application/x-bittorrent			torrent
+application/x-blorb				blb blorb
 application/x-bzip				bz
 application/x-bzip2				bz2 boz
+application/x-cbr				cbr cba cbt cbz cb7
 application/x-cdlink				vcd
+application/x-cfs-compressed			cfs
 application/x-chat				chat
 application/x-chess-pgn				pgn
-application/x-compress
+application/x-conference			nsc
+# application/x-compress
 application/x-cpio				cpio
 application/x-csh				csh
-application/x-director				dcr dir dxr fgd
+application/x-debian-package			deb udeb
+application/x-dgc-compressed			dgc
+application/x-director			dir dcr dxr cst cct cxt w3d fgd swa
+application/x-doom				wad
+application/x-dtbncx+xml			ncx
+application/x-dtbook+xml			dtb
+application/x-dtbresource+xml			res
 application/x-dvi				dvi
+application/x-envoy				evy
+application/x-eva				eva
+application/x-font-bdf				bdf
+# application/x-font-dos
+# application/x-font-framemaker
+application/x-font-ghostscript			gsf
+# application/x-font-libgrx
+application/x-font-linux-psf			psf
+application/x-font-otf				otf
+application/x-font-pcf				pcf
+application/x-font-snf				snf
+# application/x-font-speedo
+# application/x-font-sunos-news
+application/x-font-ttf				ttf ttc
+application/x-font-type1			pfa pfb pfm afm
+application/font-woff				woff
+# application/x-font-vfont
+application/x-freearc				arc
 application/x-futuresplash			spl
+application/x-gca-compressed			gca
+application/x-glulx				ulx
+application/x-gnumeric				gnumeric
+application/x-gramps-xml			gramps
 application/x-gtar				gtar
-application/x-gzip
+# application/x-gzip
 application/x-hdf				hdf
+application/x-install-instructions		install
+application/x-iso9660-image			iso
+application/x-java-jnlp-file			jnlp
 application/x-latex				latex
+application/x-lzh-compressed			lzh lha
+application/x-mie				mie
+application/x-mobipocket-ebook			prc mobi
+application/x-ms-application			application
+application/x-ms-shortcut			lnk
 application/x-ms-wmd				wmd
 application/x-ms-wmz				wmz
+application/x-ms-xbap				xbap
 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-msmetafile			wmf wmz emf emz
 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-nzb				nzb
 application/x-pkcs12				p12 pfx
 application/x-pkcs7-certificates		p7b spc
 application/x-pkcs7-certreqresp			p7r
 application/x-rar-compressed			rar
+application/x-research-info-systems		ris
 application/x-sh				sh
 application/x-shar				shar
 application/x-shockwave-flash			swf
+application/x-silverlight-app			xap
+application/x-sql				sql
 application/x-stuffit				sit
 application/x-stuffitx				sitx
+application/x-subrip				srt
 application/x-sv4cpio				sv4cpio
 application/x-sv4crc				sv4crc
+application/x-t3vm-image			t3
+application/x-tads				gam
 application/x-tar				tar
 application/x-tcl				tcl
 application/x-tex				tex
+application/x-tex-tfm				tfm
 application/x-texinfo				texinfo texi
+application/x-tgif				obj
 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/x-xfig				fig
+application/x-xliff+xml				xlf
+application/x-xpinstall				xpi
+application/x-xz				xz
+application/x-zmachine				z1 z2 z3 z4 z5 z6 z7 z8
+# application/x400-bp
+application/xaml+xml				xaml
+# application/xcap-att+xml
+# application/xcap-caps+xml
+application/xcap-diff+xml			xdf
+# application/xcap-el+xml
+# application/xcap-error+xml
+# application/xcap-ns+xml
+# application/xcon-conference-info-diff+xml
+# application/xcon-conference-info+xml
 application/xenc+xml				xenc
 application/xhtml+xml				xhtml xht
+# application/xhtml-voice+xml
 application/xml					xml xsl
 application/xml-dtd				dtd
-application/xml-external-parsed-entity
-application/xmpp+xml
+# application/xml-external-parsed-entity
+# application/xmpp+xml
 application/xop+xml				xop
+application/xproc+xml				xpl
 application/xslt+xml				xslt
 application/xspf+xml				xspf
 application/xv+xml				mxml xhvml xvml xvm
+application/yang				yang
+application/yin+xml				yin
 application/zip					zip
-audio/32kadpcm
-audio/3gpp
-audio/3gpp2
-audio/ac3
-audio/amr
-audio/amr-wb
-audio/amr-wb+
-audio/asc
+# audio/1d-interleaved-parityfec
+# audio/32kadpcm
+# audio/3gpp
+# audio/3gpp2
+# audio/ac3
+audio/adpcm					adp
+# audio/amr
+# audio/amr-wb
+# audio/amr-wb+
+# audio/asc
+# audio/atrac-advanced-lossless
+# audio/atrac-x
+# audio/atrac3
 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/bv16
+# audio/bv32
+# audio/clearmode
+# audio/cn
+# audio/dat12
+# audio/dls
+# audio/dsr-es201108
+# audio/dsr-es202050
+# audio/dsr-es202211
+# audio/dsr-es202212
+# audio/dv
+# audio/dvi4
+# audio/eac3
+# audio/evrc
+# audio/evrc-qcp
+# audio/evrc0
+# audio/evrc1
+# audio/evrcb
+# audio/evrcb0
+# audio/evrcb1
+# audio/evrcwb
+# audio/evrcwb0
+# audio/evrcwb1
+# audio/example
+# audio/fwdred
+# audio/g719
+# 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/gsm-hr-08
+# audio/ilbc
+# audio/ip-mr_v2.5
+# audio/isac
+# audio/l16
+# audio/l20
+# audio/l24
+# audio/l8
+# audio/lpc
 audio/midi					mid midi kar rmi
-audio/mobile-xmf
+# audio/mobile-xmf
 audio/mp4					mp4a
-audio/mp4a-latm
-audio/mpa
-audio/mpa-robust
+# 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/mpeg4-generic
+# audio/musepack
+audio/ogg					oga ogg spx
+# audio/opus
+# audio/parityfec
+# audio/pcma
+# audio/pcma-wb
+# audio/pcmu-wb
+# audio/pcmu
+# audio/prs.sid
+# audio/qcelp
+# audio/red
+# audio/rtp-enc-aescm128
+# audio/rtp-midi
+# audio/rtx
+audio/s3m					s3m
+audio/silk					sil
+# audio/smv
+# audio/smv0
+# audio/smv-qcp
+# audio/sp-midi
+# audio/speex
+# audio/t140c
+# audio/t38
+# audio/telephone-event
+# audio/tone
+# audio/uemclip
+# audio/ulpfec
+# 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.dece.audio				uva uvva
 audio/vnd.digital-winds				eol
-audio/vnd.dlna.adts
-audio/vnd.dolby.mlp
-audio/vnd.everad.plj
-audio/vnd.hns.audio
+# audio/vnd.dlna.adts
+# audio/vnd.dolby.heaac.1
+# audio/vnd.dolby.heaac.2
+# audio/vnd.dolby.mlp
+# audio/vnd.dolby.mps
+# audio/vnd.dolby.pl2
+# audio/vnd.dolby.pl2x
+# audio/vnd.dolby.pl2z
+# audio/vnd.dolby.pulse.1
+audio/vnd.dra					dra
+audio/vnd.dts					dts
+audio/vnd.dts.hd				dtshd
+# audio/vnd.dvb.file
+# audio/vnd.everad.plj
+# audio/vnd.hns.audio
 audio/vnd.lucent.voice				lvp
-audio/vnd.nokia.mobile-xmf
-audio/vnd.nortel.vbk
+audio/vnd.ms-playready.media.pya		pya
+# 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/vnd.octel.sbc
+# audio/vnd.qcelp
+# audio/vnd.rhetorex.32kadpcm
+audio/vnd.rip					rip
+# audio/vnd.sealedmedia.softseal.mpeg
+# audio/vnd.vmx.cvsd
+# audio/vorbis
+# audio/vorbis-config
+audio/webm					weba
+audio/x-aac					aac
 audio/x-aiff					aif aiff aifc
+audio/x-caf					caf
+audio/x-flac					flac
+audio/x-matroska				mka
 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-tta
 audio/x-wav					wav
+audio/xm					xm
 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-pdb
 chemical/x-xyz					xyz
 image/bmp					bmp
 image/cgm					cgm
-image/fits
+# image/example
+# image/fits
 image/g3fax					g3
 image/gif					gif
 image/ief					ief
-image/jp2
+# image/jp2
 image/jpeg					jpeg jpg jpe
-image/jpm
-image/jpx
-image/naplps
+# image/jpm
+# image/jpx
+image/ktx					ktx
+# image/naplps
 image/png					png
 image/prs.btif					btif
-image/prs.pti
+# image/prs.pti
+image/sgi					sgi
 image/svg+xml					svg svgz
-image/t38
+# image/t38
 image/tiff					tiff tif
-image/tiff-fx
+# image/tiff-fx
 image/vnd.adobe.photoshop			psd
-image/vnd.cns.inf2
+# image/vnd.cns.inf2
+image/vnd.dece.graphic				uvi uvvi uvg uvvg
+image/vnd.dvb.subtitle				sub
 image/vnd.djvu					djvu djv
 image/vnd.dwg					dwg
 image/vnd.dxf					dxf
@@ -811,20 +1363,26 @@ 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.globalgraphics.pgb
+# image/vnd.microsoft.icon
+# image/vnd.mix
 image/vnd.ms-modi				mdi
+image/vnd.ms-photo				wdp
 image/vnd.net-fpx				npx
-image/vnd.sealed.png
-image/vnd.sealedmedia.softseal.gif
-image/vnd.sealedmedia.softseal.jpg
-image/vnd.svf
+# image/vnd.radiance
+# 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/webp					webp
+image/x-3ds					3ds
 image/x-cmu-raster				ras
 image/x-cmx					cmx
-image/x-icon
+image/x-freehand				fh fhc fh4 fh5 fh7
+image/x-icon					ico
+image/x-mrsid-image				sid
 image/x-pcx					pcx
 image/x-pict					pic pct
 image/x-portable-anymap				pnm
@@ -832,152 +1390,221 @@ image/x-portable-bitmap				pbm
 image/x-portable-graymap			pgm
 image/x-portable-pixmap				ppm
 image/x-rgb					rgb
+image/x-tga					tga
 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/cpim
+# message/delivery-status
+# message/disposition-notification
+# message/example
+# message/external-body
+# message/feedback-report
+# message/global
+# message/global-delivery-status
+# message/global-disposition-notification
+# message/global-headers
+# message/http
+# message/imdn+xml
+# message/news
+# message/partial
 message/rfc822					eml mime
-message/s-http
-message/sip
-message/sipfrag
-message/tracking-status
+# message/s-http
+# message/sip
+# message/sipfrag
+# message/tracking-status
+# message/vnd.si.simp
+# model/example
 model/iges					igs iges
 model/mesh					msh mesh silo
+model/vnd.collada+xml				dae
 model/vnd.dwf					dwf
-model/vnd.flatland.3dml
+# model/vnd.flatland.3dml
 model/vnd.gdl					gdl
-model/vnd.gs.gdl
+# model/vnd.gs-gdl
+# model/vnd.gs.gdl
 model/vnd.gtw					gtw
-model/vnd.moml+xml
+# model/vnd.moml+xml
 model/vnd.mts					mts
-model/vnd.parasolid.transmit.binary
-model/vnd.parasolid.transmit.text
+# 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
+model/x3d+binary				x3db x3dbz
+model/x3d+vrml					x3dv x3dvz
+model/x3d+xml					x3d x3dz
+# multipart/alternative
+# multipart/appledouble
+# multipart/byteranges
+# multipart/digest
+# multipart/encrypted
+# multipart/example
+# multipart/form-data
+# multipart/header-set
+# multipart/mixed
+# multipart/parallel
+# multipart/related
+# multipart/report
+# multipart/signed
+# multipart/voice-message
+# text/1d-interleaved-parityfec
+text/cache-manifest				appcache
 text/calendar					ics ifb
 text/css					css
 text/csv					csv
-text/directory
-text/dns
-text/enriched
+# text/directory
+# text/dns
+# text/ecmascript
+# text/enriched
+# text/example
+# text/fwdred
 text/html					html htm
-text/parityfec
+# text/javascript
+text/n3						n3
+# text/parityfec
 text/plain					txt text conf def list log in
-text/prs.fallenstein.rst
+# text/prs.fallenstein.rst
 text/prs.lines.tag				dsc
-text/red
-text/rfc822-headers
+# text/vnd.radisys.msml-basic-layout
+# text/red
+# text/rfc822-headers
 text/richtext					rtx
-text/rtf
-text/rtp-enc-aescm128
-text/rtx
+# text/rtf
+# text/rtp-enc-aescm128
+# text/rtx
 text/sgml					sgml sgm
-text/t140
+# text/t140
 text/tab-separated-values			tsv
 text/troff					t tr roff man me ms
+text/turtle					ttl
+# text/ulpfec
 text/uri-list					uri uris urls
-text/vnd.abc
-text/vnd.curl
-text/vnd.dmclientscript
-text/vnd.esmertec.theme-descriptor
+text/vcard					vcard
+# text/vnd.abc
+text/vnd.curl					curl
+text/vnd.curl.dcurl				dcurl
+text/vnd.curl.scurl				scurl
+text/vnd.curl.mcurl				mcurl
+# text/vnd.dmclientscript
+text/vnd.dvb.subtitle				sub
+# text/vnd.esmertec.theme-descriptor
 text/vnd.fly					fly
 text/vnd.fmi.flexstor				flx
+text/vnd.graphviz				gv
 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.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.si.uricatalogue
 text/vnd.sun.j2me.app-descriptor		jad
-text/vnd.trolltech.linguist
-text/vnd.wap.si
-text/vnd.wap.sl
+# 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-opml					opml
+text/x-pascal					p pas
+text/x-nfo					nfo
 text/x-setext					etx
+text/x-sfv					sfv
 text/x-uuencode					uu
 text/x-vcalendar				vcs
 text/x-vcard					vcf
-text/xml
-text/xml-external-parsed-entity
+# text/xml
+# text/xml-external-parsed-entity
+# video/1d-interleaved-parityfec
 video/3gpp					3gp
-video/3gpp-tt
+# video/3gpp-tt
 video/3gpp2					3g2
-video/bmpeg
-video/bt656
-video/celb
-video/dv
+# video/bmpeg
+# video/bt656
+# video/celb
+# video/dv
+# video/example
 video/h261					h261
 video/h263					h263
-video/h263-1998
-video/h263-2000
+# video/h263-1998
+# video/h263-2000
 video/h264					h264
+# video/h264-rcdo
+# video/h264-svc
 video/jpeg					jpgv
+# video/jpeg2000
 video/jpm					jpm jpgm
 video/mj2					mj2 mjp2
-video/mp1s
-video/mp2p
-video/mp2t
+# video/mp1s
+# video/mp2p
+# video/mp2t
 video/mp4					mp4 mp4v mpg4
-video/mp4v-es
+# video/mp4v-es
 video/mpeg					mpeg mpg mpe m1v m2v
-video/mpeg4-generic
-video/mpv
-video/nv
-video/parityfec
-video/pointer
+# video/mpeg4-generic
+# video/mpv
+# video/nv
+video/ogg					ogv
+# 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/raw
+# video/rtp-enc-aescm128
+# video/rtx
+# video/smpte292m
+# video/ulpfec
+# video/vc1
+# video/vnd.cctv
+video/vnd.dece.hd				uvh uvvh
+video/vnd.dece.mobile				uvm uvvm
+# video/vnd.dece.mp4
+video/vnd.dece.pd				uvp uvvp
+video/vnd.dece.sd				uvs uvvs
+video/vnd.dece.video				uvv uvvv
+# video/vnd.directv.mpeg
+# video/vnd.directv.mpeg-tts
+# video/vnd.dlna.mpeg-tts
+video/vnd.dvb.file				dvb
 video/vnd.fvt					fvt
-video/vnd.hns.video
-video/vnd.motorola.video
-video/vnd.motorola.videop
+# video/vnd.hns.video
+# video/vnd.iptvforum.1dparityfec-1010
+# video/vnd.iptvforum.1dparityfec-2005
+# video/vnd.iptvforum.2dparityfec-1010
+# video/vnd.iptvforum.2dparityfec-2005
+# video/vnd.iptvforum.ttsavc
+# video/vnd.iptvforum.ttsmpeg2
+# 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.ms-playready.media.pyv		pyv
+# 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.uvvu.mp4				uvu uvvu
 video/vnd.vivo					viv
+video/webm					webm
+video/x-f4v					f4v
 video/x-fli					fli
+video/x-flv					flv
+video/x-m4v					m4v
+video/x-matroska				mkv mk3d mks
+video/x-mng					mng
 video/x-ms-asf					asf asx
+video/x-ms-vob					vob
 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
+video/x-smv					smv
 x-conference/x-cooltalk				ice
diff --git a/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/loquendo-7-mrcp-v2.xml b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/loquendo-7-mrcp-v2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dcf42821f5bc948d0b8835f4e9410bfa387d1696
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/loquendo-7-mrcp-v2.xml
@@ -0,0 +1,32 @@
+<include>
+  <!-- Loquendo MRCP Server 7 MRCPv2 -->
+  <profile name="loquendo7-mrcp2" version="2">
+    <!--param name="client-ext-ip" value="auto"-->
+    <param name="client-ip" value="auto"/>
+    <param name="client-port" value="5090"/>
+    <param name="server-ip" value="10.5.5.152"/>
+    <param name="server-port" value="5060"/>
+    <!--param name="force-destination" value="1"/-->
+    <param name="sip-transport" value="udp"/>
+    <!--param name="ua-name" value="FreeSWITCH"/-->
+    <!--param name="sdp-origin" value="FreeSWITCH"/-->
+    <!--param name="rtp-ext-ip" value="auto"/-->
+    <param name="rtp-ip" value="auto"/>
+    <param name="rtp-port-min" value="4000"/>
+    <param name="rtp-port-max" value="5000"/>
+    <!--param name="playout-delay" value="50"/-->
+    <!--param name="max-playout-delay" value="200"/-->
+    <!--param name="ptime" value="20"/-->
+    <param name="codecs" value="PCMU PCMA L16/96/8000"/>
+    <param name="jsgf-mime-type" value="application/jsgf"/>
+
+    <!-- Add any default MRCP params for SPEAK requests here -->
+    <synthparams>
+    </synthparams>
+
+    <!-- Add any default MRCP params for RECOGNIZE requests here -->
+    <recogparams>
+      <!--param name="start-input-timers" value="false"/-->
+    </recogparams>
+  </profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-1.0.0-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-1.0.0-mrcp-v1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0700dec629b5ac01abb8cacb4b8570677d3de3c9
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-1.0.0-mrcp-v1.xml
@@ -0,0 +1,39 @@
+<include>
+  <!-- Nuance MRCP 1.0.0 Server -->
+  <profile name="nuance-mrcp1" version="1">
+    <param name="server-ip" value="10.5.5.152"/>
+    <param name="server-port" value="554"/>
+    <param name="resource-location" value=""/>
+    <param name="speechsynth" value="synthesizer"/>
+    <param name="speechrecog" value="recognizer"/>
+    <!--param name="rtp-ext-ip" value="auto"/-->
+    <param name="rtp-ip" value="auto"/>
+    <param name="rtp-port-min" value="4000"/>
+    <param name="rtp-port-max" value="5000"/>
+    <!-- enable/disable rtcp support -->
+    <param name="rtcp" value="1"/>
+    <!-- rtcp bye policies (rtcp must be enabled first)
+         0 - disable rtcp bye
+         1 - send rtcp bye at the end of session
+         2 - send rtcp bye also at the end of each talkspurt (input)
+    -->
+    <param name="rtcp-bye" value="2"/>
+    <!-- rtcp transmission interval in msec (set 0 to disable) -->
+    <param name="rtcp-tx-interval" value="5000"/>
+    <!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
+    <param name="rtcp-rx-resolution" value="1000"/>
+    <!--param name="playout-delay" value="50"/-->
+    <!--param name="max-playout-delay" value="200"/-->
+    <!--param name="ptime" value="20"/-->
+    <param name="codecs" value="PCMU PCMA L16/96/8000"/>
+
+    <!-- Add any default MRCP params for SPEAK requests here -->
+    <synthparams>
+    </synthparams>
+
+    <!-- Add any default MRCP params for RECOGNIZE requests here -->
+    <recogparams>
+      <!--param name="start-input-timers" value="false"/-->
+    </recogparams>
+  </profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-5.0-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-5.0-mrcp-v1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3c4938a66da53fd00eb7d2f5cd2486b29072fc65
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-5.0-mrcp-v1.xml
@@ -0,0 +1,39 @@
+<include>
+  <!-- Nuance Speech Server 5.0 MRCPv1 -->
+  <profile name="nuance5-mrcp1" version="1">
+    <param name="server-ip" value="10.5.5.152"/>
+    <param name="server-port" value="4900"/>
+    <param name="resource-location" value="media"/>
+    <param name="speechsynth" value="speechsynthesizer"/>
+    <param name="speechrecog" value="speechrecognizer"/>
+    <!--param name="rtp-ext-ip" value="auto"/-->
+    <param name="rtp-ip" value="auto"/>
+    <param name="rtp-port-min" value="4000"/>
+    <param name="rtp-port-max" value="5000"/>
+    <!-- enable/disable rtcp support -->
+    <param name="rtcp" value="1"/>
+    <!-- rtcp bye policies (rtcp must be enabled first)
+             0 - disable rtcp bye
+             1 - send rtcp bye at the end of session
+             2 - send rtcp bye also at the end of each talkspurt (input)
+      -->
+    <param name="rtcp-bye" value="2"/>
+    <!-- rtcp transmission interval in msec (set 0 to disable) -->
+    <param name="rtcp-tx-interval" value="5000"/>
+    <!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
+    <param name="rtcp-rx-resolution" value="1000"/>
+    <!--param name="playout-delay" value="50"/-->
+    <!--param name="max-playout-delay" value="200"/-->
+    <!--param name="ptime" value="20"/-->
+    <param name="codecs" value="PCMU PCMA L16/96/8000"/>
+
+    <!-- Add any default MRCP params for SPEAK requests here -->
+    <synthparams>
+    </synthparams>
+
+    <!-- Add any default MRCP params for RECOGNIZE requests here -->
+    <recogparams>
+      <!--param name="start-input-timers" value="false"/-->
+    </recogparams>
+  </profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-5.0-mrcp-v2.xml b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-5.0-mrcp-v2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b53cba09849ecfb3ca7d1c68ac1693129e77af76
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/nuance-5.0-mrcp-v2.xml
@@ -0,0 +1,43 @@
+<include>
+  <!-- Nuance Speech Server 5.0 MRCPv2 -->
+  <profile name="nuance5-mrcp2" version="2">
+    <!--param name="client-ext-ip" value="auto"-->
+    <param name="client-ip" value="auto"/>
+    <param name="client-port" value="5090"/>
+    <param name="server-ip" value="10.5.5.152"/>
+    <param name="server-port" value="5060"/>
+    <!--param name="force-destination" value="1"/-->
+    <param name="sip-transport" value="udp"/>
+    <!--param name="ua-name" value="FreeSWITCH"/-->
+    <!--param name="sdp-origin" value="FreeSWITCH"/-->
+    <!--param name="rtp-ext-ip" value="auto"/-->
+    <param name="rtp-ip" value="auto"/>
+    <param name="rtp-port-min" value="4000"/>
+    <param name="rtp-port-max" value="5000"/>
+    <!-- enable/disable rtcp support -->
+    <param name="rtcp" value="1"/>
+    <!-- rtcp bye policies (rtcp must be enabled first)
+             0 - disable rtcp bye
+             1 - send rtcp bye at the end of session
+             2 - send rtcp bye also at the end of each talkspurt (input)
+    -->
+    <param name="rtcp-bye" value="2"/>
+    <!-- rtcp transmission interval in msec (set 0 to disable) -->
+    <param name="rtcp-tx-interval" value="5000"/>
+    <!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
+    <param name="rtcp-rx-resolution" value="1000"/>
+    <!--param name="playout-delay" value="50"/-->
+    <!--param name="max-playout-delay" value="200"/-->
+    <!--param name="ptime" value="20"/-->
+    <param name="codecs" value="PCMU PCMA L16/96/8000"/>
+
+    <!-- Add any default MRCP params for SPEAK requests here -->
+    <synthparams>
+    </synthparams>
+
+    <!-- Add any default MRCP params for RECOGNIZE requests here -->
+    <recogparams>
+      <!--param name="start-input-timers" value="false"/-->
+    </recogparams>
+  </profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/unimrcpserver-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/unimrcpserver-mrcp-v1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fe02b1582f9c01b06f157c3f69289a73aa13ac0d
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/unimrcpserver-mrcp-v1.xml
@@ -0,0 +1,27 @@
+<include>
+  <!-- UniMRCP Server MRCPv1 -->
+  <profile name="unimrcpserver-mrcp1" version="1">
+    <param name="server-ip" value="10.5.5.152"/>
+    <param name="server-port" value="1554"/>
+    <param name="resource-location" value=""/>
+    <param name="speechsynth" value="speechsynthesizer"/>
+    <param name="speechrecog" value="speechrecognizer"/>
+    <!--param name="rtp-ext-ip" value="auto"/-->
+    <param name="rtp-ip" value="auto"/>
+    <param name="rtp-port-min" value="4000"/>
+    <param name="rtp-port-max" value="5000"/>
+    <!--param name="playout-delay" value="50"/-->
+    <!--param name="max-playout-delay" value="200"/-->
+    <!--param name="ptime" value="20"/-->
+    <param name="codecs" value="PCMU PCMA L16/96/8000"/>
+
+    <!-- Add any default MRCP params for SPEAK requests here -->
+    <synthparams>
+    </synthparams>
+
+    <!-- Add any default MRCP params for RECOGNIZE requests here -->
+    <recogparams>
+      <!--param name="start-input-timers" value="false"/-->
+    </recogparams>
+  </profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/vestec-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/vestec-mrcp-v1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cbde87ca5acf93cab37f5e0009acc6f1562248a0
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/vestec-mrcp-v1.xml
@@ -0,0 +1,26 @@
+<include>
+  <!-- Vestec VASRE MRCP Server -->
+  <profile name="vestec-mrcp-v1" version="1">
+    <param name="server-ip" value="127.0.0.1"/>
+    <param name="server-port" value="1554"/>
+    <param name="resource-location" value=""/>
+    <param name="speechsynth" value="speechsynthesizer"/>
+    <param name="speechrecog" value="speechrecognizer"/>
+    <param name="rtp-ip" value="auto"/>
+    <param name="rtp-port-min" value="14000"/>
+    <param name="rtp-port-max" value="15000"/>
+    <!--param name="playout-delay" value="50"/-->
+    <!--param name="max-playout-delay" value="200"/-->
+    <!--param name="ptime" value="20"/-->
+    <param name="codecs" value="PCMU PCMA L16/96/8000"/>
+
+    <!-- Add any default MRCP params for SPEAK requests here -->
+    <synthparams>
+    </synthparams>
+
+    <!-- Add any default MRCP params for RECOGNIZE requests here -->
+    <recogparams>
+      <!--param name="start-input-timers" value="false"/-->
+    </recogparams>
+  </profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/voxeo-prophecy-8.0-mrcp-v1.xml b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/voxeo-prophecy-8.0-mrcp-v1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fb1d0ee287c52030006600a5c1323abd93e8e218
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/mrcp_profiles/voxeo-prophecy-8.0-mrcp-v1.xml
@@ -0,0 +1,27 @@
+<include>
+  <!-- Voxeo Prophecy 8.0 MRCPv1 -->
+  <profile name="voxeo-prophecy8.0-mrcp1" version="1">
+    <param name="server-ip" value="99.185.85.31"/>
+    <param name="server-port" value="554"/>
+    <param name="resource-location" value=""/>
+    <param name="speechsynth" value="synthesizer"/>
+    <param name="speechrecog" value="recognizer"/>
+    <!--param name="rtp-ext-ip" value="auto"/-->
+    <param name="rtp-ip" value="auto"/>
+    <param name="rtp-port-min" value="4000"/>
+    <param name="rtp-port-max" value="5000"/>
+    <!--param name="playout-delay" value="50"/-->
+    <!--param name="max-playout-delay" value="200"/-->
+    <!--param name="ptime" value="20"/-->
+    <param name="codecs" value="PCMU PCMA L16/96/8000"/>
+
+    <!-- Add any default MRCP params for SPEAK requests here -->
+    <synthparams>
+    </synthparams>
+
+    <!-- Add any default MRCP params for RECOGNIZE requests here -->
+    <recogparams>
+      <!--param name="start-input-timers" value="false"/-->
+    </recogparams>
+  </profile>
+</include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/notify-voicemail.tpl b/bbb-voice-conference/config/freeswitch/conf/notify-voicemail.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..365faa29211e2f5032e16813f2701507e6a427d9
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/notify-voicemail.tpl
@@ -0,0 +1,44 @@
+From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}>
+Date: ${RFC2822_DATE}
+To: <${voicemail_notify_email}>
+Subject: Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}
+X-Priority: ${voicemail_priority}
+X-Mailer: FreeSWITCH
+
+Content-Type: multipart/alternative; 
+	boundary="000XXX000"
+
+--000XXX000
+Content-Type: text/plain; charset=ISO-8859-1; Format=Flowed
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+Created: ${voicemail_time}
+From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}>
+Duration: ${voicemail_message_len}
+Account: ${voicemail_account}@${voicemail_domain}
+
+--000XXX000
+Content-Type: text/html; charset=ISO-8859-1
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}</title>
+<meta content="text/html; charset=iso-8859-1" http-equiv="content-type"/>
+</head>
+<body>
+
+<font face=arial>
+<b>Message From "${voicemail_caller_id_name}" <A HREF="tel:${voicemail_caller_id_number}">${voicemail_caller_id_number}</A></b><br>
+<hr noshade size=1>
+Created: ${voicemail_time}<br>
+Duration: ${voicemail_message_len}<br>
+Account: ${voicemail_account}@${voicemail_domain}<br>
+</font>
+
+</body>
+</html>
+--000XXX000--
diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external-ipv6.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external-ipv6.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5efa79b5f14d48566b4d63b623684ffd9b49db9f
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external-ipv6.xml
@@ -0,0 +1,113 @@
+<profile name="external-ipv6">
+  <!-- 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-ipv6/*.xml"/>
+  </gateways>
+
+  <aliases>
+    <!--
+        <alias name="outbound"/>
+        <alias name="nat"/>
+    -->
+  </aliases>
+
+  <domains>
+    <!--<domain name="all" alias="false" parse="true"/>-->
+  </domains>
+
+  <settings>
+    <param name="debug" value="0"/>
+    <!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
+    <!-- <param name="shutdown-on-fail" value="true"/> -->
+    <param name="sip-trace" value="no"/>
+    <param name="sip-capture" value="no"/>
+    <param name="rfc2833-pt" value="101"/>
+    <!-- RFC 5626 : Send reg-id and sip.instance -->
+    <!--<param name="enable-rfc-5626" value="true"/> -->
+    <param name="sip-port" value="$${external_sip_port}"/>
+    <param name="dialplan" value="XML"/>
+    <param name="context" value="public"/>
+    <param name="dtmf-duration" value="2000"/>
+    <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
+    <param name="outbound-codec-prefs" value="$${outbound_codec_prefs}"/>
+    <param name="hold-music" value="$${hold_music}"/>
+    <param name="rtp-timer-name" value="soft"/>
+    <!--<param name="enable-100rel" value="true"/>-->
+    <!--<param name="disable-srv503" value="true"/>-->
+    <!-- This could be set to "passive" -->
+    <param name="local-network-acl" value="localnet.auto"/>
+    <param name="manage-presence" value="false"/>
+
+    <!-- Added for Microsoft Edge support 
+    <param name="apply-candidate-acl" value="wan_v6.auto"/>
+    <param name="apply-candidate-acl" value="rfc1918.auto"/>
+    <param name="apply-candidate-acl" value="any_v6.auto"/>
+    <param name="apply-candidate-acl" value="wan_v4.auto"/>
+    <param name="apply-candidate-acl" value="any_v4.auto"/>
+    -->
+    <param name="apply-candidate-acl" value="deny_private_v6"/>
+
+    <!-- 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"/>
+    <param name="inbound-late-negotiation" value="true"/>
+    <param name="inbound-zrtp-passthru" value="true"/> <!-- (also enables late negotiation) -->
+    <!--
+        DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
+    -->
+    <param name="rtp-ip" value="$${local_ip_v6}"/>
+    <param name="sip-ip" value="$${local_ip_v6}"/>
+    <!-- Shouldn't set these on IPv6 -->
+    <!--<param name="ext-rtp-ip" value="auto-nat"/>-->
+    <!--<param name="ext-sip-ip" value="auto-nat"/>-->
+    <param name="rtp-timeout-sec" value="300"/>
+    <param name="rtp-hold-timeout-sec" value="1800"/>
+    <!--<param name="enable-3pcc" value="true"/>-->
+
+    <!-- TLS: disabled by default, set to "true" to enable -->
+    <param name="tls" value="$${external_ssl_enable}"/>
+    <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
+    <param name="tls-only" value="false"/>
+    <!-- additional bind parameters for TLS -->
+    <param name="tls-bind-params" value="transport=tls"/>
+    <!-- Port to listen on for TLS requests. (5081 will be used if unspecified) -->
+    <param name="tls-sip-port" value="$${external_tls_port}"/>
+    <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
+    <!--<param name="tls-cert-dir" value=""/>-->
+    <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
+    <param name="tls-passphrase" value=""/>
+    <!-- Verify the date on TLS certificates -->
+    <param name="tls-verify-date" value="true"/>
+    <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
+    <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'subjects_in', 'subjects_out' and 'subjects_all' for subject validation. Multiple policies can be split with a '|' pipe -->
+    <param name="tls-verify-policy" value="none"/>
+    <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
+    <param name="tls-verify-depth" value="2"/>
+    <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
+    <param name="tls-verify-in-subjects" value=""/>
+    <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
+    <param name="tls-version" value="$${sip_tls_version}"/>
+    <param name="ws-binding" value=":5066"/>
+    <param name="wss-binding" value=":7443"/>
+    <param name="rtcp-audio-interval-msec" value="5000"/>
+    <param name="rtcp-video-interval-msec" value="5000"/>
+    <param name="dtmf-type" value="info"/>
+    <param name="liberal-dtmf" value="true"/>
+  </settings>
+</profile>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal/example.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external-ipv6/example.xml
similarity index 86%
rename from bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal/example.xml
rename to bbb-voice-conference/config/freeswitch/conf/sip_profiles/external-ipv6/example.xml
index fc061f96d18c90edaede5131cffd878d4d4e1575..d8fe39539a94547961fd95bfb2a9cb21ec715f80 100644
--- a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal/example.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external-ipv6/example.xml
@@ -9,7 +9,7 @@
   <!--/// 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"/>--> 
+  <!--<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 ///-->
@@ -27,11 +27,15 @@
   <!--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"/>-->
+  <!--<param name="contact-params" value=""/>-->
   <!-- Put the extension in the contact -->
   <!--<param name="extension-in-contact" value="true"/>-->
   <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
   <!--<param name="ping" value="25"/>-->
   <!--<param name="cid-type" value="rpid"/>-->
+  <!--rfc5626 : Abilitazione rfc5626 ///-->
+  <!--<param name="rfc-5626" value="true"/>-->
+  <!--rfc5626 : extra sip params to send in the contact-->
+  <!--<param name="reg-id" value="1"/>-->
   <!--</gateway>-->
 </include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external.xml
index 8f1076364cac461a12523c33bc081cc2ca6cff9f..c93346d59e671c993ec94620b16ef29fd0e555a6 100644
--- a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external.xml
@@ -1,14 +1,14 @@
 <profile name="external">
-  <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files --> 
+  <!-- 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"/>
+    <!--
+        <alias name="outbound"/>
+        <alias name="nat"/>
     -->
   </aliases>
 
@@ -18,10 +18,13 @@
 
   <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"/> -->
+    <!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
+    <!-- <param name="shutdown-on-fail" value="true"/> -->
     <param name="sip-trace" value="no"/>
+    <param name="sip-capture" value="no"/>
     <param name="rfc2833-pt" value="101"/>
+    <!-- RFC 5626 : Send reg-id and sip.instance -->
+    <!--<param name="enable-rfc-5626" value="true"/> -->
     <param name="sip-port" value="$${external_sip_port}"/>
     <param name="dialplan" value="XML"/>
     <param name="context" value="public"/>
@@ -31,14 +34,22 @@
     <param name="hold-music" value="$${hold_music}"/>
     <param name="rtp-timer-name" value="soft"/>
     <!--<param name="enable-100rel" value="true"/>-->
+    <!--<param name="disable-srv503" value="true"/>-->
     <!-- This could be set to "passive" -->
     <param name="local-network-acl" value="localnet.auto"/>
     <param name="manage-presence" value="false"/>
 
-    <!-- used to share presence info across sofia profiles 
-	 manage-presence needs to be set to passive on this profile
-	 if you want it to behave as if it were the internal profile 
-	 for presence.
+
+    <!-- Added for Microsoft Edge browser -->
+    <param name="apply-candidate-acl" value="localnet.auto"/>
+    <param name="apply-candidate-acl" value="wan_v4.auto"/>
+    <param name="apply-candidate-acl" value="rfc1918.auto"/>
+    <param name="apply-candidate-acl" value="any_v4.auto"/>
+
+    <!-- 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"/>-->
@@ -52,27 +63,57 @@
     <param name="inbound-codec-negotiation" value="generous"/>
     <param name="nonce-ttl" value="60"/>
     <param name="auth-calls" value="false"/>
+    <param name="inbound-late-negotiation" value="true"/>
+    <param name="inbound-zrtp-passthru" value="true"/> <!-- (also enables late negotiation) -->
     <!--
-	DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
-    -->
+        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-ip" value="$${local_ip_v4}"/>
+    <param name="sip-ip" value="$${local_ip_v4}"/>
+    <param name="ext-rtp-ip" value="$${local_ip_v4}"/>
+    <param name="ext-sip-ip" value="$${local_ip_v4}"/>
+
     <param name="rtp-timeout-sec" value="300"/>
     <param name="rtp-hold-timeout-sec" value="1800"/>
-    <!--<param name="enable-3pcc" value="true"/>-->
+    <param name="enable-3pcc" value="proxy"/>
 
     <!-- TLS: disabled by default, set to "true" to enable -->
     <param name="tls" value="$${external_ssl_enable}"/>
+    <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
+    <param name="tls-only" value="false"/>
     <!-- additional bind parameters for TLS -->
     <param name="tls-bind-params" value="transport=tls"/>
     <!-- Port to listen on for TLS requests. (5081 will be used if unspecified) -->
     <param name="tls-sip-port" value="$${external_tls_port}"/>
     <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
-    <param name="tls-cert-dir" value="$${external_ssl_dir}"/>
+    <!--<param name="tls-cert-dir" value=""/>-->
+    <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
+    <param name="tls-passphrase" value=""/>
+    <!-- Verify the date on TLS certificates -->
+    <param name="tls-verify-date" value="true"/>
+    <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
+    <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
+    <param name="tls-verify-policy" value="none"/>
+    <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
+    <param name="tls-verify-depth" value="2"/>
+    <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
+    <param name="tls-verify-in-subjects" value=""/>
     <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
     <param name="tls-version" value="$${sip_tls_version}"/>
+    <param name="ws-binding"  value=":5066"/>
+    <param name="wss-binding"  value=":7443"/>
+
+    <!-- enable rtcp on every channel also can be done per leg basis with rtcp_audio_interval_msec variable set to passthru to pass it across a call-->
+    <param name="rtcp-audio-interval-msec" value="5000"/>
+    <param name="rtcp-video-interval-msec" value="5000"/>
 
+    <!-- Cut down in the join time -->
+    <param name="dtmf-type" value="info"/>
+    <param name="liberal-dtmf" value="true"/>
   </settings>
 </profile>
diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external/example.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external/example.xml
index 7ac8db11860a0aed7fb0110c86fbed0c09265ca5..d8fe39539a94547961fd95bfb2a9cb21ec715f80 100644
--- a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external/example.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/external/example.xml
@@ -9,7 +9,7 @@
   <!--/// 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"/>--> 
+  <!--<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 ///-->
@@ -27,8 +27,15 @@
   <!--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"/>-->
+  <!--<param name="contact-params" value=""/>-->
+  <!-- Put the extension in the contact -->
+  <!--<param name="extension-in-contact" value="true"/>-->
   <!--send an options ping every x seconds, failure will unregister and/or mark it down-->
   <!--<param name="ping" value="25"/>-->
+  <!--<param name="cid-type" value="rpid"/>-->
+  <!--rfc5626 : Abilitazione rfc5626 ///-->
+  <!--<param name="rfc-5626" value="true"/>-->
+  <!--rfc5626 : extra sip params to send in the contact-->
+  <!--<param name="reg-id" value="1"/>-->
   <!--</gateway>-->
 </include>
diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal-ipv6.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal-ipv6.xml
index 37ff58b31039e63807bd0e2adce529a4b0f138f0..b4aa0e7fe56c4727c96e82ccd88bc94b4614c4a8 100644
--- a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal-ipv6.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal-ipv6.xml
@@ -5,6 +5,7 @@
   <!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
   <!--aliases are other names that will work as a valid profile name for this profile-->
   <settings>
+    <!-- Can be set to "_undef_" to remove the User-Agent header -->
     <!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
     <param name="debug" value="0"/>
     <param name="sip-trace" value="no"/>
@@ -24,7 +25,16 @@
     <param name="sip-ip" value="$${local_ip_v6}"/>
     <param name="hold-music" value="$${hold_music}"/>
     <!--<param name="enable-100rel" value="false"/>-->
+    <!--<param name="disable-srv503" value="true"/>-->
     <param name="apply-inbound-acl" value="domains"/>
+
+    <!-- Added for Microsoft Edge support -->
+    <param name="apply-candidate-acl" value="wan_v6.auto"/>
+    <param name="apply-candidate-acl" value="rfc1918.auto"/>
+    <param name="apply-candidate-acl" value="any_v6.auto"/>
+    <param name="apply-candidate-acl" value="wan_v4.auto"/>
+    <param name="apply-candidate-acl" value="any_v4.auto"/>
+
     <!--<param name="apply-register-acl" value="domains"/>-->
     <!--<param name="dtmf-type" value="info"/>-->
     <param name="record-template" value="$${recordings_dir}/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
@@ -53,36 +63,39 @@
     <param name="tls-cert-dir" value="$${internal_ssl_dir}"/>
     <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
     <param name="tls-version" value="$${sip_tls_version}"/>
-    
+
     <!--If you don't want to pass through timestampes from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
     <!--<param name="rtp-rewrite-timestamps" value="true"/>-->
     <!--<param name="pass-rfc2833" value="true"/>-->
     <!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
     <!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
-    
+
     <!--Uncomment to set all inbound calls to no media mode-->
     <!--<param name="inbound-bypass-media" value="true"/>-->
 
     <!--Uncomment to set all inbound calls to proxy media mode-->
     <!--<param name="inbound-proxy-media" value="true"/>-->
-    
-    <!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok-->
-    <!--<param name="inbound-late-negotiation" value="true"/>-->
-    
+
+    <!-- Let calls hit the dialplan before selecting codec for the a-leg -->
+    <param name="inbound-late-negotiation" value="true"/>
+
+    <!-- Allow ZRTP clients to negotiate end-to-end security associations (also enables late negotiation) -->
+    <param name="inbound-zrtp-passthru" 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-->
+    <!--Uncomment if you want to force the outbound leg of a bridge to only offer the codec
+        that the originator is using-->
     <!--<param name="disable-transcoding" value="true"/>-->
     <!-- Used for when phones respond to a challenged ACK with method INVITE in the hash -->
     <!--<param name="NDLB-broken-auth-hash" value="true"/>-->
@@ -91,6 +104,7 @@
     <param name="auth-calls" value="$${internal_auth_calls}"/>
     <!-- on authed calls, authenticate *all* the packets not just invite -->
     <param name="auth-all-packets" value="false"/>
+    <!-- Shouldn't set these on IPv6 -->
     <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip}"/> -->
     <!-- <param name="ext-sip-ip" value="$${external_sip_ip}"/> -->
     <!-- rtp inactivity timeout -->
@@ -102,8 +116,8 @@
     <!-- <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.
+        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 -->
@@ -120,9 +134,9 @@
     <!-- set to true to have the profile determine stun is not useful and turn it off globally-->
     <!--<param name="stun-auto-disable" value="true"/>-->
 
-	 <!-- the following can be used as workaround with bogus SRV/NAPTR records -->
-	 <!--<param name="disable-srv" value="false" />-->
-	 <!--<param name="disable-naptr" value="false" />-->
+    <!-- the following can be used as workaround with bogus SRV/NAPTR records -->
+    <!--<param name="disable-srv" value="false" />-->
+    <!--<param name="disable-naptr" value="false" />-->
 
   </settings>
 </profile>
diff --git a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal.xml b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal.xml
index dd1595d5ba717810d271fa8ac2d7190b46114d33..b9a9f68a3cf7ca2df56bf551708925c94c656101 100644
--- a/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/sip_profiles/internal.xml
@@ -2,47 +2,88 @@
   <!--
       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"/>
+        <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"/> 
+    <domain name="all" alias="true" parse="false"/>
   </domains>
-  
+
   <settings>
+
+
+    <!-- inject delay between dtmf digits on send to help some slow interpreters (also per channel with rtp_digit_delay var -->
+    <!-- <param name="rtp-digit-delay" value="40"/>-->
+
     <!--
-	When calls are in no media this will bring them back to media
-	when you press the hold button.
+        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.
+        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"/>-->
+
+    <!-- Can be set to "_undef_" to remove the User-Agent header -->
     <!-- <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"/> -->
+    <!-- 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="sip-capture" value="no"/>
+
+    <!-- Use presence_map.conf.xml to convert extension regex to presence protos for routing -->
+    <!-- <param name="presence-proto-lookup" value="true"/> -->
+
+
+    <!-- Don't be picky about negotiated DTMF just always offer 2833 and accept both 2833 and INFO -->
+    <!--<param name="liberal-dtmf" value="true"/>-->
+
+
+    <!--
+        Sometimes, in extremely rare edge cases, the Sofia SIP stack may stop
+        responding. These options allow you to enable and control a watchdog
+        on the Sofia SIP stack so that if it stops responding for the
+        specified number of milliseconds, it will cause FreeSWITCH to crash
+        immediately. This is useful if you run in an HA environment and
+        need to ensure automated recovery from such a condition. Note that if
+        your server is idle a lot, the watchdog may fire due to not receiving
+        any SIP messages. Thus, if you expect your system to be idle, you
+        should leave the watchdog disabled. It can be toggled on and off
+        through the FreeSWITCH CLI either on an individual profile basis or
+        globally for all profiles. So, if you run in an HA environment with a
+        master and slave, you should use the CLI to make sure the watchdog is
+        only enabled on the master.
+        If such crash occurs, FreeSWITCH will dump core if allowed. The
+        stacktrace will include function watchdog_triggered_abort().
+    -->
+    <param name="watchdog-enabled" value="no"/>
+    <param name="watchdog-step-timeout" value="30000"/>
+    <param name="watchdog-event-timeout" value="30000"/>
+
+    <param name="log-auth-failures" value="false"/>
+    <param name="forward-unsolicited-mwi-notify" value="false"/>
+
     <param name="context" value="public"/>
     <param name="rfc2833-pt" value="101"/>
     <!-- port to bind to for sip traffic -->
@@ -59,36 +100,53 @@
     <param name="hold-music" value="$${hold_music}"/>
     <param name="apply-nat-acl" value="nat.auto"/>
 
+
+    <!-- (default true) set to false if you do not wish to have called party info in 1XX responses -->
+    <!-- <param name="cid-in-1xx" value="false"/> -->
+
     <!-- extended info parsing -->
     <!-- <param name="extended-info-parsing" value="true"/> -->
 
     <!--<param name="aggressive-nat-detection" value="true"/>-->
     <!--
-	There are known issues (asserts and segfaults) when 100rel is enabled.
-	It is not recommended to enable 100rel at this time.
+        There are known issues (asserts and segfaults) when 100rel is enabled.
+        It is not recommended to enable 100rel at this time.
     -->
     <!--<param name="enable-100rel" value="true"/>-->
+
+    <!-- uncomment if you don't wish to try a next SRV destination on 503 response -->
+    <!-- RFC3263 Section 4.3 -->
+    <!--<param name="disable-srv503" value="true"/>-->
+
     <!-- Enable Compact SIP headers. -->
     <!--<param name="enable-compact-headers" value="true"/>-->
     <!--
-	enable/disable session timers 
+        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.
+        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"/>-->
 
+    <!-- Added for Microsoft Edge support -->
+    <param name="apply-candidate-acl" value="wan_v6.auto"/>
+    <param name="apply-candidate-acl" value="rfc1918.auto"/>
+    <param name="apply-candidate-acl" value="any_v6.auto"/>
+    <param name="apply-candidate-acl" value="wan_v4.auto"/>
+    <param name="apply-candidate-acl" value="any_v4.auto"/>
 
     <!-- 'true' means every time 'first-only' means on the first register -->
     <!--<param name="send-message-query-on-register" value="true"/>-->
-    
-      
+
+    <!-- 'true' means every time 'first-only' means on the first register -->
+    <!--<param name="send-presence-on-register" value="first-only"/> -->
+
 
     <!-- Caller-ID type (choose one, can be overridden by inbound call type and/or sip_cid_type channel variable -->
     <!-- Remote-Party-ID header -->
@@ -106,13 +164,16 @@
     <param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
     <!--enable to use presence -->
     <param name="manage-presence" value="true"/>
+    <!-- send a presence probe on each register to query devices to send presence instead of sending presence with less info -->
+    <!--<param name="presence-probe-on-register" value="true"/>-->
     <!--<param name="manage-shared-appearance" value="true"/>-->
     <!-- used to share presence info across sofia profiles -->
     <!-- Name of the db to use for this profile -->
     <!--<param name="dbname" value="share_presence"/>-->
-    <!--<param name="presence-hosts" value="$${domain}"/>-->
+    <param name="presence-hosts" value="$${domain},$${local_ip_v4}"/>
+    <param name="presence-privacy" value="$${presence_privacy}"/>
     <!-- ************************************************* -->
-    
+
     <!-- This setting is for AAL2 bitpacking on G726 -->
     <!-- <param name="bitpacking" value="aal2"/> -->
     <!--max number of open dialogs in proceeding -->
@@ -126,51 +187,80 @@
     <!-- 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"/>-->
+    <!-- Send an OPTIONS packet to all registered endpoints -->
+    <!--<param name="all-reg-options-ping" value="true"/>-->
+    <!-- Send an OPTIONS packet to NATed registered endpoints. Can be 'true' or 'udp-only'. -->
+    <!--<param name="nat-options-ping" value="true"/>-->
+    <!--<param name="sip-options-respond-503-on-busy" value="true"/>-->
+    <!--<param name="sip-messages-respond-200-ok" value="true"/>-->
+    <!--<param name="sip-subscribe-respond-200-ok" value="true"/>-->
 
     <!-- TLS: disabled by default, set to "true" to enable -->
     <param name="tls" value="$${internal_ssl_enable}"/>
+    <!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
+    <param name="tls-only" value="false"/>
     <!-- additional bind parameters for TLS -->
     <param name="tls-bind-params" value="transport=tls"/>
     <!-- Port to listen on for TLS requests. (5061 will be used if unspecified) -->
     <param name="tls-sip-port" value="$${internal_tls_port}"/>
     <!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
-    <param name="tls-cert-dir" value="$${internal_ssl_dir}"/>
-    <!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
+    <!--<param name="tls-cert-dir" value=""/>-->
+    <!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
+    <param name="tls-passphrase" value=""/>
+    <!-- Verify the date on TLS certificates -->
+    <param name="tls-verify-date" value="true"/>
+    <!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
+    <!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'subjects_in', 'subjects_out' and 'subjects_all' for subject validation. Multiple policies can be split with a '|' pipe -->
+    <param name="tls-verify-policy" value="none"/>
+    <!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
+    <param name="tls-verify-depth" value="2"/>
+    <!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
+    <param name="tls-verify-in-subjects" value=""/>
+    <!-- TLS version default: tlsv1,tlsv1.1,tlsv1.2 -->
     <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)-->
+    <!-- TLS ciphers default: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH  -->
+    <param name="tls-ciphers" value="$${sip_tls_ciphers}"/>
+
+    <!-- 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"/>-->
-    
+
+    <!-- Or, if you have PGSQL support, you can use that -->
+    <!--<param name="odbc-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'" />-->
+
     <!--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"/>-->
-    
+
+    <!-- Let calls hit the dialplan before selecting codec for the a-leg -->
+    <param name="inbound-late-negotiation" value="true"/>
+
+    <!-- Allow ZRTP clients to negotiate end-to-end security associations (also enables late negotiation) -->
+    <param name="inbound-zrtp-passthru" 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-->
+    <!--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"/> -->
@@ -187,16 +277,16 @@
     <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
-       -->
+         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"/>
 
@@ -209,8 +299,8 @@
     <!-- <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.
+        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 -->
@@ -220,38 +310,54 @@
     <!--all inbound reg will stored in the db using this domain -->
     <param name="force-register-db-domain" value="$${domain}"/>
 
+
+    <!-- for sip over websocket support -->
+    <!-- param name="ws-binding"  value=":5066"/ -->
+
+    <!-- for sip over secure websocket support -->
+    <!-- You need wss.pem in $${certs_dir} for wss or one will be created for you -->
+    <!-- param name="wss-binding" value=":7443"/ -->    
+
+    <!--<param name="delete-subs-on-register" value="false"/>-->
+
+    <!-- launch a new thread to process each new inbound register when using heavier backends -->
+    <!-- <param name="inbound-reg-in-new-thread" value="true"/> -->
+
     <!-- enable rtcp on every channel also can be done per leg basis with rtcp_audio_interval_msec variable set to passthru to pass it across a call-->
     <!--<param name="rtcp-audio-interval-msec" value="5000"/>-->
     <!--<param name="rtcp-video-interval-msec" value="5000"/>-->
 
     <!--force suscription expires to a lower value than requested-->
     <!--<param name="force-subscription-expires" value="60"/>-->
+
+    <!-- add a random deviation to the expires value of the 202 Accepted -->
+    <!--<param name="sip-subscription-max-deviation" value="120"/>-->
+
     <!-- 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
+    <!--
+        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"/>-->
-	
+    <param name="enable-3pcc" value="proxy"/>
+
     <!-- 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
+        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"/>-->
@@ -265,49 +371,58 @@
     <!-- 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 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
+           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" /> -->
-    
+    <!-- the following can be used as workaround with bogus SRV/NAPTR records -->
+    <!--<param name="disable-srv" value="false" />-->
+    <!--<param name="disable-naptr" value="false" />-->
+
+    <!-- The following can be used to fine-tune timers within sofia's transport layer
+         Those settings are for advanced users and can safely be left as-is -->
+
+    <!-- Initial retransmission interval (in milliseconds).
+         Set the T1 retransmission interval used by the SIP transaction engine.
+         The T1 is the initial duration used by request retransmission timers A and E (UDP) as well as response retransmission timer G.   -->
+    <!-- <param name="timer-T1" value="500" /> -->
+
+    <!--  Transaction timeout (defaults to T1 * 64).
+         Set the T1x64 timeout value used by the SIP transaction engine.
+         The T1x64 is duration used for timers B, F, H, and J (UDP) by the SIP transaction engine.
+         The timeout value T1x64 can be adjusted separately from the initial retransmission interval T1. -->
+    <!-- <param name="timer-T1X64" value="32000" /> -->
+
+
+    <!-- Maximum retransmission interval (in milliseconds).
+         Set the maximum retransmission interval used by the SIP transaction engine.
+         The T2 is the maximum duration used for the timers E (UDP) and G by the SIP transaction engine.
+         Note that the timer A is not capped by T2. Retransmission interval of INVITE requests grows exponentially
+         until the timer B fires.  -->
+    <!-- <param name="timer-T2" value="4000" /> -->
+
+    <!--
+        Transaction lifetime (in milliseconds).
+        Set the lifetime for completed transactions used by the SIP transaction engine.
+        A completed transaction is kept around for the duration of T4 in order to catch late responses.
+        The T4 is the maximum duration for the messages to stay in the network and the duration of SIP timer K. -->
+    <!-- <param name="timer-T4" value="4000" /> -->
+
+    <!-- Turn on a jitterbuffer for every call -->
+    <!-- <param name="auto-jitterbuffer-msec" value="60"/> -->
+
+
+    <!-- By default mod_sofia will ignore the codecs in the sdp for hold/unhold operations
+         Set this to true if you want to actually parse the sdp and re-negotiate the codec during hold/unhold.
+         It's probably not what you want so stick with the default unless you really need to change this.
+    -->
+    <!--<param name="renegotiate-codec-on-hold" value="true"/>-->
+
   </settings>
 </profile>
-
diff --git a/bbb-voice-conference/config/freeswitch/conf/skinny_profiles/internal.xml b/bbb-voice-conference/config/freeswitch/conf/skinny_profiles/internal.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cf93f4a06504836b5ef1f3bd52666f0e96857cdd
--- /dev/null
+++ b/bbb-voice-conference/config/freeswitch/conf/skinny_profiles/internal.xml
@@ -0,0 +1,40 @@
+<profile name="internal">
+  <settings>
+    <param name="domain" value="$${domain}"/>
+    <param name="ip" value="$${local_ip_v4}"/>
+    <param name="port" value="2000"/>
+    <param name="patterns-dialplan" value="XML"/>
+    <param name="patterns-context" value="skinny-patterns"/>
+    <param name="dialplan" value="XML"/>
+    <param name="context" value="default"/>
+    <param name="keep-alive" value="60"/>
+    <param name="date-format" value="D/M/Y"/>
+    <param name="odbc-dsn" value=""/>
+    <param name="debug" value="4"/>
+    <param name="auto-restart" value="true"/>
+
+    <!-- timeout to wait for another digit in milliseconds -->
+    <param name="digit-timeout" value="10000"/>
+  </settings>
+  <soft-key-set-sets>
+    <soft-key-set-set name="default">
+      <soft-key-set name="KeySetOnHook" value="SoftkeyNewcall,SoftkeyRedial"/>
+      <soft-key-set name="KeySetConnected" value="SoftkeyEndcall,SoftkeyHold,SoftkeyNewcall,SoftkeyTransfer"/>
+      <soft-key-set name="KeySetOnHold" value="SoftkeyNewcall,SoftkeyResume,SoftkeyEndcall"/>
+      <soft-key-set name="KeySetRingIn" value="SoftkeyAnswer,SoftkeyEndcall,SoftkeyNewcall"/>
+      <soft-key-set name="KeySetOffHook" value=",SoftkeyRedial,SoftkeyEndcall"/>
+      <soft-key-set name="KeySetConnectedWithTransfer" value="SoftkeyEndcall,SoftkeyHold,SoftkeyNewcall,SoftkeyTransfer"/>
+      <soft-key-set name="KeySetDigitsAfterDialingFirstDigit" value="SoftkeyBackspace,,SoftkeyEndcall"/>
+      <!-- <soft-key-set name="KeySetConnectedWithConference" value=""/> -->
+      <soft-key-set name="KeySetRingOut" value=",,SoftkeyEndcall,SoftkeyTransfer"/>
+      <soft-key-set name="KeySetOffHookWithFeatures" value=",SoftkeyRedial,SoftkeyEndcall"/>
+      <soft-key-set name="KeySetInUseHint" value="SoftkeyNewcall,SoftkeyRedial"/>
+    </soft-key-set-set>
+  </soft-key-set-sets>
+  <device-types>
+    <device-type id="Cisco ATA 186">
+        <param name="firmware-version" value="ATA030101SCCP04"/>
+    </device-type>
+  </device-types>
+</profile>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/vars.xml b/bbb-voice-conference/config/freeswitch/conf/vars.xml
index f08e84499d5732e8dbfef436445998b3f5090ef4..7590067ca373745181d95ea695d9f315bcfdc865 100644
--- a/bbb-voice-conference/config/freeswitch/conf/vars.xml
+++ b/bbb-voice-conference/config/freeswitch/conf/vars.xml
@@ -1,48 +1,182 @@
 <include>
   <!-- Preprocessor Variables
-       These are introduced when configuration strings must be consistent across modules. 
+       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 
-       
+
+       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 
+
+       WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
   -->
   <X-PRE-PROCESS cmd="set" data="default_password=1234"/>
   <!-- Did you change it yet? -->
+  <!--
+      The following variables are set dynamically - calculated if possible by freeswitch - and
+      are available to the config as $${variable}.  You can see their calculated value via fs_cli
+      by entering eval $${variable}
+
+      hostname
+      local_ip_v4
+      local_mask_v4
+      local_ip_v6
+      switch_serial
+      base_dir
+      recordings_dir
+      sound_prefix
+      sounds_dir
+      conf_dir
+      log_dir
+      run_dir
+      db_dir
+      mod_dir
+      htdocs_dir
+      script_dir
+      temp_dir
+      grammar_dir
+      certs_dir
+      storage_dir
+      cache_dir
+      core_uuid
+      zrtp_enabled
+      nat_public_addr
+      nat_private_addr
+      nat_type
+
+  -->
+
 
   <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 
+
+      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="local_ip_v4=10.0.3.66"/>
+
   <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"/>
-
+  <X-PRE-PROCESS cmd="set" data="use_profile=external"/>
+  <X-PRE-PROCESS cmd="set" data="rtp_sdes_suites=AEAD_AES_256_GCM_8|AEAD_AES_128_GCM_8|AES_CM_256_HMAC_SHA1_80|AES_CM_192_HMAC_SHA1_80|AES_CM_128_HMAC_SHA1_80|AES_CM_256_HMAC_SHA1_32|AES_CM_192_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_32|AES_CM_128_NULL_AUTH"/>
   <!--
       Enable ZRTP globally you can override this on a per channel basis
-      
+
       http://wiki.freeswitch.org/wiki/ZRTP (on how to enable zrtp)
   -->
   <X-PRE-PROCESS cmd="set" data="zrtp_secure_media=true"/>
+  <!--
+      NOTICE: When using SRTP it's critical that you do not offer or accept
+      variable bit rate codecs, doing so would leak information and possibly
+      compromise your SRTP stream. (FS-6404)
+
+      Supported SRTP Crypto Suites:
+
+      AEAD_AES_256_GCM_8
+      ____________________________________________________________________________
+      This algorithm is identical to AEAD_AES_256_GCM (see Section 5.2 of
+      [RFC5116]), except that the tag length, t, is 8, and an
+      authentication tag with a length of 8 octets (64 bits) is used.
+      An AEAD_AES_256_GCM_8 ciphertext is exactly 8 octets longer than its
+      corresponding plaintext.
+
+
+      AEAD_AES_128_GCM_8
+      ____________________________________________________________________________
+      This algorithm is identical to AEAD_AES_128_GCM (see Section 5.1 of
+      [RFC5116]), except that the tag length, t, is 8, and an
+      authentication tag with a length of 8 octets (64 bits) is used.
+      An AEAD_AES_128_GCM_8 ciphertext is exactly 8 octets longer than its
+      corresponding plaintext.
+
+
+      AES_CM_256_HMAC_SHA1_80 | AES_CM_192_HMAC_SHA1_80 | AES_CM_128_HMAC_SHA1_80
+      ____________________________________________________________________________
+      AES_CM_128_HMAC_SHA1_80 is the SRTP default AES Counter Mode cipher
+      and HMAC-SHA1 message authentication with an 80-bit authentication
+      tag. The master-key length is 128 bits and has a default lifetime of
+      a maximum of 2^48 SRTP packets or 2^31 SRTCP packets, whichever comes
+      first.
+
+
+      AES_CM_256_HMAC_SHA1_32 | AES_CM_192_HMAC_SHA1_32 | AES_CM_128_HMAC_SHA1_32
+      ____________________________________________________________________________
+      This crypto-suite is identical to AES_CM_128_HMAC_SHA1_80 except that
+      the authentication tag is 32 bits. The length of the base64-decoded key and
+      salt value for this crypto-suite MUST be 30 octets i.e., 240 bits; otherwise,
+      the crypto attribute is considered invalid.
+
+
+      AES_CM_128_NULL_AUTH
+      ____________________________________________________________________________
+      The SRTP default cipher (AES-128 Counter Mode), but to use no authentication
+      method.  This policy is NOT RECOMMENDED unless it is unavoidable; see
+      Section 7.5 of [RFC3711].
+
+
+      SRTP variables that modify behaviors based on direction/leg:
+
+      rtp_secure_media
+      ____________________________________________________________________________
+      possible values:
+          mandatory - Accept/Offer SAVP negotiation ONLY
+          optional  - Accept/Offer SAVP/AVP with SAVP preferred
+          forbidden - More useful for inbound to deny SAVP negotiation
+          false     - implies forbidden
+          true      - implies mandatory
+
+      default if not set is accept SAVP inbound if offered.
+
+
+      rtp_secure_media_inbound | rtp_secure_media_outbound
+      ____________________________________________________________________________
+      This is the same as rtp_secure_media, but would apply to either inbound
+      or outbound offers specifically.
+
+
+      How to specify crypto suites:
+      ____________________________________________________________________________
+      By default without specifying any crypto suites FreeSWITCH will offer
+      crypto suites from strongest to weakest accepting the strongest each
+      endpoint has in common.  If you wish to force specific crypto suites you
+      can do so by appending the suites in a comma separated list in the order
+      that you wish to offer them in.
+
+      Examples:
+
+          rtp_secure_media=mandatory:AES_CM_256_HMAC_SHA1_80,AES_CM_256_HMAC_SHA1_32
+          rtp_secure_media=true:AES_CM_256_HMAC_SHA1_80,AES_CM_256_HMAC_SHA1_32
+          rtp_secure_media=optional:AES_CM_256_HMAC_SHA1_80
+          rtp_secure_media=true:AES_CM_256_HMAC_SHA1_80
+
+      Additionally you can narrow this down on either inbound or outbound by
+      specifying as so:
+
+          rtp_secure_media_inbound=true:AEAD_AES_256_GCM_8
+          rtp_secure_media_inbound=mandatory:AEAD_AES_256_GCM_8
+          rtp_secure_media_outbound=true:AEAD_AES_128_GCM_8
+          rtp_secure_media_outbound=optional:AEAD_AES_128_GCM_8
 
-  <!-- 
+
+      rtp_secure_media_suites
+      ____________________________________________________________________________
+      Optionaly you can use rtp_secure_media_suites to dictate the suite list
+      and only use rtp_secure_media=[optional|mandatory|false|true] without having
+      to dictate the suite list with the rtp_secure_media* variables.
+  -->
+  <!--
        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. 
+       FreeSWITCH can support 10-120ms on some codecs.
        We do not support exceeding the MTU of the RTP packet.
 
 
@@ -72,21 +206,21 @@
        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
@@ -96,9 +230,9 @@
        100 -
        101 - telephone-event
        102 -
-       103 - 
-       104 - 
-       105 - 
+       103 -
+       104 -
+       105 -
        106 - BV16
        107 - G722.1 (16kHz)
        108 -
@@ -118,35 +252,30 @@
        122 - AAL2-G726-32 && G726-32
        123 - AAL2-G726-24 && G726-24
        124 - AAL2-G726-16 && G726-16
-       125 - 
+       125 -
        126 -
        127 - BV32
 
   -->
-
-        <X-PRE-PROCESS cmd="set" data="global_codec_prefs=speex@16000h@20i,speex@8000h@20i,G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM" />
-        <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=speex@16000h@20i,PCMU,PCMA,GSM" />
-	<!-- BigBlueButton: To use mlaw , change the above two lines with data set to these values. 
-		data="global_codec_prefs=PCMU,G722,PCMA,GSM"
-		data="outbound_codec_prefs=PCMU,G722,PCMA,GSM"
-	-->
+  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,speex@16000h@20i,speex@8000h@20i,G722,PCMU,PCMA"/>
+  <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,speex@16000h@20i,G722,PCMU,PCMA"/>
 
   <!--
       xmpp_client_profile and xmpp_server_profile
-      xmpp_client_profile can be any string. 
+      xmpp_client_profile can be any string.
       xmpp_server_profile is appended to "dingaling_" to form the database name
       containing the "subscriptions" table.
-      used by: dingaling.conf.xml enum.conf.xml 
-  --> 
+      used by: dingaling.conf.xml enum.conf.xml
+  -->
 
   <X-PRE-PROCESS cmd="set" data="xmpp_client_profile=xmppc"/>
   <X-PRE-PROCESS cmd="set" data="xmpp_server_profile=xmpps"/>
-  <!-- 
+  <!--
        THIS IS ONLY USED FOR DINGALING
 
        bind_server_ip
 
-       Can be an ip address, a dns name, or "auto". 
+       Can be an ip address, a dns name, or "auto".
        This determines an ip address available on this host to bind.
        If you are separating RTP and SIP traffic, you will want to have
        use different addresses where this variable appears.
@@ -155,7 +284,7 @@
   <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
   -->
@@ -170,7 +299,7 @@
        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"/>
+  <X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.l.google.com:19302"/>
 
   <!-- external_sip_ip
       Used as the public IP address for SDP.
@@ -183,11 +312,11 @@
        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"/>
+  <X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.l.google.com:19302"/>
 
   <!-- 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
@@ -204,17 +333,61 @@
   <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)"/>
+  <!-- if false or undefined, the destination number is included in presence NOTIFY dm:note.
+       if true, the destination number is not included -->
+  <X-PRE-PROCESS cmd="set" data="presence_privacy=false"/>
+
+  <X-PRE-PROCESS cmd="set" data="au-ring=%(400,200,383,417);%(400,2000,383,417)"/>
+  <X-PRE-PROCESS cmd="set" data="be-ring=%(1000,3000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="ca-ring=%(2000,4000,440,480)"/>
+  <X-PRE-PROCESS cmd="set" data="cn-ring=%(1000,4000,450)"/>
+  <X-PRE-PROCESS cmd="set" data="cy-ring=%(1500,3000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="cz-ring=%(1000,4000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="de-ring=%(1000,4000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="dk-ring=%(1000,4000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="dz-ring=%(1500,3500,425)"/>
+  <X-PRE-PROCESS cmd="set" data="eg-ring=%(2000,1000,475,375)"/>
+  <X-PRE-PROCESS cmd="set" data="es-ring=%(1500,3000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="fi-ring=%(1000,4000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="fr-ring=%(1500,3500,440)"/>
+  <X-PRE-PROCESS cmd="set" data="hk-ring=%(400,200,440,480);%(400,3000,440,480)"/>
+  <X-PRE-PROCESS cmd="set" data="hu-ring=%(1250,3750,425)"/>
+  <X-PRE-PROCESS cmd="set" data="il-ring=%(1000,3000,400)"/>
+  <X-PRE-PROCESS cmd="set" data="in-ring=%(400,200,425,375);%(400,2000,425,375)"/>
+  <X-PRE-PROCESS cmd="set" data="jp-ring=%(1000,2000,420,380)"/>
+  <X-PRE-PROCESS cmd="set" data="ko-ring=%(1000,2000,440,480)"/>
+  <X-PRE-PROCESS cmd="set" data="pk-ring=%(1000,2000,400)"/>
+  <X-PRE-PROCESS cmd="set" data="pl-ring=%(1000,4000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="ro-ring=%(1850,4150,475,425)"/>
+  <X-PRE-PROCESS cmd="set" data="rs-ring=%(1000,4000,425)"/>
+  <X-PRE-PROCESS cmd="set" data="ru-ring=%(800,3200,425)"/>
+  <X-PRE-PROCESS cmd="set" data="sa-ring=%(1200,4600,425)"/>
+  <X-PRE-PROCESS cmd="set" data="tr-ring=%(2000,4000,450)"/>
+  <X-PRE-PROCESS cmd="set" data="uk-ring=%(400,200,400,450);%(400,2000,400,450)"/>
+  <X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440,480)"/>
   <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="beep=%(1000,0,640)"/>
   <X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)"/>
+
+  <!--
+       Digits Dialed filter: (FS-6940)
+
+       The digits stream may contain valid credit card numbers or social security numbers, These digit
+       filters will allow you to make a valant effort to stamp out sensitive information for
+       PCI/HIPPA compliance. (see xml_cdr dialed_digits)
+
+       df_us_ssn   = US Social Security Number pattern
+       df_us_luhn  = Visa, MasterCard, American Express, Diners Club, Discover and JCB
+  -->
+  <X-PRE-PROCESS cmd="set" data="df_us_ssn=(?!219099999|078051120)(?!666|000|9\d{2})\d{3}(?!00)\d{2}(?!0{4})\d{4}"/>
+  <X-PRE-PROCESS cmd="set" data="df_luhn=?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|6(?:011|5[0-9]{2})[0-9]{12}|(?:2131|1800|35\d{3})\d{11}"/>
+  <!-- change XX to X below to enable -->
+  <XX-PRE-PROCESS cmd="set" data="digits_dialed_filter=(($${df_luhn})|($${df_us_ssn}))"/>
+
   <!--
       Setting up your default sip provider is easy.
       Below are some values that should work in most cases.
-      
+
       These are for conf/directory/default/example.com.xml
   -->
   <X-PRE-PROCESS cmd="set" data="default_provider=example.com"/>
@@ -226,21 +399,52 @@
   <X-PRE-PROCESS cmd="set" data="default_provider_contact=5000"/>
 
   <!--
-      SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls
+     SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls
+
+     valid options: sslv2,sslv3,sslv23,tlsv1,tlsv1.1,tlsv1.2
+
+     default: tlsv1,tlsv1.1,tlsv1.2
+  -->
+  <X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1,tlsv1.1,tlsv1.2"/>
+
+  <!--
+     TLS cipher suite: default ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
+
+     The actual ciphers supported will change per platform.
+
+     openssl ciphers -v 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'
+
+     Will show you what is available in your verion of openssl.
   -->
-  <X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1"/>
+  <X-PRE-PROCESS cmd="set" data="sip_tls_ciphers=ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"/>
 
   <!-- Internal SIP Profile -->
   <X-PRE-PROCESS cmd="set" data="internal_auth_calls=true"/>
   <X-PRE-PROCESS cmd="set" data="internal_sip_port=5090"/>
   <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=5060"/>
   <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"/>
+
+  <!-- Video Settings -->
+  <!-- Setting the max bandwdith -->
+  <X-PRE-PROCESS cmd="set" data="rtp_video_max_bandwidth_in=1mb"/>
+  <X-PRE-PROCESS cmd="set" data="rtp_video_max_bandwidth_out=1mb"/>
+
+  <!-- WebRTC Video -->
+  <!-- Suppress CNG for WebRTC Audio -->
+  <X-PRE-PROCESS cmd="set" data="suppress_cng=true"/>
+  <!-- Enable liberal DTMF for those that can't get it right -->
+  <X-PRE-PROCESS cmd="set" data="rtp_liberal_dtmf=true"/>
+  <!-- Helps with WebRTC Audio -->
+
+  <!-- Stock Video Avatars -->
+  <X-PRE-PROCESS cmd="set" data="video_mute_png=$${images_dir}/default-mute.png"/>
+  <X-PRE-PROCESS cmd="set" data="video_no_avatar_png=$${images_dir}/default-avatar.png"/>
+
 </include>
+
diff --git a/bbb-voice-conference/config/freeswitch/conf/voicemail.tpl b/bbb-voice-conference/config/freeswitch/conf/voicemail.tpl
index aede2b8f08a909a9dba808a8cfb012f4a61be236..782607778d888277d00ca49a0342d77603de66ea 100644
--- a/bbb-voice-conference/config/freeswitch/conf/voicemail.tpl
+++ b/bbb-voice-conference/config/freeswitch/conf/voicemail.tpl
@@ -1,5 +1,6 @@
 From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}>
-To: <${voicemail_email}>
+Date: ${RFC2822_DATE}
+To: ${voicemail_email}
 Subject: Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}
 X-Priority: ${voicemail_priority}
 X-Mailer: FreeSWITCH
@@ -36,6 +37,7 @@ Content-Transfer-Encoding: 7bit
 Created: ${voicemail_time}<br>
 Duration: ${voicemail_message_len}<br>
 Account: ${voicemail_account}@${voicemail_domain}<br>
+</font>
 
 </body>
 </html>