Merge remote branch 'fsorig/master' into nfas

Conflicts:
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c
This commit is contained in:
David Yat Sin 2012-09-03 22:34:13 -04:00
commit 3a57b0bed6
1605 changed files with 170693 additions and 121274 deletions

15
.gitattributes vendored Normal file
View File

@ -0,0 +1,15 @@
# gitattributes
*.exe -diff binary executable windows dfsg-nonfree debian-ignore
*.wav -diff binary sound
*.gif -diff binary image
*.jpg -diff binary image
*.jpeg -diff binary image
*.pbm -diff binary image
/clients/flex* dfsg-nonfree
/debian* debian-ignore
/freeswitch.xcodeproj debian-ignore
/libs/ilbc* dfsg-nonfree
/libs/libg722_1* dfsg-nonfree
/libs/win32* windows debian-ignore
/htdocs* dfsg-nonfree debian-ignore
/w32* windows debian-ignore

26
.gitignore vendored
View File

@ -43,6 +43,7 @@ configure.lineno
config.log
config.status
core.*
TAGS
*.2010.log
*.Build.CppClean.log
*.tlog
@ -57,6 +58,7 @@ core.*
!/w32/Setup/inno_setup/vcredist_x86.exe
/.version
/.stamp-*
/a.out.dSYM
/AUTHORS
/ChangeLog
@ -71,6 +73,7 @@ core.*
/Makefile.in
/modules.conf
/NEWS
/noreg
/Path
/quiet_libtool
/README
@ -81,6 +84,8 @@ core.*
/Debug/
/bin/
/Release/
/ipch/
/*.log
/build/config/compile
/build/config/config.guess
@ -96,6 +101,7 @@ core.*
/build/Makefile
/build/Makefile.in
/build/modmake.rules
/build/print_git_revision
/libs/curl/lib/ca-bundle.h
/libs/esl/fs_cli
@ -199,3 +205,23 @@ src/mod/formats/mod_shout/*/*/mod_shout.log
/src/mod/languages/mod_managed/x64/Release_CLR/FREESWITCH.MANAGED.DLL.metagen
/src/mod/languages/mod_managed/x64/Release_CLR/RSAENH.DLL.bi
/src/mod/languages/mod_managed/x64/Release_CLR/TZRES.DLL.bi
libs/apr-util/a.out.dSYM/Contents/Info.plist
libs/apr-util/a.out.dSYM/Contents/Resources/DWARF/a.out
libs/apr/a.out.dSYM/Contents/Info.plist
libs/apr/a.out.dSYM/Contents/Resources/DWARF/a.out
libs/iksemel/a.out.dSYM/Contents/Info.plist
libs/iksemel/a.out.dSYM/Contents/Resources/DWARF/a.out
libs/ilbc/a.out.dSYM/Contents/Info.plist
libs/ilbc/a.out.dSYM/Contents/Resources/DWARF/a.out
libs/libedit/a.out.dSYM/Contents/Info.plist
libs/libedit/a.out.dSYM/Contents/Resources/DWARF/a.out
libs/pcre/a.out.dSYM/Contents/Info.plist
libs/pcre/a.out.dSYM/Contents/Resources/DWARF/a.out
libs/sqlite/lemon.dSYM/Contents/Info.plist
libs/sqlite/lemon.dSYM/Contents/Resources/DWARF/lemon
libs/sqlite/mkkeywordhash.dSYM/Contents/Info.plist
libs/sqlite/mkkeywordhash.dSYM/Contents/Resources/DWARF/mkkeywordhash
libs/sqlite/sqlite3.dSYM/Contents/Info.plist
libs/sqlite/sqlite3.dSYM/Contents/Resources/DWARF/sqlite3
libs/srtp/a.out.dSYM/Contents/Info.plist
libs/srtp/a.out.dSYM/Contents/Resources/DWARF/a.out

View File

@ -1 +0,0 @@
@SWITCH_VERSION_REVISION@

View File

@ -542,6 +542,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lcr", "src\mod\applicat
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2008.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
ProjectSection(ProjectDependencies) = postProject
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A} = {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}
{329A6FA0-0FCC-4435-A950-E670AEFA9838} = {329A6FA0-0FCC-4435-A950-E670AEFA9838}
{DEE932AB-5911-4700-9EEB-8C7090A0A330} = {DEE932AB-5911-4700-9EEB-8C7090A0A330}
{401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}
@ -667,6 +668,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_directory", "src\mod\ap
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldns-lib\ldns-lib.2008.vcproj", "{23B4D303-79FC-49E0-89E2-2280E7E28940}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libjpeg", "libs\win32\Download libjpeg.2008.vcproj", "{21A7DA70-555E-49FA-942B-D84A38B61243}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2008.vcproj", "{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}"
ProjectSection(ProjectDependencies) = postProject
{21A7DA70-555E-49FA-942B-D84A38B61243} = {21A7DA70-555E-49FA-942B-D84A38B61243}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
All|Win32 = All|Win32
@ -2138,6 +2146,24 @@ Global
{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.ActiveCfg = Release|Win32
{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.Build.0 = Release|Win32
{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.ActiveCfg = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.All|Win32.ActiveCfg = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.All|Win32.Build.0 = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.All|x64.ActiveCfg = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|Win32.ActiveCfg = Debug|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|Win32.Build.0 = Debug|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|x64.ActiveCfg = Debug|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Release|Win32.ActiveCfg = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Release|Win32.Build.0 = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Release|x64.ActiveCfg = Release|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|Win32.ActiveCfg = Debug|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|Win32.Build.0 = Debug|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|x64.ActiveCfg = Debug|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|Win32.ActiveCfg = Debug|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|Win32.Build.0 = Debug|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|x64.ActiveCfg = Debug|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|Win32.ActiveCfg = Release|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|Win32.Build.0 = Release|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -718,6 +718,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2008.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
ProjectSection(ProjectDependencies) = postProject
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A} = {FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}
{329A6FA0-0FCC-4435-A950-E670AEFA9838} = {329A6FA0-0FCC-4435-A950-E670AEFA9838}
{DEE932AB-5911-4700-9EEB-8C7090A0A330} = {DEE932AB-5911-4700-9EEB-8C7090A0A330}
{401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}
@ -953,6 +954,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_abstraction", "src\mod\
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsmopen", "src\mod\endpoints\mod_gsmopen\mod_gsmopen.2008.vcproj", "{74B120FF-6935-4DFE-A142-CDB6BEA99C90}"
ProjectSection(ProjectDependencies) = postProject
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsmlib", "src\mod\endpoints\mod_gsmopen\gsmlib\gsmlib-1.10-patched-13ubuntu\win32\gsmlib.vcproj", "{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2008.vcproj", "{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}"
ProjectSection(ProjectDependencies) = postProject
{21A7DA70-555E-49FA-942B-D84A38B61243} = {21A7DA70-555E-49FA-942B-D84A38B61243}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libjpeg", "libs\win32\Download libjpeg.2008.vcproj", "{21A7DA70-555E-49FA-942B-D84A38B61243}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
All|Win32 = All|Win32
@ -2698,6 +2713,42 @@ Global
{BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|Win32.Build.0 = Release|Win32
{BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|x64.ActiveCfg = Release|x64
{BDA173DB-F8EF-4270-9553-B453AF92E43A}.Release|x64.Build.0 = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.ActiveCfg = Release|Win32
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.Build.0 = Release|Win32
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.ActiveCfg = Release|Win32
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.ActiveCfg = Debug|Win32
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.ActiveCfg = Debug|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.ActiveCfg = Release|Win32
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.ActiveCfg = Release|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.ActiveCfg = Debug|Win32
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.Build.0 = Debug|Win32
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.ActiveCfg = Debug|Win32
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.ActiveCfg = Debug|Win32
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.ActiveCfg = Debug|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.ActiveCfg = Release|Win32
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.ActiveCfg = Release|x64
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|Win32.ActiveCfg = Debug|x64
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|x64.ActiveCfg = Debug|x64
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.All|x64.Build.0 = Debug|x64
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|Win32.ActiveCfg = Debug|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|Win32.Build.0 = Debug|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|x64.ActiveCfg = Debug|x64
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Debug|x64.Build.0 = Debug|x64
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|Win32.ActiveCfg = Release|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|Win32.Build.0 = Release|Win32
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|x64.ActiveCfg = Release|x64
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A}.Release|x64.Build.0 = Release|x64
{21A7DA70-555E-49FA-942B-D84A38B61243}.All|Win32.ActiveCfg = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.All|Win32.Build.0 = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.All|x64.ActiveCfg = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|Win32.ActiveCfg = Debug|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|Win32.Build.0 = Debug|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|x64.ActiveCfg = Debug|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Debug|x64.Build.0 = Debug|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Release|Win32.ActiveCfg = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Release|Win32.Build.0 = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Release|x64.ActiveCfg = Release|Win32
{21A7DA70-555E-49FA-942B-D84A38B61243}.Release|x64.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -2723,6 +2774,7 @@ Global
{CC1DD008-9406-448D-A0AD-33C3186CFADB} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{48414740-C693-4968-9846-EE058020C64F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
@ -2822,6 +2874,8 @@ Global
{56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{B376D494-D7DD-4B2A-99E2-52916D5A8CD8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{23B4D303-79FC-49E0-89E2-2280E7E28940} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{FE02CD06-DD97-489C-8F61-B5E7F89BCC0A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{4F92B672-DADB-4047-8D6A-4BB3796733FD} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{2DEE4895-1134-439C-B688-52203E57D878} = {C120A020-773F-4EA3-923F-B67AF28B750D}
@ -2840,6 +2894,7 @@ Global
{FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{B808178B-82F0-4CF4-A2B1-921939FA24D0} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{D578E676-7EC8-4548-BD8B-845C635F14AD} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{21A7DA70-555E-49FA-942B-D84A38B61243} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{5BC072DB-3826-48EA-AF34-FE32AA01E83B} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{FA429E98-8B03-45E6-A096-A4BC5E821DE4} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}

View File

@ -219,6 +219,9 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lcr", "src\mod\applications\mod_lcr\mod_lcr.2010.vcxproj", "{1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2010.vcxproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
ProjectSection(ProjectDependencies) = postProject
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\speex\win32\VS2008\libspeex\libspeex.vcxproj", "{E972C52F-9E85-4D65-B19C-031E511E9DB4}"
EndProject
@ -320,6 +323,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldn
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre Generate pcre_chartables.c", "libs\win32\pcre\pcre_chartables.c.2010.vcxproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzrtp", "libs\libzrtp\projects\win\libzrtp.2010.vcxproj", "{C13CC324-0032-4492-9A30-310A6BD64FF5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libjpeg", "libs\win32\Download libjpeg.2010.vcxproj", "{652AD5F7-8488-489F-AAD0-7FBE064703B6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2010.vcxproj", "{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}"
ProjectSection(ProjectDependencies) = postProject
{652AD5F7-8488-489F-AAD0-7FBE064703B6} = {652AD5F7-8488-489F-AAD0-7FBE064703B6}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
All|Win32 = All|Win32
@ -1989,6 +2001,35 @@ Global
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.ActiveCfg = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.ActiveCfg = Release|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64.ActiveCfg = Release|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64.Build.0 = Release|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.ActiveCfg = Debug|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.Build.0 = Debug|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.ActiveCfg = Debug|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.Build.0 = Debug|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.ActiveCfg = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.Build.0 = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.ActiveCfg = Release|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.Build.0 = Release|x64
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.Build.0 = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x64.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.ActiveCfg = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.Build.0 = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64.ActiveCfg = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|Win32.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|Win32.Build.0 = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.Build.0 = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x64.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.ActiveCfg = Debug|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.Build.0 = Debug|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.ActiveCfg = Debug|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.Build.0 = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -2089,6 +2130,7 @@ Global
{ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{9778F1C0-09BC-4698-8EBC-BD982247209A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{C13CC324-0032-4492-9A30-310A6BD64FF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}

View File

@ -235,6 +235,9 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.2010.vcxproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curllib", "libs\win32\curl\curllib.2010.vcxproj", "{87EE9DA4-DE1E-4448-8324-183C98DCA588}"
ProjectSection(ProjectDependencies) = postProject
{25BD39B1-C8BF-4676-A738-9CABD9C6BC79} = {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "libs\win32\apr-util\xml.2010.vcxproj", "{155844C3-EC5F-407F-97A4-A2DDADED9B2F}"
EndProject
@ -494,6 +497,9 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay32", "libs\win32\openssl\ssleay32.2010.vcxproj", "{B4B62169-5AD4-4559-8707-3D933AC5DB39}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openssl", "libs\win32\openssl\openssl.2010.vcxproj", "{25BD39B1-C8BF-4676-A738-9CABD9C6BC79}"
ProjectSection(ProjectDependencies) = postProject
{D578E676-7EC8-4548-BD8B-845C635F14AD} = {D578E676-7EC8-4548-BD8B-845C635F14AD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OPENSSL", "libs\win32\Download OPENSSL.2010.vcxproj", "{D578E676-7EC8-4548-BD8B-845C635F14AD}"
EndProject
@ -521,6 +527,21 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_abstraction", "src\mod\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sms", "src\mod\applications\mod_sms\mod_sms.2010.vcxproj", "{2469B306-B027-4FF2-8815-C9C1EA2CAE79}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsmlib", "src\mod\endpoints\mod_gsmopen\gsmlib\gsmlib-1.10-patched-13ubuntu\win32\gsmlib.2010.vcxproj", "{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsmopen", "src\mod\endpoints\mod_gsmopen\mod_gsmopen.2010.vcxproj", "{74B120FF-6935-4DFE-A142-CDB6BEA99C90}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzrtp", "libs\libzrtp\projects\win\libzrtp.2010.vcxproj", "{C13CC324-0032-4492-9A30-310A6BD64FF5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_redis", "src\mod\applications\mod_redis\mod_redis.2010.vcxproj", "{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libjpeg", "libs\win32\Download libjpeg.2010.vcxproj", "{652AD5F7-8488-489F-AAD0-7FBE064703B6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2010.vcxproj", "{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}"
ProjectSection(ProjectDependencies) = postProject
{652AD5F7-8488-489F-AAD0-7FBE064703B6} = {652AD5F7-8488-489F-AAD0-7FBE064703B6}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
All|Win32 = All|Win32
@ -1238,11 +1259,15 @@ Global
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64 Setup.Build.0 = Release|x64
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x86 Setup.ActiveCfg = Release|x64
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.ActiveCfg = Debug|Win32
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.Build.0 = Debug|Win32
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.ActiveCfg = Debug|x64
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.Build.0 = Debug|x64
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64 Setup.ActiveCfg = Debug|x64
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.ActiveCfg = Release|Win32
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.Build.0 = Release|Win32
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.ActiveCfg = Release|x64
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.Build.0 = Release|x64
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64 Setup.ActiveCfg = Release|x64
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x86 Setup.ActiveCfg = Release|Win32
{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64
@ -2098,11 +2123,15 @@ Global
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64 Setup.Build.0 = Release Static|x64
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x86 Setup.ActiveCfg = Release Static|x64
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.ActiveCfg = Debug|Win32
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.Build.0 = Debug|Win32
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.ActiveCfg = Debug|x64
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.Build.0 = Debug|x64
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64 Setup.ActiveCfg = Debug|x64
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.ActiveCfg = Release|Win32
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.Build.0 = Release|Win32
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.ActiveCfg = Release|x64
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.Build.0 = Release|x64
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64 Setup.ActiveCfg = Release|x64
{66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x86 Setup.ActiveCfg = Release|Win32
{D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.ActiveCfg = Release|Win32
@ -2636,11 +2665,15 @@ Global
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64 Setup.ActiveCfg = Release|Win32
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x86 Setup.ActiveCfg = Release|Win32
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.ActiveCfg = Debug|Win32
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.Build.0 = Debug|Win32
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.ActiveCfg = Debug|x64
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.Build.0 = Debug|x64
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64 Setup.ActiveCfg = Debug|x64
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.ActiveCfg = Release|Win32
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.Build.0 = Release|Win32
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.ActiveCfg = Release|x64
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.Build.0 = Release|x64
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64 Setup.ActiveCfg = Release|x64
{CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x86 Setup.ActiveCfg = Release|Win32
{48414740-C693-4968-9846-EE058020C64F}.All|Win32.ActiveCfg = Release|Win32
@ -2648,11 +2681,15 @@ Global
{48414740-C693-4968-9846-EE058020C64F}.All|x64 Setup.ActiveCfg = Release|Win32
{48414740-C693-4968-9846-EE058020C64F}.All|x86 Setup.ActiveCfg = Release|Win32
{48414740-C693-4968-9846-EE058020C64F}.Debug|Win32.ActiveCfg = Debug|Win32
{48414740-C693-4968-9846-EE058020C64F}.Debug|Win32.Build.0 = Debug|Win32
{48414740-C693-4968-9846-EE058020C64F}.Debug|x64.ActiveCfg = Debug|x64
{48414740-C693-4968-9846-EE058020C64F}.Debug|x64.Build.0 = Debug|x64
{48414740-C693-4968-9846-EE058020C64F}.Debug|x64 Setup.ActiveCfg = Debug|x64
{48414740-C693-4968-9846-EE058020C64F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{48414740-C693-4968-9846-EE058020C64F}.Release|Win32.ActiveCfg = Release|Win32
{48414740-C693-4968-9846-EE058020C64F}.Release|Win32.Build.0 = Release|Win32
{48414740-C693-4968-9846-EE058020C64F}.Release|x64.ActiveCfg = Release|x64
{48414740-C693-4968-9846-EE058020C64F}.Release|x64.Build.0 = Release|x64
{48414740-C693-4968-9846-EE058020C64F}.Release|x64 Setup.ActiveCfg = Release|x64
{48414740-C693-4968-9846-EE058020C64F}.Release|x86 Setup.ActiveCfg = Release|Win32
{DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.ActiveCfg = All|Win32
@ -2712,11 +2749,15 @@ Global
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x86 Setup.ActiveCfg = Release|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x86 Setup.Build.0 = Release|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.ActiveCfg = Debug|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.Build.0 = Debug|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.ActiveCfg = Debug|x64
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.Build.0 = Debug|x64
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.ActiveCfg = Release|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.Build.0 = Release|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.ActiveCfg = Release|x64
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.Build.0 = Release|x64
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64 Setup.ActiveCfg = Release|Win32
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x86 Setup.ActiveCfg = Release|Win32
{1F0A8A77-E661-418F-BB92-82172AE43803}.All|Win32.ActiveCfg = Release|Win32
@ -3386,11 +3427,15 @@ Global
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64 Setup.Build.0 = Release|x64
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x86 Setup.ActiveCfg = Release|x64
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|Win32.ActiveCfg = Debug|Win32
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|Win32.Build.0 = Debug|Win32
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64.ActiveCfg = Debug|x64
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64.Build.0 = Debug|x64
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64 Setup.ActiveCfg = Debug|x64
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|Win32.ActiveCfg = Release|Win32
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|Win32.Build.0 = Release|Win32
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64.ActiveCfg = Release|x64
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64.Build.0 = Release|x64
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x64 Setup.ActiveCfg = Release|x64
{B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release|x86 Setup.ActiveCfg = Release|Win32
{05C9FB27-480E-4D53-B3B7-7338E2514666}.All|Win32.ActiveCfg = Release|Win32
@ -3414,11 +3459,15 @@ Global
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x64 Setup.Build.0 = Release|x64
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.All|x86 Setup.ActiveCfg = Release|x64
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|Win32.ActiveCfg = Debug|Win32
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|Win32.Build.0 = Debug|Win32
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64.ActiveCfg = Debug|x64
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64.Build.0 = Debug|x64
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x64 Setup.ActiveCfg = Debug|x64
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|Win32.ActiveCfg = Release|Win32
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|Win32.Build.0 = Release|Win32
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64.ActiveCfg = Release|x64
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64.Build.0 = Release|x64
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x64 Setup.ActiveCfg = Release|x64
{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F}.Release|x86 Setup.ActiveCfg = Release|Win32
{47213370-B933-487D-9F45-BCA26D7E2B6F}.All|Win32.ActiveCfg = Release|x86
@ -3453,7 +3502,7 @@ Global
{7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64.ActiveCfg = Release|x64
{7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64.Build.0 = Release|x64
{7C22BDFF-CC09-400C-8A09-660733980028}.Release|x64 Setup.ActiveCfg = Release|x64
{7C22BDFF-CC09-400C-8A09-660733980028}.Release|x86 Setup.ActiveCfg = Release|x64
{7C22BDFF-CC09-400C-8A09-660733980028}.Release|x86 Setup.ActiveCfg = Release|Win32
{23B4D303-79FC-49E0-89E2-2280E7E28940}.All|Win32.ActiveCfg = Release|x64
{23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.ActiveCfg = Release|x64
{23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.Build.0 = Release|x64
@ -3470,33 +3519,41 @@ Global
{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.ActiveCfg = Release|x64
{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.Build.0 = Release|x64
{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64 Setup.ActiveCfg = Release|x64
{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x86 Setup.ActiveCfg = Release|x64
{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x86 Setup.ActiveCfg = Release|Win32
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|Win32.ActiveCfg = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64.ActiveCfg = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64.Build.0 = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64 Setup.ActiveCfg = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x86 Setup.ActiveCfg = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|Win32.ActiveCfg = Debug|Win32
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|Win32.Build.0 = Debug|Win32
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64.ActiveCfg = Debug|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64.Build.0 = Debug|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x64 Setup.ActiveCfg = Debug|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Debug|x86 Setup.ActiveCfg = Debug|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|Win32.ActiveCfg = Release|Win32
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|Win32.Build.0 = Release|Win32
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64.ActiveCfg = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64.Build.0 = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x64 Setup.ActiveCfg = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x86 Setup.ActiveCfg = Release|x64
{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.Release|x86 Setup.ActiveCfg = Release|Win32
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|Win32.ActiveCfg = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64.ActiveCfg = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64.Build.0 = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x64 Setup.ActiveCfg = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.All|x86 Setup.ActiveCfg = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|Win32.ActiveCfg = Debug|Win32
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|Win32.Build.0 = Debug|Win32
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64.ActiveCfg = Debug|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64.Build.0 = Debug|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x64 Setup.ActiveCfg = Debug|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Debug|x86 Setup.ActiveCfg = Debug|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|Win32.ActiveCfg = Release|Win32
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|Win32.Build.0 = Release|Win32
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64.ActiveCfg = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64.Build.0 = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x64 Setup.ActiveCfg = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x86 Setup.ActiveCfg = Release|x64
{50AAC2CE-BFC9-4912-87CC-C6381850D735}.Release|x86 Setup.ActiveCfg = Release|Win32
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|Win32.ActiveCfg = Release|x64
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x64.ActiveCfg = Release|x64
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.All|x64.Build.0 = Release|x64
@ -3513,7 +3570,7 @@ Global
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.ActiveCfg = Release|x64
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.Build.0 = Release|x64
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64 Setup.ActiveCfg = Release|x64
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x86 Setup.ActiveCfg = Release|x64
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x86 Setup.ActiveCfg = Release|Win32
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|Win32.ActiveCfg = Release|x64
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.ActiveCfg = Release|x64
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.Build.0 = Release|x64
@ -3530,20 +3587,118 @@ Global
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.ActiveCfg = Release|x64
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.Build.0 = Release|x64
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64 Setup.ActiveCfg = Release|x64
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x86 Setup.ActiveCfg = Release|x64
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x86 Setup.ActiveCfg = Release|Win32
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|Win32.ActiveCfg = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.ActiveCfg = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.Build.0 = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64 Setup.ActiveCfg = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x86 Setup.ActiveCfg = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|Win32.ActiveCfg = Debug|Win32
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|Win32.Build.0 = Debug|Win32
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64.ActiveCfg = Debug|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64.Build.0 = Debug|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x64 Setup.ActiveCfg = Debug|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Debug|x86 Setup.ActiveCfg = Debug|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|Win32.ActiveCfg = Release|Win32
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|Win32.Build.0 = Release|Win32
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.ActiveCfg = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.Build.0 = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64 Setup.ActiveCfg = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x86 Setup.ActiveCfg = Release|x64
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x86 Setup.ActiveCfg = Release|Win32
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.ActiveCfg = Release|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.ActiveCfg = Release|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.Build.0 = Release|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64 Setup.ActiveCfg = Release|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x86 Setup.ActiveCfg = Release|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.ActiveCfg = Debug|Win32
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.ActiveCfg = Debug|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64 Setup.ActiveCfg = Debug|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x86 Setup.ActiveCfg = Debug|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.ActiveCfg = Release|Win32
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.ActiveCfg = Release|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64 Setup.ActiveCfg = Release|x64
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x86 Setup.ActiveCfg = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.ActiveCfg = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.ActiveCfg = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.Build.0 = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64 Setup.ActiveCfg = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x86 Setup.ActiveCfg = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.ActiveCfg = Debug|Win32
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.ActiveCfg = Debug|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64 Setup.ActiveCfg = Debug|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x86 Setup.ActiveCfg = Debug|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.ActiveCfg = Release|Win32
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.ActiveCfg = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64 Setup.ActiveCfg = Release|x64
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x86 Setup.ActiveCfg = Release|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.ActiveCfg = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.Build.0 = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64.ActiveCfg = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64 Setup.ActiveCfg = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x86 Setup.ActiveCfg = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.ActiveCfg = Debug|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.Build.0 = Debug|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.ActiveCfg = Debug|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.Build.0 = Debug|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.ActiveCfg = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.Build.0 = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.ActiveCfg = Release|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.Build.0 = Release|x64
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64 Setup.ActiveCfg = Release|Win32
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x86 Setup.ActiveCfg = Release|Win32
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|Win32.ActiveCfg = Release|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.ActiveCfg = Release|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.Build.0 = Release|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64 Setup.ActiveCfg = Release|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x86 Setup.ActiveCfg = Release|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|Win32.ActiveCfg = Debug|Win32
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|Win32.Build.0 = Debug|Win32
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64.ActiveCfg = Debug|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64.Build.0 = Debug|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x64 Setup.ActiveCfg = Debug|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Debug|x86 Setup.ActiveCfg = Debug|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|Win32.ActiveCfg = Release|Win32
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|Win32.Build.0 = Release|Win32
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64.ActiveCfg = Release|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64.Build.0 = Release|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x64 Setup.ActiveCfg = Release|x64
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.Release|x86 Setup.ActiveCfg = Release|x64
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.Build.0 = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x64.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x64 Setup.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x86 Setup.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.ActiveCfg = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.Build.0 = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64.ActiveCfg = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64.Build.0 = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|Win32.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|Win32.Build.0 = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64.Build.0 = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x64 Setup.ActiveCfg = Release|Win32
{652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release|x86 Setup.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.Build.0 = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x64.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x64 Setup.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x86 Setup.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.ActiveCfg = Debug|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.Build.0 = Debug|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.ActiveCfg = Debug|x64
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.Build.0 = Debug|x64
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64 Setup.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x86 Setup.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.Build.0 = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.ActiveCfg = Release|x64
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64.Build.0 = Release|x64
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x64 Setup.ActiveCfg = Release|Win32
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|x86 Setup.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -3569,6 +3724,7 @@ Global
{48414740-C693-4968-9846-EE058020C64F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{05C9FB27-480E-4D53-B3B7-7338E2514666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
@ -3598,6 +3754,7 @@ Global
{4748FF56-CA85-4809-97D6-A94C0FAC1D77} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{2469B306-B027-4FF2-8815-C9C1EA2CAE79} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6} = {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}
@ -3655,6 +3812,9 @@ Global
{E4D29906-8B73-4F8A-B5F4-CA8BFA648F5A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{23B4D303-79FC-49E0-89E2-2280E7E28940} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{C13CC324-0032-4492-9A30-310A6BD64FF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
@ -3693,6 +3853,7 @@ Global
{FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{B808178B-82F0-4CF4-A2B1-921939FA24D0} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{D578E676-7EC8-4548-BD8B-845C635F14AD} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{652AD5F7-8488-489F-AAD0-7FBE064703B6} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{5BC072DB-3826-48EA-AF34-FE32AA01E83B} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{FA429E98-8B03-45E6-A096-A4BC5E821DE4} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}

View File

@ -20,11 +20,18 @@ DEFAULT_SOUNDS=en-us-callie-8000
sounds_version=`grep $$base_sound_dir $(switch_srcdir)/build/sounds_version.txt | cut -d ' ' -f2`;\
soundfile=`echo freeswitch-sounds-$$full_sound_dir-$$moh_version.tar.gz`; \
echo $$full_sound_dir | grep music >/dev/null || soundfile=`echo freeswitch-sounds-$$full_sound_dir-$$sounds_version.tar.gz`; \
if test "$$target" = "install"; then $(MAKE) $(AM_MAKEFLAGS) core_install; else $(MAKE) $(AM_MAKEFLAGS) core ; fi; \
if test "$$target_prefix" = "sounds"; then \
if test "$$target" = "install"; then $(GETSOUNDS) $$soundfile $(DESTDIR)$(soundsdir)/; else $(GETSOUNDS) $$soundfile ; fi; \
if test "$$target" = "install"; then \
$(GETSOUNDS) $$soundfile $(DESTDIR)$(soundsdir)/;\
else \
$(GETSOUNDS) $$soundfile ; \
fi; \
else \
cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@ ;\
if test "$$target" = "install"; then \
$(MAKE) $(AM_MAKEFLAGS) core_install && cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@ ; \
else \
$(MAKE) $(AM_MAKEFLAGS) core && cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@ ;\
fi; \
fi
sounds: sounds-en-us-callie-8000
@ -102,7 +109,7 @@ CORE_CFLAGS += -I$(switch_srcdir)/libs/pcre
CORE_CFLAGS += -I$(switch_srcdir)/libs/speex/include -Ilibs/speex/include
CORE_CFLAGS += -I$(switch_srcdir)/libs/srtp/include
CORE_CFLAGS += -I$(switch_srcdir)/libs/srtp/crypto/include -Ilibs/srtp/crypto/include
CORE_CFLAGS += -I$(switch_srcdir)/libs/spandsp/src -I$(switch_srcdir)/libs/tiff-3.8.2/libtiff
CORE_CFLAGS += -I$(switch_srcdir)/libs/spandsp/src -I$(switch_srcdir)/libs/tiff-4.0.2/libtiff
CORE_LIBS = libs/apr-util/libaprutil-1.la libs/apr/libapr-1.la
CORE_LIBS += libs/sqlite/libsqlite3.la libs/pcre/libpcre.la libs/speex/libspeex/libspeexdsp.la
@ -150,8 +157,8 @@ if ENABLE_ZRTP
CORE_CFLAGS += -I$(switch_srcdir)/libs/libzrtp/third_party/bgaes
CORE_CFLAGS += -I$(switch_srcdir)/libs/libzrtp/third_party/bnlib
CORE_CFLAGS += -isystem $(switch_srcdir)/libs/libzrtp/include
ZRTP_LDFLAGS = -Llibs/libzrtp/third_party/bnlib
ZRTP_LDFLAGS += -Llibs/libzrtp/projects/gnu/build
ZRTP_LDFLAGS = -L$(switch_srcdir)/libs/libzrtp/third_party/bnlib
ZRTP_LDFLAGS += -L$(switch_srcdir)/libs/libzrtp/projects/gnu/build
ZRTP_LIBS = -lbn -lzrtp
libfreeswitch_la_LDFLAGS += $(ZRTP_LDFLAGS)
libfreeswitch_la_LIBADD += $(ZRTP_LIBS)
@ -408,29 +415,19 @@ $(OUR_MODULES): $(switch_builddir)/modules.conf libfreeswitch.la
$(switch_builddir)/quiet_libtool: $(switch_builddir)/libtool
@cat libtool | sed -e 's|$$show "$$command"|if test -z "$$suppress_output" ; then $$show "Compiling $$srcfile ..." ; fi|' > $(switch_builddir)/quiet_libtool
src/include/switch_version.h: src/include/switch_version.h.in .version $(libfreeswitch_la_SOURCES) $(library_include_HEADERS)
@have_version=1 ; \
force=0 ; \
grep "@SWITCH_VERSION_REVISION@" src/include/switch_version.h.in > /dev/null && have_version=0 ; \
test ! -f src/include/switch_version.h || grep "@SWITCH_VERSION_REVISION@" src/include/switch_version.h > /dev/null && force=1 ; \
if test $$have_version = 1 ; then \
cat src/include/switch_version.h.in > src/include/switch_version.h ; \
touch .version ; \
else \
if [ -d .git ] ; then \
version=`git log --pretty=format:"%h %ci" -1 HEAD | head -1 | sed -e 's|:|-|g' || echo hacked` ; \
if [ "x$$version" = "xhacked" ] ; then \
version="hacked-`date -u +%Y%m%dT%H%M%SZ`" ; \
else \
version="git-$$version" ; \
fi ;\
fi ; \
oldversion=`cat .version 2>/dev/null || echo "0"` ; \
if test "$$oldversion" != "$$version" || test $$force = 1 ; then \
cat src/include/switch_version.h.in | sed "s/@SWITCH_VERSION_REVISION@/$$version/g" > src/include/switch_version.h ; \
echo $$version > .version ; \
fi ; \
fi ;
build/print_git_revision: build/print_git_revision.c
$(CC) -o $@ $<
src/include/switch_version.h: src/include/switch_version.h.in Makefile build/print_git_revision $(libfreeswitch_la_SOURCES) $(library_include_HEADERS)
@cat $< > $@; \
if [ -d .git ] && [ -n "$$(which git)" ]; then \
xver="$$(./build/print_git_revision)"; \
xhver="$$(./build/print_git_revision -h)"; \
sed \
-e "/#define *SWITCH_VERSION_REVISION[^a-zA-Z0-9_]/{s/\"\([^\"]*\)\"/\"\1$$xver\"/;}" \
-e "/#define *SWITCH_VERSION_REVISION_HUMAN[^a-zA-Z0-9_]/{s/\"\([^\"]*\)\"/\"\1$$xhver\"/;}" \
$< > $@; \
fi;
##
## Dependency targets
@ -537,7 +534,6 @@ is-scm:
update: is-scm
@if test -d .git ; then \
test ! -f .version || rm -f .version ; \
echo "Pulling updates..." ; \
git pull ; \
else \
@ -621,8 +617,8 @@ sndfile-reconf:
cd libs/libsndfile && ./config.status
tiff-reconf:
cd libs/tiff-3.8.2 && autoreconf -fi
cd libs/tiff-3.8.2 && sh ./configure.gnu
cd libs/tiff-4.0.2 && autoreconf -fi
cd libs/tiff-4.0.2 && sh ./configure.gnu
cd libs/spandsp && autoreconf -fi
cd libs/spandsp && sh ./configure.gnu
make mod_voipcodecs-clean
@ -663,6 +659,7 @@ cluecon:
@clear
@echo Thank you for updating. This is going to take a while so relax.
@echo Now would be a good time to register for ClueCon!
@cat cluecon2.tmpl
@echo
@echo http://www.cluecon.com
@sleep 5

View File

@ -9,8 +9,8 @@ VERBOSE=false
BASEDIR=`pwd`;
LIBDIR=${BASEDIR}/libs;
SUBDIRS="apr \
libzrtp ilbc curl iksemel js js/nsprpub ldns libdingaling libedit libsndfile pcre sofia-sip \
speex sqlite srtp openzap freetdm spandsp libg722_1 portaudio unimrcp tiff-3.8.2 broadvoice silk libcodec2 \
libzrtp ilbc curl iksemel js js/nsprpub ldns libdingaling libedit libsndfile pcre sofia-sip libwebsockets \
speex sqlite srtp openzap freetdm spandsp libg722_1 portaudio unimrcp tiff-4.0.2 broadvoice silk libcodec2 \
fs";
while getopts 'jhd:v' o; do
@ -209,24 +209,11 @@ check_make() {
check_awk() {
#
# Check to make sure we have GNU Make installed
#
awk=`which awk`
if [ -x "$awk" ]; then
awk_version=`$awk --version | head -n 1 |grep GNU`
if [ $? -ne 0 ]; then
awk=`which gawk`
if [ -x "$awk" ]; then
awk_version=`$awk --version | head -n 1 |grep GNU`
if [ $? -ne 0 ]; then
echo "GNU awk does not exist or is not executable"
exit 1;
fi
fi
fi
fi
# TODO: Building with mawk on at least Debian squeeze is know to
# work, but mawk is believed to fail on some systems. If we can
# replicate this, we need a particular behavior that we can test
# here to verify whether we have an acceptable awk.
:
}
@ -356,11 +343,7 @@ bootstrap_apr() {
echo "Entering directory ${LIBDIR}/apr-util"
cd ${LIBDIR}/apr-util
if ! ${BGJOB}; then
./buildconf
else
./buildconf &
fi
./buildconf
}
bootstrap_libzrtp() {
@ -447,7 +430,7 @@ bootstrap_libs_post() {
ldns)
cd $BASEDIR/libs/ldns
if test ! -x install-sh; then
ex automake --add-missing --copy
ex ${AUTOMAKE:-automake} --add-missing --copy
ex rm -rf autom4te*.cache
fi
;;
@ -467,9 +450,10 @@ bootstrap_libs() {
if ! ${BGJOB}; then
libbootstrap ${i} ; bootstrap_libs_post ${i}
else
((libbootstrap ${i} ; bootstrap_libs_post ${i}) &)
(libbootstrap ${i} ; bootstrap_libs_post ${i}) &
fi
done
${BGJOB} && wait
}
run() {
@ -484,7 +468,6 @@ run() {
check_libtoolize
print_autotools_vers
bootstrap_libs
${BGJOB} && wait
return 0
}

View File

@ -11,7 +11,7 @@ all:
@echo " + http://www.cluecon.com +"
@echo " + +"
@echo " +-----------------------------------------------+"
@cat ../cluecon2.tmpl
install:
@echo " +---------- FreeSWITCH install Complete ----------+"
@ -69,7 +69,7 @@ install:
@echo " + http://www.cluecon.com +"
@echo " + +"
@echo " +-------------------------------------------------+"
@cat ../cluecon2.tmpl
.PHONY: check dvi html info install-data \

View File

@ -1,20 +1,61 @@
#!/bin/sh
if [ -z "$1" ]; then
INSTALLDIR=/usr/local
else
INSTALLDIR="$1"
fi
if [ -z `which svn` ]; then
echo "Need SVN installed!"
exit 1
fi
uname -a | grep -qi bsd && MAKE=gmake || MAKE=make
#Locate our script, then go up one directory to be in FreeSWITCH root
cd `dirname $0`
cd ..
FS_DIR=`pwd`
cd /root
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk ptlib
cd ptlib
./configure --prefix=/usr
${MAKE}
${MAKE} install
export PKG_CONFIG_PATH=$INSTALLDIR/lib/pkgconfig
cd ..
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/branches/v3_6 opal
cd opal
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
./configure --prefix=/usr
# Version and patch for PTLib and OPAL. These are almost always in lock
# step so shoud be the same unless you really know ehat you are doing!
# The PATCH should be set to a specific"snapshot release" when things
# are nice and stable.
VERSION=10
#PATCH=6
if [ -z "$PATCH" ]; then
PTLIB_VERSION=branches/v2_$VERSION
OPAL_VERSION=branches/v3_$VERSION
else
PTLIB_VERSION=tags/v2_${VERSION}_$PATCH
OPAL_VERSION=tags/v3_${VERSION}_$PATCH
fi
cd $FS_DIR/libs
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/$PTLIB_VERSION ptlib
cd $FS_DIR/libs/ptlib
# LDAP disabled due to conflict wit libs in spidermonkey
./configure --disable-plugins --disable-openldap --prefix=$INSTALLDIR
${MAKE}
${MAKE} install
cd ${FS_DIR}
${MAKE} mod_opal-install
sudo ${MAKE} install
cd $FS_DIR/libs
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/$OPAL_VERSION opal
cd $FS_DIR/libs/opal
./configure --disable-plugins --prefix=$INSTALLDIR
$MAKE
sudo $MAKE install
echo "======================================"
echo "PTLib/OPAL build and install completed"
echo "======================================"
cd $FS_DIR
$MAKE mod_opal-install

View File

@ -46,12 +46,7 @@
# Voice Platform
### END INIT INFO
#
# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
FREESWITCH_BIN=/opt/freeswitch/bin/freeswitch
test -x $FREESWITCH_BIN || { echo "$FREESWITCH_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Check for existence of needed config file and read it
FREESWITCH_CONFIG=/etc/sysconfig/freeswitch
@ -62,6 +57,12 @@ test -r $FREESWITCH_CONFIG || { echo "$FREESWITCH_CONFIG not existing";
# Read config
. $FREESWITCH_CONFIG
# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
test -x $FREESWITCH_BIN || { echo "$FREESWITCH_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Source LSB init functions
# providing start_daemon, killproc, pidofproc,
# log_success_msg, log_failure_msg and log_warning_msg.
@ -202,7 +203,7 @@ case "$1" in
## argument to this init script which is required for a reload.
## Note: probe is not (yet) part of LSB (as of 1.9)
test /opt/freeswitch/conf/freeswitch.xml -nt /opt/freeswitch/run/freeswitch.pid && echo reload
test ${FREESWITCH_HOME}/conf/freeswitch.xml -nt ${FREESWITCH_HOME}/run/freeswitch.pid && echo reload
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"

View File

@ -1,4 +1,5 @@
#!/bin/sh
##### -*- mode:shell-script; indent-tabs-mode:nil; sh-basic-offset:2 -*-
TAR=@TAR@
ZCAT=@ZCAT@
@ -8,39 +9,39 @@ WGET=@WGET@
CURL=@CURL@
if [ -f "$WGET" ]; then
DOWNLOAD_CMD=$WGET
DOWNLOAD_CMD=$WGET
elif [ -f "$CURL" ]; then
DOWNLOAD_CMD="$CURL -O"
DOWNLOAD_CMD="$CURL -O"
fi
if [ -n "`echo $1 | grep '://'`" ]; then
base=$1/
tarfile=$2
base=$1/
tarfile=$2
else
base=http://files.freeswitch.org/downloads/libs/
tarfile=$1
base=http://files.freeswitch.org/downloads/libs/
tarfile=$1
fi
uncompressed=`echo $tarfile | sed 's/\(\(\.tar\.gz\|\.tar\.bz2\|\.tar\.xz\)\|\(\.tgz\|\.tbz2\)\)$//'`
case `echo $tarfile | sed 's/^.*\.//'` in
bz2|tbz2) UNZIPPER=$BZIP ;;
xz) UNZIPPER=$XZ ;;
gz|tgz|*) UNZIPPER=$ZCAT ;;
bz2|tbz2) UNZIPPER=$BZIP ;;
xz) UNZIPPER=$XZ ;;
gz|tgz|*) UNZIPPER=$ZCAT ;;
esac
if [ ! -d $tarfile ]; then
if [ ! -f $tarfile ]; then
rm -fr $uncompressed
$DOWNLOAD_CMD $base$tarfile
if [ ! -f $tarfile ]; then
rm -fr $uncompressed
$DOWNLOAD_CMD $base$tarfile
if [ ! -f $tarfile ]; then
echo cannot find $tarfile
exit 1
fi
fi
if [ ! -d $uncompressed ]; then
$UNZIPPER -c -d $tarfile | $TAR -xf -
echo cannot find $tarfile
exit 1
fi
fi
if [ ! -d $uncompressed ]; then
$UNZIPPER -c -d $tarfile | $TAR -xf -
fi
fi
exit 0

View File

@ -1,4 +1,5 @@
#!/bin/sh
##### -*- mode:shell-script; indent-tabs-mode:nil; sh-basic-offset:2 -*-
TAR=@TAR@
ZCAT=@ZCAT@
@ -7,11 +8,11 @@ CURL=@CURL@
DIR=`pwd`
if [ -x "$WGET" ] ; then
DOWNLOAD_CMD=$WGET
if [ -x "$WGET" ]; then
DOWNLOAD_CMD=$WGET
fi
if [ "x${DOWNLOAD_CMD}" = "x" -a -x "$CURL" ] ; then
DOWNLOAD_CMD="$CURL -O"
DOWNLOAD_CMD="$CURL -O"
fi
base=http://files.freeswitch.org/
@ -22,17 +23,22 @@ echo -n "#"
pwd
echo "# $0 $1 $2"
if [ ! -f $tarfile ] ; then
$DOWNLOAD_CMD $base$tarfile
if [ ! -f $tarfile ] ; then
echo cannot find $tarfile
exit 1
fi
if [ -n "$FS_SOUNDS_DIR" ]; then
[ -d $FS_SOUNDS_DIR ] || mkdir -p $FS_SOUNDS_DIR
DIR=$FS_SOUNDS_DIR
fi
if [ ! -z $install ] ; then
test -d $install || mkdir $install
cd $install && $ZCAT -c -d $DIR/$tarfile | $TAR xf -
if [ ! -f $DIR/$tarfile ]; then
(cd $DIR && $DOWNLOAD_CMD $base$tarfile)
if [ ! -f $DIR/$tarfile ]; then
echo "cannot find $tarfile"
exit 1
fi
fi
if [ ! -z "$install" ]; then
test -d $install || mkdir $install
(cd $install && $ZCAT -c -d $DIR/$tarfile | $TAR xf -)
fi
exit 0

View File

@ -1,6 +1,6 @@
################################################################################
# ignore_helper.pl
# Copyright (c) 2007-2009 Anthony Minessale II <anthm@freeswitch.org>
# Copyright (c) 2007-2012 Anthony Minessale II <anthm@freeswitch.org>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation

View File

@ -42,6 +42,7 @@ applications/mod_valet_parking
#applications/mod_vmd
applications/mod_voicemail
#applications/mod_voicemail_ivr
#applications/mod_random
#asr_tts/mod_cepstral
#asr_tts/mod_flite
#asr_tts/mod_pocketsphinx
@ -57,12 +58,13 @@ codecs/mod_bv
codecs/mod_g723_1
codecs/mod_g729
codecs/mod_h26x
codecs/mod_ilbc
codecs/mod_vp8
#codecs/mod_ilbc
#codecs/mod_isac
#codecs/mod_opus
#codecs/mod_sangoma_codec
#codecs/mod_silk
codecs/mod_siren
#codecs/mod_siren
codecs/mod_speex
dialplans/mod_dialplan_asterisk
#dialplans/mod_dialplan_directory
@ -71,6 +73,7 @@ dialplans/mod_dialplan_xml
#endpoints/mod_alsa
#endpoints/mod_dingaling
#endpoints/mod_h323
#endpoints/mod_html5
#endpoints/mod_khomp
endpoints/mod_loopback
#endpoints/mod_opal
@ -96,6 +99,7 @@ formats/mod_native_file
#formats/mod_shout
formats/mod_sndfile
formats/mod_tone_stream
#formats/mod_vlc
#languages/mod_java
languages/mod_lua
#languages/mod_managed
@ -124,6 +128,7 @@ xml_int/mod_xml_cdr
#xml_int/mod_xml_curl
#xml_int/mod_xml_ldap
xml_int/mod_xml_rpc
xml_int/mod_xml_scgi
#../../libs/freetdm/mod_freetdm
#../../libs/openzap/mod_openzap

1
build/next-release.txt Normal file
View File

@ -0,0 +1 @@
1.2-rc3

View File

@ -0,0 +1,93 @@
/* -*- mode:c; indent-tabs-mode:nil; c-basic-offset:2 -*-
* Author: Travis Cross <tc@traviscross.com>
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>
#include <time.h>
static int show_unclean = 0;
static int sys(char *buf, int buflen, char *cmd) {
int i, p[2];
if (pipe(p)) return 255;
if (!(i=fork())) {
close(p[0]);
dup2(p[1],1);
close(p[1]);
execlp("sh","sh","-c",cmd,NULL);
} else {
int s, x=0;
close(p[1]);
waitpid(i,&s,0);
if (!(WIFEXITED(s))) return 255;
if (WEXITSTATUS(s)) return WEXITSTATUS(s);
if (buf) {
while (buflen>1 && (x=read(p[0],buf,buflen-1))>0) buf+=x,buflen-=x;
close(p[0]);
if (x<0) return 255;
*buf=0;
} else close(p[0]);
}
return 0;
}
static int sys1(char *buf, int buflen, char *cmd) {
int r; char *c;
if ((r=sys(buf,buflen,cmd))) return r;
if ((c=strstr(buf,"\n"))) *c=0;
return 0;
}
static int print_version(void) {
char xver[256], xdate[256], xfdate[256], xcommit[256];
time_t xdate_t; struct tm *xdate_tm;
if ((sys1(xdate,sizeof(xdate),"git log -n1 --format='%ct' HEAD"))) return 1;
xdate_t=(time_t)atoi(xdate);
if (!(xdate_tm=gmtime(&xdate_t))) return 1;
strftime(xfdate,sizeof(xfdate),"%Y%m%dT%H%M%SZ",xdate_tm);
if ((sys1(xcommit,sizeof(xcommit),"git rev-list -n1 --abbrev=10 --abbrev-commit HEAD")))
return 1;
snprintf(xver,sizeof(xver),"+git~%s~%s",xfdate,xcommit);
if (show_unclean && (sys(NULL,0,"git diff-index --quiet HEAD"))) {
char buf[256], now[256]; time_t now_t=time(NULL); struct tm *now_tm;
if (!(now_tm=gmtime(&now_t))) return 1;
strftime(now,sizeof(now),"%Y%m%dT%H%M%SZ",now_tm);
snprintf(buf,sizeof(buf),"%s+unclean~%s",xver,now);
strncpy(xver,buf,sizeof(xver));
}
printf("%s\n",xver);
return 0;
}
static int print_human_version(void) {
char xver[256], xdate[256], xfdate[256], xcommit[256];
time_t xdate_t; struct tm *xdate_tm;
if ((sys1(xdate,sizeof(xdate),"git log -n1 --format='%ct' HEAD"))) return 1;
xdate_t=(time_t)atoi(xdate);
if (!(xdate_tm=gmtime(&xdate_t))) return 1;
strftime(xfdate,sizeof(xfdate),"%a, %d %b %Y %H:%M:%S Z",xdate_tm);
if ((sys1(xcommit,sizeof(xcommit),"git rev-list -n1 --abbrev=10 --abbrev-commit HEAD")))
return 1;
snprintf(xver,sizeof(xver),"; git at commit %s on %s",xcommit,xfdate);
if (show_unclean && (sys(NULL,0,"git diff-index --quiet HEAD"))) {
char buf[256], now[256]; time_t now_t=time(NULL); struct tm *now_tm;
if (!(now_tm=gmtime(&now_t))) return 1;
strftime(now,sizeof(now),"%a, %d %b %Y %H:%M:%S Z",now_tm);
snprintf(buf,sizeof(buf),"%s; unclean git build on %s",xver,now);
strncpy(xver,buf,sizeof(xver));
}
printf("%s\n",xver);
return 0;
}
int main(int argc, char **argv) {
if (argc > 1 && !strcasecmp(argv[1],"-h"))
return print_human_version();
else
return print_version();
}

16
build/set-fs-version.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
##### -*- mode:shell-script; indent-tabs-mode:nil; sh-basic-offset:2 -*-
sdir="."
[ -n "${0%/*}" ] && sdir="${0%/*}"
. $sdir/../scripts/ci/common.sh
check_pwd
check_input_ver_build $@
in_ver="$1"
if [ "$in_ver" = "auto" ]; then
in_ver="$(cat build/next-release.txt)"
fi
eval $(parse_version "$in_ver")
set_fs_ver "$gver" "$gmajor" "$gminor" "$gmicro" "$grev"

8
cc.sh Executable file
View File

@ -0,0 +1,8 @@
cc=`cat cluecon.tmpl | sed 's/\\\\/\\\\\\\\/g' | awk '{printf "%s\\\\n", $0}' `
cat <<EOF > src/include/cc.h
const char *cc = "$cc";
EOF

26
cluecon.tmpl Normal file
View File

@ -0,0 +1,26 @@
.========================================================================================================.
| ____ _____ ____ _ ____ _ _ _____ |
| / ___|___ _ __ ___ ___ |_ _|__ / ___| |_ _ ___ / ___|___ _ __ ( ) |___ / |
| | | / _ \| '_ ` _ \ / _ \ | |/ _ \ | | | | | | |/ _ \ | / _ \| '_ \ |/| | |_ \ |
| | |__| (_) | | | | | | __/ | | (_) | | |___| | |_| | __/ |__| (_) | | | | | |___) | |
| \____\___/|_| |_| |_|\___| |_|\___/ \____|_|\__,_|\___|\____\___/|_| |_| |_|____/ |
| |
| ____ _ _ _ _ ____ _ |
| / ___| |__ (_) ___ __ _ __ _ ___ | | | / ___| / \ |
| | | | '_ \| |/ __/ _` |/ _` |/ _ \ | | | \___ \ / _ \ |
| | |___| | | | | (_| (_| | (_| | (_) | | |_| |___) / ___ \ |
| \____|_| |_|_|\___\__,_|\__, |\___( ) \___/|____/_/ \_\ |
| |___/ |/ |
| _ _ __ _ _ ___ _ _ ____ ___ _ _____ |
| / \ _ _ __ _ _ _ ___| |_ / /_ | |_| |__ ( _ )| |_| |__ |___ \ / _ \/ |___ / |
| / _ \| | | |/ _` | | | / __| __| | '_ \| __| '_ \ _____ / _ \| __| '_ \ __) | | | | | |_ \ |
| / ___ \ |_| | (_| | |_| \__ \ |_ | (_) | |_| | | | |_____| | (_) | |_| | | | / __/| |_| | |___) | |
| /_/ \_\__,_|\__, |\__,_|___/\__| \___/ \__|_| |_| \___/ \__|_| |_| |_____|\___/|_|____/ |
| |___/ |
| _ |
| __ ____ ____ __ ___| |_ _ ___ ___ ___ _ __ ___ ___ _ __ ___ |
| \ \ /\ / /\ \ /\ / /\ \ /\ / / / __| | | | |/ _ \/ __/ _ \| '_ \ / __/ _ \| '_ ` _ \ |
| \ V V / \ V V / \ V V / _ | (__| | |_| | __/ (_| (_) | | | | _ | (_| (_) | | | | | | |
| \_/\_/ \_/\_/ \_/\_/ (_) \___|_|\__,_|\___|\___\___/|_| |_| (_) \___\___/|_| |_| |_| |
| |
.========================================================================================================.

29
cluecon2.tmpl Normal file
View File

@ -0,0 +1,29 @@

.========================================================================================================.
| ____ _____ ____ _ ____ _ _ _____ |
| / ___|___ _ __ ___ ___ |_ _|__ / ___| |_ _ ___ / ___|___ _ __ ( ) |___ / |
| | | / _ \| '_ ` _ \ / _ \ | |/ _ \ | | | | | | |/ _ \ | / _ \| '_ \ |/| | |_ \ |
| | |__| (_) | | | | | | __/ | | (_) | | |___| | |_| | __/ |__| (_) | | | | | |___) | |
| \____\___/|_| |_| |_|\___| |_|\___/ \____|_|\__,_|\___|\____\___/|_| |_| |_|____/ |
| |
| ____ _ _ _ _ ____ _ |
| / ___| |__ (_) ___ __ _ __ _ ___ | | | / ___| / \ |
| | | | '_ \| |/ __/ _` |/ _` |/ _ \ | | | \___ \ / _ \ |
| | |___| | | | | (_| (_| | (_| | (_) | | |_| |___) / ___ \ |
| \____|_| |_|_|\___\__,_|\__, |\___( ) \___/|____/_/ \_\ |
| |___/ |/ |
| _ _ __ _ _ ___ _ _ ____ ___ _ _____ |
| / \ _ _ __ _ _ _ ___| |_ / /_ | |_| |__ ( _ )| |_| |__ |___ \ / _ \/ |___ / |
| / _ \| | | |/ _` | | | / __| __| | '_ \| __| '_ \ _____ / _ \| __| '_ \ __) | | | | | |_ \ |
| / ___ \ |_| | (_| | |_| \__ \ |_ | (_) | |_| | | | |_____| | (_) | |_| | | | / __/| |_| | |___) | |
| /_/ \_\__,_|\__, |\__,_|___/\__| \___/ \__|_| |_| \___/ \__|_| |_| |_____|\___/|_|____/ |
| |___/ |
| _ |
| __ ____ ____ __ ___| |_ _ ___ ___ ___ _ __ ___ ___ _ __ ___ |
| \ \ /\ / /\ \ /\ / /\ \ /\ / / / __| | | | |/ _ \/ __/ _ \| '_ \ / __/ _ \| '_ ` _ \ |
| \ V V / \ V V / \ V V / _ | (__| | |_| | __/ (_| (_) | | | | _ | (_| (_) | | | | | | |
| \_/\_/ \_/\_/ \_/\_/ (_) \___|_|\__,_|\___|\___\___/|_| |_| (_) \___\___/|_| |_| |_| |
| |
.========================================================================================================.


View File

@ -13,7 +13,7 @@
<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/Cairo" value="EET-2EEST,M4.5.5/1,M9.5.5/3" />
<zone name="Africa/Casablanca" value="WET0" />
<zone name="Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
<zone name="Africa/Conakry" value="GMT0" />

View File

@ -60,9 +60,10 @@
<load module="mod_g723_1"/>
<load module="mod_g729"/>
<load module="mod_amr"/>
<load module="mod_ilbc"/>
<!--<load module="mod_ilbc"/>-->
<load module="mod_speex"/>
<load module="mod_h26x"/>
<load module="mod_vp8"/>
<!--<load module="mod_siren"/>-->
<!-- File Format Interfaces -->

View File

@ -13,7 +13,7 @@
<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/Cairo" value="EET-2EEST,M4.5.5/1,M9.5.5/3" />
<zone name="Africa/Casablanca" value="WET0" />
<zone name="Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
<zone name="Africa/Conakry" value="GMT0" />

View File

@ -1,4 +1,4 @@
<!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
<!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
<profile name="external">
<!-- This profile is only for outbound registrations to providers -->
<gateways>
@ -29,10 +29,10 @@
<!-- This could be set to "passive" -->
<param name="manage-presence" value="passive"/>
<!-- 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.
<!-- 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="$${domain}"/>
@ -47,8 +47,10 @@
<param name="nonce-ttl" value="60"/>
<param name="auth-calls" value="false"/>
<param name="rtp-timeout-sec" value="1800"/>
<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}"/>

View File

@ -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 ///-->

View File

@ -53,36 +53,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"/>-->
@ -128,4 +131,3 @@
</settings>
</profile>

View File

@ -1,7 +1,7 @@
<!--
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.
-->
@ -16,24 +16,24 @@
<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>
<!--
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"/>-->
<!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
@ -63,7 +63,7 @@
<!--<param name="dtmf-type" value="info"/>-->
<param name="record-template" value="$${base_dir}/recordings/${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
<!-- This setting is for AAL2 bitpacking on G726 -->
<!-- <param name="bitpacking" value="aal2"/> -->
<!--max number of open dialogs in proceeding -->
@ -88,36 +88,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 timestamps from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
<!--<param name="rtp-rewrite-timestamps" value="true"/>-->
<!--<param name="pass-rfc2833" value="true"/>-->
<!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
<!--Uncomment to set all inbound calls to no media mode-->
<!--<param name="inbound-bypass-media" value="true"/>-->
<!--Uncomment to set all inbound calls to proxy media mode-->
<!--<param name="inbound-proxy-media" value="true"/>-->
<!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok-->
<!--<param name="inbound-late-negotiation" value="true"/>-->
<!-- 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"/>-->
@ -138,7 +141,7 @@
<!-- <param name="vad" value="out"/> -->
<!-- <param name="vad" value="both"/> -->
<!--<param name="alias" value="sip:10.0.1.251:5555"/>-->
<!--all inbound reg will look in this domain for the users -->
<param name="force-register-domain" value="$${domain}"/>
<!--all inbound reg will stored in the db using this domain -->
@ -158,24 +161,24 @@
<!--<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"/>-->
<!-- 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.
Choose the realm challenge key. Default is auto_to if not set.
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
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"/>
@ -186,4 +189,3 @@
<!--<param name="outbound-use-uuid-as-callid" value="true"/>-->
</settings>
</profile>

View File

@ -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 ///-->

View File

@ -39,9 +39,10 @@
<load module="mod_g723_1"/>
<load module="mod_g729"/>
<load module="mod_amr"/>
<load module="mod_ilbc"/>
<!--<load module="mod_ilbc"/>-->
<load module="mod_speex"/>
<load module="mod_h26x"/>
<load module="mod_vp8"/>
<!--<load module="mod_siren"/>-->
<!-- Timers -->

View File

@ -13,7 +13,7 @@
<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/Cairo" value="EET-2EEST,M4.5.5/1,M9.5.5/3" />
<zone name="Africa/Casablanca" value="WET0" />
<zone name="Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
<zone name="Africa/Conakry" value="GMT0" />

View File

@ -1,4 +1,4 @@
<!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
<!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
<profile name="external">
<!-- This profile is only for outbound registrations to providers -->
<gateways>
@ -7,7 +7,7 @@
<aliases>
<alias name="outbound"/>
<alias name="nat"/> <!-- for backwards compatibility -->
<alias name="nat"/> <!-- for backwards compatibility -->
</aliases>
<domains>
@ -30,10 +30,10 @@
<!-- This could be set to "passive" -->
<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.
<!-- 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"/>-->
@ -48,8 +48,10 @@
<param name="nonce-ttl" value="60"/>
<param name="auth-calls" value="false"/>
<param name="rtp-timeout-sec" value="1800"/>
<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}"/>

View File

@ -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 ///-->

View File

@ -53,36 +53,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"/>-->
@ -128,4 +131,3 @@
</settings>
</profile>

View File

@ -1,7 +1,7 @@
<!--
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.
-->
@ -15,24 +15,24 @@
<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>
<!--
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"/>-->
<!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
@ -69,7 +69,7 @@
<!--<param name="dbname" value="share_presence"/>-->
<!--<param name="presence-hosts" value="$${domain}"/>-->
<!-- ************************************************* -->
<!-- This setting is for AAL2 bitpacking on G726 -->
<!-- <param name="bitpacking" value="aal2"/> -->
<!--max number of open dialogs in proceeding -->
@ -94,36 +94,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 timestamps from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
<!--<param name="rtp-rewrite-timestamps" value="true"/>-->
<!--<param name="pass-rfc2833" value="true"/>-->
<!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
<!--Uncomment to set all inbound calls to no media mode-->
<!--<param name="inbound-bypass-media" value="true"/>-->
<!--Uncomment to set all inbound calls to proxy media mode-->
<!--<param name="inbound-proxy-media" value="true"/>-->
<!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok-->
<!--<param name="inbound-late-negotiation" value="true"/>-->
<!-- 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"/>-->
@ -154,24 +157,24 @@
<!--<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"/>-->
<!-- 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.
Choose the realm challenge key. Default is auto_to if not set.
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
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"/>
@ -182,4 +185,3 @@
<!--<param name="outbound-use-uuid-as-callid" value="true"/>-->
</settings>
</profile>

View File

@ -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 ///-->

View File

@ -3,7 +3,7 @@
<X-PRE-PROCESS cmd="set" data="auto_answer=false"/>
<X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
<X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>
<X-PRE-PROCESS cmd="set" data="codec_prefs=CELT@48000h,G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/>
<X-PRE-PROCESS cmd="set" data="codec_prefs=CELT@48000h,G722,PCMU,PCMA,GSM"/>
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/>
<X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.freeswitch.org"/>
<X-PRE-PROCESS cmd="set" data="outbound_caller_name=FreeSWITCH"/>
@ -86,10 +86,8 @@
<load module="mod_dptools"/>
<load module="mod_dialplan_xml"/>
<load module="mod_voipcodecs"/>
<load module="mod_ilbc"/>
<load module="mod_speex"/>
<load module="mod_celt"/>
<load module="mod_siren"/>
<load module="mod_sndfile"/>
<load module="mod_tone_stream"/>
<load module="mod_local_stream"/>

View File

@ -1,7 +1,7 @@
<configuration name="dingaling.conf" description="XMPP Jingle Endpoint">
<settings>
<param name="debug" value="0"/>
<param name="codec-prefs" value="PCMU"/>
<param name="codec-prefs" value="H264,PCMU"/>
</settings>
<X-PRE-PROCESS cmd="include" data="../jingle_profiles/*.xml"/>

View File

@ -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+SIP" regex="sip:(.*)" replace="sofia/${use_profile}/$1;transport=udp"/>
<route service="E2T+SIP" regex="sip:(.*)" replace="sofia/${use_profile}/$1;transport=tcp"/>
<!--<route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/$${xmpp_server_profile}/$1"/>-->
</routes>
</configuration>

View File

@ -16,6 +16,7 @@
<!-- <load module="mod_xml_rpc"/> -->
<!-- <load module="mod_xml_curl"/> -->
<!-- <load module="mod_xml_cdr"/> -->
<!-- <load module="mod_xml_scgi"/> -->
<!-- Event Handlers -->
<load module="mod_cdr_csv"/>
@ -62,6 +63,7 @@
<load module="mod_valet_parking"/>
<!--<load module="mod_fsk"/>-->
<!--<load module="mod_spy"/>-->
<!--<load module="mod_random"/>-->
<load module="mod_httapi"/>
<!-- SNOM Module -->
@ -80,10 +82,11 @@
<load module="mod_g723_1"/>
<load module="mod_g729"/>
<load module="mod_amr"/>
<load module="mod_ilbc"/>
<!--<load module="mod_ilbc"/>-->
<load module="mod_speex"/>
<load module="mod_h26x"/>
<load module="mod_siren"/>
<load module="mod_vp8"/>
<!--<load module="mod_siren"/>-->
<!--<load module="mod_isac"/>-->
<!--<load module="mod_celt"/>-->
<!--<load module="mod_opus"/>-->

View File

@ -1,12 +1,14 @@
<configuration name="opal.conf" description="Opal Endpoints">
<settings>
<param name="trace-level" value="4"/>
<param name="trace-level" value="3"/>
<param name="context" value="default"/>
<param name="dialplan" value="XML"/>
<param name="codec-prefs" value="PCMU"/>
<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=""/> <!-- optional listener interface name -->
<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">

View File

@ -42,20 +42,25 @@
<!-- North America -->
<descriptor name="1">
<tone name="CED_TONE">
<element freq1="2100" freq2="0" min="500" max="0"/>
<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="272"/>
<element freq1="0" freq2="0" min="224" max="272"/>
<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="516"/>
<element freq1="0" freq2="0" min="464" max="516"/>
<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>

View File

@ -13,7 +13,7 @@
<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/Cairo" value="EET-2EEST,M4.5.5/1,M9.5.5/3" />
<zone name="Africa/Casablanca" value="WET0" />
<zone name="Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
<zone name="Africa/Conakry" value="GMT0" />

View File

@ -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>

View File

@ -720,6 +720,15 @@
</condition>
</extension>
<extension name="laugh break">
<condition field="destination_number" expression="^9386$">
<action application="answer"/>
<action application="sleep" data="1500"/>
<action application="playback" data="phrase:funny_prompts"/>
<action application="hangup"/>
</condition>
</extension>
<!--
You can place files in the default directory to get included.
-->

View File

@ -63,5 +63,9 @@
<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"/>
</section>
</document>

View File

@ -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>

View File

@ -28,5 +28,9 @@
<!--<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>

View File

@ -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>

View File

@ -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 -->

View File

@ -29,7 +29,7 @@
<macro name="voicemail_change_pass_success">
<input pattern="(.*)">
<match>
<action function="play-file" data="ivr/ivr-Thank_you.wav"/>
<action function="play-file" data="voicemail/vm-password_has_been_changed.wav"/>
</match>
</input>
</macro>
@ -37,7 +37,7 @@
<macro name="voicemail_change_pass_fail">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
<action function="play-file" data="voicemail/vm-password_not_valid.wav"/>
</match>
</input>
</macro>

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -0,0 +1,8 @@
<include>
<language name="es" sound-path="$${sounds_dir}/es/ES/cristina" tts-engine="cepstral" tts-voice="marta">
<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 -->
</language>
</include>

View File

@ -0,0 +1,8 @@
<include>
<language name="es" sound-path="$${sounds_dir}/es/mx/maria" tts-engine="cepstral" tts-voice="marta">
<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 -->
</language>
</include>

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -0,0 +1,8 @@
<include>
<language name="pt" sound-path="$${sounds_dir}/pt/BR/karina" tts-engine="cepstral" tts-voice="marta">
<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 -->
</language>
</include>

View File

@ -0,0 +1,8 @@
<include>
<language name="pt" sound-path="$${sounds_dir}/pt/PT/karina" tts-engine="cepstral" tts-voice="marta">
<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 -->
</language>
</include>

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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,10 @@
<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="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"/> -->
@ -34,15 +34,15 @@
<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"/>-->
<!--<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.
<!-- 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"/>-->
@ -56,8 +56,10 @@
<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}"/>
@ -90,6 +92,5 @@
<param name="tls-verify-in-subjects" value=""/>
<!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
<param name="tls-version" value="$${sip_tls_version}"/>
</settings>
</profile>

View File

@ -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 ///-->

View File

@ -54,36 +54,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"/>-->
@ -103,8 +106,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 -->
@ -121,10 +124,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>

View File

@ -2,30 +2,30 @@
<!--
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>
@ -33,31 +33,31 @@
<!-- <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"/>-->
<!-- <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="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
@ -70,7 +70,7 @@
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.
only enabled on the master.
If such crash occurs, FreeSWITCH will dump core if allowed. The
stacktrace will include function watchdog_triggered_abort().
-->
@ -106,26 +106,26 @@
<!--<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"/>-->
<!-- 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"/>-->
@ -134,10 +134,10 @@
<!-- '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 -->
@ -164,7 +164,7 @@
<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 -->
@ -203,39 +203,42 @@
<!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
<param name="tls-version" value="$${sip_tls_version}"/>
<!-- turn on auto-flush during bridge (skip timer sleep when the socket already has data)
(reduces delay on latent connections default true, must be disabled explicitly)-->
<!-- turn on auto-flush during bridge (skip timer sleep when the socket already has data)
(reduces delay on latent connections default true, must be disabled explicitly)-->
<!--<param name="rtp-autoflush-during-bridge" value="false"/>-->
<!--If you don't want to pass through timestamps from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
<!--<param name="rtp-rewrite-timestamps" value="true"/>-->
<!--<param name="pass-rfc2833" value="true"/>-->
<!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
<!--Uncomment to set all inbound calls to no media mode-->
<!--<param name="inbound-bypass-media" value="true"/>-->
<!--Uncomment to set all inbound calls to proxy media mode-->
<!--<param name="inbound-proxy-media" value="true"/>-->
<!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok-->
<!--<param name="inbound-late-negotiation" value="true"/>-->
<!-- 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"/> -->
@ -252,16 +255,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"/>
@ -274,8 +277,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 -->
@ -297,28 +300,27 @@
<!--<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"/>-->
<!-- 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.
Choose the realm challenge key. Default is auto_to if not set.
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
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"/>-->
@ -332,59 +334,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 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 to fine-tune timers within sofia's transport layer
Those settings are for advanced users and can safely be left as-is -->
<!-- Turn on a jitterbuffer for every call -->
<!-- <param name="auto-jitterbuffer-msec" value="60"/> -->
<!-- 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" /> -->
<!-- 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"/>-->
<!-- 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>

View File

@ -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 ///-->

View File

@ -123,7 +123,7 @@
127 - BV32
-->
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/>
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM"/>
<!--

View File

@ -3,14 +3,14 @@
# Must change all of the below together
# For a release, set revision for that tagged release as well and uncomment
AC_INIT([freeswitch], [1.1.beta1], BUG-REPORT-ADDRESS)
AC_INIT([freeswitch], [1.3.0], BUG-REPORT-ADDRESS)
AC_SUBST(SWITCH_VERSION_MAJOR, [1])
AC_SUBST(SWITCH_VERSION_MINOR, [1])
AC_SUBST(SWITCH_VERSION_MICRO, [beta1])
#AC_SUBST(SWITCH_VERSION_REVISION, [])
AC_SUBST(SWITCH_VERSION_MINOR, [3])
AC_SUBST(SWITCH_VERSION_MICRO, [0])
AC_SUBST(SWITCH_VERSION_REVISION, [])
AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, [])
AC_CONFIG_FILES([src/include/switch_version.h.in:src/include/switch_version.h.template])
AC_CONFIG_FILES([.version:.version.in])
AC_CONFIG_AUX_DIR(build/config)
AM_INIT_AUTOMAKE(libfreeswitch,0.1)
@ -391,6 +391,10 @@ AX_LIB_ODBC
if test "$ac_cv_found_odbc" = "yes" ; then
enable_core_odbc_support="yes"
fi
if test "x$enable_core_odbc_support" != "xno"; then
AC_CHECK_LIB([odbc], [SQLDisconnect],, AC_MSG_ERROR([no usable libodbc; please install unixodbc devel package or equivalent]))
fi
AC_ARG_ENABLE(timerfd-wrapper,
@ -491,6 +495,13 @@ AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep getifaddrs time
AC_CHECK_FUNCS([sched_setscheduler setpriority setrlimit setgroups initgroups])
AC_CHECK_FUNCS([wcsncmp setgroups asprintf setenv pselect gettimeofday localtime_r gmtime_r strcasecmp stricmp _stricmp])
# Check availability and return type of strerror_r
# (NOTE: apr-1-config sets -D_GNU_SOURCE at build-time, need to run the check with it too)
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
AC_FUNC_STRERROR_R
CPPFLAGS="$save_CPPFLAGS"
AX_HAVE_CPU_SET
AC_CHECK_LIB(rt, clock_gettime, [AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime()])])
@ -921,7 +932,7 @@ then
#
# python distutils found, get settings from python directly
#
PYTHON_CFLAGS="`$PYTHON -c 'from distutils import sysconfig; flags = [[\"-I\" + sysconfig.get_python_inc(0), \"-I\" + sysconfig.get_python_inc(1), \" \".join(sysconfig.get_config_var(\"CFLAGS\").split())]]; print(\" \".join(flags));'`"
PYTHON_CFLAGS="`$PYTHON -c 'from distutils import sysconfig; flags = [[\"-I\" + sysconfig.get_python_inc(0), \"-I\" + sysconfig.get_python_inc(1), \" \".join(sysconfig.get_config_var(\"CFLAGS\").split())]]; print(\" \".join(flags));' | sed -e 's/-arch i386//g;s/-arch x86_64//g'`"
PYTHON_LDFLAGS="`$PYTHON -c 'from distutils import sysconfig; libs = sysconfig.get_config_var(\"LIBS\").split() + sysconfig.get_config_var(\"SYSLIBS\").split(); libs.append(\"-lpython\"+sysconfig.get_config_var(\"VERSION\")); print(\" \".join(libs));'`"
PYTHON_LIB="`$PYTHON -c 'from distutils import sysconfig; print(\"python\" + sysconfig.get_config_var(\"VERSION\"));'`"
PYTHON_LIBDIR="`$PYTHON -c 'from distutils import sysconfig; print(sysconfig.get_config_var(\"LIBDIR\"));'`"
@ -989,12 +1000,12 @@ AC_CONFIG_FILES([Makefile
src/Makefile
src/mod/Makefile
src/mod/applications/mod_expr/Makefile
src/mod/applications/mod_fax/Makefile
src/mod/applications/mod_spandsp/Makefile
src/mod/applications/mod_osp/Makefile
src/mod/applications/mod_stress/Makefile
src/mod/applications/mod_hash/Makefile
src/mod/codecs/mod_com_g729/Makefile
src/mod/endpoints/mod_html5/Makefile
src/mod/endpoints/mod_portaudio/Makefile
src/mod/endpoints/mod_skinny/Makefile
src/mod/endpoints/mod_skypopen/Makefile
@ -1080,7 +1091,7 @@ AC_CONFIG_SUBDIRS([libs/portaudio])
AC_CONFIG_SUBDIRS([libs/openzap])
AC_CONFIG_SUBDIRS([libs/freetdm])
AC_CONFIG_SUBDIRS([libs/unimrcp])
AC_CONFIG_SUBDIRS([libs/tiff-3.8.2])
AC_CONFIG_SUBDIRS([libs/tiff-4.0.2])
AC_CONFIG_SUBDIRS([libs/spandsp])
AC_CONFIG_SUBDIRS([libs/broadvoice])
AC_CONFIG_SUBDIRS([libs/libg722_1])
@ -1089,6 +1100,7 @@ AC_CONFIG_SUBDIRS([libs/libcodec2])
if test "x${enable_zrtp}" = "xyes"; then
AC_CONFIG_SUBDIRS([libs/libzrtp/projects/gnu])
fi
AC_CONFIG_SUBDIRS([libs/libwebsockets])
case $host in
*-openbsd*)

30
debian/.gitignore vendored Normal file
View File

@ -0,0 +1,30 @@
# gitignore
/.stamp-bootstrap
/control
/control-modules.*
/files
/modules.conf
/modules_.conf
/freeswitch-autotools.install
/freeswitch-mod-*.install
/freeswitch-conf-*.install
/freeswitch-music-*.install
/freeswitch-sounds-*.install
/*.lintian-overrides
/*.log
/*.substvars
/*.debhelper
/tmp
/freeswitch/
/freeswitch-conf*/
/freeswitch-dbg/
/freeswitch-dev/
/freeswitch-doc/
/freeswitch-init*/
/freeswitch-meta*/
/freeswitch-mod-*/
/freeswitch-music*/
/freeswitch-sounds*/
/freeswitch-systemd/
/freeswitch-sysvinit/
/libfreeswitch*/

26
debian/README.Debian vendored Normal file
View File

@ -0,0 +1,26 @@
FreeSWITCH for Debian
--------------
This debian packaging breaks out every module of freeswitch into a
separate package, so be sure to verify that you are actually
installing all the modules that you need.
As a break from the past, we now install all files into their correct
FHS locations.
This package does not install any configuration for freeswitch into
/etc/freeswitch. We leave you, the system administrator completely
responsible for that directory. If you install one of the conf
packages, it will install the corresponding sample configuration to
/usr/share/freeswitch/conf and you'll need to copy the bits you need
to /etc/freeswitch.
If you just want to get a working demo system up quickly, I'd
recommend doing the following:
aptitude install -y -r -o APT::Install-Suggests=true freeswitch-meta-vanilla
cp -a /usr/share/freeswitch/conf/vanilla /etc/freeswitch
/etc/init.d/freeswitch start
fs_cli
-- Travis Cross <tc@traviscross.com>, Sat, 5 May 2012 23:41:29 +0000

77
debian/README.source vendored Normal file
View File

@ -0,0 +1,77 @@
FreeSWITCH for Debian
--------------
You may be reading this because you're wondering where all the files
are in debian/, such as control. You may also be here looking for the
sound or music packages. Read on.
Because FreeSWITCH has so many modules it was necessary to create a
system to autogenerate the majority of the packaging. This in done
mostly in the file debian/bootstrap.sh. This bootstrap needs to run
before any other step of the packaging, though we do try to
autogenerate it when possible.
The build dependencies, runtime dependencies, and other details about
modules can be configured in the debian/control-modules file. Even
though this file looks a bit like a debian control file and has a
similar format, we are parsing this file ourselves so the format is a
bit more restricted.
debian/control-modules currently supports the following fields:
# lines that begin with the hash character are comments
#
# every block must start with a Module field
Module: <category>/<module_name>
Description: <short description>
<long description> # empty lines with "."s are not yet supported
Build-Depends: <build deps for this module>
Depends: <runtime deps for this module>
Recommends: <recommended packages>
Suggests: <suggested packages>
Distro-Conflicts: <distributions on which this module should not be built> # not yet implemented
During bootstrap we build a file control-modules.gen. If the
control-modules file is properly formatted, this generated file should
be identical. This is a sanity check mechanism for our parsing, as
well as a way to automatically reorganize the file.
If the file debian/modules.conf is present, we read that file and only
build and package the files listed there. Otherwise, we build every
module except the ones that either should not be packaged, or for
which we don't yet have good packaging.
The format of debian/modules.conf is:
## comments should start with two hash characters
<category>/<module_name>
To build this package, I recommend running the following from the root
directory of your FS git working tree:
distro=sid
ver="$(cat build/next-release.txt | sed -e 's/-/~/g')~n$(date +%Y%m%dT%H%M%SZ)-1~${distro}+1"
git clean -fdx && git reset --hard HEAD
./build/set-fs-version.sh "$ver"
git add configure.in && git commit -m "bump to custom v$ver"
(cd debian && ./bootstrap.sh -c $distro)
dch -b -m -v "$ver" --force-distribution -D "$suite" "Custom build."
git-buildpackage -b -us -uc \
--git-verbose \
--git-pbuilder --git-dist=$distro \
--git-compression-level=1v --git-compression=xz
git reset --hard HEAD^
The source packages for sounds and music on hold are maintained in a
separate repository. Each set of sounds has a separate version number
and the processing of the sounds is quite different from what we're
doing here, so trying to maintain a merged debian/ between FreeSWITCH
and the sounds and music would be a mess.
To build the Debian packages for freeswitch-sounds-* and
freeswitch-music-*:
git clone https://github.com/traviscross/freeswitch-sounds.git
cd freeswitch-sounds && cat debian/README.source
-- Travis Cross <tc@traviscross.com>, Mon, 20 Aug 2012 08:14:49 +0000

810
debian/bootstrap.sh vendored Executable file
View File

@ -0,0 +1,810 @@
#!/bin/bash
##### -*- mode:shell-script; indent-tabs-mode:nil; sh-basic-offset:2 -*-
##### Author: Travis Cross <tc@traviscross.com>
mod_dir="../src/mod"
conf_dir="../conf"
fs_description="FreeSWITCH is a scalable open source cross-platform telephony platform designed to route and interconnect popular communication protocols using audio, video, text or any other form of media."
mod_build_depends="."
supported_distros="squeeze wheezy sid"
avoid_mods=(
applications/mod_fax
applications/mod_limit
applications/mod_mongo
applications/mod_mp4
applications/mod_osp
applications/mod_rad_auth
applications/mod_skel
applications/mod_soundtouch
asr_tts/mod_cepstral
asr_tts/mod_flite
codecs/mod_com_g729
codecs/mod_ilbc
codecs/mod_sangoma_codec
codecs/mod_siren
codecs/mod_skel_codec
codecs/mod_voipcodecs
endpoints/mod_gsmopen
endpoints/mod_h323
endpoints/mod_khomp
endpoints/mod_opal
endpoints/mod_reference
endpoints/mod_unicall
formats/mod_shout
languages/mod_managed
languages/mod_spidermonkey
sdk/autotools
xml_int/mod_xml_ldap
)
avoid_mods_sid=(
endpoints/mod_portaudio
formats/mod_portaudio_stream
)
avoid_mods_wheezy=(
endpoints/mod_portaudio
formats/mod_portaudio_stream
)
avoid_mods_squeeze=(
formats/mod_vlc
languages/mod_managed
)
err () {
echo "$0 error: $1" >&2
exit 1
}
xread () {
local xIFS="$IFS"
IFS=''
read $@
local ret=$?
IFS="$xIFS"
return $ret
}
avoid_mod_filter () {
local x="avoid_mods_$codename[@]"
local -a mods=("${avoid_mods[@]}" "${!x}")
for x in "${mods[@]}"; do
if [ "$1" = "$x" ]; then
[ "$2" = "show" ] && echo "excluding module $x" >&2
return 1
fi
done
return 0
}
modconf_filter () {
while xread l; do
if [ "$1" = "$l" ]; then
[ "$2" = "show" ] && echo "including module $l" >&2
return 0
fi
done < modules.conf
return 1
}
mod_filter () {
if test -f modules.conf; then
modconf_filter $@
else
avoid_mod_filter $@
fi
}
mod_filter_show () {
mod_filter "$1" show
}
map_fs_modules () {
local filterfn="$1" percatfns="$2" permodfns="$3"
for x in $mod_dir/*; do
if test -d $x; then
category=${x##*/} category_path=$x
for f in $percatfns; do $f; done
for y in $x/*; do
module_name=${y##*/} module_path=$y
module=$category/$module_name
if $filterfn $category/$module; then
[ -f ${y}/module ] && . ${y}/module
for f in $permodfns; do $f; done
fi
unset module_name module_path module
done
unset category category_path
fi
done
}
map_modules () {
local filterfn="$1" percatfns="$2" permodfns="$3"
for x in $parse_dir/*; do
test -d $x || continue
category=${x##*/} category_path=$x
for f in $percatfns; do $f; done
for y in $x/*; do
test -f $y || continue
module=${y##*/} module_path=$y
$filterfn $category/$module || continue
module="" category="" module_name=""
section="" description="" long_description=""
build_depends="" depends="" recommends="" suggests=""
distro_conflicts=""
distro_vars=""
for x in $supported_distros; do
distro_vars="$distro_vars build_depends_$x"
eval build_depends_$x=""
done
. $y
[ -n "$description" ] || description="$module_name"
[ -n "$long_description" ] || description="Adds ${module_name}."
for f in $permodfns; do $f; done
unset \
module module_name module_path \
section description long_description \
build_depends depends recommends suggests \
distro_conflicts $distro_vars
done
unset category category_path
done
}
map_confs () {
local fs="$1"
for x in $conf_dir/*; do
test ! -d $x && continue
conf=${x##*/} conf_dir=$x
for f in $fs; do $f; done
unset conf conf_dir
done
}
print_source_control () {
cat <<EOF
Source: freeswitch
Section: comm
Priority: optional
Maintainer: Travis Cross <tc@traviscross.com>
Build-Depends:
# for debian
debhelper (>= 8.0.0),
# bootstrapping
automake (>= 1.9), autoconf, libtool,
# core build
dpkg-dev (>= 1.15.8.12), gcc (>= 4:4.4.5) , g++ (>= 4:4.4.5),
libc6-dev (>= 2.11.3), make (>= 3.81),
wget, pkg-config,
# configure options
libssl-dev, unixodbc-dev,
libncurses5-dev, libjpeg62-dev,
python-dev, erlang-dev,
# documentation
doxygen,
# for APR (not essential for build)
uuid-dev, libexpat1-dev, libgdbm-dev, libdb-dev,
# used by many modules
bison, zlib1g-dev,
# module build-depends
$(debian_wrap "${mod_build_depends}")
Standards-Version: 3.9.3
Homepage: http://freeswitch.org/
Vcs-Git: git://git.freeswitch.org/freeswitch
Vcs-Browser: http://git.freeswitch.org/git/freeswitch/
EOF
}
print_core_control () {
cat <<EOF
Package: freeswitch
Architecture: any
Depends: \${shlibs:Depends}, \${perl:Depends}, \${misc:Depends},
libfreeswitch1 (= \${binary:Version})
Recommends:
Suggests: freeswitch-dbg
Description: Cross-Platform Scalable Multi-Protocol Soft Switch
$(debian_wrap "${fs_description}")
.
This package contains the FreeSWITCH core.
Package: libfreeswitch1
Architecture: any
Depends: \${shlibs:Depends}, \${misc:Depends}
Recommends:
Suggests: libfreeswitch1-dbg
Description: Cross-Platform Scalable Multi-Protocol Soft Switch
$(debian_wrap "${fs_description}")
.
This package contains the FreeSWITCH core library.
Package: freeswitch-meta-bare
Architecture: any
Depends: \${misc:Depends}, freeswitch (= \${binary:Version})
Recommends:
freeswitch-doc (= \${binary:Version}),
freeswitch-mod-commands (= \${binary:Version}),
freeswitch-init (= \${binary:Version}),
freeswitch-music (= \${binary:Version}),
freeswitch-sounds (= \${binary:Version})
Suggests:
Description: Cross-Platform Scalable Multi-Protocol Soft Switch
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the packages needed for a very
bare FreeSWITCH install.
Package: freeswitch-meta-default
Architecture: any
Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
freeswitch-mod-commands (= \${binary:Version}),
freeswitch-mod-conference (= \${binary:Version}),
freeswitch-mod-db (= \${binary:Version}),
freeswitch-mod-dptools (= \${binary:Version}),
freeswitch-mod-fifo (= \${binary:Version}),
freeswitch-mod-hash (= \${binary:Version}),
freeswitch-mod-spandsp (= \${binary:Version}),
freeswitch-mod-voicemail (= \${binary:Version}),
freeswitch-mod-dialplan-xml (= \${binary:Version}),
freeswitch-mod-loopback (= \${binary:Version}),
freeswitch-mod-sofia (= \${binary:Version}),
freeswitch-mod-local-stream (= \${binary:Version}),
freeswitch-mod-native-file (= \${binary:Version}),
freeswitch-mod-tone-stream (= \${binary:Version}),
freeswitch-mod-lua (= \${binary:Version}),
freeswitch-mod-console (= \${binary:Version}),
freeswitch-mod-say-en (= \${binary:Version})
Recommends:
freeswitch-init (= \${binary:Version}),
freeswitch-meta-codecs (= \${binary:Version}),
freeswitch-music (= \${binary:Version}),
freeswitch-sounds (= \${binary:Version})
Suggests:
freeswitch-mod-cidlookup (= \${binary:Version}),
freeswitch-mod-curl (= \${binary:Version}),
freeswitch-mod-directory (= \${binary:Version}),
freeswitch-mod-enum (= \${binary:Version}),
freeswitch-mod-spy (= \${binary:Version}),
freeswitch-mod-valet-parking (= \${binary:Version})
Description: Cross-Platform Scalable Multi-Protocol Soft Switch
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the packages needed for a
reasonably basic FreeSWITCH install.
Package: freeswitch-meta-vanilla
Architecture: any
Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
freeswitch-mod-console (= \${binary:Version}),
freeswitch-mod-logfile (= \${binary:Version}),
freeswitch-mod-enum (= \${binary:Version}),
freeswitch-mod-cdr-csv (= \${binary:Version}),
freeswitch-mod-event-socket (= \${binary:Version}),
freeswitch-mod-sofia (= \${binary:Version}),
freeswitch-mod-loopback (= \${binary:Version}),
freeswitch-mod-commands (= \${binary:Version}),
freeswitch-mod-conference (= \${binary:Version}),
freeswitch-mod-db (= \${binary:Version}),
freeswitch-mod-dptools (= \${binary:Version}),
freeswitch-mod-expr (= \${binary:Version}),
freeswitch-mod-fifo (= \${binary:Version}),
freeswitch-mod-hash (= \${binary:Version}),
freeswitch-mod-voicemail (= \${binary:Version}),
freeswitch-mod-esf (= \${binary:Version}),
freeswitch-mod-fsv (= \${binary:Version}),
freeswitch-mod-cluechoo (= \${binary:Version}),
freeswitch-mod-valet-parking (= \${binary:Version}),
freeswitch-mod-httapi (= \${binary:Version}),
freeswitch-mod-dialplan-xml (= \${binary:Version}),
freeswitch-mod-dialplan-asterisk (= \${binary:Version}),
freeswitch-mod-spandsp (= \${binary:Version}),
freeswitch-mod-g723-1 (= \${binary:Version}),
freeswitch-mod-g729 (= \${binary:Version}),
freeswitch-mod-amr (= \${binary:Version}),
freeswitch-mod-speex (= \${binary:Version}),
freeswitch-mod-h26x (= \${binary:Version}),
freeswitch-mod-sndfile (= \${binary:Version}),
freeswitch-mod-native-file (= \${binary:Version}),
freeswitch-mod-local-stream (= \${binary:Version}),
freeswitch-mod-tone-stream (= \${binary:Version}),
freeswitch-mod-lua (= \${binary:Version}),
freeswitch-mod-say-en (= \${binary:Version}),
Recommends:
freeswitch-init (= \${binary:Version}),
freeswitch-music (= \${binary:Version}),
freeswitch-sounds (= \${binary:Version}),
freeswitch-conf-vanilla (= \${binary:Version}),
Suggests:
freeswitch-mod-spidermonkey (= \${binary:Version}),
Description: Cross-Platform Scalable Multi-Protocol Soft Switch
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the packages needed for
running the FreeSWITCH vanilla example configuration.
Package: freeswitch-meta-codecs
Architecture: any
Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
freeswitch-mod-amr (= \${binary:Version}),
freeswitch-mod-amrwb (= \${binary:Version}),
freeswitch-mod-bv (= \${binary:Version}),
freeswitch-mod-celt (= \${binary:Version}),
freeswitch-mod-codec2 (= \${binary:Version}),
freeswitch-mod-g723-1 (= \${binary:Version}),
freeswitch-mod-g729 (= \${binary:Version}),
freeswitch-mod-h26x (= \${binary:Version}),
freeswitch-mod-mp4v (= \${binary:Version}),
freeswitch-mod-opus (= \${binary:Version}),
freeswitch-mod-silk (= \${binary:Version}),
freeswitch-mod-spandsp (= \${binary:Version}),
freeswitch-mod-speex (= \${binary:Version}),
freeswitch-mod-theora (= \${binary:Version})
Suggests:
freeswitch-mod-ilbc (= \${binary:Version}),
freeswitch-mod-siren (= \${binary:Version})
Description: Cross-Platform Scalable Multi-Protocol Soft Switch
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the packages needed to install
most FreeSWITCH codecs.
Package: freeswitch-dbg
Section: debug
Priority: extra
Architecture: any
Depends: \${misc:Depends}, freeswitch (= \${binary:Version})
Description: debugging symbols for FreeSWITCH
$(debian_wrap "${fs_description}")
.
This package contains debugging symbols for FreeSWITCH.
Package: libfreeswitch1-dbg
Section: debug
Priority: extra
Architecture: any
Depends: \${misc:Depends}, libfreeswitch1 (= \${binary:Version})
Description: debugging symbols for FreeSWITCH
$(debian_wrap "${fs_description}")
.
This package contains debugging symbols for libfreeswitch1.
Package: libfreeswitch-dev
Section: libdevel
Architecture: any
Depends: \${misc:Depends}, freeswitch
Description: development libraries and header files for FreeSWITCH
$(debian_wrap "${fs_description}")
.
This package contains include files for FreeSWITCH.
Package: freeswitch-doc
Section: doc
Architecture: all
Depends: \${misc:Depends}
Description: documentation for FreeSWITCH
$(debian_wrap "${fs_description}")
.
This package contains Doxygen-produce documentation for FreeSWITCH.
It may be an empty package at the moment.
Package: freeswitch-init
Architecture: all
Depends: \${misc:Depends},
freeswitch-sysvinit (= \${binary:Version}),
freeswitch-systemd (= \${binary:Version})
Description: FreeSWITCH startup configuration
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the default system startup
packages for FreeSWITCH.
Package: freeswitch-sysvinit
Architecture: all
Depends: \${misc:Depends}, lsb-base (>= 3.0-6)
Description: FreeSWITCH SysV init script
$(debian_wrap "${fs_description}")
.
This package contains the SysV init script for FreeSWITCH.
Package: freeswitch-systemd
Architecture: all
Depends: \${misc:Depends}
Description: FreeSWITCH systemd configuration
$(debian_wrap "${fs_description}")
.
This package contains the systemd configuration for FreeSWITCH.
## misc
## sounds
Package: freeswitch-music
Architecture: all
Depends: \${misc:Depends},
freeswitch-music-default (>= 1.0.8)
Description: Music on hold audio for FreeSWITCH
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the default music on hold
packages for FreeSWITCH.
Package: freeswitch-sounds
Architecture: all
Depends: \${misc:Depends},
freeswitch-sounds-en (= \${binary:Version})
Description: Sounds for FreeSWITCH
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the default sound packages for
FreeSWITCH.
Package: freeswitch-sounds-en
Architecture: all
Depends: \${misc:Depends},
freeswitch-sounds-en-us (= \${binary:Version})
Description: English sounds for FreeSWITCH
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the default English sound
packages for FreeSWITCH.
Package: freeswitch-sounds-en-us
Architecture: all
Depends: \${misc:Depends},
freeswitch-sounds-en-us-callie (>= 1.0.18)
Description: US English sounds for FreeSWITCH
$(debian_wrap "${fs_description}")
.
This is a metapackage which depends on the default US/English sound
packages for FreeSWITCH.
EOF
}
print_mod_control () {
local m_section="${section:-comm}"
cat <<EOF
Package: freeswitch-${module_name//_/-}
Section: ${m_section}
Architecture: any
$(debian_wrap "Depends: \${shlibs:Depends}, \${misc:Depends}, freeswitch, ${depends}")
$(debian_wrap "Recommends: ${recommends}")
$(debian_wrap "Suggests: freeswitch-${module_name//_/-}-dbg, ${suggests}")
Description: ${description} for FreeSWITCH
$(debian_wrap "${fs_description}")
.
$(debian_wrap "This package contains ${module_name} for FreeSWITCH.")
.
$(debian_wrap "${long_description}")
Package: freeswitch-${module_name//_/-}-dbg
Section: debug
Priority: extra
Architecture: any
Depends: \${misc:Depends},
freeswitch-${module_name//_/-} (= \${binary:Version})
Description: ${description} for FreeSWITCH (debug)
$(debian_wrap "${fs_description}")
.
$(debian_wrap "This package contains debugging symbols for ${module_name} for FreeSWITCH.")
.
$(debian_wrap "${long_description}")
EOF
}
print_mod_install () {
cat <<EOF
/usr/lib/freeswitch/mod/${1}.so
EOF
}
print_long_filename_override () {
local p="$1"
cat <<EOF
# The long file names are caused by appending the nightly information.
# Since one of these packages will never end up on a Debian CD, the
# related problems with long file names will never come up here.
${p}: package-has-long-file-name *
EOF
}
print_gpl_openssl_override () {
local p="$1"
cat <<EOF
# We're definitely not doing this. Nothing in FreeSWITCH has a more
# restrictive license than LGPL or MPL.
${p}: possible-gpl-code-linked-with-openssl
EOF
}
print_itp_override () {
local p="$1"
cat <<EOF
# We're not in Debian (yet) so we don't have an ITP bug to close.
${p}: new-package-should-close-itp-bug
EOF
}
print_common_overrides () {
print_long_filename_override "$1"
}
print_mod_overrides () {
print_common_overrides "$1"
print_gpl_openssl_override "$1"
}
print_conf_overrides () {
print_common_overrides "$1"
}
print_conf_control () {
cat <<EOF
Package: freeswitch-conf-${conf//_/-}
Architecture: all
Depends: \${misc:Depends}
Description: FreeSWITCH ${conf} configuration
$(debian_wrap "${fs_description}")
.
$(debian_wrap "This package contains the ${conf} configuration for FreeSWITCH.")
EOF
}
print_conf_install () {
cat <<EOF
conf/${conf} /usr/share/freeswitch/conf
EOF
}
print_edit_warning () {
echo "#### Do not edit! This file is auto-generated from debian/bootstrap.sh."; echo
}
gencontrol_per_mod () {
print_mod_control "$module_name" "$description" "$long_description" >> control
}
gencontrol_per_cat () {
(echo "## mod/$category"; echo) >> control
}
geninstall_per_mod () {
local f=freeswitch-${module_name//_/-}.install
(print_edit_warning; print_mod_install "$module_name") > $f
test -f $f.tmpl && cat $f.tmpl >> $f
}
genoverrides_per_mod () {
local f=freeswitch-${module_name//_/-}.lintian-overrides
(print_edit_warning; print_mod_overrides freeswitch-${module_name//_/-}) > $f
test -f $f.tmpl && cat $f.tmpl >> $f
}
genmodules_per_cat () {
echo "## $category" >> modules_.conf
}
genmodules_per_mod () {
echo "$module" >> modules_.conf
}
genconf () {
print_conf_control >> control
local p=freeswitch-conf-${conf//_/-}
local f=$p.install
(print_edit_warning; print_conf_install) > $f
test -f $f.tmpl && cat $f.tmpl >> $f
local f=$p.lintian-overrides
(print_edit_warning; print_conf_overrides "$p") > $f
test -f $f.tmpl && cat $f.tmpl >> $f
}
accumulate_build_depends () {
local x=""
if [ -n "$(eval echo \$build_depends_$codename)" ]; then
x="$(eval echo \$build_depends_$codename)"
else
x="${build_depends}"
fi
if [ -n "$x" ]; then
if [ ! "$mod_build_depends" = "." ]; then
mod_build_depends="${mod_build_depends}, ${x}"
else
mod_build_depends="${x}"
fi
fi
}
genmodctl_new_mod () {
grep -e "^Module: ${module}$" control-modules >/dev/null && return 0
cat <<EOF
Module: $module
Description: $description
$long_description
EOF
echo
}
genmodctl_new_cat () {
grep -e "^## mod/${category}$" control-modules >/dev/null && return 0
cat <<EOF
## mod/$category
EOF
}
pre_parse_mod_control () {
local fl=true ll_nl=false ll_descr=false
while xread l; do
if [ -z "$l" ]; then
# is newline
if ! $ll_nl && ! $fl; then
echo
fi
ll_nl=true
continue
elif [ -z "${l##\#*}" ]; then
# is comment
continue
elif [ -z "${l## *}" ]; then
# is continuation line
if ! $ll_descr; then
echo -n "$l"
else
echo -n "Long-Description: $(echo "$l" | sed -e 's/^ *//')"
fi
else
# is header line
$fl || echo
if [ "${l%%:*}" = "Description" ]; then
ll_descr=true
echo "Description: ${l#*: }"
continue
else
echo -n "$l"
fi
fi
fl=false ll_nl=false ll_descr=false
done < control-modules
}
var_escape () {
(echo -n \'; echo -n "$1" | sed -e "s/'/'\\\\''/g"; echo -n \')
}
parse_mod_control () {
pre_parse_mod_control > control-modules.preparse
local category=""
local module_name=""
rm -rf $parse_dir
while xread l; do
if [ -z "$l" ]; then
# is newline
continue
fi
local header="${l%%:*}"
local value="${l#*: }"
if [ "$header" = "Module" ]; then
category="${value%%/*}"
module_name="${value#*/}"
mkdir -p $parse_dir/$category
(echo "module=$(var_escape "$value")"; \
echo "category=$(var_escape "$category")"; \
echo "module_name=$(var_escape "$module_name")"; \
) >> $parse_dir/$category/$module_name
else
([ -n "$category" ] && [ -n "$module_name" ]) \
|| err "unexpected header $header"
local var_name="$(echo "$header" | sed -e 's/-/_/g' | tr '[A-Z]' '[a-z]')"
echo "${var_name}=$(var_escape "$value")" >> $parse_dir/$category/$module_name
fi
done < control-modules.preparse
}
debian_wrap () {
local fl=true
echo "$1" | fold -s -w 69 | while xread l; do
local v="$(echo "$l" | sed -e 's/ *$//g')"
if $fl; then
fl=false
echo "$v"
else
echo " $v"
fi
done
}
genmodctl_cat () {
(echo "## mod/$category"; echo)
}
genmodctl_mod () {
echo "Module: $module"
[ -n "$section" ] && echo "Section: $section"
echo "Description: $description"
echo "$long_description" | fold -s -w 69 | while xread l; do
local v="$(echo "$l" | sed -e 's/ *$//g')"
echo " $v"
done
[ -n "$build_depends" ] && debian_wrap "Build-Depends: $build_depends"
for x in $supported_distros; do
[ -n "$(eval echo \$build_depends_$x)" ] \
&& debian_wrap "Build-Depends-$x: $(eval echo \$build_depends_$x)"
done
[ -n "$depends" ] && debian_wrap "Depends: $depends"
[ -n "$reccomends" ] && debian_wrap "Recommends: $recommends"
[ -n "$suggests" ] && debian_wrap "Suggests: $suggests"
[ -n "$distro_conflicts" ] && debian_wrap "Distro-Conflicts: $distro_conflicts"
echo
}
codename="sid"
while getopts "c:" o; do
case "$o" in
c) codename="$OPTARG" ;;
esac
done
shift $(($OPTIND-1))
echo "Bootstrapping debian/ for ${codename}" >&2
echo >&2
echo "Please wait, this takes a few seconds..." >&2
echo "Adding any new modules to control-modules..." >&2
parse_dir=control-modules.parse
map_fs_modules ':' 'genmodctl_new_cat' 'genmodctl_new_mod' >> control-modules
echo "Parsing control-modules..." >&2
parse_mod_control
echo "Displaying includes/excludes..." >&2
map_modules 'mod_filter_show' '' ''
echo "Generating control-modules.gen as sanity check..." >&2
(echo "# -*- mode:debian-control -*-"; \
echo "##### Author: Travis Cross <tc@traviscross.com>"; echo; \
map_modules ':' 'genmodctl_cat' 'genmodctl_mod' \
) > control-modules.gen
echo "Accumulating build dependencies from modules..." >&2
map_modules 'mod_filter' '' 'accumulate_build_depends'
echo "Generating debian/..." >&2
> control
(print_edit_warning; print_source_control; print_core_control) >> control
echo "Generating debian/ (conf)..." >&2
(echo "### conf"; echo) >> control
map_confs 'genconf'
echo "Generating debian/ (modules)..." >&2
(echo "### modules"; echo) >> control
print_edit_warning > modules_.conf
map_modules "mod_filter" \
"gencontrol_per_cat genmodules_per_cat" \
"gencontrol_per_mod geninstall_per_mod genoverrides_per_mod genmodules_per_mod"
echo "Generating additional lintian overrides..." >&2
grep -e '^Package:' control | while xread l; do
m="${l#*: }"
f=$m.lintian-overrides
[ -s $f ] || print_edit_warning >> $f
if ! grep -e 'package-has-long-file-name' $f >/dev/null; then
print_long_filename_override "$m" >> $f
fi
if ! grep -e 'new-package-should-close-itp-bug' $f >/dev/null; then
print_itp_override "$m" >> $f
fi
done
for p in freeswitch libfreeswitch1; do
f=$p.lintian-overrides
[ -s $f ] || print_edit_warning >> $f
print_gpl_openssl_override "$p" >> $f
done
echo "Cleaning up..." >&2
rm -f control-modules.preparse
rm -rf control-modules.parse
diff control-modules control-modules.gen >/dev/null && rm -f control-modules.gen
echo "Done bootstrapping debian/" >&2
touch .stamp-bootstrap

883
debian/changelog vendored
View File

@ -1,875 +1,18 @@
freeswitch (1.1.beta2.1-1) unstable; urgency=low
freeswitch (1.2~rc2-1) unstable; urgency=low
* Fixing FS-3449 as well as a bit of cleanup in prep for 1.2 release
packaging. Also a handful of lintian errors/warnings are now fixed.
* Bump version.
* Sounds and music have been moved to their own source packaging.
-- William King <quentusrex@gmail.com> Thu, 19 Apr 2012 19:23:18 -0700
-- Travis Cross <tc@traviscross.com> Thu, 24 May 2012 15:15:10 +0000
freeswitch (1.0.head-git.master.20110530.1-1) unstable; urgency=low
freeswitch (1.2~alpha1-1) unstable; urgency=low
* added mod_cdr_sqlite
* Initial release of FreeSWITCH in new debian packaging.
* The debian packaging has been completely rewritten from the ground up.
* We now install to the correct locations outlined in the Filesystem
Hierarchy Standard (FHS).
* All modules are packaged separately from the core.
* We have a handy system for autogenerating the final packaging
configuration from a consolidated configuration file.
-- Michal Bielicki <michal.bielicki@seventhsignal.de> Mon, 30 May 2011 16:02:02 +0200
freeswitch (1.0.head-git.master.20110402.1-1) unstable; urgency=low
* Added Hebrew lang package
-- Michal Bielicki <michal.bielicki@seventhsignal.de> Sat, 02 Apr 2011 03:12:02 +0200
freeswitch (1.0.head-git.master.20110330.1-1) unstable; urgency=low
* removed mod_file_string since it has been merged into dptoolsa
-- Michal Bielicki <michal.bielicki@seventhsignal.de> Wed, 30 Mar 2011 11:39:02 +0200
freeswitch (1.0.head~git.master.20101222.1-1) unstable; urgency=low
* cleaning work
-- Michal Bielicki <michal.bielicki@seventhsignal.de> Wed, 22 Dec 2010 22:48:02 +0200
freeswitch (1.0.head~git.master.20101015.1-1) unstable; urgency=low
* reintroduced mod_flite
* disabled the patching stuff introduced by Julien ... needs an overwork
* reintroduced mod_tts_commandline
* cleaned up rules file and module make rules
* more trivial changes and updates :)
-- Michal Bielicki <michal.bielicki@seventhsignal.de> Fri, 15 Oct 2010 13:14:02 +0200
freeswitch (1.0.head~git.master.20101014.1-1) unstable; urgency=low
* replaced mod_openzap with mod_freetdm
* added mod_theora
* added mod_codec2
* added mod_amrwb
* added mod_portaudio_stream
* cleaned up rules file and module make rules
* added patches from Julien Duqene (FS-369)
* Various trivial changes and updates :)
-- Michal Bielicki <michal.bielicki@seventhsignal.de> Fri, 15 Oct 2010 05:05:02 +0200
freeswitch (1.0.head~git.master.20100601.2-1) unstable; urgency=low
* Various trivial changes and updates.
* Change upstream package version numbering scheme for unreleased versions:
new format is major.minor.micro~git.branch.date.commits-1
* Change source format to 3.0 (quilt).
* Upgrade debhelper compatibility to version 7.
* Update maintainer data and copyright file; now includes the full text
of the MPL since it is not (yet?) available in /usr/share/common-licenses/
* Build and install mod_file_string.so (FSBUILD-247)
* Work around build failure caused by clean rules for openzap.
* Remove several libraries from explicit dependencies, there were no special
version requirements and they should be picked up by dh_shlibdeps.
* Add dh_makeshlibs and make dh_shlibsdeps work again.
* Move openssl to Suggests: as it is not a required package to install or
run freeswitch.
* Add upstream-convert rule to apply patches, generate orig tarball
and set package version.
* Add check to ensure debian patches are applied before attempting build.
* Fix clean rule to avoid unwanted tree change before building orig.tar
archives with git-buildpackage.
-- Julien Plissonneau Duquene <exp-end-2010-06-88a41947@aqiii.org> Tue, 01 Jun 2010 09:53:44 -0400
freeswitch (1.0.6-1ubuntu1) maverick; urgency=low
[ Gabriel Gunderson ]
* upgrade: Added mod_callcenter and pulled out Python into its own
package.
[ Mathieu Parent ]
* Updated Uploaders list
* Updated Standards-Version to 3.9.1
-- Mathieu Parent <sathieu@debian.org> Thu, 23 Sep 2010 15:34:00 +0200
freeswitch (1.0.4-1ubuntu2) karmic; urgency=low
* upgrade: Add more verbosity when building to make it easier to find build
errors.
* upgrade: Remove the requirement for EXACTLY automake1.9 and change it to
need at least automake 1.9
* upgrade: Add the modules (directory, cluechoo, and valet_parking) to the
build files. These are in the standard build, so they should be here too.
-- William King <quentusrex@gmail.com> Fri, 18 Dec 2009 14:27:42 -0800
freeswitch (1.0.4-1ubuntu1) karmic; urgency=low
* upgrade: Pulling out the sounds into separate source files for easier management.
-- William King <quentusrex@gmail.com> Sun, 15 Nov 2009 16:38:13 -0800
freeswitch (1.0.4-1) unstable; urgency=low
* new
-- Mike Jerris <mike@jerris.com> Mon, 18 Feb 2009 17:39:00 -0500
freeswitch (1.0.3-1) unstable; urgency=low
* build: add targets cd-sounds[-install] and cd-moh[-install] for 48k sounds (r:11151)
* build: autoconf detect odbc library (FSBUILD-8)
* build: fix sound install on windows build (r:11635,11638)
* build: fix configure --sysconfdir (FSBUILD-84)
* build: fix uclibc build (MODLANG-99)
* build: fix adduser in debian (FSBUILD-122, FSBUILD-102)
* core: fix buffering issues (r:11101,11145,11152-11157,11162,11191,11200)
* core: fix c leg no hangup when converting attended to blind transfer before b leg answers (MODENDP-165/r:11061)
* core: fix codec and media handling issues (r:11104)
* core: fix double close of file handles and add recording of native files (r:11108-11113,11482,11483)
* core: fix file resampling issue (r:11090)
* core: fix incorrect call progress timestamps in timetable (r:11186-11187/FSCORE-268)
* core: fix media handling issues (r:11079-11082)
* core: fix multiple 2833 dtmf handling issues (r:11149,11261,11262,11266,11293,11294,11338/FSCORE-266,FSCORE-273)
* core: send more event types verbos bridge,unbridge,park,unpark (r:11097-11098)
* core: Prevent media setup on failed originates (r:11462/FSCORE-279)
* core: fix recorded soundfiles had random data at end of file (r:11491/MODAPP-205)
* core: fix user for windows service (r:11538/FSCORE-277)
* core: modify variable expansion code to expand in more places and to fix potential security issue from injecting variables (r:11569,11570)
* core: look for soundfiles in more locations based on rate (r:11601/MODFORM-23)
* core: state machine veto behavior changed (r:11610)
* core: add enable_file_write_buffering variable (r:11677)
* core: fix garbled audio on media bug during bridge using stateful codecs (FSCORE-288)
* core: fix tone detect running multiple bugs when detecting multiple tones
* core: add {instant_ringback=true} to make ringback not wait for indication to generate ringback
* core: fix segfault from race condition on multiple reloadxml calls (MOODAPP-211)
* core: modify xml locking so phrases do not lock the xml for the duration of playing them
* core: replace resampler with the speexdsp resampler
* core: fix windows calling convention on threads launched that return a value to fix shutdown segfault (FSCORE-298)
* core: do not auto-export origination_caller_id_* to avoid confusion (r:12052)
* core: API visibility support (GCC/SUNCC) (FSCORE-264)
* core: fix leak in exposed event class serialize method (r:12068)
* core: add volume as possible return value from input callback on embedded languages (r:12114)
* core: add resampler to seech handles (r:12141)
* core: add api.getTime to embedded languages (r:12149)
* freeswitch: allow you to specify -htdocs dir at runtime. (r:11614)
* fs_cli: add "debug" command to change the esl debug level at runtime (r:11057)
* iksemel: update to 1.3 (r:11645)
* libesl: fix disconnect failure (r:11078,11083)
* libesl: fix solaris build (r:11067,11068)
* libesl: add c++ wrapper and swigged wrappers for multiple scripting languages
* libg722_1: fix dct4.h code generator to include the "f" (r:11188-11189,11367)
* libilbc: update to new library from Steve Underwood
* mod_amrwb: add amr wideband passthrough codec (r:11971)
* mod_cepstral: fix failure return code handling (MODASRTTS-9)
* mod_conference: add 'conference xml_list' and 'conference [conf_name] xml_list' (r:11062-11063)
* mod_conference: make conference verbose-events param to control if events have all the channel data or not (r:11073-11077)
* mod_conference: add MINTWO flag to end conference when down to 1 participant (r:11523)
* mod_conference: refactor conference record function (r:11626)
* mod_conference: add conference list summary command (MODAPP-197)
* mod_conference: fix Deadlock or coredump on conference commands play, transfer (MODAPP-209)
* mod_dahdi_codec: added (MODCODEC-7)
* mod_dialplan_xml: make previous auto hunt feature optional and off by defaule use auto_hunt=true session or global variable to enable (r:12144)
* mod_dptools: Add failure_causes channel variable (r:12058)
* mod_easyroute: add configuration file example for custom-query (r:11055)
* mod_easyroute: add custom-query configuration option (r:11054)
* mod_easyroute: fix build error when not configured for odbc (r:11478)
* mod_easyroute: fix memory leak (r:11611)
* mod_erlang_event: add ability to spawn a process (module/function) outbound on a specified node. (r:11460,11477)
* mod_erlang_event: Fix some issues with standing up a new outbound listener and cleaning up after a failed session (r:11479)
* mod_erlang_event: Fix setting up a listener for an outbound session if one doesn't already exist (r:11488)
* mod_erlang_event: add "erlang" fscli command (r:11488)
* mod_erlang_event: Monitor spawned outbound processes for premature exits (r:11489)
* mod_erlang_event: Allow the event encoding strategy to be configurable; choices are string or binary (r:11495)
* mod_erlang_event: Allow certain tuple elements to be binaries or strings, to reduce conversion requirements on the erlang side (r:11496)
* mod_erlang_event: Support sending a message to a registered process to request a pid (when spawning won't cut it) (r:11499)
* mod_erlang_event: Ensure events received while a pid session is being created aren't discarded but are queued instead (r:11500)
* mod_erlang_event: Add freeswitch.erl - An erlang module to make talking to mod_erlang_event more painless (r:11525)
* mod_erlang_event: use rpc:call instead of spawn and to make the registered process argument to handlecall optional (r:11542)
* mod_event_socket: add ability to use a comma sep list of events on event-sink create-listener (r:11056)
* mod_event_socket: add debug logging to event-sink (r:11060)
* mod_event_socket: fix race condition (r:11680,12146)
* mod_dptools: add all modifier to break command (r:11557,11558)
* mod_dptools: add sound_test application (r:11658)
* mod_fax: Dont hangup after sending/receiving faxes
* mod_fifo: pause media bugs while not in a bridge (r:11466,11490)
* mod_fifo: allow unpark during chime list playing (r:11555/MODAPP-206)
* mod_fifo: fix outbound fifos doesn't check if the consumer is in the fifo in question. (r:11561/MODAPP-207)
* mod_fifo: Fix segfault when no argument were supplied to fifo_member call (MODAPP-210)
* mod_lcr: added (r:11180,11184,11532,11609)
* mod_limit: fix memory corruption caused by race condition when using limit hash (r:11070-11071)
* mod_limit: Fix transfer bug, fix leak and make the channel hangup if the extension is \!hangup_cause (r:11604,11932)
* mod_limit: add write different channel variables per realm_id (r:11608)
* mod_limit: Make max argument optional on the limit app, set the limit_usage variable to current count after inserting call in the db (r:11955)
* mod_lua: Create empty argv table when no args are passed to a Lua script (r:11559)
* mod_lua: use dll for lua windows build (FSCORE-299)
* mod_openmrcp: removed (r:11176-11179)
* mod_opal: added
* mod_pocketsphinx: fix leak (r:11974)
* mod_portaudio: fix stuck channels on outbound calls (r:11160,11470,11471,11472,11475,11476,11485)
* mod_python: fix build when site dir is not /usr/lib/python2.4 (r:12070)
* mod_say_en: add short form date/time (MODAPP-180)
* mod_sofia: add auto-rtp-bugs profile option to make rtp bug compensation configurable (r :11146-11147)
* mod_sofia: add support in sdp for a=maxptime (r:11103)
* mod_sofia: fix codec change race condition (r:11143)
* mod_sofia: fix notify event wasn't allowing content-length 0 (r:11106/MODENDP-167)
* mod_sofia: fix sending extra sdp in 200 OK when using 100rel in violation of sdp o/a protocol draft-ietf-sipping-sip-offeranswer-10 (r:11088)
* mod_sofia: fix sip_auto_answer=true (r:11069)
* mod_sofia: improve outbound registration error message (r:11059)
* mod_sofia: reset media timeout on re-invite (r:11161)
* mod_sofia: fix segfault due to missing contact header in invite (r:11463/MODENDP-177)
* mod_sofia: allow <params> tag in gateways as well as <variables> with direction inbound/outbound (default both) and call counter (r:11468)
* mod_sofia: add support or SLA, works with Polycom and Snom(Sylantro mode). (r:11562/MODENDP-179)
* mod_sofia: tolerate missing user in the request uri (r:11636)
* mod_sofia: Add purpose=gateways and profile=[name] so xml_curl requests make sense (MDXMLINT-46)
* mod_sofia: Add disable-srv and disable-naptr params to sip profiles (default false) (MODENDP-183)
* mod_sofia: add outbound-proxy param (MODENDP-184)
* mod_sofia: fix segfault with stun-enabled=false (SFSIP-120)
* mod_sofia: Profile Name in Expire Event is incorrect (MODENDP-185)
* mod_sofia: add "scrooge" mode to "inbound-codec-negotiation" (r:11881)
* mod_sofia: Add context to reconfig_sofia (r:12080)
* mod_sofia: fix segfault when calling from a Cisco 7940 using bypass_media (FSCORE-301)
* mod_sofia: ilbc to default to 30 if no mode= fmtp is defined on the inbound (r:12110)
* mod_sofia: fix challenge-realm (r:12113)
* mod_sofia: Segmentation fault when running killgw command on sofia profile without specifying a gateway (MODENDP-189)
* mod_sofia: gateways will inherit the context from its parent unless manually provided (r:12138)
* mod_sndfile: Add IMA ADPCM support (MODFORM-22)
* mod_spidermonkey: fix loading of spidermonkey modules (r:11084-11085)
* mod_spidermonkey: block some unwanted behaviours in session.originate
* mod_spidermonkey_socket: fix gc blocking (MODLANG-97)
* mod_xml_rpc: fixed authentication using @domain syntax (r:11064)
* mod_xml_rpc: fix http content types sent in responses (r:11099,11148,11150)
* mod_voicemail: voicemail insert into the proper fields (MODAPP-190)
* mod_voipcodecs: add G.726 24k (r:12083)
* sofia-sip: update to current sofia-sip repository
* spandsp: sync to latest snapshot and fix windows build
* speex: updated to 1.2rc1
* sqlite: fix random assert on windows (FSCORE-292)
-- Mike Jerris <mike@jerris.com> Mon, 18 Feb 2009 17:39:00 -0500
freeswitch (1.0.2-1) unstable; urgency=low
* all: don't add module interfaces before returning from error conditions in module load functions (MDXMLINT-36)
* all: fixed multiple memory leaks
* all: improved module unloading/reloading support
* build: add support for --switchconfdir (FSBUILD-84)
* build: fixed netbsd build
* build: make freeswitch stop graceflly with /etc/init.d/freeswitch stop on debian add working dir to start-stop-dir so freeswitch dumps core in workdir
* build: multiple packaging fixes
* build: user freeswitch not added to audio group on deb install (FSBUILD-95)
* Configuration: many updates to default configuration
* core: Add ability to choose uuid from originate string, originate_uuid var (use at your own risk)
* core: add bridge_generate_comfort_noise option for bridge to generate comfort noise to the A leg when there is no audio on the B leg
* core: add chan vars to param event during hangup hook
* core: add exec directive to xml preprocessor (not available on windows)
* core: add force_transfer_dialplan and force_transfer_context variables
* core: add hashing to event header lookup
* core: add hits to tone_detect
* core: add last_dtmf_duration variable
* core: add msleep function to swigged languages
* core: add park_after_bridge variable
* core: add per leg timeouts and specific cause codes in reject_on_single_fail
* core: add runtime selection of the module dir (FSCORE-198)
* core: add scheduler support for heartbeat
* core: add session heartbeat feature
* core: add session.destroy psuedo method to sort of destroy a session at least for the sake of FS
* core: add session.unsetInputCallback
* core: add strftime format string validation for user supplied values
* core: add vars param to switch_ivr_originate for recursion (MODAPP-175)
* core: added a "group" concept to the user directory
* core: added ability to do dns lookup to find ip with host: like stun: (FSCORE-219)
* core: added better locking for codec changes during a call
* core: added current_application and current_application_data variables
* core: added error/ magic endpoint so modules can return error causes in situations like sofia_contact
* core: added read_result channel variable
* core: added support for "F" to indicate flash in dtmf (FSCORE-213)
* core: allow calls to be stolen from originate
* core: allow you to get the privacy bits in the caller_profile
* core: change dso code to load symbols local
* core: changes core flags to be array based so we have more
* core: eavesdrop causes the people being eavesdropped on to not hear ach other (MODAPP-140)
* core: expose time table to variable interface via caller field lookup
* core: fix 100% cpu when sending parked call to moh (FSCORE-234)
* core: fix bridge app to make sure both channels are ready for media when one is only in ringing state
* core: fix buffer overflow (FSCORE-188)
* core: fix conference dial by allowing multiple braces in originate, fix bad pointer op (FSCORE-208)
* core: fix double detection of DTMF in IVR (FSCORE-221)
* core: fix hangup_after_bridge is false on a bridge started with the intercept app
* core: fix issue where pid file is accidentally truncated
* core: fix ivr timeout (FSCORE-181)
* core: fix memory leak in alias tab completion code
* core: fix min digits in read app
* core: fix out-of-bounds pointer in variable expansion (FSCORE-171)
* core: fix segfault in media bugs when in bypass media (FSCORE-193)
* core: fix segfault on gtalk to sip calls (FSCORE-212)
* core: fix segfault on reloadxml (FSCORE-176)
* core: fix segfault on trasfering eavesdopping party (FSCORE-210)
* core: fix segfault using switch_system function (FSCORE-196)
* core: fix session.bridge
* core: fix setting effective_caller_id_name / effective_caller_id_number on bridge dialstring (MODAPP-122)
* core: fix stream_raw_write (MODAPP-145)
* core: fix using resampling on ringback file
* core: fixed performance bottleneck in sqlite db's
* core: fixed race in reloadxml
* core: increment app before execute in case it returns to execute it will go to the next item in the list and not the same
* core: ivr menu max_failures and max_timeouts now default to 3 if not specified or invalid (less than 1) values are specified (FSCORE-244)
* core: ivr_menu max-timeouts option, result in ivr_menu_status var (FSCORE-183)
* core: let b legs use park_after_bridge too
* core: make events less verbose unless verbose_events is set
* core: parse private events during originate
* core: pass pdd data to a leg on oubound calls using bridge
* core: prevent crash in crazy situation with xml interface lookup failures (FSCORE-169)
* core: reduce cpu requirement for generated comfort noise
* core: remove interface names from core db on unload
* core: reworked timing resulting in significant performance increase and better rtp timing
* core: rewrite switch_play_and_get_digits (MODAPP-166)
* core: session.recordFile never terminates (MODLANG-79)
* core: session.transfer make dialplan and context optional
* core: set_user app now sets domain vars as well as user vars
* core: tone_detect not triggering app after tone detection (MODAPP-182)
* core: unprivileged user setting bigger stack for switch_system thread failure (FSCORE-197)
* core: user_exists returns false when fetching a user from XML Curl or other xml interfaces
* libesl: added c event socket library and fs_cli
* libsndfile: fix autoconf 2.62 support (LBSNDF-5)
* mod commands: add "all" modifier to "break" command
* mod_celt: added new module
* mod_commands: Add support for more than 2 variables to uuid_setvar_multi (MODAPP-171)
* mod_commands: Add support for passing the cause of hangup to the uuid_kill command (FSCORE-217)
* mod_commands: add attr lookup to user_data
* mod_commands: add domain_exists fsapi command
* mod_commands: add eval fsapi command
* mod_commands: add flush_dtmf app and uuid_flush_dtmf api command
* mod_commands: add fsctl send_sighup, fsctl shutdown asap, unsched_api commands
* mod_commands: add fsctl shutdown [elegant|restart|cancel]
* mod_commands: add new syntax to uuid_setvar to allow you to unset a var. <uuid> <var> [value] (MODAPP-167)
* mod_commands: add reload fsapi command to reload a module
* mod_commands: add system fsapi and application (MODAPP-138)
* mod_commands: added hupall fsapi command
* mod_commands: added strftime_tz api command
* mod_commands: break all now stops broadcast too
* mod_commands: fix api command sent through sched_api was getting the last char lopped off
* mod_commands: fix race on transfer with -both
* mod_commands: fix system dialplan app problems (MODAPP-86)
* mod_commands: only send content-type on status when it really is http.
* mod_conference: add fsapi to stop async playback too
* mod_conference: add video caps to mod_conference with video follow audio
* mod_conference: better sound prefix handling when using say: and allow say: on kick sounds.
* mod_conference: fix race in record
* mod_conference: fix runaway thread when floor holder has no video and other people do have video
* mod_conference: fix seg when kicking many members quickly (MODAPP-129)
* mod_conference: fix segfault on invalid chat event
* mod_conference: perpetual sound does not auto-mute, you can do that yourself if you want it
* mod_dialplan_xml: add Hunt- vars in dialplan lookup after transfer
* mod_dialplan_xml: fail call on extensions with nested conditions
* mod_dingaling: (LBDING-7) fix segfault on os x
* mod_dingaling: end call on ice timeout
* mod_dingaling: fix presence on jabber to be less protocol ambiguous
* mod_dingaling: fix segfault (LBDING-10)
* mod_dingaling: update to support latest client from google
* mod_dptools: add a mechanism to tell if a file played from sendmsg over event socket
* mod_dptools: add playback_terminator support to phrase and say app
* mod_dptools: add playback_terminator_used variable (MODAPP-132)
* mod_dptools: add presence application
* mod_dptools: fix originate api not parsing users properly (FSCORE-246)
* mod_dptools: fix record and record_session to create directory if it does not exist (FSCORE-250)
* mod_dptools: fixed limit and + parsing bug in record_session app (MODAPP-148)
* mod_dptools: remove_bugs added to remove all media bugs on a session
* mod_erlang_event: add new module
* mod_event_socket: missing : after Content-Length in event socket (MODEVENT-33)
* mod_event_socket: add event socket listener filters
* mod_event_socket: add stateful listener fsapi commands for ajax-y type event interface over http
* mod_event_socket: fix arg parsing errors (MODEVENT-34)
* mod_event_socket: fix shutdown segfault race (MODEVENT-32)
* mod_event_socket: inbound connection to event_socket can now take over an existing channel with 'myevents <uuid>' to take on the behaviour of an outbound socket
* mod_event_socket: let any channel get messages
* mod_event_socket: make event socket wait for hangup on outbound mode and send disconnect message
* mod_expr: fix endless loop
* mod_fax: new module
* mod_fifo: add fifo_consumer_wrapup_time var (MODAPP-117)
* mod_fifo: added callback agents
* mod_fifo: honor keyword silence (MODAPP-118)
* mod_flite: added windows build
* mod_fsv: fix in a windows enviroment opening the record file in text mode. (MODAPP-169)
* mod_http: added new module
* mod_java: updated to new module api to support read/write locks on interface
* mod_limit: accept dialplan context for transfer (MODAPP-161)
* mod_limit: added hashtable based limit functions
* mod_limit: prevent empty error log message (MODAPP-134)
* mod_local_stream: add start_local_stream and stop_local_stream fsapi commands to start/stop dynamically (MODFORM-13)
* mod_local_stream: fix leak and improve error checking
* mod_local_stream: fix seg when no timer name specified in config file. (MODFORM-16)
* mod_loopback: add new module
* mod_lua: add local scripts directory support (MODLANG-86)
* mod_lua: don't eval blank string
* mod_lua: fix originate
* mod_lua: fix segfault (MODLANG-77)
* mod_lua: update to lua 5.1.4 (MODLANG-87)
* mod_lumenvox: removed
* mod_managed: new module replaces mod_mono now supports native .net runtime on windows as well
* mod_opal: added to trunk (still very beta)
* mod_perl: fix segfault (MODLANG-77)
* mod_pocketsphinx: fix rpm build
* mod_portaudio: fix cpu race on inbound call to pa when no ring file is set
* mod_radius_cdr: dictionary update for cause code changes (MODEVENT-27)
* mod_radius_cdr: fix unload (MODEVENT-29)
* mod_shout: add stereo recording broadcast support
* mod_shout: added windows build
* mod_shout: fix segfault when recording mp3's (MODFORM-12)
* mod_shout: improved stability of mp3 decoding
* mod_siren: added new module
* mod_sndfile added support to record 16bit for the various rates including 48kHz
* mod_sofia: Add filter to "sofia status profile XXX" (MODENDP-138)
* mod_sofia: Add force-register-db-domain which works in conjunction with force-register-domain.
* mod_sofia: Add optional <variables> and <params> tag to <gateway> tag.
* mod_sofia: Challenge the right realm when to_host is outside the users domain. (MODENDP-136)
* mod_sofia: Improve notify messages through a proxy (MODENDP-147)
* mod_sofia: MWI for multiple domains (MODAPP-126)
* mod_sofia: Move "a=sendrecv" from session to media section of SDP (MODENDP-148)
* mod_sofia: add 200 OK re-invite without sdp
* mod_sofia: add custom sofia::gateway_state event (MODENDP-112)
* mod_sofia: add fire events for the refer SIP NOTIFY event package (MODENDP-152)
* mod_sofia: add more params for xml_curl directory lookup
* mod_sofia: add new auto vals for challenge-realm param <param name="challenge-realm" value="auto_from|auto_to|<hardcoded_val>"/>
* mod_sofia: add option to turn of auto_restart of sofia profiles on ip change
* mod_sofia: add params to use sip callid as uuid on inbound calls and uuid as sip callid on outbound calls
* mod_sofia: add parsing of Privacy header for privacy info (MODENDP-133)
* mod_sofia: add proto_specific_hangup_cause to both legs
* mod_sofia: add proxy 3pcc mode
* mod_sofia: add redirect variable to channel as well as partner channe (MODENDP-135)
* mod_sofia: add sip-forbid-register to user params to refuse to let a certian user register
* mod_sofia: add sip: into register-proxy when it's not specified
* mod_sofia: add sip_history_info var for inbound invites.
* mod_sofia: add sip_via_protocol variable
* mod_sofia: add sofia xmlstatus (MODENDP-156)
* mod_sofia: add support for params other than Replaces in Refer-To (MODENDP-143)
* mod_sofia: add support for profiles sharing databases so that you can have a domain that uses multiple profiles for split dns type setups
* mod_sofia: add support for refer transfer involving multiple machines
* mod_sofia: add support to send a notify in the invite dialog by specifying the uuid of the call. (SFSIP-92)
* mod_sofia: add suppress_from_cidname var to not have display name in from header (MODENDP-153)
* mod_sofia: added sip_hangup_disposition variable
* mod_sofia: allow send_message and notify events to send a message/notify without a body if needed.
* mod_sofia: append -1 .. -N postfix after any X-headers as vars that have the same name
* mod_sofia: cache auth_gateway_name in sofia for challenged bye
* mod_sofia: cancel proxy or no-media mode if you purposely answer or pre_answer
* mod_sofia: correct result code mapping for Unallocated Number (MODENDP-124)
* mod_sofia: disable 100rel by default
* mod_sofia: don't accept crypto in the RTP/AVP (MODENDP-126)
* mod_sofia: don't put CN in sdp answer if it was not in the offer.
* mod_sofia: fix Incorrect IP address shows up in SDP "o" field when multiple external IPs available and FS not bound to first (MODENDP-132)
* mod_sofia: fix Wrong RTP media port destination after reinvite/UNHOLD (SFSIP-82)
* mod_sofia: fix bug on linksys where they lie about the ptime and handle linksys transfer problem
* mod_sofia: fix chat (send an IM) assumes that the user's profile is the same as their domain, which isn't necessarily so (SFSIP-83)
* mod_sofia: fix dtmf handling of broken info dtmf endpoints
* mod_sofia: fix eyebeam presence to be RFC compliant (MODENDP-144)
* mod_sofia: fix ip change detection when in proxy mode
* mod_sofia: fix register_proxy ignoring the paramaters (MODENDP-121)
* mod_sofia: fix remote session refresh triggers request glare (MODENDP-131)
* mod_sofia: fix rtp auto adjust running when it should not
* mod_sofia: fix rtp sent to wrong port after some re-INVITE scenarios (MODENDP-141)
* mod_sofia: fix sending of cn packets across bridge when we shouldn't
* mod_sofia: fix sqlite issue with select of the sip contact
* mod_sofia: fixed segfault on invalid presence payload
* mod_sofia: gateway ping needs to look for 501 (SFSIP-78)
* mod_sofia: handle multi contact register responses and register timeout better
* mod_sofia: improve gateway resilience
* mod_sofia: log ip and port you get reply to invite from
* mod_sofia: make multiple-registations=true use the contact method and call-id option to do it the old way
* mod_sofia: make proxy mode pull the port from m=image as well
* mod_sofia: make register-proxy preserve the url composed from proxy but target the packets to desired address (MODENDP-121)
* mod_sofia: many fixes for sonus rtp issues silence_when_idle=400 chanvar to send generated silence duing sleeps etc
* mod_sofia: many fixes in presence handling
* mod_sofia: passthrough t.38 fixes
* mod_sofia: pick ipv4 or ipv6 based on sipip instead of having mixed in sdp
* mod_sofia: send NOTIFY on TCP/UDP depending on the SUBSCRIBE (SFSIP-104)
* mod_sofia: setting profile option multiple-registrations=contact key multi reg off the contact string
* mod_sofia: wait for a reply on refer
* mod_soundtouch: fixes and improvements, many options changed (MODAPP-149)
* mod_soundtouch: updated to new module api
* mod_spidermonkey: Segmentation fault in check_hangup_hook at mod_spidermonkey.c:1589 (MODLANG-74)
* mod_spidermonkey: fix bug in apiExecute
* mod_spidermonkey: fix memory pool handling and leaks
* mod_spidermonkey: limit recursion busting through the stack (FSCORE-202)
* mod_spidermonkey: make session.getVariable return blank string not the word false
* mod_spidermonkey_curl: add optional content-type arg
* mod_spidermonkey_odbc: fix numRows and add numCols
* mod_spidermonkey_odbc: fix segfault (MODLANG-75)
* mod_stress: new module for voice stress analysis
* mod_syslog: don't log blank lines (FSCORE-163)
* mod_tone_stream: let silence_stream://0 indicate perpetual silence
* mod_vmd: add new module to detect voicemail "beep"
* mod_voicemail: Add vm_alternate_greet_id param to directory entry (MODAPP-174)
* mod_voicemail: Patch to add voicemail preference controlling date announcement new param 'play-date-announcement' to values 'first' 'last' or 'never' defaults to first to retain previous behavior (MODAPP-121)
* mod_voicemail: Update mwi light after delete vm via web. (MODAPP-124)
* mod_voicemail: add ability to get to options without listening to every saved message (MODAPP-115)
* mod_voicemail: add ability to skip greeting when leaving a voicemail. (MODAPP-181)
* mod_voicemail: add change-pass-key config file option
* mod_voicemail: add forwarding support
* mod_voicemail: add local dtmf driven alternat vm pass
* mod_voicemail: add proper notification of a vm message being too short
* mod_voicemail: add support for auth via a1-hash
* mod_voicemail: add the "storage-dir" parameter to be set on a per-user basis (MODAPP-133)
* mod_voicemail: add voicemail_greeting_path variable
* mod_voicemail: added voicemail_alternate_greet_id variable
* mod_voicemail: allow changing of password from voicemail to update user directory if using non-static config (MODAPP-156)
* mod_voicemail: created email date (int overflow) (MODAPP-125)
* mod_voicemail: don't try to deliver vm when no file was recorded. (MODAPP-133)
* mod_voicemail: fix MWI with xml_curl used for directory (MODAPP-176)
* mod_voicemail: fix Voicemail messages occasionally lost / stranded (MODAPP-178)
* mod_voicemail: fix invalid event after message deleted (MODAPP-170)
* mod_voicemail: fix mwi for phones with multiple registrations problem (MODAPP-153)
* mod_voicemail: fix voicemail segfault on incorrect password (FSCORE-187)
* mod_voicemail: fix voicemail_inject error handling (MODAPP-133)
* mod_voicemail: fix voicemail_inject usage api call
* mod_voicemail: improve error checking (MODAPP-142)
* mod_voicemail: localize notification emails (MODAPP-139)
* mod_voicemail: make more multi-domain friendly (MODAPP-162)
* mod_voicemail: make playback created file macros optional (MODAPP-150)
* mod_voicemail: recognize operator key in more places (MODAPP-159)
* mod_voicemail: web interface displays incorrect created / last heard dates (MODAPP-123)
* mod_wanpipe: removed
* mod_xml_cdr: add https support
* mod_xml_cdr: add optional a-leg prefix to xml cdr filenames (MDXMLINT-39)
* mod_xml_cdr: add support for fallback webserver for cdr posting (FSCORE-238)
* mod_xml_curl: Allow specification of HTTP method, and dynamic expansion of variables in URI. (MDXMLINT-41)
* mod_xml_curl: added redirect following (max 10)
* mod_xml_ldap: almost a complete rewrite of this module
* mod_xml_rpc: allow setting of global realm without a global user (MDXMLINT-45)
* mod_xml_rpc: fix multiple segfaults
* mod_xml_rpc: fix segfault on originate via http
* sofia-sip: updated to 1.12.10 (plus a few patches)
-- Mike Jerris <mike@jerris.com> Mon, 29 Dec 2008 14:46:00 -0500
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 variable 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@jerris.com> Thu, 24 Jul 2008 07:00:00 -0500
freeswitch (1.0.1~trunk) unstable; urgency=low
* Updated revision number
* Fixed init problem reported by Jay Binks (FSSCRIPTS-1)
* Added a patch to the debian build system add more features (thanks to Hadley Rich) (FSBUILD-45)
- Added en-us-callie sounds and music on hold packages
- Added recommends and suggests
- Added mod_say_es and mod_say_nl
- Updated descriptions
- Added mod_cdr_csv
* Fixed typos and some errors in the previous patch.
* Modified monit script. Now it should work.
* The debian build system now bootstrap automagically if it's necessary and all scripts are in place.
-- Massimo Cetra <devel@navynet.it> Sun, 6 Jul 2008 16:30:00 +0100
freeswitch (1.0.0-1) unstable; urgency=low
* 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
-- Michael Jerris <mike@jerris.com> Tue, 27 May 2008 01:30:00 -0400
freeswitch (1.0~rc6-1) unstable; urgency=low
* 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
-- Michael Jerris <mike@jerris.com> Tue, 13 May 2008 02:01:00 -0400
freeswitch (1.0~rc5-1) unstable; urgency=low
* 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
-- Michael Jerris <mike@jerris.com> Tue, 13 May 2008 02:01:00 -0400
freeswitch (1.0~8327) unstable; urgency=low
* Adding perl and lua separate packages
* Adding mod_voipcodecs
-- root <root@fs.navynet.it> Tue, 6 May 2008 09:46:26 +0000
freeswitch (1.0~rc4-1) unstable; urgency=low
* 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"
-- Michael Jerris <mike@jerris.com> Wed, 23 Apr 2008 12:58:00 -0400
freeswitch (1.0~rc3-1) unstable; urgency=low
* 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
-- Michael Jerris <mike@jerris.com> Wed, 9 Apr 2008 12:58:22 -0400
freeswitch (1.0~rc2-1) unstable; urgency=low
* 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
*
-- Michael Jerris <mike@jerris.com> Wed, 9 Apr 2008 12:58:22 -0400
freeswitch (1.0~rc1-1) unstable; urgency=low
* loads of fixes
new cdr-csv module
new spidermonkey-curl module
-- Michal Bielicki <michal.bielicki@voiceworks.pl> Mon, 14 Jan 2008 23:37:04 +0100
freeswitch (1.0~beta3-1) unstable; urgency=low
* Additional scripts for changing the user to freeswitch
Added Startup Scripts
Monit integration
Settings file for integration into init
init.d file
added user freeswitch to own and run all off freeswitch
cleaned up config file control
new upstream release
split off codec pakcages
split off spidermonkey packages
-- Michal Bielicki <michal.bielicki@voiceworks.pl> Tue, 27 Nov 2007 13:20:21 +0100
freeswitch (1.0~beta2-1) unstable; urgency=low
* New upstream release
-- Paul van Genderen <paulvg@member.fsf.org> Wed, 17 Oct 2007 19:32:09 +0200
freeswitch (1.0~beta1-1) unstable; urgency=low
* New packages.
-- Robert McQueen <robot101@debian.org> Sun, 12 Nov 2006 17:32:23 -0500
-- Travis Cross <tc@traviscross.com> Sat, 05 May 2012 07:10:14 +0000

2
debian/compat vendored
View File

@ -1 +1 @@
7
8

279
debian/control vendored
View File

@ -1,279 +0,0 @@
Source: freeswitch
Section: comm
Priority: extra
Maintainer: FreeSWITCH developers <freeswitch-dev@lists.freeswitch.org>
Uploaders: Michal Bielicki <michal.bielicki@seventhsignal.pl>, Gabriel Gunderson <gabe@gundy.org>, William King <quentusrex@gmail.com>, Mathieu Parent <sathieu@debian.org>
Build-Depends: debhelper (>= 7), wget, automake (>=1.9), autoconf, libtool,
unixodbc-dev, libasound2-dev, libcurl3-openssl-dev|libcurl4-openssl-dev,
libssl-dev, ncurses-dev, libogg-dev, libvorbis-dev, libperl-dev, libgdbm-dev,
libdb-dev, libgnutls-dev, libtiff4-dev, python-dev, libx11-dev, uuid-dev,
libc6-dev (>= 2), bison, gawk
Homepage: http://freeswitch.org/
Standards-Version: 3.9.3
Vcs-Git: git://git.freeswitch.org/freeswitch.git
Vcs-Browser: http://fisheye.freeswitch.org/browse/freeswitch.git
Package: freeswitch
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: freeswitch-lang-en
Suggests: freeswitch-spidermonkey, freeswitch-lua, freeswitch-perl,
freeswitch-sounds-music-8000, monit, openssl
Description: open source telephony platform
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This is the main package that includes the FreeSWITCH daemon and most modules.
Package: freeswitch-dbg
Section: debug
Architecture: any
Depends: ${misc:Depends}, freeswitch (= ${binary:Version})
Description: debugging symbols for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package includes the debugging symbols useful for debugging FreeSWITCH.
The debugging symbols are used for execution tracing and core dump analysis.
Package: freeswitch-dev
Section: libdevel
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: development libraries and header files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the include files used if you wish to compile a package
which require FreeSWITCH's source file headers.
Package: freeswitch-spidermonkey
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: Javascript engine for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_spidermonkey language module.
Package: freeswitch-perl
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: Perl engine for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_perl language module.
Package: freeswitch-lua
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: Lua engine for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_lua language module.
Package: freeswitch-python
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: Python engine for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_python language module.
Package: freeswitch-codec-passthru-g7231
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: pass through g723.1 codec support for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_g723_1 codec module.
Package: freeswitch-codec-passthru-amr
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: pass through AMR codec support for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_amr codec module.
Package: freeswitch-codec-passthru-amrwb
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: pass through AMRWB codec support for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_amrwb codec module.
Package: freeswitch-codec-passthru-g729
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: pass through g729 codec support for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_g729 codec module.
Package: freeswitch-lang-en
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Recommends: freeswitch-sounds-en-us-callie-8000
Suggests: freeswitch-sounds-en-us-callie-16000, freeswitch-sounds-en-us-callie-32000,
freeswitch-sounds-en-us-callie-48000
Description: English language files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_say_en module and available language
configuration files.
Package: freeswitch-lang-de
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: German language files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_say_de module and available language
configuration files.
Package: freeswitch-lang-fr
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: French language files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_say_fr module and available language
configuration files.
Package: freeswitch-lang-it
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: Italian language files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_say_it module and available language
configuration files.
Package: freeswitch-lang-es
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: Spanish language files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_say_es module and available language
configuration files.
Package: freeswitch-lang-nl
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: Dutch language files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_say_nl module and available language
configuration files.
Package: freeswitch-lang-ru
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Recommends: freeswitch-sounds-ru-ru-elena-8000
Suggests: freeswitch-sounds-ru-ru-elena-16000, freeswitch-sounds-ru-ru-elena-32000,
freeswitch-sounds-ru-ru-elena-48000
Description: Russian language files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_say_ru module and available language
configuration files.
Package: freeswitch-lang-he
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: Hebrew language files for FreeSWITCH
FreeSWITCH is an open source telephony platform designed to facilitate the
creation of voice and chat driven products scaling from a soft-phone up to a
soft-switch. It can be used as a simple switching engine, a PBX, a media
gateway or a media server to host IVR applications using simple scripts or XML
to control the callflow.
.
This package contains the mod_say_he module and available language
configuration files.
Package: freeswitch-freetdm
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, freeswitch
Description: FreeTDM is a signaling and board API abstraction used mainly by the
FreeSWITCH project to place calls in TDM and analog telephony circuits. The library
was previously named "OpenZAP". Sangoma has worked along with the FreeSWITCH
developers in this library so Sangoma's customers can also use it to do custom
development. The library is still under heavy development but the overall API
does not change often. The intention of the library is to present a consistent
API for different telephony signaling stacks and board I/O APIs. FreeTDM can
either be used as a standalone API or along with FreeSWITCH as an endpoint
(mod_freetdm). If you want to use it as a part of FreeSWITCH remember following
the FreeSWITCH configuration section.
This package contains all the freetdm modules and libs and submodules

661
debian/control-modules vendored Normal file
View File

@ -0,0 +1,661 @@
# -*- mode:debian-control -*-
##### Author: Travis Cross <tc@traviscross.com>
## mod/applications
Module: applications/mod_abstraction
Description: Abstraction layer for APIs
This module provides a way to create new API functions via regex
rewriting.
Module: applications/mod_avmd
Description: Advanced voicemail detection
This module attempts to determine when a voicemail system has
answered the call.
Module: applications/mod_blacklist
Description: Blacklist helper
This module provides tools to blacklist callers.
Module: applications/mod_callcenter
Description: Call center
This module implements Automated Call Distribution (ACD) queues.
Module: applications/mod_cidlookup
Description: Caller ID name lookup
This module provides an API for querying caller ID name and location
data.
Module: applications/mod_cluechoo
Description: Clue Choo
This demo module renders a Clue Choo train on the FreeSWITCH console.
Module: applications/mod_commands
Description: Command module
This module provides miscellaneous API commands.
Module: applications/mod_conference
Description: Conference
This module provides multi-party conferencing.
Module: applications/mod_curl
Description: cURL
This module provides an API for making HTTP requests with cURL.
Module: applications/mod_db
Description: DB
This module implements simple db API, group support, and limit db
backend.
Module: applications/mod_directory
Description: Dial by name directory
This module implements a dial-by-name directory IVR.
Module: applications/mod_distributor
Description: Load distributor
This module implements a mechanism for performing load balancing.
Module: applications/mod_dptools
Description: Dialplan tools
This module implements basic dialplan tools.
Module: applications/mod_easyroute
Description: Easyroute
This module does destination lookup based on DID.
Module: applications/mod_enum
Description: ENUM
This module implements ENUM support.
Module: applications/mod_esf
Description: Multicast support
This module adds multi-cast support.
Module: applications/mod_esl
Description: Single ESL
This module adds an API for generating one-off ESL requests.
Module: applications/mod_expr
Description: Expr
This module adds expr support for expression evaluation.
Module: applications/mod_fax
Description: Fax
This module adds fax support provided by Steve Underwood's SpanDSP.
Module: applications/mod_fifo
Description: FIFO
This module adds a first-in first-out queue system.
Module: applications/mod_fsk
Description: Frequency-shift keying
This module adds frequency-shift keying support which can be used to
send and receive caller ID.
Module: applications/mod_fsv
Description: FSV
This module provides dialplan applications for recording and playing
FSV videos.
Module: applications/mod_hash
Description: Hash
This module provides a hash API, a key-value in-memory datastore.
Module: applications/mod_httapi
Description: HT-TAPI Hypertext Telephony API
This module provides an API for controlling the switch by responding
to HTTP requests.
Module: applications/mod_http_cache
Description: HTTP GET with caching
This module provides an API for making HTTP GET requests where the
result is cached.
Module: applications/mod_ladspa
Description: LADSPA
This module provides an API for accessing LADSPA plugins.
Build-Depends: ladspa-sdk
Suggests: tap-plugins, swh-plugins, autotalent
Module: applications/mod_lcr
Description: LCR
This module adds a facility for least-cost routing.
Module: applications/mod_limit
Description: Limit compatibility module
This module provides a backward-compatible interface to the DB limit
system.
Module: applications/mod_memcache
Description: Memcache
This module provides an interface to memcache servers.
Module: applications/mod_mongo
Description: MongoDB
This module provides an interface to MongoDB.
Build-Depends: scons, libboost-dev, libboost-system-dev,
libboost-date-time-dev, libboost-thread-dev, libboost-filesystem-dev
Module: applications/mod_mp4
Section: contrib/comm
Description: MP4 video support
This module adds support for MP4 video playback.
Build-Depends: libmp4v2-dev
Module: applications/mod_nibblebill
Description: Nibblebill
This module allows for real-time accounting of a cash balance and
using that information for call routing.
Module: applications/mod_osp
Description: Open Settlement Protocol
This module adds support for the Open Settlement Protocol (OSP).
Build-Depends: libosptk3-dev
Module: applications/mod_rad_auth
Description: RADIUS AA
This module implements RADIUS Authentication and Authorization.
Module: applications/mod_random
Description: Entropy extraction
This module extracts entropy from FreeSWITCH and feeds it into
/dev/random.
Module: applications/mod_redis
Description: Redis limit backend
This module provides a mechanism to use Redis as a backend data
store.
Module: applications/mod_rss
Description: RSS browser
This module provides an RSS browser.
Module: applications/mod_skel
Description: Framework demo module
This module demonstrates how to build an add-on module.
Module: applications/mod_sms
Description: Astract SMS
This module provides an abstract facility for interfacing with SMS
systems.
Module: applications/mod_snapshot
Description: Snapshot
This module can record a sliding window of audio and take snapshots
to disk.
Module: applications/mod_snipe_hunt
Description: Snipe hunt
This is a framework demo module.
Module: applications/mod_snom
Description: SNOM specific features
This module implements features specific to SNOM phones.
Module: applications/mod_soundtouch
Description: Soundtouch
This module implements example media bugs.
Module: applications/mod_spandsp
Description: SpanDSP
This module implements spandsp fax, dsp, and codec functionality.
Module: applications/mod_spy
Description: UserSpy
This module adds the ability to monitor the audio of a channel.
Module: applications/mod_stress
Description: Voice stress detection
This module attempts to detect voice stress on an audio channel.
Module: applications/mod_valet_parking
Description: Valet parking
This module implements the valet call parking strategy.
Module: applications/mod_vmd
Description: Voicemail detection
This module detects voicemail beeps at any frequency in O(1) time.
Module: applications/mod_voicemail
Description: Voicemail
This module provides a voicemail system.
Module: applications/mod_voicemail_ivr
Description: Voicemail IVR
This module provides an extensible voicemail IVR system.
## mod/asr_tts
Module: asr_tts/mod_cepstral
Description: mod_cepstral
Adds mod_cepstral.
Module: asr_tts/mod_flite
Description: mod_flite
Adds mod_flite.
Module: asr_tts/mod_pocketsphinx
Description: mod_pocketsphinx
Adds mod_pocketsphinx.
Module: asr_tts/mod_tts_commandline
Description: mod_tts_commandline
Adds mod_tts_commandline.
Module: asr_tts/mod_unimrcp
Description: mod_unimrcp
Adds mod_unimrcp.
## mod/codecs
Module: codecs/mod_amr
Description: mod_amr
Adds mod_amr.
Module: codecs/mod_amrwb
Description: mod_amrwb
Adds mod_amrwb.
Module: codecs/mod_bv
Description: mod_bv
Adds mod_bv.
Module: codecs/mod_celt
Description: mod_celt
Adds mod_celt.
Module: codecs/mod_codec2
Description: mod_codec2
Adds mod_codec2.
Module: codecs/mod_com_g729
Description: mod_com_g729
Adds mod_com_g729.
Module: codecs/mod_dahdi_codec
Description: mod_dahdi_codec
Adds mod_dahdi_codec.
Module: codecs/mod_g723_1
Description: mod_g723_1
Adds mod_g723_1.
Module: codecs/mod_g729
Description: mod_g729
Adds mod_g729.
Module: codecs/mod_h26x
Description: mod_h26x
Adds mod_h26x.
Module: codecs/mod_ilbc
Section: non-free/comm
Description: mod_ilbc
Adds mod_ilbc.
Module: codecs/mod_isac
Description: mod_isac
Adds mod_isac.
Module: codecs/mod_mp4v
Description: mod_mp4v
Adds mod_mp4v.
Module: codecs/mod_opus
Description: mod_opus
Adds mod_opus.
Module: codecs/mod_sangoma_codec
Description: mod_sangoma_codec
Adds mod_sangoma_codec.
Module: codecs/mod_silk
Description: mod_silk
Adds mod_silk.
Module: codecs/mod_siren
Section: non-free/comm
Description: mod_siren
Adds mod_siren.
Module: codecs/mod_skel_codec
Description: mod_skel_codec
Adds mod_skel_codec.
Module: codecs/mod_speex
Description: mod_speex
Adds mod_speex.
Build-Depends: libogg-dev
Module: codecs/mod_theora
Description: mod_theora
Adds mod_theora.
Module: codecs/mod_voipcodecs
Description: mod_voipcodecs
Adds mod_voipcodecs.
## mod/dialplans
Module: dialplans/mod_dialplan_asterisk
Description: mod_dialplan_asterisk
Adds mod_dialplan_asterisk.
Module: dialplans/mod_dialplan_directory
Description: mod_dialplan_directory
Adds mod_dialplan_directory.
Module: dialplans/mod_dialplan_xml
Description: mod_dialplan_xml
Adds mod_dialplan_xml.
## mod/directories
Module: directories/mod_ldap
Description: mod_ldap
Adds mod_ldap.
## mod/endpoints
Module: endpoints/mod_alsa
Description: mod_alsa
Adds mod_alsa.
Build-Depends: libasound2-dev
Module: endpoints/mod_dingaling
Description: mod_dingaling
Adds mod_dingaling.
Module: endpoints/mod_gsmopen
Description: mod_gsmopen
Adds mod_gsmopen.
Build-Depends: libx11-dev
Module: endpoints/mod_h323
Description: mod_h323
Adds mod_h323.
Build-Depends: libopenh323-dev, libpt-dev
Module: endpoints/mod_khomp
Description: mod_khomp
Adds mod_khomp.
Module: endpoints/mod_loopback
Description: mod_loopback
Adds mod_loopback.
Module: endpoints/mod_opal
Description: mod_opal
Adds mod_opal.
Module: endpoints/mod_portaudio
Description: mod_portaudio
Adds mod_portaudio.
Module: endpoints/mod_reference
Description: mod_reference
Adds mod_reference.
Module: endpoints/mod_rtmp
Description: mod_rtmp
Adds mod_rtmp.
Module: endpoints/mod_skinny
Description: mod_skinny
Adds mod_skinny.
Module: endpoints/mod_skypopen
Description: mod_skypopen
Adds mod_skypopen.
Build-Depends: libx11-dev
Module: endpoints/mod_sofia
Description: mod_sofia
Adds mod_sofia.
Module: endpoints/mod_unicall
Description: mod_unicall
Adds mod_unicall.
## mod/event_handlers
Module: event_handlers/mod_cdr_csv
Description: mod_cdr_csv
Adds mod_cdr_csv.
Module: event_handlers/mod_cdr_mongodb
Description: mod_cdr_mongodb
Adds mod_cdr_mongodb.
Module: event_handlers/mod_cdr_pg_csv
Description: mod_cdr_pg_csv
Adds mod_cdr_pg_csv.
Build-Depends: libpq-dev
Module: event_handlers/mod_cdr_sqlite
Description: mod_cdr_sqlite
Adds mod_cdr_sqlite.
Module: event_handlers/mod_erlang_event
Description: mod_erlang_event
Adds mod_erlang_event.
Build-Depends: erlang-dev
Module: event_handlers/mod_event_multicast
Description: mod_event_multicast
Adds mod_event_multicast.
Build-Depends: libssl-dev
Module: event_handlers/mod_event_socket
Description: mod_event_socket
Adds mod_event_socket.
Module: event_handlers/mod_event_test
Description: mod_event_test
Adds mod_event_test.
Module: event_handlers/mod_event_zmq
Description: mod_event_zmq
Adds mod_event_zmq.
Module: event_handlers/mod_json_cdr
Description: mod_json_cdr
Adds mod_json_cdr.
Module: event_handlers/mod_radius_cdr
Description: mod_radius_cdr
Adds mod_radius_cdr.
Module: event_handlers/mod_snmp
Description: mod_snmp
Adds mod_snmp.
Build-Depends: libsnmp-dev
## mod/formats
Module: formats/mod_local_stream
Description: mod_local_stream
Adds mod_local_stream.
Module: formats/mod_native_file
Description: mod_native_file
Adds mod_native_file.
Module: formats/mod_portaudio_stream
Description: mod_portaudio_stream
Adds mod_portaudio_stream.
Module: formats/mod_shell_stream
Description: mod_shell_stream
Adds mod_shell_stream.
Module: formats/mod_shout
Description: mod_shout
Adds mod_shout.
Build-Depends: libogg-dev, libvorbis-dev
Module: formats/mod_sndfile
Description: mod_sndfile
Adds mod_sndfile.
Module: formats/mod_tone_stream
Description: mod_tone_stream
Adds mod_tone_stream.
Module: formats/mod_vlc
Description: VLC streaming
This module provides VLC streaming.
Build-Depends: libvlc-dev (>= 2.0.0)
Distro-Conflicts: squeeze
## mod/languages
Module: languages/mod_java
Description: mod_java
Adds mod_java.
Build-Depends: default-jdk, gcj-jdk
Module: languages/mod_lua
Description: mod_lua
Adds mod_lua.
Module: languages/mod_managed
Description: mod_managed
Adds mod_managed.
Build-Depends: libmono-2.0-dev, mono-gmcs
Module: languages/mod_perl
Description: mod_perl
Adds mod_perl.
Build-Depends: libperl-dev
Module: languages/mod_python
Description: mod_python
Adds mod_python.
Build-Depends: python-dev
Module: languages/mod_spidermonkey
Description: mod_spidermonkey
Adds mod_spidermonkey.
Build-Depends: unixodbc-dev
Module: languages/mod_yaml
Description: mod_yaml
Adds mod_yaml.
Build-Depends: libyaml-dev
## mod/loggers
Module: loggers/mod_console
Description: mod_console
Adds mod_console.
Module: loggers/mod_logfile
Description: mod_logfile
Adds mod_logfile.
Module: loggers/mod_syslog
Description: mod_syslog
Adds mod_syslog.
## mod/say
Module: say/mod_say_de
Description: mod_say_de
Adds mod_say_de.
Module: say/mod_say_en
Description: mod_say_en
Adds mod_say_en.
Module: say/mod_say_es
Description: mod_say_es
Adds mod_say_es.
Module: say/mod_say_fa
Description: mod_say_fa
Adds mod_say_fa.
Module: say/mod_say_fr
Description: mod_say_fr
Adds mod_say_fr.
Module: say/mod_say_he
Description: mod_say_he
Adds mod_say_he.
Module: say/mod_say_hr
Description: mod_say_hr
Adds mod_say_hr.
Module: say/mod_say_hu
Description: mod_say_hu
Adds mod_say_hu.
Module: say/mod_say_it
Description: mod_say_it
Adds mod_say_it.
Module: say/mod_say_ja
Description: mod_say_ja
Adds mod_say_ja.
Module: say/mod_say_nl
Description: mod_say_nl
Adds mod_say_nl.
Module: say/mod_say_pt
Description: mod_say_pt
Adds mod_say_pt.
Module: say/mod_say_ru
Description: mod_say_ru
Adds mod_say_ru.
Module: say/mod_say_th
Description: mod_say_th
Adds mod_say_th.
Module: say/mod_say_zh
Description: mod_say_zh
Adds mod_say_zh.
## mod/sdk
Module: sdk/autotools
Description: autotools
Adds autotools.
## mod/timers
Module: timers/mod_posix_timer
Description: mod_posix_timer
Adds mod_posix_timer.
Module: timers/mod_timerfd
Description: mod_timerfd
Adds mod_timerfd.
## mod/xml_int
Module: xml_int/mod_xml_cdr
Description: mod_xml_cdr
Adds mod_xml_cdr.
Module: xml_int/mod_xml_curl
Description: mod_xml_curl
Adds mod_xml_curl.
Module: xml_int/mod_xml_ldap
Description: mod_xml_ldap
Adds mod_xml_ldap.
Build-Depends: libsasl2-dev
Module: xml_int/mod_xml_rpc
Description: mod_xml_rpc
Adds mod_xml_rpc.
Module: xml_int/mod_xml_scgi
Description: mod_xml_scgi
Adds mod_xml_scgi.

1549
debian/copyright vendored

File diff suppressed because it is too large Load Diff

5
debian/dirs vendored
View File

@ -1,5 +0,0 @@
opt/freeswitch/log
opt/freeswitch/db
opt/freeswitch/bin/scripts
etc/monit

View File

@ -1 +0,0 @@
opt/freeswitch/mod/mod_amr.so*

View File

@ -1 +0,0 @@
opt/freeswitch/mod/mod_amrwb.so*

Some files were not shown because too many files have changed in this diff Show More