Freeswitch-trunk
Threads by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
July 2008
- 9 participants
- 340 discussions
Author: anthm
Date: Thu Jul 24 19:15:07 2008
New Revision: 9173
Modified:
freeswitch/trunk/src/mod/formats/mod_shout/layer3.c
freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c
Log:
omfg
Modified: freeswitch/trunk/src/mod/formats/mod_shout/layer3.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_shout/layer3.c (original)
+++ freeswitch/trunk/src/mod/formats/mod_shout/layer3.c Thu Jul 24 19:15:07 2008
@@ -985,12 +985,15 @@
getbits(mp, 16); /* Dismiss stuffing Bits */
part2remain -= 16;
}
+
if (part2remain > 0)
getbits(mp, part2remain);
+#if 0
else if (part2remain < 0) {
debug_printf("mpg123: %d Can't rewind stream by %d bits!\n", -part2remain, __LINE__);
return 1; /* -> error */
}
+#endif
return 0;
}
Modified: freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c (original)
+++ freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c Thu Jul 24 19:15:07 2008
@@ -66,6 +66,7 @@
uint8_t shout_init;
uint32_t prebuf;
int lame_ready;
+ int eof;
};
typedef struct shout_context shout_context_t;
@@ -232,11 +233,12 @@
size_t used;
size_t lp;
size_t rb = 0;
-
- while (switch_buffer_inuse(context->audio_buffer) < bytes) {
+
+ while (!context->eof && switch_buffer_inuse(context->audio_buffer) < bytes) {
lp = sizeof(inbuf);
if ((switch_file_read(context->fd, inbuf, &lp) != SWITCH_STATUS_SUCCESS) || lp == 0) {
- goto error;
+ context->eof++;
+ goto end;
}
inlen = (int) lp;
@@ -253,7 +255,7 @@
do {
decode_status = decodeMP3(&context->mp, in, inlen, out, outlen, &dlen);
-
+
if (context->err) {
goto error;
}
@@ -274,22 +276,20 @@
out = context->decode_buf;
outlen = sizeof(context->decode_buf);
usedlen = 0;
+
continue;
-
- }
-
- if (decode_status == MP3_ERR) {
+
+ } else if (decode_status == MP3_ERR) {
if (++context->mp3err >= 5) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Decoder Error!\n");
- goto error;
+ context->eof++;
+ goto end;
}
-
- dlen = 0;
continue;
}
context->mp3err = 0;
-
+
usedlen += dlen;
out += dlen;
outlen -= dlen;
@@ -309,16 +309,20 @@
}
}
+ end:
+
used = switch_buffer_inuse(context->audio_buffer);
- if (done || used >= bytes) {
- rb = switch_buffer_read(context->audio_buffer, data, used);
+ if (context->eof || done || used >= bytes) {
+ if (!(rb = switch_buffer_read(context->audio_buffer, data, bytes))) {
+ goto error;
+ }
return rb;
}
return 0;
- error:
+ error:
switch_mutex_lock(context->audio_mutex);
context->err++;
switch_mutex_unlock(context->audio_mutex);
1
0
Author: anthm
Date: Thu Jul 24 14:43:10 2008
New Revision: 9172
Modified:
freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c
Log:
never-ending mp3 saga
Modified: freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c (original)
+++ freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c Thu Jul 24 14:43:10 2008
@@ -223,13 +223,13 @@
int dlen = 0;
int x = 0;
char *in;
- int inlen;
+ int inlen = 0;
char *out;
int outlen;
int usedlen;
char inbuf[MP3_SCACHE];
int done = 0;
-
+ size_t used;
size_t lp;
size_t rb = 0;
@@ -248,10 +248,9 @@
x = 0;
if (inlen < bytes) {
- bytes = inlen;
done = 1;
}
-
+
do {
decode_status = decodeMP3(&context->mp, in, inlen, out, outlen, &dlen);
@@ -310,8 +309,10 @@
}
}
- if (done || switch_buffer_inuse(context->audio_buffer) >= bytes) {
- rb = switch_buffer_read(context->audio_buffer, data, bytes);
+ used = switch_buffer_inuse(context->audio_buffer);
+
+ if (done || used >= bytes) {
+ rb = switch_buffer_read(context->audio_buffer, data, used);
return rb;
}
1
0
24 Jul '08
Author: anthm
Date: Thu Jul 24 12:31:47 2008
New Revision: 9170
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
freeswitch/trunk/src/switch_ivr_bridge.c
Log:
more workarounds for cisco the leader in communication
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Thu Jul 24 12:31:47 2008
@@ -1956,6 +1956,14 @@
switch_channel_clear_flag(channel, CF_REQ_MEDIA);
+ if ((status == 180 || status == 183 || status == 200)) {
+ if (sip->sip_user_agent && sip->sip_user_agent->g_string) {
+ switch_channel_set_variable(channel, "sip_user_agent", sip->sip_user_agent->g_string);
+ } else if (sip->sip_server && sip->sip_server->g_string) {
+ switch_channel_set_variable(channel, "sip_user_agent", sip->sip_server->g_string);
+ }
+ }
+
if (switch_channel_test_flag(channel, CF_PROXY_MODE) || switch_channel_test_flag(channel, CF_PROXY_MEDIA)) {
if (!switch_test_flag(tech_pvt, TFLAG_SENT_UPDATE)) {
@@ -2137,14 +2145,6 @@
status = 180;
}
- if (sip && channel && (status == 180 || status == 183 || status == 200) && switch_channel_test_flag(channel, CF_OUTBOUND)) {
- if (sip->sip_user_agent && sip->sip_user_agent->g_string) {
- switch_channel_set_variable(channel, "sip_user_agent", sip->sip_user_agent->g_string);
- } else if (sip->sip_server && sip->sip_server->g_string) {
- switch_channel_set_variable(channel, "sip_user_agent", sip->sip_server->g_string);
- }
- }
-
if (channel && (status == 180 || status == 183) && switch_channel_test_flag(channel, CF_OUTBOUND)) {
const char *val;
if ((val = switch_channel_get_variable(channel, "sip_auto_answer")) && switch_true(val)) {
@@ -3686,7 +3686,6 @@
}
}
}
-
/*
* This subroutine will take the a_params of a sip_addr_s structure and spin through them.
* Each param will be used to create a channel variable.
Modified: freeswitch/trunk/src/switch_ivr_bridge.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_bridge.c (original)
+++ freeswitch/trunk/src/switch_ivr_bridge.c Thu Jul 24 12:31:47 2008
@@ -495,7 +495,12 @@
}
if (!ready_b) {
- switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+ const char *cid = switch_channel_get_variable(other_channel, "rdnis");
+ if (ready_a && cid) {
+ switch_ivr_session_transfer(session, cid, NULL, NULL);
+ } else {
+ switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+ }
}
switch_core_session_rwunlock(other_session);
return SWITCH_STATUS_FALSE;
@@ -825,6 +830,7 @@
switch_channel_t *originator_channel, *originatee_channel, *swap_channel;
switch_status_t status = SWITCH_STATUS_FALSE;
switch_caller_profile_t *cp, *originator_cp, *originatee_cp;
+ char *p;
if ((originator_session = switch_core_session_locate(originator_uuid))) {
if ((originatee_session = switch_core_session_locate(originatee_uuid))) {
@@ -895,6 +901,10 @@
cp->destination_number = switch_core_strdup(cp->pool, originator_cp->caller_id_number);
cp->caller_id_number = switch_core_strdup(cp->pool, originator_cp->caller_id_number);
cp->caller_id_name = switch_core_strdup(cp->pool, originator_cp->caller_id_name);
+ cp->rdnis = switch_core_strdup(cp->pool, originatee_cp->destination_number);
+ if ((p = strchr(cp->rdnis, '@'))) {
+ *p = '\0';
+ }
switch_channel_set_caller_profile(originatee_channel, cp);
switch_channel_set_originator_caller_profile(originatee_channel, switch_caller_profile_clone(originatee_session, originator_cp));
@@ -902,6 +912,10 @@
cp->destination_number = switch_core_strdup(cp->pool, originatee_cp->caller_id_number);
cp->caller_id_number = switch_core_strdup(cp->pool, originatee_cp->caller_id_number);
cp->caller_id_name = switch_core_strdup(cp->pool, originatee_cp->caller_id_name);
+ cp->rdnis = switch_core_strdup(cp->pool, originator_cp->destination_number);
+ if ((p = strchr(cp->rdnis, '@'))) {
+ *p = '\0';
+ }
switch_channel_set_caller_profile(originator_channel, cp);
switch_channel_set_originatee_caller_profile(originator_channel, switch_caller_profile_clone(originator_session, originatee_cp));
1
0
Author: brian
Date: Thu Jul 24 12:14:20 2008
New Revision: 9169
Added:
freeswitch/trunk/scripts/freeswitch-gcore
freeswitch/trunk/scripts/freeswitch-reporter
Log:
add scripts from MODAPP-89
Added: freeswitch/trunk/scripts/freeswitch-gcore
==============================================================================
--- (empty file)
+++ freeswitch/trunk/scripts/freeswitch-gcore Thu Jul 24 12:14:20 2008
@@ -0,0 +1,12 @@
+#!/bin/bash
+fspid=$(cat /usr/local/freeswitch/log/freeswitch.pid)
+gcore -o /usr/local/freeswitch/log/freeswitch.gcore $fspid && \
+ gdb /usr/local/freeswitch/bin/freeswitch \
+ -c /usr/local/freeswitch/log/freeswitch.gcore.$fspid \
+ --eval-command='set pagination off' \
+ --eval-command='bt' \
+ --eval-command='bt full' \
+ --eval-command='thread apply all bt' \
+ --eval-command='thread apply all bt full' \
+ --eval-command='quit'
+rm /usr/local/freeswitch/log/freeswitch.gcore.$fspid
Added: freeswitch/trunk/scripts/freeswitch-reporter
==============================================================================
--- (empty file)
+++ freeswitch/trunk/scripts/freeswitch-reporter Thu Jul 24 12:14:20 2008
@@ -0,0 +1,29 @@
+#!/bin/bash
+email=traces(a)freeswitch.org
+errorlvl=1
+while [ $errorlvl -gt 0 ]
+do
+ /usr/local/freeswitch/bin/freeswitch -core
+ errorlvl=$?
+ if [ $errorlvl -gt 0 ]; then
+ pid=$(cat /usr/local/freeswitch/log/freeswitch.pid)
+ corefile=core.$pid
+ tempfile=$(tempfile)
+ if [ -f $corefile ]; then
+ reset
+ echo From: freeswitch(a)jasongarland.com >>$tempfile
+ echo >>$tempfile
+ echo >>$tempfile
+ echo Host: $(hostname -f) >>$tempfile
+ gdb /usr/local/freeswitch/bin/freeswitch -c $corefile \
+ --eval-command='set pagination off' \
+ --eval-command='bt full' \
+ --eval-command='quit' >>$tempfile
+ cat $tempfile|rmail $email
+ rm $tempfile
+ fi
+ fi
+
+ #sleep 5s
+
+done
1
0
24 Jul '08
Author: anthm
Date: Thu Jul 24 07:31:46 2008
New Revision: 9167
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
Log:
whoops
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Thu Jul 24 07:31:46 2008
@@ -137,7 +137,7 @@
if (sip->sip_user_agent && !switch_strlen_zero(sip->sip_user_agent->g_string)) {
switch_channel_set_variable(channel, "sip_user_agent", sip->sip_user_agent->g_string);
- } else if (sip->sip_user_agent && !switch_strlen_zero(sip->sip_server->g_string)) {
+ } else if (sip->sip_server && !switch_strlen_zero(sip->sip_server->g_string)) {
switch_channel_set_variable(channel, "sip_user_agent", sip->sip_server->g_string);
}
1
0
24 Jul '08
Author: anthm
Date: Thu Jul 24 07:28:49 2008
New Revision: 9166
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
Log:
whoops
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Thu Jul 24 07:28:49 2008
@@ -2140,7 +2140,7 @@
if (sip && channel && (status == 180 || status == 183 || status == 200) && switch_channel_test_flag(channel, CF_OUTBOUND)) {
if (sip->sip_user_agent && sip->sip_user_agent->g_string) {
switch_channel_set_variable(channel, "sip_user_agent", sip->sip_user_agent->g_string);
- } else if (sip->sip_user_agent && sip->sip_server->g_string) {
+ } else if (sip->sip_server && sip->sip_server->g_string) {
switch_channel_set_variable(channel, "sip_user_agent", sip->sip_server->g_string);
}
}
1
0
24 Jul '08
Author: mikej
Date: Thu Jul 24 07:14:32 2008
New Revision: 9165
Added:
freeswitch/trunk/src/mod/applications/mod_snom/mod_snom.2008.vcproj
Modified:
freeswitch/trunk/Freeswitch.2008.sln
freeswitch/trunk/src/mod/applications/mod_snom/ (props changed)
Log:
add mod_snom to msvc build system
Modified: freeswitch/trunk/Freeswitch.2008.sln
==============================================================================
--- freeswitch/trunk/Freeswitch.2008.sln (original)
+++ freeswitch/trunk/Freeswitch.2008.sln Thu Jul 24 07:14:32 2008
@@ -956,6 +956,11 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libs\win32\libogg\libogg.2008.vcproj", "{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_snom", "src\mod\applications\mod_snom\mod_snom.2008.vcproj", "{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}"
+ ProjectSection(ProjectDependencies) = postProject
+ {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -1651,6 +1656,12 @@
{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.ActiveCfg = Debug|Win32
{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.ActiveCfg = Release|Win32
{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.ActiveCfg = Release|Win32
+ {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32
+ {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|Win32
+ {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.ActiveCfg = Release|Win32
+ {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.Build.0 = Release|Win32
+ {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1679,6 +1690,7 @@
{F6A33240-8F29-48BD-98F0-826995911799} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{65A6273D-FCAB-4C55-B09E-65100141A5D4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{E3246D17-E29B-4AB5-962A-C69B0C5837BB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
+ {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{07113B25-D3AF-4E04-BA77-4CD1171F022C} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
{A27CCA23-1541-4337-81A4-F0A6413078A0} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
{E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
Added: freeswitch/trunk/src/mod/applications/mod_snom/mod_snom.2008.vcproj
==============================================================================
--- (empty file)
+++ freeswitch/trunk/src/mod/applications/mod_snom/mod_snom.2008.vcproj Thu Jul 24 07:14:32 2008
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="mod_snom"
+ ProjectGUID="{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}"
+ RootNamespace="mod_snom"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ ConfigurationType="2"
+ InheritedPropertySheets="..\..\..\..\w32\module_debug.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"
+ UsePrecompiledHeader="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ ConfigurationType="2"
+ InheritedPropertySheets="..\..\..\..\w32\module_release.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath=".\mod_snom.c"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
1
0
Author: anthm
Date: Thu Jul 24 07:08:03 2008
New Revision: 9164
Modified:
freeswitch/trunk/debian/changelog
Log:
changelog
Modified: freeswitch/trunk/debian/changelog
==============================================================================
--- freeswitch/trunk/debian/changelog (original)
+++ freeswitch/trunk/debian/changelog Thu Jul 24 07:08:03 2008
@@ -1,3 +1,130 @@
+freeswitch (1.0.1-1) unstable; urgency=low
+
+ * FIX: prevent intercept race condition that can also be solved with continue_on_fail=originator_cancel
+ * FIX: NULL dereference detected by klockwork (www.klockwork.com)
+ * FIX: don't open failed local stream (MODFORM-9)
+ * FIX: instability in mod_local_stream in failure scenarios
+ * FIX: xmlrpc-c build on OS X 10.4 (FSBUILD-47)
+ * ENHANCEMENT: Added tab completion on many api commands in console
+ * ENHANCEMENT: polycom BLF support
+ * FIX: many sip NAT related fixes in mod_sofia
+ * FIX: support sip unregister with Contact: *
+ * FIX: multiple segfaults in xmlrpc-c
+ * FIX: sip unregister event being skipped
+ * FIX: hangup properly on malformed sip 3pcc calls being used as a way to ping
+ * ADD: enable-3pcc sofia profile param, it is now disabled by default.
+ * ADD: presence events to sip proxy mode
+ * ADD: legs param to cdr_csv
+ * ADD: support for perl as an embedded lanugage
+ * ENHANCEMENT: many new api's and functions to the embedded languages including api support, xml interface support, auto start scripts, and many new objects
+ * CHANGE: python embedded language api changed to match perl, lua, java
+ * FIX: many stability fixes in embedded langauges perl, lua, java, python
+ * ADD: failed_xml_cdr magic channel variable
+ * FIX: access free memory error in mod_sofia when using respond app
+ * ENHNACEMENT: make global_setvar only have 2 fields so you can set foo=bar=blah w/o quotes
+ * FIX: mod_spidermonkey keep hangup hook in the session thread
+ * ENHANCEMENT: mod_ldap added sasl support and search filters
+ * ADD: answered, waitForAnswer and mediaReady methods to embedded language Session object
+ * ENHANCEMENT: mod_voicemail param change to allow notification emails using templates
+ * ADD: per user acl in sofia
+ * FIX: deadlock in mod_portaudio
+ * ENHANCEMENT: blank username in sip will trigger a lookup for the user "nobody"
+ * ADD: import variable to import variables from a peer channel at time of originate
+ * FIX: api type fix for c++ modules when incorrectly using enums
+ * FIX: eliminate need for escaped , in [] on originate
+ * ADD: NDLB-force-rport option to force behavior as if rport was sent in the via
+ * ENHANCEMENT: honor execute_on_answer on outbound legs too
+ * ADD: execute_on_ring variable
+ * FIX: Seg fault in CoreSession() class destructor
+ * ADD: per channel caller id in originate
+ * ADD: sip_outgoing_call_id variable
+ * FIX: multiple memory leaks in mod_sofia
+ * FIX: find_local_ip IPv6 support
+ * ADD: variable expansion to on execute vars.(FSCORE-114)
+ * ADD: count optional arg to show calls and show channels (MODAPP-103)
+ * FIX: MODEVENT-25 (WSAWOULDBLOCK error on socket send in windows) in event socket
+ * FIX: multiple fixes to the logic in mod_say_zh
+ * ADD: inter digit timeout to swigged embedded languages getDigits method. (MODLANG-65)
+ * ADD: Linksys P-RTP-Stat SIP header values (SFSIP-66)
+ * FIX: small leak in core
+ * ADD: progress_timeout var to originate
+ * UPDATE: portaudio library
+ * FIX: added timeout to iax read
+ * ADD: 'pa rescan' to portaudio to look for new devices
+ * FIX: wait for broadcast to start when starting async hold to avoid race
+ * FIX: mod_rss, don't always play the first news feed
+ * FIX: mod_rss inverval to use the session inteval (audio problems on 30ms channels)
+ * ADD: Path: support in mod_sofia on register
+ * FIX: mod_shout record stream
+ * ENHANCEMENT: mod_voicemail support for effective_caller_id_name/number
+ * ADD: url encode/decode api calls
+ * FIX: "nua()" in debug information in sofia instead of the real function name
+ * FIX: better handling of sips: uris
+ * FIX: don't seg when using more than SWITCH_MAX_CODECS and bump SWITCH_MAX_CODECS to 50 (we have more than 30 in tree) (MODFORM-10)
+ * ADD: mod_yaml
+ * FIX: segfault on freeswitch startup if installed directories are removed
+ * FIX: segfault when intercept with inbound_late_negotiation=true set
+ * FIX: dont flood logs with eavesdrop messages (MODAPP-101)
+ * FIX: don't destroy a codec that has not been created (MODAPP-101)
+ * ENHANCEMENT: allows the "eavesdrop_group" variable to contain several groups, comma separated. (MODAPP-101)
+ * FIX: cross compile (FSBUILD-53)
+ * FIX: add header that Nuaunce considers mandatory (MODASRTTS-5)
+ * ADD: write locks to the core and a function to unregister event bindings (adds better ability to unload modules)
+ * ENHANCEMENT: make modules unbind events and un-reserve subclasses on module unload
+ * ADD: removable xml hook bindings
+ * ADD: EventConsumer object to embedded languages so you can make event handlers
+ * FIX: sending CN with supress-cng true
+ * FIX: segfault in the event system when trying to remove NULL event
+ * ADD: flags to turn off srtp auth and rtp auto adj (FSCORE-149 && MODENDP-115)
+ * FIX: use lighter math and avoid infinite loop in port allocator (FSCORE-148)
+ * ENHANCEMENT: let conference pin entry start during prompt (MODAPP-111)
+ * ADD: mod_pocketsphinx
+ * FIX: Misuse of SQLRowCount, issues with MSSQL (MODAPP-105)
+ * FIX: segfaults in mod_python with dtmf callback
+ * ENHANCEMENT: mod_conference auto-record parameter (MODAPP-112)
+ * ENHANCEMENT: reload support to many modules
+ * FIX: mod_sofia add replaces to supported header
+ * ENHANCEMENT: add args callback to sleep so you can process dtmf and events while "sleeping"
+ * ADD: mod_flite
+ * ENHANCEMENT: switch_xml converted back to c code and support double globs on windows
+ * ENHANCEMENT: mod_sofia support for adding and removing gateways without restarting profiles
+ * ADD: extract contact header info into A channel when unhandled 3xx response is received (MODENDP-116)
+ * FIX: outbound event_socket + late negotiation
+ * ADD: copy_xml_cdr variable
+ * ADD: silence_stream (like tone_stream but silent)
+ * ADD: module_exists api call
+ * ADD: emailer implementation for windows
+ * ADD: wait_for_silence application
+ * FIX: no error message generated if OS is unable to load a module ( due to dependency/installation issues )
+ * FIX: segfault in media bugs
+ * FIX: acl lists not correctly matching all ip adresses
+ * FIX: mod_spidermonkey exit() does not stop script when called from the hangup callback (return "exit" from the callback)
+ * FIX: mod_syslog works again
+ * FIX: crash on terminal resize
+ * FIX: audio problems on big endian
+ * ENHANCEMENT: Disable multiple registrations on a per-device basis (MODENDP-117)
+ * ADD: fifo_consumer_exit_key variable (MODAPP-100)
+ * ADD: cidr based user auth in mod_sofia
+ * ADD: uuid_send_dtmf fsapi command (MODAPP-114)
+ * ADD: server registration fiels to sip_registration database (MODENDP-118)
+ * FIX: use a variable, realm or to host to find gateway when it's not obvious (handles challenged REFER)
+ * ADD: timeout to curl run in javascript
+ * ADD: voicemail_inject fsapi command
+ * ADD: reboot option for sip phones to flush_inboud_reg sofia profile api command
+ * FIX: add small padding to end of mp3 to avoid cut off mp3 recording
+ * FIX: patch multiple SDP connection lines in sdp for proxy media mode (MODENDP-109)
+ * FIX: don't parse ringback varable in proxy situations
+ * ADD: per call vm recording ext with vm_message_ext variable
+ * ADD: sip_bye_h prefix to add headers to bye
+ * ENHANCEMENT: more interfaces available in show fsapi command
+ * FIX: don't leak in buffers on realloc fail
+ * FIX: fail out of a conference call if write fails
+ * ADD: auto ip-change detection
+ * ADD: mod_snom
+ * FIX: mod_sofia don't send sipfrag on transfer to cisco so they don't hang up the call
+
+ -- Mike Jerris <mike(a)jerris.com> Thu, 24 Jul 2008 07:00:00 -0500
+
freeswitch (1.0.1~trunk) unstable; urgency=low
* Updated revision number
1
0
Author: mikej
Date: Thu Jul 24 06:58:10 2008
New Revision: 9163
Modified:
freeswitch/trunk/docs/ChangeLog
Log:
update changelog for 1.0.1
Modified: freeswitch/trunk/docs/ChangeLog
==============================================================================
--- freeswitch/trunk/docs/ChangeLog (original)
+++ freeswitch/trunk/docs/ChangeLog Thu Jul 24 06:58:10 2008
@@ -1,143 +1,270 @@
-freeswitch (1.0.0)
-
- Enhanced sofia sip nat handling
- Many fixes found by Klockwork (www.klocwork.com)
- Added disable_app_log variable
- Fixed mod_local_stream with rates on windows
- Fixed finding of files in rate dirs on windows
- Fixed memory corruption from sofia_contact function
- Added sofia profile param NDLB-received-in-nat-reg-contact
- Added sofia profile param aggressive-nat-detection
- Fixed video sip calls in proxy media mode
- Added bridge_terminate_key var
- Update xmlrpc-c lib to trunk revision from upstream, fix windows xmlrpc
- Enhanced nat handling in proxy media mode in sip
- Add progress media to timetable so you can calculate pdd
- Fixed seg when using unicast on socket when call has no read_codec
- Fixed missed log events on busy box
- Added -bleg to intercept
- Enhance configure detection of python
- Fixed build on solaris and freebsd for several modules
- Added param "vm-email-only" to make voicemail sent by email only (previously default behavior)
- Added param "vm-mailto-notify" to allow sending a notification email
- Fixed mod_java build
- Fixed mwi failures for some devices that don't subscribe
- Removed fsapi functions (killchan, transfer, session_displace, reject)
- Removed fsapi functions (session_record, broadcast, hold, media)
- Many updates to sofia-sip library including over 100 fixes
-
-freeswitch (1.0.rc6)
-
- Changed to not allow pass_2833 on transcoded calls (it never worked, now it will tell you)
- Enhanced sofia sip nat handling
- Fix libedit build on solaris
- Fix session timers in mod_sofia
- Fix conference fire-call
- Change: add var_event down into the endpoints so chans with no parents can still pass options
- Added enable-post-var param to xml_rpc
- Fix mod_lua build on solaris
- Many fixes found by Klockwork (www.klocwork.com)
- Add unregister event in mod_sofia
- Enhance python configure detection
- Add vm_boxcount api func
- Fixed att_xfer issue
- Fix sip now includes the Allow-Events header in more places
-
-freeswitch (1.0.rc5)
-
- Changed internal state names to avoid confusion
- Fixed video negotiation
- Enhanced accuracy of windows timer
- Fixed mod_ldap build
- Added dialplan and context to sql table for channels
- Multiple fixes to mod_lua and mod_perl
- Fixed logic bug in fifo causing segfault
- internal changes to sip stack so we can remove a hash redundant to the stack
- Fixed multiple memory leaks in mod_sofia
- Fixed event fetch segfault on sip subscribe
- Fixed segfault on timer rollover in sofia on 64bit
- Fixed audio timing issues in mod_portaudio
- Changed names of sip profiles in default config to avoid confusion
- Fixed memory usage leak-like behavior when playing files requiring resampling
- Removed some unused api's
- Fix rtp timeout when playing moh
- Removed some un-needed libraries and files from tree
- Fixed multiple issues in sip stack including multiple segfaults
- Added support for sip transfers on bypass_media and proxy_media calls
- Added say application
- Fixed --disable-debug configure option
- Enhanced switch_cpp wrapper (and perl, python, lua, java)
- Fixed segfault on inavalid stun response
- Fixed configure help output
- Fixed segfault on mp3 playback
- Fixed assert on invalid sdp (missing m= line)
- Added configurable windows service name
- Fixed proxy mode call transition to non proxy call
- Fixed solaris build of voipcodecs
- Fixed sofia seg when call failure edge case
-
-freeswitch (1.0.rc4)
-
- Add tab completion in cli
- Add "inline" dialplan
- Fixed segfault in enum
- Enhance enum to fork dial equal priority entries
- Added auto-reload to enum
- Fixed odbc bug is mod_sofia presence handling
- Add presence for conference and dial an eavesdrop
- Fix stack overflow segfault when recursively parking calls
- Fixed race is sofia registration handling
- Enhance sofia registration, unregister on keep-alive OPTIONS failure
- Added internal routing loop detection/avoidance
- Fixed race in bgapi in event socket
- Fixed vars to execute apps before bridge "bridge_pre_execute_aleg_app" and "bridge_pre_execute_bleg_app"
- Fixed re-setting sound prefix to no prefix after a pharse
- Enhanced setting of bracket vars from originate so they show in the CHANNEL_ORIGINATE event
- Add "enable-timer" and "enable-100rel" options to turn off default behaviors in sofia
- Add originate_timeout to originate vars
- Fixed hanging channels in mod_portaudio
- Added auto time sync on vps migration to different hardware
- Fixed seg on transfer when both legs are not sip
- Added configurable dtmf duration defaults
- Enhanced voicemail, allow interruption of hello message
- Fixed voicemail to not light up light on saved messages
- Enhance mod_amr honor disable dtx in fmtp (MODCODEC-3)
- Fixed bootstrap to install automake dependencies so you can use tarball without same version of automake installed
- Fixed MODLANG-56 (bad audio on originate and javascript streamFile)
- Added hold/unhold dialplan apps
- Enhanced sofia error checking to outlaw 0.0.0.0 in sofia ip params
- Backport fixes from sofia-sip tree
- Fixed MSVC build
- Fixed segfault on sip SUBSCRIBE with Expires: 0
- Added mod_say_zh
- Added --with-pyton and --with-pyton-config configure options
- Added mod_lua
- Enhanced switch_cpp wrapper in core and normalized interfaces for perl, python, lua, and java
- Fixed multiple issues in cpp wrapper and the languages perl, python, lua and java
- Added back mod_perl
- Added sofia gateway option ping to adjust options ping frequency
- Added .net event socket lib to contrib
- Fixed passing of exact response codes of sip across a bridge
- Added mod_reference, reference endpoint module
- Enhanced build so you can now make commented out modules using "make mod_name"
-
-freeswitch (1.0.rc3)
-
- Enhance xml menu system
- Fixes upstream from sofia-sip library
- Enhance mod_fifo
- Added close method to ODBC spidermonkey class
- Fix multiple bugs in the cpp wrapper used in mod_java and mod_python
- Fix hung sip channel issue using respond app or on re-invite with bypass media after 1xx or 2xx responses
-
-freeswitch (1.0.rc2)
-
- Fixed speex protocol negotiation issues (8k vs 16k)
- Fixed mod_iax race conditions
- Fixed ptime negotiation issues when re-packetizing
- Added ip based acl lists
-
-freeswitch (1.0.rc1)
-
-
-
+freeswitch (1.0.1)
+
+ FIX: prevent intercept race condition that can also be solved with continue_on_fail=originator_cancel
+ FIX: NULL dereference detected by klockwork (www.klockwork.com)
+ FIX: don't open failed local stream (MODFORM-9)
+ FIX: instability in mod_local_stream in failure scenarios
+ FIX: xmlrpc-c build on OS X 10.4 (FSBUILD-47)
+ ENHANCEMENT: Added tab completion on many api commands in console
+ ENHANCEMENT: polycom BLF support
+ FIX: many sip NAT related fixes in mod_sofia
+ FIX: support sip unregister with Contact: *
+ FIX: multiple segfaults in xmlrpc-c
+ FIX: sip unregister event being skipped
+ FIX: hangup properly on malformed sip 3pcc calls being used as a way to ping
+ ADD: enable-3pcc sofia profile param, it is now disabled by default.
+ ADD: presence events to sip proxy mode
+ ADD: legs param to cdr_csv
+ ADD: support for perl as an embedded lanugage
+ ENHANCEMENT: many new api's and functions to the embedded languages including api support, xml interface support, auto start scripts, and many new objects
+ CHANGE: python embedded language api changed to match perl, lua, java
+ FIX: many stability fixes in embedded langauges perl, lua, java, python
+ ADD: failed_xml_cdr magic channel variable
+ FIX: access free memory error in mod_sofia when using respond app
+ ENHNACEMENT: make global_setvar only have 2 fields so you can set foo=bar=blah w/o quotes
+ FIX: mod_spidermonkey keep hangup hook in the session thread
+ ENHANCEMENT: mod_ldap added sasl support and search filters
+ ADD: answered, waitForAnswer and mediaReady methods to embedded language Session object
+ ENHANCEMENT: mod_voicemail param change to allow notification emails using templates
+ ADD: per user acl in sofia
+ FIX: deadlock in mod_portaudio
+ ENHANCEMENT: blank username in sip will trigger a lookup for the user "nobody"
+ ADD: import variable to import variables from a peer channel at time of originate
+ FIX: api type fix for c++ modules when incorrectly using enums
+ FIX: eliminate need for escaped , in [] on originate
+ ADD: NDLB-force-rport option to force behavior as if rport was sent in the via
+ ENHANCEMENT: honor execute_on_answer on outbound legs too
+ ADD: execute_on_ring variable
+ FIX: Seg fault in CoreSession() class destructor
+ ADD: per channel caller id in originate
+ ADD: sip_outgoing_call_id variable
+ FIX: multiple memory leaks in mod_sofia
+ FIX: find_local_ip IPv6 support
+ ADD: variable expansion to on execute vars.(FSCORE-114)
+ ADD: count optional arg to show calls and show channels (MODAPP-103)
+ FIX: MODEVENT-25 (WSAWOULDBLOCK error on socket send in windows) in event socket
+ FIX: multiple fixes to the logic in mod_say_zh
+ ADD: inter digit timeout to swigged embedded languages getDigits method. (MODLANG-65)
+ ADD: Linksys P-RTP-Stat SIP header values (SFSIP-66)
+ FIX: small leak in core
+ ADD: progress_timeout var to originate
+ UPDATE: portaudio library
+ FIX: added timeout to iax read
+ ADD: 'pa rescan' to portaudio to look for new devices
+ FIX: wait for broadcast to start when starting async hold to avoid race
+ FIX: mod_rss, don't always play the first news feed
+ FIX: mod_rss inverval to use the session inteval (audio problems on 30ms channels)
+ ADD: Path: support in mod_sofia on register
+ FIX: mod_shout record stream
+ ENHANCEMENT: mod_voicemail support for effective_caller_id_name/number
+ ADD: url encode/decode api calls
+ FIX: "nua()" in debug information in sofia instead of the real function name
+ FIX: better handling of sips: uris
+ FIX: don't seg when using more than SWITCH_MAX_CODECS and bump SWITCH_MAX_CODECS to 50 (we have more than 30 in tree) (MODFORM-10)
+ ADD: mod_yaml
+ FIX: segfault on freeswitch startup if installed directories are removed
+ FIX: segfault when intercept with inbound_late_negotiation=true set
+ FIX: dont flood logs with eavesdrop messages (MODAPP-101)
+ FIX: don't destroy a codec that has not been created (MODAPP-101)
+ ENHANCEMENT: allows the "eavesdrop_group" variable to contain several groups, comma separated. (MODAPP-101)
+ FIX: cross compile (FSBUILD-53)
+ FIX: add header that Nuaunce considers mandatory (MODASRTTS-5)
+ ADD: write locks to the core and a function to unregister event bindings (adds better ability to unload modules)
+ ENHANCEMENT: make modules unbind events and un-reserve subclasses on module unload
+ ADD: removable xml hook bindings
+ ADD: EventConsumer object to embedded languages so you can make event handlers
+ FIX: sending CN with supress-cng true
+ FIX: segfault in the event system when trying to remove NULL event
+ ADD: flags to turn off srtp auth and rtp auto adj (FSCORE-149 && MODENDP-115)
+ FIX: use lighter math and avoid infinite loop in port allocator (FSCORE-148)
+ ENHANCEMENT: let conference pin entry start during prompt (MODAPP-111)
+ ADD: mod_pocketsphinx
+ FIX: Misuse of SQLRowCount, issues with MSSQL (MODAPP-105)
+ FIX: segfaults in mod_python with dtmf callback
+ ENHANCEMENT: mod_conference auto-record parameter (MODAPP-112)
+ ENHANCEMENT: reload support to many modules
+ FIX: mod_sofia add replaces to supported header
+ ENHANCEMENT: add args callback to sleep so you can process dtmf and events while "sleeping"
+ ADD: mod_flite
+ ENHANCEMENT: switch_xml converted back to c code and support double globs on windows
+ ENHANCEMENT: mod_sofia support for adding and removing gateways without restarting profiles
+ ADD: extract contact header info into A channel when unhandled 3xx response is received (MODENDP-116)
+ FIX: outbound event_socket + late negotiation
+ ADD: copy_xml_cdr variable
+ ADD: silence_stream (like tone_stream but silent)
+ ADD: module_exists api call
+ ADD: emailer implementation for windows
+ ADD: wait_for_silence application
+ FIX: no error message generated if OS is unable to load a module ( due to dependency/installation issues )
+ FIX: segfault in media bugs
+ FIX: acl lists not correctly matching all ip adresses
+ FIX: mod_spidermonkey exit() does not stop script when called from the hangup callback (return "exit" from the callback)
+ FIX: mod_syslog works again
+ FIX: crash on terminal resize
+ FIX: audio problems on big endian
+ ENHANCEMENT: Disable multiple registrations on a per-device basis (MODENDP-117)
+ ADD: fifo_consumer_exit_key variable (MODAPP-100)
+ ADD: cidr based user auth in mod_sofia
+ ADD: uuid_send_dtmf fsapi command (MODAPP-114)
+ ADD: server registration fiels to sip_registration database (MODENDP-118)
+ FIX: use a variable, realm or to host to find gateway when it's not obvious (handles challenged REFER)
+ ADD: timeout to curl run in javascript
+ ADD: voicemail_inject fsapi command
+ ADD: reboot option for sip phones to flush_inboud_reg sofia profile api command
+ FIX: add small padding to end of mp3 to avoid cut off mp3 recording
+ FIX: patch multiple SDP connection lines in sdp for proxy media mode (MODENDP-109)
+ FIX: don't parse ringback varable in proxy situations
+ ADD: per call vm recording ext with vm_message_ext variable
+ ADD: sip_bye_h prefix to add headers to bye
+ ENHANCEMENT: more interfaces available in show fsapi command
+ FIX: don't leak in buffers on realloc fail
+ FIX: fail out of a conference call if write fails
+ ADD: auto ip-change detection
+ ADD: mod_snom
+ FIX: mod_sofia don't send sipfrag on transfer to cisco so they don't hang up the call
+
+
+
+freeswitch (1.0.0)
+
+ Enhanced sofia sip nat handling
+ Many fixes found by Klockwork (www.klocwork.com)
+ Added disable_app_log variable
+ Fixed mod_local_stream with rates on windows
+ Fixed finding of files in rate dirs on windows
+ Fixed memory corruption from sofia_contact function
+ Added sofia profile param NDLB-received-in-nat-reg-contact
+ Added sofia profile param aggressive-nat-detection
+ Fixed video sip calls in proxy media mode
+ Added bridge_terminate_key var
+ Update xmlrpc-c lib to trunk revision from upstream, fix windows xmlrpc
+ Enhanced nat handling in proxy media mode in sip
+ Add progress media to timetable so you can calculate pdd
+ Fixed seg when using unicast on socket when call has no read_codec
+ Fixed missed log events on busy box
+ Added -bleg to intercept
+ Enhance configure detection of python
+ Fixed build on solaris and freebsd for several modules
+ Added param "vm-email-only" to make voicemail sent by email only (previously default behavior)
+ Added param "vm-mailto-notify" to allow sending a notification email
+ Fixed mod_java build
+ Fixed mwi failures for some devices that don't subscribe
+ Removed fsapi functions (killchan, transfer, session_displace, reject)
+ Removed fsapi functions (session_record, broadcast, hold, media)
+ Many updates to sofia-sip library including over 100 fixes
+
+freeswitch (1.0.rc6)
+
+ Changed to not allow pass_2833 on transcoded calls (it never worked, now it will tell you)
+ Enhanced sofia sip nat handling
+ Fix libedit build on solaris
+ Fix session timers in mod_sofia
+ Fix conference fire-call
+ Change: add var_event down into the endpoints so chans with no parents can still pass options
+ Added enable-post-var param to xml_rpc
+ Fix mod_lua build on solaris
+ Many fixes found by Klockwork (www.klocwork.com)
+ Add unregister event in mod_sofia
+ Enhance python configure detection
+ Add vm_boxcount api func
+ Fixed att_xfer issue
+ Fix sip now includes the Allow-Events header in more places
+
+freeswitch (1.0.rc5)
+
+ Changed internal state names to avoid confusion
+ Fixed video negotiation
+ Enhanced accuracy of windows timer
+ Fixed mod_ldap build
+ Added dialplan and context to sql table for channels
+ Multiple fixes to mod_lua and mod_perl
+ Fixed logic bug in fifo causing segfault
+ internal changes to sip stack so we can remove a hash redundant to the stack
+ Fixed multiple memory leaks in mod_sofia
+ Fixed event fetch segfault on sip subscribe
+ Fixed segfault on timer rollover in sofia on 64bit
+ Fixed audio timing issues in mod_portaudio
+ Changed names of sip profiles in default config to avoid confusion
+ Fixed memory usage leak-like behavior when playing files requiring resampling
+ Removed some unused api's
+ Fix rtp timeout when playing moh
+ Removed some un-needed libraries and files from tree
+ Fixed multiple issues in sip stack including multiple segfaults
+ Added support for sip transfers on bypass_media and proxy_media calls
+ Added say application
+ Fixed --disable-debug configure option
+ Enhanced switch_cpp wrapper (and perl, python, lua, java)
+ Fixed segfault on inavalid stun response
+ Fixed configure help output
+ Fixed segfault on mp3 playback
+ Fixed assert on invalid sdp (missing m= line)
+ Added configurable windows service name
+ Fixed proxy mode call transition to non proxy call
+ Fixed solaris build of voipcodecs
+ Fixed sofia seg when call failure edge case
+
+freeswitch (1.0.rc4)
+
+ Add tab completion in cli
+ Add "inline" dialplan
+ Fixed segfault in enum
+ Enhance enum to fork dial equal priority entries
+ Added auto-reload to enum
+ Fixed odbc bug is mod_sofia presence handling
+ Add presence for conference and dial an eavesdrop
+ Fix stack overflow segfault when recursively parking calls
+ Fixed race is sofia registration handling
+ Enhance sofia registration, unregister on keep-alive OPTIONS failure
+ Added internal routing loop detection/avoidance
+ Fixed race in bgapi in event socket
+ Fixed vars to execute apps before bridge "bridge_pre_execute_aleg_app" and "bridge_pre_execute_bleg_app"
+ Fixed re-setting sound prefix to no prefix after a pharse
+ Enhanced setting of bracket vars from originate so they show in the CHANNEL_ORIGINATE event
+ Add "enable-timer" and "enable-100rel" options to turn off default behaviors in sofia
+ Add originate_timeout to originate vars
+ Fixed hanging channels in mod_portaudio
+ Added auto time sync on vps migration to different hardware
+ Fixed seg on transfer when both legs are not sip
+ Added configurable dtmf duration defaults
+ Enhanced voicemail, allow interruption of hello message
+ Fixed voicemail to not light up light on saved messages
+ Enhance mod_amr honor disable dtx in fmtp (MODCODEC-3)
+ Fixed bootstrap to install automake dependencies so you can use tarball without same version of automake installed
+ Fixed MODLANG-56 (bad audio on originate and javascript streamFile)
+ Added hold/unhold dialplan apps
+ Enhanced sofia error checking to outlaw 0.0.0.0 in sofia ip params
+ Backport fixes from sofia-sip tree
+ Fixed MSVC build
+ Fixed segfault on sip SUBSCRIBE with Expires: 0
+ Added mod_say_zh
+ Added --with-pyton and --with-pyton-config configure options
+ Added mod_lua
+ Enhanced switch_cpp wrapper in core and normalized interfaces for perl, python, lua, and java
+ Fixed multiple issues in cpp wrapper and the languages perl, python, lua and java
+ Added back mod_perl
+ Added sofia gateway option ping to adjust options ping frequency
+ Added .net event socket lib to contrib
+ Fixed passing of exact response codes of sip across a bridge
+ Added mod_reference, reference endpoint module
+ Enhanced build so you can now make commented out modules using "make mod_name"
+
+freeswitch (1.0.rc3)
+
+ Enhance xml menu system
+ Fixes upstream from sofia-sip library
+ Enhance mod_fifo
+ Added close method to ODBC spidermonkey class
+ Fix multiple bugs in the cpp wrapper used in mod_java and mod_python
+ Fix hung sip channel issue using respond app or on re-invite with bypass media after 1xx or 2xx responses
+
+freeswitch (1.0.rc2)
+
+ Fixed speex protocol negotiation issues (8k vs 16k)
+ Fixed mod_iax race conditions
+ Fixed ptime negotiation issues when re-packetizing
+ Added ip based acl lists
+
+freeswitch (1.0.rc1)
+
+
+
1
0
[commit] r9162 - in freeswitch/trunk/conf: autoload_configs lang/en lang/en/demo lang/fr/vm
by Freeswitch SVN 24 Jul '08
by Freeswitch SVN 24 Jul '08
24 Jul '08
Author: mikej
Date: Thu Jul 24 04:59:53 2008
New Revision: 9162
Modified:
freeswitch/trunk/conf/autoload_configs/ivr.conf.xml
freeswitch/trunk/conf/autoload_configs/openmrcp.conf.xml
freeswitch/trunk/conf/autoload_configs/xml_cdr.conf.xml
freeswitch/trunk/conf/lang/en/demo/demo-ivr.xml
freeswitch/trunk/conf/lang/en/en.xml
freeswitch/trunk/conf/lang/fr/vm/sounds.xml
Log:
line endings
Modified: freeswitch/trunk/conf/autoload_configs/ivr.conf.xml
==============================================================================
--- freeswitch/trunk/conf/autoload_configs/ivr.conf.xml (original)
+++ freeswitch/trunk/conf/autoload_configs/ivr.conf.xml Thu Jul 24 04:59:53 2008
@@ -1,56 +1,57 @@
-<configuration name="ivr.conf" description="IVR menus">
- <menus>
- <!-- 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"
- timeout ="10000"
- inter-digit-timeout="2000"
- max-failures="3"
- digit-len="4">
- <entry action="menu-exec-app" digits="1" param="bridge sofia/$${domain}/888(a)conference.freeswitch.org"/>
- <entry action="menu-exec-app" digits="2" param="transfer 9996 XML default"/> <!-- FS echo -->
- <entry action="menu-exec-app" digits="3" param="transfer 9999 XML default"/> <!-- MOH -->
- <entry action="menu-sub" digits="4" param="demo_ivr_submenu"/> <!-- demo sub menu -->
- <entry action="menu-exec-app" digits="5" param="transfer 1234*256 enum"/> <!-- Screaming monkeys -->
- <entry action="menu-exec-app" digits="/^(10[01][0-9])$/" param="transfer $1 XML default"/>
- <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">
- <entry action="menu-top" digits="*"/>
- </menu>
-
- </menus>
-
-
-</configuration>
-
-
-<!-- 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-playback" digits="1" param="say:You pressed 1"/>
- <entry action="menu-call-transfer" digits="2" param=
-
-
-"1000"/>
- <entry action="menu-call-transfer" digits="3" param="1001"/>
- </menu>
--->
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration name="ivr.conf" description="IVR menus">
+ <menus>
+ <!-- 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"
+ timeout ="10000"
+ inter-digit-timeout="2000"
+ max-failures="3"
+ digit-len="4">
+ <entry action="menu-exec-app" digits="1" param="bridge sofia/$${domain}/888(a)conference.freeswitch.org"/>
+ <entry action="menu-exec-app" digits="2" param="transfer 9996 XML default"/> <!-- FS echo -->
+ <entry action="menu-exec-app" digits="3" param="transfer 9999 XML default"/> <!-- MOH -->
+ <entry action="menu-sub" digits="4" param="demo_ivr_submenu"/> <!-- demo sub menu -->
+ <entry action="menu-exec-app" digits="5" param="transfer 1234*256 enum"/> <!-- Screaming monkeys -->
+ <entry action="menu-exec-app" digits="/^(10[01][0-9])$/" param="transfer $1 XML default"/>
+ <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">
+ <entry action="menu-top" digits="*"/>
+ </menu>
+
+ </menus>
+
+
+</configuration>
+
+
+<!-- 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-playback" digits="1" param="say:You pressed 1"/>
+ <entry action="menu-call-transfer" digits="2" param=
+
+
+"1000"/>
+ <entry action="menu-call-transfer" digits="3" param="1001"/>
+ </menu>
+-->
Modified: freeswitch/trunk/conf/autoload_configs/openmrcp.conf.xml
==============================================================================
--- freeswitch/trunk/conf/autoload_configs/openmrcp.conf.xml (original)
+++ freeswitch/trunk/conf/autoload_configs/openmrcp.conf.xml Thu Jul 24 04:59:53 2008
@@ -1,10 +1,11 @@
-<!-- http://wiki.freeswitch.org/wiki/Mod_openmrcp#Configuration -->
-<configuration name="openmrcp.conf" description="mod_openmrcp configuration">
- <settings>
- <param name="asr_default_profile" value="openmrcp-v2"/>
- <param name="tts_default_profile" value="openmrcp-v2"/>
- </settings>
- <profiles>
- <X-PRE-PROCESS cmd="include" data="../mrcp_profiles/*.xml"/>
- </profiles>
-</configuration>
+<?xml version="1.0" encoding="Windows-1252"?>
+<!-- http://wiki.freeswitch.org/wiki/Mod_openmrcp#Configuration -->
+<configuration name="openmrcp.conf" description="mod_openmrcp configuration">
+ <settings>
+ <param name="asr_default_profile" value="openmrcp-v2"/>
+ <param name="tts_default_profile" value="openmrcp-v2"/>
+ </settings>
+ <profiles>
+ <X-PRE-PROCESS cmd="include" data="../mrcp_profiles/*.xml"/>
+ </profiles>
+</configuration>
Modified: freeswitch/trunk/conf/autoload_configs/xml_cdr.conf.xml
==============================================================================
--- freeswitch/trunk/conf/autoload_configs/xml_cdr.conf.xml (original)
+++ freeswitch/trunk/conf/autoload_configs/xml_cdr.conf.xml Thu Jul 24 04:59:53 2008
@@ -1,39 +1,40 @@
-<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"/> -->
-
- <!-- 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"/>
-
-
- <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding or 'base64' for base64 encoding -->
- <param name="encode" value="true"/>
-
- <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting -->
- <!--<param name="disable-100-continue" value="true"/>-->
-
- <!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir -->
- <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/xml_cdr -->
- <!-- <param name="err-log-dir" value="/tmp"/> -->
-
- <!-- optional: if enabled this will disable CA root certificate checks by libcurl -->
- <!-- note: default value is disabled. only enable if you want this! -->
- <!-- <param name="ignore-cacert-check" value="true" /> -->
-
- </settings>
-</configuration>
+<?xml version="1.0" encoding="Windows-1252"?>
+<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"/> -->
+
+ <!-- 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"/>
+
+
+ <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding or 'base64' for base64 encoding -->
+ <param name="encode" value="true"/>
+
+ <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting -->
+ <!--<param name="disable-100-continue" value="true"/>-->
+
+ <!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir -->
+ <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/xml_cdr -->
+ <!-- <param name="err-log-dir" value="/tmp"/> -->
+
+ <!-- optional: if enabled this will disable CA root certificate checks by libcurl -->
+ <!-- note: default value is disabled. only enable if you want this! -->
+ <!-- <param name="ignore-cacert-check" value="true" /> -->
+
+ </settings>
+</configuration>
Modified: freeswitch/trunk/conf/lang/en/demo/demo-ivr.xml
==============================================================================
--- freeswitch/trunk/conf/lang/en/demo/demo-ivr.xml (original)
+++ freeswitch/trunk/conf/lang/en/demo/demo-ivr.xml Thu Jul 24 04:59:53 2008
@@ -1,158 +1,159 @@
-<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"> <!-- 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="execute" data="sleep(250)"/>
- <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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 -->
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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="execute" data="sleep(250)"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 4: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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="execute" data="sleep(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">
- <input pattern="(.*)">
- <match>
- <!-- Menu option 1: Call FreeSWITCH conference-->
- <action function="execute" data="sleep(1000)"/>
- <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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="execute" data="sleep(250)"/>
- <!-- Menu option 2: Do FreeSWITCH echo test -->
- <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 3: Listen to Music on Hold -->
- <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 4: Hear a sample submenu -->
- <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 5: Listen to screaming monkeys -->
- <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option 9: Repeat these options -->
- <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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="execute" data="sleep(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="execute" data="sleep(250)"/>
- <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
- <action function="execute" data="sleep(250)"/>
- <!-- Menu option *: Return to top menu -->
- <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
- <action function="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- </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="execute" data="sleep(250)"/>
- <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"/>
- <action function="execute" data="sleep(250)"/>
- </match>
- </input>
- </macro>
-
-</include><!--This line will be ignored it's here to validate the xml and is optional -->
+<?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"> <!-- 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="execute" data="sleep(250)"/>
+ <action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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 -->
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 1: Call FreeSWITCH conference-->
+ <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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="execute" data="sleep(250)"/>
+ <!-- Menu option 2: Do FreeSWITCH echo test -->
+ <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 3: Listen to Music on Hold -->
+ <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 4: Hear a sample submenu -->
+ <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 5: Listen to screaming monkeys -->
+ <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 9: Repeat these options -->
+ <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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="execute" data="sleep(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">
+ <input pattern="(.*)">
+ <match>
+ <!-- Menu option 1: Call FreeSWITCH conference-->
+ <action function="execute" data="sleep(1000)"/>
+ <action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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="execute" data="sleep(250)"/>
+ <!-- Menu option 2: Do FreeSWITCH echo test -->
+ <action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 3: Listen to Music on Hold -->
+ <action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 4: Hear a sample submenu -->
+ <action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 5: Listen to screaming monkeys -->
+ <action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option 9: Repeat these options -->
+ <action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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="execute" data="sleep(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="execute" data="sleep(250)"/>
+ <action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <!-- Menu option *: Return to top menu -->
+ <action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
+ <action function="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ </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="execute" data="sleep(250)"/>
+ <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"/>
+ <action function="execute" data="sleep(250)"/>
+ </match>
+ </input>
+ </macro>
+
+</include><!--This line will be ignored it's here to validate the xml and is optional -->
Modified: freeswitch/trunk/conf/lang/en/en.xml
==============================================================================
--- freeswitch/trunk/conf/lang/en/en.xml (original)
+++ freeswitch/trunk/conf/lang/en/en.xml Thu Jul 24 04:59:53 2008
@@ -1,7 +1,8 @@
-<include>
- <language name="en" sound-path="$${base_dir}/sounds/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 need a files based implementation too -->
- <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
- </language>
-</include>
+<?xml version="1.0" encoding="Windows-1252"?>
+<include>
+ <language name="en" sound-path="$${base_dir}/sounds/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 need a files based implementation too -->
+ <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
+ </language>
+</include>
Modified: freeswitch/trunk/conf/lang/fr/vm/sounds.xml
==============================================================================
--- freeswitch/trunk/conf/lang/fr/vm/sounds.xml (original)
+++ freeswitch/trunk/conf/lang/fr/vm/sounds.xml Thu Jul 24 04:59:53 2008
@@ -1,210 +1,211 @@
-<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="Entrez votre Identification, suivi par $1."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_enter_pass">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Entrez votre code, suivi par $1."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_fail_auth">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Identification incorrect."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_hello">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Bienvenu sur votre r�pondeur."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_goodbye">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Aurevoir."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_abort">
- <input pattern="(.*)">
- <match>
- <action function="speak-text" data="Trop de tentatives �chou�es."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_message_count">
- <input pattern="^([^:]+):([^:]+):{0,1}(.*)">
- <match>
- <action function="speak-text" data="Vous avez $1 $2 message$3 dans le r�pertoir ${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="Pour �couter les nouveaux message, tappez $1, Pour �couter les messages enregistr�s, tappez $2, Pour les options avanc�es, tappez $3, pour sortir, tappez $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="pour enregistrer un message d'accueil, tappez $1, Pour choisir votre message d'accueil, tappez $2, Pour enregistrer votre nom, tappez $3, pour retourner au menu principale, tappez $4."/>
- </match>
- </input>
- </macro>
-
-
- <macro name="voicemail_record_name">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="enregistrez votre nom au bip, puis tappez une touche ou arretez de parler pour arreter l'enregistrement."/>
-
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_record_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Pour �couter l'enregistrement, tappez $1, pour sauvegarder l'enregistrement, tappez $2, Pour r�enregistrer, tappez $3."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_record_urgent_check">
- <input pattern="^([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Pour indiquer ce messange comme �tant urgent, tappez $1, Pour continuer, tappez $2."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_listen_file_check">
- <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
- <match>
- <action function="speak-text"
- data="Pour r��couter l'enregistrement � nouveau, tappez $1, Pour sauvegarder l'enregistrement, tappez $2, Pour supprimer l'enregistrement, tappez $3, pour transf�rer l'enregistrement � votre mail, tappez $4."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_choose_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="choisissez un message d'accueil entre 1 et 3."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_choose_greeting_fail">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="valeur incorrect."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_record_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="enregistrez votre message d'accueil au bip, puis tappez une touche ou arretez de parler pour arreter l'enregistrement."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_record_message">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="enregistrez votre message au bip, puis tappez une touche ou arretez de parler pour arreter l'enregistrement."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_greeting_selected">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="message d'accueil numero $1 selectionn�."/>
- </match>
- </input>
- </macro>
-
- <macro name="voicemail_play_greeting">
- <input pattern="^(.*)$">
- <match>
- <action function="speak-text" data="$1 n'est pas valide."/>
- </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 message numero $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="message $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>
-
+<?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="voicemail_enter_id">
+ <input pattern="(.*)">
+ <match>
+ <action function="speak-text" data="Entrez votre Identification, suivi par $1."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_enter_pass">
+ <input pattern="(.*)">
+ <match>
+ <action function="speak-text" data="Entrez votre code, suivi par $1."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_fail_auth">
+ <input pattern="(.*)">
+ <match>
+ <action function="speak-text" data="Identification incorrect."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_hello">
+ <input pattern="(.*)">
+ <match>
+ <action function="speak-text" data="Bienvenu sur votre r�pondeur."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_goodbye">
+ <input pattern="(.*)">
+ <match>
+ <action function="speak-text" data="Aurevoir."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_abort">
+ <input pattern="(.*)">
+ <match>
+ <action function="speak-text" data="Trop de tentatives �chou�es."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_message_count">
+ <input pattern="^([^:]+):([^:]+):{0,1}(.*)">
+ <match>
+ <action function="speak-text" data="Vous avez $1 $2 message$3 dans le r�pertoir ${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="Pour �couter les nouveaux message, tappez $1, Pour �couter les messages enregistr�s, tappez $2, Pour les options avanc�es, tappez $3, pour sortir, tappez $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="pour enregistrer un message d'accueil, tappez $1, Pour choisir votre message d'accueil, tappez $2, Pour enregistrer votre nom, tappez $3, pour retourner au menu principale, tappez $4."/>
+ </match>
+ </input>
+ </macro>
+
+
+ <macro name="voicemail_record_name">
+ <input pattern="^(.*)$">
+ <match>
+ <action function="speak-text" data="enregistrez votre nom au bip, puis tappez une touche ou arretez de parler pour arreter l'enregistrement."/>
+
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_record_file_check">
+ <input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
+ <match>
+ <action function="speak-text"
+ data="Pour �couter l'enregistrement, tappez $1, pour sauvegarder l'enregistrement, tappez $2, Pour r�enregistrer, tappez $3."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_record_urgent_check">
+ <input pattern="^([0-9#*]):([0-9#*])$">
+ <match>
+ <action function="speak-text"
+ data="Pour indiquer ce messange comme �tant urgent, tappez $1, Pour continuer, tappez $2."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_listen_file_check">
+ <input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
+ <match>
+ <action function="speak-text"
+ data="Pour r��couter l'enregistrement � nouveau, tappez $1, Pour sauvegarder l'enregistrement, tappez $2, Pour supprimer l'enregistrement, tappez $3, pour transf�rer l'enregistrement � votre mail, tappez $4."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_choose_greeting">
+ <input pattern="^(.*)$">
+ <match>
+ <action function="speak-text" data="choisissez un message d'accueil entre 1 et 3."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_choose_greeting_fail">
+ <input pattern="^(.*)$">
+ <match>
+ <action function="speak-text" data="valeur incorrect."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_record_greeting">
+ <input pattern="^(.*)$">
+ <match>
+ <action function="speak-text" data="enregistrez votre message d'accueil au bip, puis tappez une touche ou arretez de parler pour arreter l'enregistrement."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_record_message">
+ <input pattern="^(.*)$">
+ <match>
+ <action function="speak-text" data="enregistrez votre message au bip, puis tappez une touche ou arretez de parler pour arreter l'enregistrement."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_greeting_selected">
+ <input pattern="^(.*)$">
+ <match>
+ <action function="speak-text" data="message d'accueil numero $1 selectionn�."/>
+ </match>
+ </input>
+ </macro>
+
+ <macro name="voicemail_play_greeting">
+ <input pattern="^(.*)$">
+ <match>
+ <action function="speak-text" data="$1 n'est pas valide."/>
+ </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 message numero $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="message $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 -->
\ No newline at end of file
1
0