Merge remote-tracking branch 'origin/master' into moy/tport-log-fix

This commit is contained in:
Moises Silva 2014-02-24 19:39:17 -05:00
commit 461f94870f
1341 changed files with 122469 additions and 28351 deletions

32
.gitignore vendored
View File

@ -169,6 +169,10 @@ Release/
/src/mod/say/mod_say_nl/Makefile
/src/mod/say/mod_say_th/Makefile
/src/mod/say/mod_say_zh/Makefile
/src/mod/languages/mod_v8/Makefile
/src/mod/languages/mod_v8/Makefile.in
/src/mod/languages/mod_v8/mod_v8.log
/src/mod/legacy/languages/mod_lua/Makefile
BuildLog.htm
@ -192,3 +196,31 @@ ipch/
*.aps
/w32/Library/switch_version.inc
/w32/Setup/Fragments
/libs/portaudio/build/msvc/Win32/Debug DirectSound/portaudio.*.log
/libs/portaudio/build/msvc/Win32/Release DirectSound/portaudio.*.log
/libs/win32/mpg123/Win32/Debug_Generic/libmpg123.*.log
/libs/win32/mpg123/Win32/Release_Generic/libmpg123.*.log
/libs/win32/pthread/Win32/Debug DLL/pthread.*.log
/libs/win32/pthread/Win32/Release DLL/pthread.*.log
/src/mod/codecs/mod_amr/Win32/Debug Passthrough/mod_amr.*.log
/src/mod/codecs/mod_amr/Win32/Release Passthrough/mod_amr.*.log
/src/mod/codecs/mod_g723_1/Win32/Debug Passthrough/mod_g723_1.*.log
/src/mod/codecs/mod_g723_1/Win32/Release Passthrough/mod_g723_1.*.log
/src/mod/codecs/mod_g729/Win32/Debug Passthrough/mod_g729.*.log
/src/mod/codecs/mod_g729/Win32/Release Passthrough/mod_g729.*.log
/src/mod/directories/mod_ldap/Win32/Debug MS-LDAP/mod_ldap.*.log
/src/mod/directories/mod_ldap/Win32/Release MS-LDAP/mod_ldap.*.log
/src/mod/languages/mod_managed/Win32/Debug_CLR/mod_managed.*.log
/src/mod/languages/mod_managed/Win32/Release_CLR/mod_managed.*.log
libs/libsndfile/Scripts/build-test-tarball.mk
libs/libsndfile/doc/libsndfile.css
libs/libsndfile/echo-install-dirs
libs/libsndfile/src/ALAC/.dirstamp
libs/libsndfile/src/G72x/.dirstamp
libs/libsndfile/src/GSM610/.dirstamp
libs/libsndfile/src/Symbols.gnu-binutils
libs/libsndfile/src/Symbols.static
libs/libsndfile/src/version-metadata.rc
libs/libsndfile/tests/pedantic-header-test.sh

View File

@ -11,8 +11,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\form
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2010.vcxproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.2010.vcxproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2010.vcxproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2010.vcxproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
@ -154,6 +152,9 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlparse", "libs\win32\xmlrpc-c\xmlparse.2010.vcxproj", "{0D108721-EAE8-4BAF-8102-D8960EC93647}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmltok", "libs\win32\xmlrpc-c\xmltok.2010.vcxproj", "{B535402E-38D2-4D54-8360-423ACBD17192}"
ProjectSection(ProjectDependencies) = postProject
{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxbase", "libs\win32\Download sphinxbase.2010.vcxproj", "{4F92B672-DADB-4047-8D6A-4BB3796733FD}"
EndProject
@ -413,17 +414,6 @@ Global
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.ActiveCfg = Release|x64
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|Win32.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.Build.0 = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.ActiveCfg = Debug|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.Build.0 = Debug|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.ActiveCfg = Debug|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.Build.0 = Debug|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.ActiveCfg = Release|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.Build.0 = Release|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.Build.0 = Release|x64
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32

View File

@ -88,6 +88,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoloa
conf\vanilla\autoload_configs\spidermonkey.conf.xml = conf\vanilla\autoload_configs\spidermonkey.conf.xml
conf\vanilla\autoload_configs\switch.conf.xml = conf\vanilla\autoload_configs\switch.conf.xml
conf\vanilla\autoload_configs\syslog.conf.xml = conf\vanilla\autoload_configs\syslog.conf.xml
conf\vanilla\autoload_configs\v8.conf.xml = conf\vanilla\autoload_configs\v8.conf.xml
conf\vanilla\autoload_configs\voicemail.conf.xml = conf\vanilla\autoload_configs\voicemail.conf.xml
conf\vanilla\autoload_configs\wanpipe.conf.xml = conf\vanilla\autoload_configs\wanpipe.conf.xml
conf\vanilla\autoload_configs\woomera.conf.xml = conf\vanilla\autoload_configs\woomera.conf.xml
@ -180,8 +181,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\form
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2010.vcxproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.2010.vcxproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2010.vcxproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2010.vcxproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
@ -196,6 +195,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libtele
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.2010.vcxproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8", "src\mod\languages\mod_v8\mod_v8.2010.vcxproj", "{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8_skel", "src\mod\languages\mod_v8\mod_v8_skel.2010.vcxproj", "{8B754330-A434-4791-97E5-1EE67060BAC0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2010.vcxproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2010.vcxproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"
@ -510,6 +513,8 @@ Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup", "w32\Setup\Setup.wi
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_pt", "src\mod\say\mod_say_pt\mod_say_pt.2010.vcxproj", "{7C22BDFF-CC09-400C-8A09-660733980028}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_sv", "src\mod\say\mod_say_sv\mod_say_sv.2010.vcxproj", "{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldns-lib\ldns-lib.2010.vcxproj", "{23B4D303-79FC-49E0-89E2-2280E7E28940}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_callcenter", "src\mod\applications\mod_callcenter\mod_callcenter.2010.vcxproj", "{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}"
@ -572,6 +577,26 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcbt", "libs\win32\libcbt
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_cielab_luts", "libs\spandsp\src\msvc\make_cielab_luts.2010.vcxproj", "{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download V8", "libs\win32\Download V8.2010.vcxproj", "{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libv8", "libs\win32\v8\libv8.2010.vcxproj", "{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OPUS", "libs\win32\Download OPUS.2010.vcxproj", "{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "opus", "opus", "{ED2CA8B5-8E91-4296-A120-02BB0B674652}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus", "libs\win32\opus\opus.2010.vcxproj", "{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus.celt", "libs\win32\opus\opus.celt.2010.vcxproj", "{245603E3-F580-41A5-9632-B25FE3372CBF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus.silk_common", "libs\win32\opus\opus.silk_common.2010.vcxproj", "{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus.silk_fixed", "libs\win32\opus\opus.silk_fixed.2010.vcxproj", "{8484C90D-1561-402F-A91D-2DB10F8C5171}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus.silk_float", "libs\win32\opus\opus.silk_float.2010.vcxproj", "{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opus", "src\mod\codecs\mod_opus\mod_opus.2010.vcxproj", "{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_t43_gray_code_tables", "libs\spandsp\src\msvc\make_t43_gray_code_tables.2010.vcxproj", "{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}"
EndProject
Global
@ -680,24 +705,6 @@ Global
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64 Setup.ActiveCfg = Release|x64
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x86 Setup.ActiveCfg = Release|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|Win32.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.Build.0 = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64 Setup.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64 Setup.Build.0 = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x86 Setup.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.ActiveCfg = Debug|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.Build.0 = Debug|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.ActiveCfg = Debug|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.Build.0 = Debug|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64 Setup.ActiveCfg = Debug|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.ActiveCfg = Release|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.Build.0 = Release|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.Build.0 = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64 Setup.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x86 Setup.ActiveCfg = Release|Win32
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64 Setup.ActiveCfg = Release|Win32
@ -818,6 +825,38 @@ Global
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.Build.0 = Release|x64
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64 Setup.ActiveCfg = Release|x64
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x86 Setup.ActiveCfg = Release|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|Win32.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64.Build.0 = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64 Setup.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64 Setup.Build.0 = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x86 Setup.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|Win32.ActiveCfg = Debug|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|Win32.Build.0 = Debug|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x64.ActiveCfg = Debug|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x64.Build.0 = Debug|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x64 Setup.ActiveCfg = Debug|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|Win32.ActiveCfg = Release|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|Win32.Build.0 = Release|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x64.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x64.Build.0 = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x64 Setup.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x86 Setup.ActiveCfg = Release|Win32
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|Win32.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x64.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x64.Build.0 = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x64 Setup.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x64 Setup.Build.0 = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x86 Setup.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|Win32.ActiveCfg = Debug|Win32
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|x64.ActiveCfg = Debug|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|x64 Setup.ActiveCfg = Debug|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|Win32.ActiveCfg = Release|Win32
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|x64.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|x64 Setup.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|x86 Setup.ActiveCfg = Release|Win32
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64
@ -3463,6 +3502,24 @@ Global
{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|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|Win32.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|Win32.Build.0 = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|x64.ActiveCfg = Release|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|x64.Build.0 = Release|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|x64 Setup.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|x86 Setup.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|Win32.ActiveCfg = Debug|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|Win32.Build.0 = Debug|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|x64.ActiveCfg = Debug|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|x64.Build.0 = Debug|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|Win32.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|Win32.Build.0 = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|x64.ActiveCfg = Release|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|x64.Build.0 = Release|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|x64 Setup.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.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
@ -3812,6 +3869,166 @@ Global
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64.Build.0 = All|Win32
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64 Setup.ActiveCfg = All|Win32
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x86 Setup.ActiveCfg = All|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|Win32.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|Win32.Build.0 = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|x64.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|x64 Setup.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|x86 Setup.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|Win32.ActiveCfg = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|Win32.Build.0 = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x64.ActiveCfg = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x64.Build.0 = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|Win32.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|Win32.Build.0 = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x64.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x64.Build.0 = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x64 Setup.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x86 Setup.ActiveCfg = Release|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|Win32.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64.Build.0 = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64 Setup.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64 Setup.Build.0 = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x86 Setup.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|Win32.ActiveCfg = Debug|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|Win32.Build.0 = Debug|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x64.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x64.Build.0 = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x64 Setup.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|Win32.ActiveCfg = Release|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|Win32.Build.0 = Release|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x64.ActiveCfg = Release|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x64.Build.0 = Release|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x64 Setup.ActiveCfg = Release|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x86 Setup.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|Win32.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|Win32.Build.0 = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|x64.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|x64 Setup.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|x86 Setup.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|Win32.ActiveCfg = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|Win32.Build.0 = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|x64.ActiveCfg = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|x64.Build.0 = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|Win32.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|Win32.Build.0 = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|x64.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|x64.Build.0 = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|x64 Setup.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|x86 Setup.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|Win32.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|Win32.Build.0 = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|x64.ActiveCfg = Release|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|x64.Build.0 = Release|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|x64 Setup.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|x86 Setup.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|Win32.ActiveCfg = Debug|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|Win32.Build.0 = Debug|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|x64.ActiveCfg = Debug|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|x64.Build.0 = Debug|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|Win32.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|Win32.Build.0 = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|x64.ActiveCfg = Release|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|x64.Build.0 = Release|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|x64 Setup.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|x86 Setup.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|Win32.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|Win32.Build.0 = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|x64.ActiveCfg = Release|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|x64.Build.0 = Release|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|x64 Setup.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|x86 Setup.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|Win32.ActiveCfg = Debug|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|Win32.Build.0 = Debug|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|x64.ActiveCfg = Debug|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|x64.Build.0 = Debug|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|Win32.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|Win32.Build.0 = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|x64.ActiveCfg = Release|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|x64.Build.0 = Release|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|x64 Setup.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|x86 Setup.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|Win32.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|Win32.Build.0 = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|x64.ActiveCfg = Release|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|x64.Build.0 = Release|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|x64 Setup.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|x86 Setup.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|Win32.ActiveCfg = Debug|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|Win32.Build.0 = Debug|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|x64.ActiveCfg = Debug|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|x64.Build.0 = Debug|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|Win32.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|Win32.Build.0 = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|x64.ActiveCfg = Release|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|x64.Build.0 = Release|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|x64 Setup.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|x86 Setup.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|Win32.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|Win32.Build.0 = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|x64.ActiveCfg = Release|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|x64.Build.0 = Release|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|x64 Setup.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|x86 Setup.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|Win32.ActiveCfg = Debug|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|Win32.Build.0 = Debug|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|x64.ActiveCfg = Debug|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|x64.Build.0 = Debug|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|Win32.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|Win32.Build.0 = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|x64.ActiveCfg = Release|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|x64.Build.0 = Release|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|x64 Setup.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|x86 Setup.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|Win32.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|Win32.Build.0 = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|x64.ActiveCfg = Release|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|x64.Build.0 = Release|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|x64 Setup.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|x86 Setup.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|Win32.ActiveCfg = Debug|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|Win32.Build.0 = Debug|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|x64.ActiveCfg = Debug|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|x64.Build.0 = Debug|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|Win32.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|Win32.Build.0 = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|x64.ActiveCfg = Release|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|x64.Build.0 = Release|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|x64 Setup.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|x86 Setup.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|Win32.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|Win32.Build.0 = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|x64.ActiveCfg = Release|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|x64.Build.0 = Release|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|x64 Setup.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|x86 Setup.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|Win32.ActiveCfg = Debug|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|Win32.Build.0 = Debug|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|x64.ActiveCfg = Debug|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|x64.Build.0 = Debug|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|Win32.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|Win32.Build.0 = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|x64.ActiveCfg = Release|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|x64.Build.0 = Release|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|x64 Setup.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|x86 Setup.ActiveCfg = Release|Win32
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|Win32.ActiveCfg = All|Win32
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|Win32.Build.0 = All|Win32
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|x64.ActiveCfg = All|Win32
@ -3835,7 +4052,6 @@ Global
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{5580D60E-0F77-4716-9CD4-B8E5986FA375} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
@ -3845,6 +4061,7 @@ Global
{D5C87B19-150D-4EF3-A671-96589BD2D14A} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
@ -3946,9 +4163,13 @@ Global
{9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{ED2CA8B5-8E91-4296-A120-02BB0B674652} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5} = {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}
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{8B754330-A434-4791-97E5-1EE67060BAC0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{8F992C49-6C51-412F-B2A3-34EAB708EB65} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
@ -3986,6 +4207,8 @@ Global
{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}
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547} = {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}
@ -3995,6 +4218,7 @@ Global
{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{7C22BDFF-CC09-400C-8A09-660733980028} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}
{3C90CCF0-2CDD-4A7A-ACFF-208C1E271692} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
@ -4034,5 +4258,10 @@ Global
{0D108721-EAE8-4BAF-8102-D8960EC93647} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
{B535402E-38D2-4D54-8360-423ACBD17192} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
{245603E3-F580-41A5-9632-B25FE3372CBF} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
{8484C90D-1561-402F-A91D-2DB10F8C5171} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
EndGlobalSection
EndGlobal

View File

@ -87,6 +87,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoloa
conf\vanilla\autoload_configs\spidermonkey.conf.xml = conf\vanilla\autoload_configs\spidermonkey.conf.xml
conf\vanilla\autoload_configs\switch.conf.xml = conf\vanilla\autoload_configs\switch.conf.xml
conf\vanilla\autoload_configs\syslog.conf.xml = conf\vanilla\autoload_configs\syslog.conf.xml
conf\vanilla\autoload_configs\v8.conf.xml = conf\vanilla\autoload_configs\v8.conf.xml
conf\vanilla\autoload_configs\voicemail.conf.xml = conf\vanilla\autoload_configs\voicemail.conf.xml
conf\vanilla\autoload_configs\wanpipe.conf.xml = conf\vanilla\autoload_configs\wanpipe.conf.xml
conf\vanilla\autoload_configs\woomera.conf.xml = conf\vanilla\autoload_configs\woomera.conf.xml
@ -179,8 +180,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\form
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2012.vcxproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.2012.vcxproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2012.vcxproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2012.vcxproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
@ -195,6 +194,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libtele
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.2012.vcxproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8", "src\mod\languages\mod_v8\mod_v8.2012.vcxproj", "{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8_skel", "src\mod\languages\mod_v8\mod_v8_skel.2012.vcxproj", "{8B754330-A434-4791-97E5-1EE67060BAC0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2012.vcxproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2012.vcxproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"
@ -513,6 +516,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_distributor", "src\mod\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_pt", "src\mod\say\mod_say_pt\mod_say_pt.2012.vcxproj", "{7C22BDFF-CC09-400C-8A09-660733980028}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_sv", "src\mod\say\mod_say_sv\mod_say_sv.2012.vcxproj", "{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldns-lib\ldns-lib.2012.vcxproj", "{23B4D303-79FC-49E0-89E2-2280E7E28940}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_callcenter", "src\mod\applications\mod_callcenter\mod_callcenter.2012.vcxproj", "{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}"
@ -577,8 +582,30 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcbt", "libs\win32\libcbt
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_cielab_luts", "libs\spandsp\src\msvc\make_cielab_luts.2012.vcxproj", "{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download V8", "libs\win32\Download V8.2012.vcxproj", "{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libv8", "libs\win32\v8\libv8.2012.vcxproj", "{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OPUS", "libs\win32\Download OPUS.2012.vcxproj", "{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "opus", "opus", "{ED2CA8B5-8E91-4296-A120-02BB0B674652}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus", "libs\win32\opus\opus.2012.vcxproj", "{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus.celt", "libs\win32\opus\opus.celt.2012.vcxproj", "{245603E3-F580-41A5-9632-B25FE3372CBF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus.silk_common", "libs\win32\opus\opus.silk_common.2012.vcxproj", "{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus.silk_fixed", "libs\win32\opus\opus.silk_fixed.2012.vcxproj", "{8484C90D-1561-402F-A91D-2DB10F8C5171}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus.silk_float", "libs\win32\opus\opus.silk_float.2012.vcxproj", "{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opus", "src\mod\codecs\mod_opus\mod_opus.2012.vcxproj", "{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_t43_gray_code_tables", "libs\spandsp\src\msvc\make_t43_gray_code_tables.2012.vcxproj", "{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "winFailToBan", "src\mod\languages\mod_managed\managed\examples\winFailToBan\winFailToBan.csproj", "{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
All|Win32 = All|Win32
@ -685,24 +712,6 @@ Global
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64 Setup.ActiveCfg = Release|x64
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x86 Setup.ActiveCfg = Release|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|Win32.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.Build.0 = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64 Setup.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64 Setup.Build.0 = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x86 Setup.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.ActiveCfg = Debug|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.Build.0 = Debug|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.ActiveCfg = Debug|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.Build.0 = Debug|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64 Setup.ActiveCfg = Debug|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.ActiveCfg = Release|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.Build.0 = Release|Win32
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.Build.0 = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64 Setup.ActiveCfg = Release|x64
{5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x86 Setup.ActiveCfg = Release|Win32
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64 Setup.ActiveCfg = Release|Win32
@ -823,6 +832,38 @@ Global
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.Build.0 = Release|x64
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64 Setup.ActiveCfg = Release|x64
{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x86 Setup.ActiveCfg = Release|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|Win32.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64.Build.0 = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64 Setup.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64 Setup.Build.0 = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x86 Setup.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|Win32.ActiveCfg = Debug|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|Win32.Build.0 = Debug|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x64.ActiveCfg = Debug|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x64.Build.0 = Debug|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x64 Setup.ActiveCfg = Debug|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|Win32.ActiveCfg = Release|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|Win32.Build.0 = Release|Win32
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x64.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x64.Build.0 = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x64 Setup.ActiveCfg = Release|x64
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x86 Setup.ActiveCfg = Release|Win32
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|Win32.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x64.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x64.Build.0 = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x64 Setup.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x64 Setup.Build.0 = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.All|x86 Setup.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|Win32.ActiveCfg = Debug|Win32
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|x64.ActiveCfg = Debug|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|x64 Setup.ActiveCfg = Debug|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|Win32.ActiveCfg = Release|Win32
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|x64.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|x64 Setup.ActiveCfg = Release|x64
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|x86 Setup.ActiveCfg = Release|Win32
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64
@ -3451,6 +3492,24 @@ Global
{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|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|Win32.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|Win32.Build.0 = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|x64.ActiveCfg = Release|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|x64.Build.0 = Release|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|x64 Setup.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.All|x86 Setup.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|Win32.ActiveCfg = Debug|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|Win32.Build.0 = Debug|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|x64.ActiveCfg = Debug|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|x64.Build.0 = Debug|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|Win32.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|Win32.Build.0 = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|x64.ActiveCfg = Release|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|x64.Build.0 = Release|x64
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|x64 Setup.ActiveCfg = Release|Win32
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.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
@ -3822,6 +3881,166 @@ Global
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64.Build.0 = All|Win32
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64 Setup.ActiveCfg = All|Win32
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x86 Setup.ActiveCfg = All|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|Win32.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|Win32.Build.0 = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|x64.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|x64 Setup.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|x86 Setup.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|Win32.ActiveCfg = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|Win32.Build.0 = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x64.ActiveCfg = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x64.Build.0 = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|Win32.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|Win32.Build.0 = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x64.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x64.Build.0 = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x64 Setup.ActiveCfg = Release|Win32
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x86 Setup.ActiveCfg = Release|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|Win32.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64.Build.0 = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64 Setup.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64 Setup.Build.0 = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x86 Setup.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|Win32.ActiveCfg = Debug|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|Win32.Build.0 = Debug|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x64.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x64.Build.0 = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x64 Setup.ActiveCfg = Debug|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|Win32.ActiveCfg = Release|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|Win32.Build.0 = Release|Win32
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x64.ActiveCfg = Release|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x64.Build.0 = Release|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x64 Setup.ActiveCfg = Release|x64
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x86 Setup.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|Win32.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|Win32.Build.0 = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|x64.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|x64 Setup.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.All|x86 Setup.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|Win32.ActiveCfg = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|Win32.Build.0 = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|x64.ActiveCfg = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|x64.Build.0 = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|Win32.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|Win32.Build.0 = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|x64.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|x64.Build.0 = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|x64 Setup.ActiveCfg = Release|Win32
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547}.Release|x86 Setup.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|Win32.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|Win32.Build.0 = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|x64.ActiveCfg = Release|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|x64.Build.0 = Release|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|x64 Setup.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.All|x86 Setup.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|Win32.ActiveCfg = Debug|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|Win32.Build.0 = Debug|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|x64.ActiveCfg = Debug|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|x64.Build.0 = Debug|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|Win32.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|Win32.Build.0 = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|x64.ActiveCfg = Release|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|x64.Build.0 = Release|x64
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|x64 Setup.ActiveCfg = Release|Win32
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E}.Release|x86 Setup.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|Win32.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|Win32.Build.0 = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|x64.ActiveCfg = Release|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|x64.Build.0 = Release|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|x64 Setup.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.All|x86 Setup.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|Win32.ActiveCfg = Debug|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|Win32.Build.0 = Debug|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|x64.ActiveCfg = Debug|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|x64.Build.0 = Debug|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|Win32.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|Win32.Build.0 = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|x64.ActiveCfg = Release|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|x64.Build.0 = Release|x64
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|x64 Setup.ActiveCfg = Release|Win32
{245603E3-F580-41A5-9632-B25FE3372CBF}.Release|x86 Setup.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|Win32.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|Win32.Build.0 = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|x64.ActiveCfg = Release|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|x64.Build.0 = Release|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|x64 Setup.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.All|x86 Setup.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|Win32.ActiveCfg = Debug|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|Win32.Build.0 = Debug|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|x64.ActiveCfg = Debug|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|x64.Build.0 = Debug|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|Win32.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|Win32.Build.0 = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|x64.ActiveCfg = Release|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|x64.Build.0 = Release|x64
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|x64 Setup.ActiveCfg = Release|Win32
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16}.Release|x86 Setup.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|Win32.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|Win32.Build.0 = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|x64.ActiveCfg = Release|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|x64.Build.0 = Release|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|x64 Setup.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.All|x86 Setup.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|Win32.ActiveCfg = Debug|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|Win32.Build.0 = Debug|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|x64.ActiveCfg = Debug|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|x64.Build.0 = Debug|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|Win32.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|Win32.Build.0 = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|x64.ActiveCfg = Release|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|x64.Build.0 = Release|x64
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|x64 Setup.ActiveCfg = Release|Win32
{8484C90D-1561-402F-A91D-2DB10F8C5171}.Release|x86 Setup.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|Win32.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|Win32.Build.0 = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|x64.ActiveCfg = Release|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|x64.Build.0 = Release|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|x64 Setup.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.All|x86 Setup.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|Win32.ActiveCfg = Debug|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|Win32.Build.0 = Debug|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|x64.ActiveCfg = Debug|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|x64.Build.0 = Debug|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|Win32.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|Win32.Build.0 = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|x64.ActiveCfg = Release|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|x64.Build.0 = Release|x64
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|x64 Setup.ActiveCfg = Release|Win32
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782}.Release|x86 Setup.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|Win32.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|Win32.Build.0 = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|x64.ActiveCfg = Release|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|x64.Build.0 = Release|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|x64 Setup.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.All|x86 Setup.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|Win32.ActiveCfg = Debug|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|Win32.Build.0 = Debug|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|x64.ActiveCfg = Debug|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|x64.Build.0 = Debug|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|x64 Setup.ActiveCfg = Debug|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|Win32.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|Win32.Build.0 = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|x64.ActiveCfg = Release|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|x64.Build.0 = Release|x64
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|x64 Setup.ActiveCfg = Release|Win32
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB}.Release|x86 Setup.ActiveCfg = Release|Win32
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|Win32.ActiveCfg = All|Win32
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|Win32.Build.0 = All|Win32
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|x64.ActiveCfg = All|Win32
@ -3839,13 +4058,24 @@ Global
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release|x64.Build.0 = All|Win32
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release|x64 Setup.ActiveCfg = All|Win32
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release|x86 Setup.ActiveCfg = All|Win32
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.All|Win32.ActiveCfg = Release|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.All|x64.ActiveCfg = Release|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.All|x64 Setup.ActiveCfg = Release|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.All|x86 Setup.ActiveCfg = Release|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.Debug|Win32.ActiveCfg = Debug|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.Debug|x64.ActiveCfg = Debug|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.Debug|x64 Setup.ActiveCfg = Debug|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.Debug|x86 Setup.ActiveCfg = Debug|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.Release|Win32.ActiveCfg = Release|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.Release|x64.ActiveCfg = Release|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.Release|x64 Setup.ActiveCfg = Release|Any CPU
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0}.Release|x86 Setup.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{5580D60E-0F77-4716-9CD4-B8E5986FA375} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
@ -3855,6 +4085,7 @@ Global
{D5C87B19-150D-4EF3-A671-96589BD2D14A} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{64E99CCA-3C6F-4AEB-9FA3-CFAC711257BB} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
@ -3956,9 +4187,13 @@ Global
{2386B892-35F5-46CF-A0F0-10394D2FBF9B} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{ED2CA8B5-8E91-4296-A120-02BB0B674652} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5} = {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}
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{8B754330-A434-4791-97E5-1EE67060BAC0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{8F992C49-6C51-412F-B2A3-34EAB708EB65} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
@ -3967,6 +4202,7 @@ Global
{7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{834E2B2F-5483-4B80-8FE3-FE48FF76E5C0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{5BA0D5BD-330D-4EE2-B959-CAFEA04E50E0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
{692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
{2286DA73-9FC5-45BC-A508-85994C3317AB} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
{66444AEE-554C-11DD-A9F0-8C5D56D89593} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
@ -3996,6 +4232,8 @@ Global
{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}
{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{092124C9-09ED-43C7-BD6D-4AE5D6B3C547} = {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}
@ -4005,6 +4243,7 @@ Global
{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{7C22BDFF-CC09-400C-8A09-660733980028} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
{3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}
{3C90CCF0-2CDD-4A7A-ACFF-208C1E271692} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}
@ -4044,5 +4283,10 @@ Global
{0D108721-EAE8-4BAF-8102-D8960EC93647} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
{B535402E-38D2-4D54-8360-423ACBD17192} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
{245603E3-F580-41A5-9632-B25FE3372CBF} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
{C303D2FC-FF97-49B8-9DDD-467B4C9A0B16} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
{8484C90D-1561-402F-A91D-2DB10F8C5171} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
{9C4961D2-5DDB-40C7-9BE8-CA918DC4E782} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
EndGlobalSection
EndGlobal

88
Freeswitch.2012.sln.bat Normal file
View File

@ -0,0 +1,88 @@
@REM this script builds freeswitch using VS2012
@REM only one platform/configuration will be built
@REM runs (probably only) from the commandline
@REM usage: Freeswitch.2012.sln [[[.*]ebug] [[.*]elease] [[.*]64] [[.*]32]]
@REM e.g. Freeswitch.2012.sln Debug x64
@REM Freeswitch.2012.sln x64
@REM Freeswitch.2012.sln Debug
@REM Freeswitch.2012.sln
@setlocal
@echo on
@REM default build
@REM change these variables if you want to build differently by default
@set configuration=Release
@set platform=Win32
@REM if commandline parameters contain "ebug" and/or "64 and/or 32"
@REM set the configuration/platform to Debug and/or x64 and/or 32
@if "%1"=="" (
@goto :paramsset
)
@set params=%*
@set xparams=x%params: =%
@if not y%xparams:ebug=%==y%xparams% (
set configuration=Debug
)
@if not x%xparams:64=%==x%xparams% (
set platform=x64
)
@if not x%xparams:32=%==x%xparams% (
set platform=Win32
)
@if not y%xparams:elease=%==y%xparams% (
set configuration=Debug
)
:paramsset
@REM use all processors minus 1 when building
@REM hmm, this doesn't seem to work as I expected as all my procs are used during the build
@set procs=%NUMBER_OF_PROCESSORS%
@set /a procs -= 1
@REM check and set VS2012 environment
@REM vcvars32.bat calls exit and will also exit whilie running this bat file ...
@REM so you have to run it again if the VS2012 env is not yet set
@if "%VS110COMNTOOLS%"=="" (
goto :error_no_VS110COMNTOOLSDIR
)
@if "%VSINSTALLDIR%"=="" (
goto :setvcvars
)
:build
msbuild Freeswitch.2012.sln /m:%procs% /verbosity:normal /property:Configuration=%configuration% /property:Platform=%platform% /fl /flp:logfile=vs2012%platform%%configuration%.log;verbosity=normal
@goto :end
@REM -----------------------------------------------------------------------
:setvcvars
@endlocal
@echo Now setting Visual Studio 2012 Environment
@call "%VS110COMNTOOLS%vsvars32"
@REM in order to prevent running vsvars32 multiple times and at the same time not
@REM cluttering up the environment variables proc/configuration/platform
@REM it is necessary to start the script again
@echo Run the script %0 again (and/or open a command prompt)
@goto :end
:error_no_VS110COMNTOOLSDIR
@echo ERROR: Cannot determine the location of the VS2012 Common Tools folder.
@echo ERROR: Note this script will not work in a git bash environment
@goto :end
:end
@pause
@REM ------ terminate :end with LF otherwise the label is not recognized by the command processor -----

View File

@ -3,9 +3,17 @@ SUBDIRS = . src
AUTOMAKE_OPTIONS = foreign
NAME = freeswitch
AM_LIBAPR_CFLAGS := $(shell ./libs/apr/apr-1-config --cflags)
AM_LIBAPR_CPPFLAGS := $(shell ./libs/apr/apr-1-config --cppflags --includes)
AM_LIBAPR_LDFLAGS := $(shell ./libs/apr/apr-1-config --ldflags)
AM_LIBAPR_LIBS := $(subst $(switch_srcdir)/,,$(shell ./libs/apr/apr-1-config \--libs))
AM_LIBAPU_CPPFLAGS := $(shell ./libs/apr-util/apu-1-config --includes)
AM_LIBAPU_LDFLAGS := $(shell ./libs/apr-util/apu-1-config --ldflags)
AM_LIBAPU_LIBS := $(subst $(switch_srcdir)/,,$(shell ./libs/apr-util/apu-1-config \--libs))
AM_CFLAGS = $(SWITCH_AM_CFLAGS) $(SWITCH_ANSI_CFLAGS)
AM_CPPFLAGS = $(SWITCH_AM_CXXFLAGS) -Ilibs/sofia-sip/libsofia-sip-ua/sdp -Ilibs/sofia-sip/libsofia-sip-ua/su
AM_LDFLAGS = $(SWITCH_AM_LDFLAGS)
AM_LDFLAGS = $(SWITCH_AM_LDFLAGS) $(AM_LIBAPR_LDFLAGS) $(AM_LIBAPU_LDFLAGS)
DEFAULT_SOUNDS=en-us-callie-8000
@ -101,8 +109,8 @@ $(RECURSIVE_TARGETS): freeswitch
exit 1; \
fi ;
CORE_CFLAGS = `$(switch_builddir)/libs/apr/apr-1-config --cflags --cppflags --includes`
CORE_CFLAGS += `$(switch_builddir)/libs/apr-util/apu-1-config --includes`
CORE_CFLAGS = $(AM_LIBAPR_CFLAGS) $(AM_LIBAPR_CPPFLAGS)
CORE_CFLAGS += $(AM_LIBAPU_CPPFLAGS)
CORE_CFLAGS += -I$(switch_srcdir)/libs/libtpl-1.5/src
CORE_CFLAGS += -I$(switch_srcdir)/libs/stfu
CORE_CFLAGS += -I$(switch_builddir)/libs/sqlite
@ -112,8 +120,9 @@ 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-4.0.2/libtiff
APR_LIBS = $(AM_LIBAPU_LIBS) $(AM_LIBAPR_LIBS)
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
CORE_LIBS += libs/sqlite/libsqlite3.la libs/pcre/libpcre.la libs/speex/libspeex/libspeexdsp.la libs/speex/libspeex/libspeex.la
if ENABLE_SRTP
CORE_CFLAGS += -DENABLE_SRTP
@ -147,7 +156,7 @@ endif
lib_LTLIBRARIES = libfreeswitch.la
libfreeswitch_la_CFLAGS = $(CORE_CFLAGS) $(AM_CFLAGS)
libfreeswitch_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS) $(PLATFORM_CORE_LDFLAGS)
libfreeswitch_la_LIBADD = $(CORE_LIBS) $(PLATFORM_CORE_LIBS)
libfreeswitch_la_LIBADD = $(CORE_LIBS) $(APR_LIBS) $(PLATFORM_CORE_LIBS)
libfreeswitch_la_DEPENDENCIES = $(BUILT_SOURCES)
if HAVE_ODBC
@ -202,6 +211,7 @@ library_include_HEADERS = \
src/include/switch_xml.h \
src/include/switch_xml_config.h \
src/include/switch_cpp.h \
src/include/switch_curl.h \
src/include/switch_json.h \
libs/stfu/stfu.h \
libs/libteletone/src/libteletone_detect.h \
@ -242,6 +252,7 @@ libfreeswitch_la_SOURCES = \
src/switch_core_rwlock.c \
src/switch_core_port_allocator.c \
src/switch_core.c \
src/switch_version.c \
src/switch_core_media.c \
src/switch_sdp.c \
src/switch_scheduler.c \
@ -272,6 +283,7 @@ libfreeswitch_la_SOURCES = \
src/switch_limit.c \
src/g711.c \
src/switch_pcm.c \
src/switch_speex.c \
src/switch_profile.c \
src/switch_json.c \
src/switch_curl.c \
@ -298,8 +310,6 @@ if ENABLE_CPP
libfreeswitch_la_SOURCES += src/switch_cpp.cpp
endif
$(top_builddir)/libfreeswitch_la-switch_console.lo: src/include/switch_version.h
$(libfreeswitch_la_SOURCES): $(CORE_LIBS) $(switch_builddir)/quiet_libtool $(switch_builddir)/modules.conf
src/include/switch_swigable_cpp.h: $(switch_srcdir)/src/include/switch_cpp.h
@ -334,7 +344,7 @@ endif
fs_encode_SOURCES = src/fs_encode.c
fs_encode_CFLAGS = $(AM_CFLAGS)
fs_encode_LDFLAGS = $(AM_LDFLAGS)
fs_encode_LDADD = libfreeswitch.la $(CORE_LIBS)
fs_encode_LDADD = libfreeswitch.la $(CORE_LIBS) $(APR_LIBS)
if HAVE_ODBC
fs_encode_LDADD += $(ODBC_LIB_FLAGS)
@ -347,7 +357,7 @@ endif
tone2wav_SOURCES = src/tone2wav.c
tone2wav_CFLAGS = $(AM_CFLAGS)
tone2wav_LDFLAGS = $(AM_LDFLAGS)
tone2wav_LDADD = libfreeswitch.la $(CORE_LIBS)
tone2wav_LDADD = libfreeswitch.la $(CORE_LIBS) $(APR_LIBS)
if HAVE_ODBC
tone2wav_LDADD += $(ODBC_LIB_FLAGS)
@ -429,6 +439,8 @@ $(switch_builddir)/quiet_libtool: $(switch_builddir)/libtool
build/print_git_revision: build/print_git_revision.c
$(CC) -o $@ $<
src/switch_version.lo: src/include/switch_version.h
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 \
@ -469,18 +481,17 @@ libs/apr/Makefile: libs/apr/Makefile.in libs/apr/config.status libs/apr libs/apr
@$(TOUCH_TARGET)
libs/apr/libapr-1.la: libs/apr/Makefile libs/apr/.update
touch src/include/switch.h
@cd libs/apr && $(MAKE)
@$(TOUCH_TARGET)
@if [ $(MAKELEVEL) = 0 -o -z "`echo "$(MAKEARGS)" | grep "j"`" ] ; then touch src/include/switch.h; cd libs/apr && $(MAKE) $(MFLAGS) && touch libapr-1.la; fi
libs/apr-util/libaprutil-1.la: libs/apr-util libs/apr-util/.update libs/apr/libapr-1.la
touch src/include/switch.h
@cd libs/apr-util && $(MAKE)
@$(TOUCH_TARGET)
libs/apr-util/libaprutil-1.la: libs/apr/libapr-1.la libs/apr-util libs/apr-util/.update
@if [ $(MAKELEVEL) = 0 -o -z "`echo "$(MAKEARGS)" | grep "j"`" ] ; then touch src/include/switch.h; cd libs/apr-util && $(MAKE) $(MFLAGS) && touch libaprutil-1.la; fi
libs/speex/libspeex/libspeex.la:
@echo
libs/speex/libspeex/libspeexdsp.la: libs/speex/.update
touch src/include/switch.h
@cd libs/speex && $(MAKE)
@if [ $(MAKELEVEL) = 0 -o -z "`echo "$(MAKEARGS)" | grep "j"`" ] ; then cd libs/speex && $(MAKE) $(MFLAGS); fi
@$(TOUCH_TARGET)
libs/sqlite/libsqlite3.la: libs/sqlite libs/sqlite/Makefile libs/sqlite/.update
@ -595,7 +606,7 @@ nodepends: .nodepends
yesdepends:
rm .nodepends
core: $(switch_builddir)/modules.conf $(CORE_LIBS)
core: $(switch_builddir)/modules.conf src/include/switch_version.h $(CORE_LIBS)
$(MAKE) $(AM_MAKEFLAGS) libfreeswitch.la
distclean: clean
@ -641,13 +652,14 @@ pristine:
git clean -fdx
git reset --hard
update-clean: clean libs/openzap/Makefile python-reconf
update-clean: clean libs/openzap/Makefile python-reconf lua-reconf spandsp-reconf srtp-reconf
cd libs/sofia-sip && $(MAKE) clean
cd libs/openzap && $(MAKE) clean
cd libs/portaudio && $(MAKE) clean
cd libs/speex && $(MAKE) clean
cd libs/esl && $(MAKE) clean
cd libs/sqlite && $(MAKE) clean
cd libs/srtp && $(MAKE) clean
swigall:
@echo reswigging all
@ -677,6 +689,10 @@ pa-reconf:
cd libs/portaudio && sh ./configure.gnu
$(MAKE) mod_portaudio-clean
srtp-reconf:
cd libs/srtp && $(MAKE) clean
cd libs/srtp && sh ./configure.gnu
oz-reconf:
cd libs/openzap && $(MAKE) clean
cd libs/openzap && autoreconf -fi
@ -700,6 +716,10 @@ sofia-reconf:
cd libs/sofia-sip && $(MAKE) clean
cd libs/sofia-sip && ./configure --prefix=$(prefix) --with-pic --with-glib=no --disable-shared
lua-reconf:
cd src/mod/languages/mod_lua/lua && make clean
cd src/mod/languages/mod_lua && make clean
cluecon:
@clear
@echo Thank you for updating. This is going to take a while so relax.
@ -761,6 +781,7 @@ eclean: clean
rm -f *.tar *.tgz *.gz
megaclean: eclean modclean
rm -f `find ./libs -name \*.o`
rm -f `find ./libs -name \*.la`
libclean:

View File

@ -70,7 +70,7 @@ install:
@echo " + +"
@echo " +-------------------------------------------------+"
@cat ../cluecon2.tmpl
@sh modcheck.sh $(modulesdir)
.PHONY: check dvi html info install-data \
install-dvi install-exec install-html install-info install-pdf install-ps installcheck installdirs pdf \

44
build/build_patch.sh Executable file
View File

@ -0,0 +1,44 @@
#!/bin/bash
set -e -o pipefail
usage () {
printf "usage: %s [-u <remote>] [-r <ref>] [<patch-urls> ...]\n" "$0" >&2
}
err () {
printf "error: %s\n" "$1" >&2
exit 1
}
remote=origin
ref=origin/master
dopull=true
while getopts "hnr:u:" o; do
case "$o" in
h) usage; exit 0 ;;
n) dopull=false ;;
r) ref="$OPTARG" ;;
u) remote="$OPTARG" ;;
esac
done
shift $(($OPTIND-1))
if ! which git >/dev/null; then
printf "error: please install git\n">&2
exit 1; fi
if ! which wget >/dev/null; then
printf "error: please install wget\n">&2
exit 1; fi
now=$(date -u +%Y%m%dT%H%M%SZ)
git clean -fdx || err "failed"
git reset --hard "$ref" \
|| err "reset failed"
$dopull && (git pull "$remote" || err "failed to pull")
for patch in "$@"; do
wget -O - "$patch" | git am
done
printf '# Building FreeSWITCH %s\n' "$(git describe HEAD)" \
> ${now}-fsbuild.log
(./bootstrap.sh && ./configure -C && make VERBOSE=1) 2>&1 \
| tee -a ${now}-fsbuild.log

View File

@ -1,6 +1,6 @@
################################################################################
# ignore_helper.pl
# Copyright (c) 2007-2012 Anthony Minessale II <anthm@freeswitch.org>
# Copyright (c) 2007-2014 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

44
build/modcheck.sh Normal file
View File

@ -0,0 +1,44 @@
#!/bin/sh
PATH=$PATH:/bin:/usr/bin
mods=$1
if [ -z $mods ] ; then
mods="/usr/local/freeswitch/mod"
fi
echo "Checking module integrity in target [$mods]"
echo
here=`pwd`
cd $mods
files=`ls *.dylib *.so 2>/dev/null`
cd $here
alert() {
on=''
off=''
echo -n $on
echo WARNING: $1
echo -n $off
}
for i in $files ; do
mod=${i%%.*}
infile=`grep ^.*$mod\$ ../modules.conf`
commented=`grep ^\#.*$mod\$ ../modules.conf`
if [ -z "$infile" ] ; then
alert "installed module: $i was not installed by this build. It is not present in modules.conf."
elif [ -n "$commented" ] ; then
alert "installed module: $i was not installed by this build. It is commented from modules.conf. [$commented]"
fi
done
echo

View File

@ -27,7 +27,6 @@ INSTALL=@INSTALL@
GETLIB=@GETLIB@
LIBTOOL=@LIBTOOL@
AR=@AR@
LIBGNUTLS_LIBS=@LIBGNUTLS_LIBS@
LTINSTALL=$(LIBTOOL) --quiet --mode=install $(INSTALL)
LTUNINSTALL=$(LIBTOOL) --mode=uninstall rm -f
CCLD = $(CC)

View File

@ -72,7 +72,6 @@ codecs/mod_vp8
#codecs/mod_sangoma_codec
#codecs/mod_silk
#codecs/mod_siren
codecs/mod_speex
#codecs/mod_theora
dialplans/mod_dialplan_asterisk
#dialplans/mod_dialplan_directory
@ -118,7 +117,8 @@ languages/mod_lua
#languages/mod_managed
#languages/mod_perl
#languages/mod_python
languages/mod_spidermonkey
#languages/mod_spidermonkey
languages/mod_v8
#languages/mod_yaml
loggers/mod_console
loggers/mod_logfile
@ -139,6 +139,7 @@ say/mod_say_en
#say/mod_say_ru
#say/mod_say_th
#say/mod_say_zh
#say/mod_say_sv
#timers/mod_posix_timer
#timers/mod_timerfd
xml_int/mod_xml_cdr

View File

@ -3,6 +3,11 @@ make swigclean
make lua_wrap
cd ../../../..
cd src/mod/legacy/languages/mod_lua
make swigclean
make lua_wrap
cd ../../../../..
cd src/mod/languages/mod_perl
make swigclean
make mod_perl_wrap.cpp

View File

@ -0,0 +1,5 @@
<configuration name="v8.conf" description="Google V8 JavaScript Plug-Ins">
<modules>
<!-- <load module="mod_v8_skel"/> -->
</modules>
</configuration>

View File

@ -62,7 +62,6 @@
<load module="mod_g729"/>
<load module="mod_amr"/>
<!--<load module="mod_ilbc"/>-->
<load module="mod_speex"/>
<load module="mod_h26x"/>
<load module="mod_vp8"/>
<!--<load module="mod_siren"/>-->
@ -79,7 +78,8 @@
<!-- Timers -->
<!-- Languages -->
<load module="mod_spidermonkey"/>
<!-- <load module="mod_spidermonkey"/> -->
<load module="mod_v8"/>
<!-- <load module="mod_perl"/> -->
<!-- <load module="mod_python"/> -->
<!-- <load module="mod_java"/> -->
@ -95,5 +95,6 @@
<!-- Say -->
<load module="mod_say_en"/>
<!-- <load module="mod_say_zh"/> -->
<!-- <load module="mod_say_sv"/> -->
</modules>
</configuration>

View File

@ -0,0 +1,5 @@
<configuration name="v8.conf" description="Google V8 JavaScript Plug-Ins">
<modules>
<!-- <load module="mod_v8_skel"/> -->
</modules>
</configuration>

View File

@ -207,6 +207,7 @@
<param name="energy-level" value="200"/>
<param name="moh-sound" value="silence"/>
<param name="comfort-noise" value="true"/>
<param name="min-required-recording-participants" value="1"/>
</profile>
</profiles>

View File

@ -1,10 +0,0 @@
<configuration name="distributor.conf" description="Distributor Configuration">
<lists>
<!-- every 10 calls to test you will get foo1 once and foo2 9 times...yes NINE TIMES! -->
<!-- this is not the same as 100 with 10 and 90 that would do foo1 10 times in a row then foo2 90 times in a row -->
<list name="test" total-weight="10">
<node name="foo1" weight="1"/>
<node name="foo2" weight="9"/>
</list>
</lists>
</configuration>

View File

@ -1,6 +0,0 @@
<configuration name="hash.conf" description="Hash Configuration">
<remotes>
<!-- List of hosts from where to pull usage data -->
<!-- <remote name="Test1" host="10.0.0.10" port="8021" password="ClueCon" interval="1000" /> -->
</remotes>
</configuration>

View File

@ -1,30 +0,0 @@
<configuration name="lua.conf" description="LUA Configuration">
<settings>
<!--
Specify local directories that will be searched for LUA modules
These entries will be pre-pended to the LUA_CPATH environment variable
-->
<!-- <param name="module-directory" value="/usr/lib/lua/5.1/?.so"/> -->
<!-- <param name="module-directory" value="/usr/local/lib/lua/5.1/?.so"/> -->
<!--
Specify local directories that will be searched for LUA scripts
These entries will be pre-pended to the LUA_PATH environment variable
-->
<!-- <param name="script-directory" value="/usr/local/lua/?.lua"/> -->
<!-- <param name="script-directory" value="$${base_dir}/scripts/?.lua"/> -->
<!--<param name="xml-handler-script" value="/dp.lua"/>-->
<!--<param name="xml-handler-bindings" value="dialplan"/>-->
<!--
The following options identifies a lua script that is launched
at startup and may live forever in the background.
You can define multiple lines, one for each script you
need to run.
-->
<!--<param name="startup-script" value="startup_script_1.lua"/>-->
<!--<param name="startup-script" value="startup_script_2.lua"/>-->
</settings>
</configuration>

View File

@ -1,6 +0,0 @@
<configuration name="memcache.conf" description="memcache Configuration">
<settings>
<!-- comma sep list of servers: eg: localhost,otherhost:port,anotherone -->
<param name="memcache-servers" value="localhost"/>
</settings>
</configuration>

View File

@ -18,8 +18,6 @@
<load module="mod_conference"/>
<load module="mod_dptools"/>
<load module="mod_expr"/>
<load module="mod_hash"/>
<!--<load module="mod_distributor"/>-->
<load module="mod_esf"/>
<load module="mod_fsv"/>
<load module="mod_http_cache"/>
@ -30,9 +28,10 @@
<!-- Codec Interfaces -->
<load module="mod_spandsp"/>
<load module="mod_celt"/>
<load module="mod_speex"/>
<load module="mod_opus"/>
<load module="mod_ilbc"/>
<load module="mod_h26x"/>
<load module="mod_vp8"/>
<!-- File Format Interfaces -->
<load module="mod_sndfile"/>
@ -45,9 +44,6 @@
<load module="mod_tone_stream"/>
<load module="mod_ssml"/>
<!-- Languages -->
<load module="mod_lua"/>
<!-- ASR /TTS -->
<load module="mod_flite"/>
<load module="mod_pocketsphinx"/>
@ -69,6 +65,7 @@
<!--load module="mod_say_ja"/-->
<!--load module="mod_say_pt"/-->
<!--load module="mod_say_th"/-->
<!--load module="mod_say_sv"/-->
</modules>
</configuration>

View File

@ -16,6 +16,72 @@
<param name="default-recognizer" value="pocketsphinx"/>
</input>
<!-- send/receivefax component params -->
<fax>
<!-- where to store incoming faxes -->
<param name="receivefax-file-prefix" value="/tmp/"/>
</fax>
<!-- Call progress analysis configuration -->
<!-- Define CPA detectors. These are sources for Rayo CPA signal events -->
<!-- Detectors must fire an event that can be translated by mod_rayo into a CPA signal event -->
<cpa>
<!-- map DTMF events to CPA -->
<detector name="core_dtmf_event">
<event class="DTMF" value-header="DTMF-Digit" duration-header="DTMF-Duration">
<signal-type value="dtmf"/>
</event>
</detector>
<!-- map mod_spandsp fax detector to the Rayo CPA events. Fires DETECTED_FAX_* event once and quits. -->
<detector name="mod_spandsp_fax_ced">
<start application="spandsp_start_fax_detect" data="event 'Event-Name=CUSTOM,Event-Subclass=DETECTED_FAX_CED' 500 ced"/>
<stop application="spandsp_stop_fax_detect" data=""/>
<event class="CUSTOM" subclass="DETECTED_FAX_CED">
<signal-type value="fax-ced"/>
</event>
</detector>
<detector name="mod_spandsp_fax_cng">
<start application="spandsp_start_fax_detect" data="event 'Event-Name=CUSTOM,Event-Subclass=DETECTED_FAX_CNG' 500"/>
<stop application="spandsp_stop_fax_detect" data=""/>
<event class="CUSTOM" subclass="DETECTED_FAX_CNG">
<signal-type value="fax-cng"/>
</event>
</detector>
<!-- map mod_spandsp call progress tone detector to Rayo CPA signal events. Fires DETECTED_TONE events until stopped. -->
<detector name="mod_spandsp_tone">
<start application="start_tone_detect" data="1"/>
<stop application="stop_tone_detect" data=""/>
<!-- map tone events to Rayo CPA signal type -->
<event class="CUSTOM" subclass="DETECTED_TONE" type-header="Detected-Tone">
<signal-type header-value="SIT" value="sit"/>
<signal-type header-value="BUSY_TONE" value="busy"/>
<signal-type header-value="REORDER_TONE" value="congestion"/>
<signal-type header-value="RING_TONE" value="ring"/>
</event>
</detector>
<!-- map mod_avmd detector to Rayo CPA beep event. Fires avmd::beep event once. -->
<detector name="mod_avmd">
<start application="avmd" data=""/>
<stop application="avmd" data="stop"/>
<event class="CUSTOM" subclass="avmd::beep">
<signal-type value="beep"/>
</event>
</detector>
<!-- Alternative beep detector using mod_vmd. Fires vmd::beep events until stopped. -->
<!--detector name="mod_vmd">
<start application="vmd" data=""/>
<stop application="vmd" data="stop"/>
<event class="CUSTOM" subclass="vmd::beep">
<signal-type value="beep"/>
</event>
</detector-->
</cpa>
<!-- XMPP server domain -->
<domain name="$${rayo_domain_name}" shared-secret="ClueCon">
<!-- use this instead if you want secure XMPP client to server connections. Put .crt and .key file in freeswitch/certs -->
@ -43,20 +109,27 @@
<dial-gateway uriprefix="sip:" dialprefix="sofia/external/" strip="0"/>
<dial-gateway uriprefix="tel:" dialprefix="sofia/gateway/outbound/" strip="4"/>
<!-- pass through user and sofia unaltered -->
<dial-gateway uriprefix="user" dialprefix="" strip=""/>
<dial-gateway uriprefix="sofia" dialprefix="" strip=""/>
<dial-gateway uriprefix="user/" dialprefix="" strip=""/>
<dial-gateway uriprefix="sofia/" dialprefix="" strip=""/>
<dial-gateway uriprefix="loopback/" dialprefix="" strip=""/>
</dial-gateways>
<!-- IQ request aliases. Used mainly for testing purposes or for controlling a rayo call via the console -->
<aliases>
<alias name="detect" target="call" args="1"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:$1:1"/></input>]]></alias>
<alias name="detect-once" target="call" args="1"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:$1:1?terminate=true"/></input>]]></alias>
<alias name="detect-tones" target="call"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:busy:1"/><grammar url="urn:xmpp:rayo:cpa:congestion:1"/><grammar url="urn:xmpp:rayo:cpa:sit:1"/></input>]]></alias>
<alias name="ping" target="external"><![CDATA[<iq type="get"><ping xmlns="urn:xmpp:ping"/></iq>]]></alias>
<alias name="dial" target="server" args="2"><![CDATA[<dial xmlns="urn:xmpp:rayo:1" from="$1" to="$2"/>]]></alias>
<alias name="answer" target="call"><![CDATA[<answer xmlns="urn:xmpp:rayo:1"/>]]></alias>
<alias name="hangup" target="call"><![CDATA[<hangup xmlns="urn:xmpp:rayo:1"/>]]></alias>
<alias name="join_mixer_duplex" target="call"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="test" direction="duplex"/>]]></alias>
<alias name="join_mixer_send" target="call"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="test" direction="send"/>]]></alias>
<alias name="join_mixer_recv" target="call"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="test" direction="recv"/>]]></alias>
<alias name="unjoin_mixer" target="call"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1" mixer-name="test"/>]]></alias>
<alias name="join" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" call-uri="xmpp:$1"/>]]></alias>
<alias name="join_mixer_duplex" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="duplex"/>]]></alias>
<alias name="join_mixer_send" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="send"/>]]></alias>
<alias name="join_mixer_recv" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="recv"/>]]></alias>
<alias name="unjoin_mixer" target="call" args="1"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1" mixer-name="$1"/>]]></alias>
<alias name="unjoin" target="call"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1"/>]]></alias>
<alias name="unjoin_call" target="call" args="1"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1" call-uri="xmpp:$1"/>]]></alias>
<alias name="stop" target="component"><![CDATA[<stop xmlns="urn:xmpp:rayo:ext:1"/>]]></alias>
<alias name="output_bad" target="call"><![CDATA[<output xmlns="urn:xmpp:rayo:output:1" repeat-time="100"></output>]]></alias>
<alias name="pause" target="output"><![CDATA[<pause xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
@ -65,6 +138,8 @@
<alias name="speed-down" target="output"><![CDATA[<speed-down xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
<alias name="volume-up" target="output"><![CDATA[<volume-up xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
<alias name="volume-down" target="output"><![CDATA[<volume-down xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
<alias name="receivefax" target="call"><![CDATA[<receivefax xmlns="urn:xmpp:rayo:fax:1"/>]]></alias>
<alias name="sendfax" target="call" args="1"><![CDATA[<sendfax xmlns="urn:xmpp:rayo:fax:1"><document xmlns="urn:xmpp:rayo:fax:1" url="$1"/></sendfax>]]></alias>
<alias name="record" target="call"><![CDATA[<record xmlns="urn:xmpp:rayo:record:1"/>]]></alias>
<alias name="record_pause" target="record"><![CDATA[<pause xmlns="urn:xmpp:rayo:record:1"/>]]></alias>
<alias name="record_resume" target="record"><![CDATA[<resume xmlns="urn:xmpp:rayo:record:1"/>]]></alias>

View File

@ -63,6 +63,7 @@
<X-NO-PRE-PROCESS cmd="include" data="lang/es/es_MX.xml"/>
<X-PRE-PROCESS cmd="include" data="lang/pt/pt_BR.xml"/>
<X-NO-PRE-PROCESS cmd="include" data="lang/pt/pt_PT.xml"/>
<X-NO-PRE-PROCESS cmd="include" data="lang/sv/*.xml"/>
</section>
</document>

7
conf/rayo/lang/sv/sv.xml Normal file
View File

@ -0,0 +1,7 @@
<include>
<language name="sv" sound-path="$${sounds_dir}/sv/se/jakob" tts-engine="" tts-voice="">
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
<!--voicemail is purely implemented with files based one that is the default. -->
</language>
</include>

View File

@ -0,0 +1,504 @@
<include><!--This line will be ignored it's here to validate the xml and is optional -->
<macro name="voicemail_enter_id">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-knappa_in_din_anknytning_foljt_av.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_enter_pass">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-knappa_in_ditt_pinnummer_foljt_av.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_fail_auth">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-felaktig_inloggning.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_hello">
<input pattern="(.*)">
<match>
<!--<action function="play-file" data="voicemail/vm-hej.wav"/> -->
</match>
</input>
</macro>
<macro name="voicemail_goodbye">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-hejda.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_abort">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-for_manga_felaktiga_forsok.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_message_count">
<!--
Pattern matching needed:
0:*
1:new
*:new
:saved
:urgent
:urgent-new
:urgent-saved
-->
<input pattern="^(0):(.*)$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="play-file" data="voicemail/vm-inga.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):new$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-nytt.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):new$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-nya.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):saved$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-sparat.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):saved$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-sparade.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):urgent$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-viktigt.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):urgent$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-viktiga.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):urgent-new$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-viktigt_nytt.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):urgent-new$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-viktiga_nya.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):urgent-saved$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-viktigt_sparat.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):urgent-saved$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-viktiga_sparade.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_menu">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
<!-- To listen to new messages -->
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_nya_meddelanden.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To listen to saved messages -->
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_sparade_meddelanden.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- For advanced options -->
<action function="play-file" data="voicemail/vm-for_avancerade_installningar.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To exit -->
<action function="play-file" data="voicemail/vm-for_att_avsluta.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
</match>
</input>
</macro>
<macro name="voicemail_config_menu">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
<!-- To record a greeting -->
<action function="play-file" data="voicemail/vm-for_att_spela_in_en_halsning.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To choose greeting -->
<action function="play-file" data="voicemail/vm-for_att_valja_utgaende_meddelande.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To record your name -->
<action function="play-file" data="voicemail/vm-for_att_spela_in_ditt_namn.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To change password -->
<action function="play-file" data="voicemail/vm-for_att_byta_losenord.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To return to main menu -->
<action function="play-file" data="voicemail/vm-for_att_lyssna_till_huvudmenyn.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_record_name">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-efter_tonen_kan_du_spela_in_ditt_namn.wav"/>
<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_record_file_check">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_spara_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_spela_in_igen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_record_urgent_check">
<input pattern="^([0-9#*]):([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-for_att_markera_detta_meddelande_viktigt.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_fortsatta.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_forward_prepend">
<input pattern="^([0-9#*]):([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-for_att_infoga_en_introduktion_till_detta_meddelande.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_skicka_detta_meddelande_nu.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_forward_message_enter_extension">
<input pattern="^([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-knappa_in_anknytningen_att_vidarebefordra_detta_meddelande_till.wav"/>
<action function="play-file" data="voicemail/vm-foljt_av.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_invalid_extension">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-det_var_en_felaktig_anknytning.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_listen_file_check">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
<match>
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_spara_meddelandet.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_radera_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande_till_din_epost.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_ringa_tillbaka_nu.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
</match>
</input>
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_spara_meddelandet.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_radera_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_ringa_tillbaka_nu.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_choose_greeting">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-valj_en_halsning_mellan_1_och_9.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_choose_greeting_fail">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-det_var_ett_felaktigt_val.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_record_greeting">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-spela_in_din_halsning_efter_tonen.wav"/>
<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_record_message">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-spela_in_ditt_meddelande_efter_tonen.wav"/>
<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_greeting_selected">
<input pattern="^(\d+)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande_nummer.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-markerad.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_play_greeting">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-personen_med_anknytning.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-not_ar_inte_tillganglig.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_say_number">
<input pattern="^(\d+)$">
<match>
<action function="say" data="$1" method="pronounced" type="items"/>
</match>
</input>
</macro>
<macro name="voicemail_say_message_number">
<input pattern="^([a-z]+):(\d+)$">
<match>
<action function="play-file" data="voicemail/vm-$1.wav"/>
<action function="play-file" data="voicemail/vm-meddelande_nummer.wav"/>
<action function="say" data="$2" method="pronounced" type="items"/>
</match>
</input>
</macro>
<macro name="voicemail_say_phone_number">
<input pattern="^(.*)$">
<match>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_say_name">
<input pattern="^(.*)$">
<match>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
<macro name="voicemail_ack">
<input pattern="^(too-small)$">
<match>
<action function="play-file" data="voicemail/vm-din_inspelning_ar_kortare_an_tillaten_langd_vanligen_forsok_igen.wav"/>
</match>
</input>
<input pattern="^(deleted)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande.wav"/>
<action function="play-file" data="voicemail/vm-raderat.wav"/>
</match>
</input>
<input pattern="^(saved)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande.wav"/>
<action function="play-file" data="voicemail/vm-sparat.wav"/>
</match>
</input>
<input pattern="^(emailed)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande.wav"/>
<action function="play-file" data="voicemail/vm-skickat_pa_epost.wav"/>
</match>
</input>
<input pattern="^(marked-urgent)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande.wav"/>
<action function="play-file" data="voicemail/vm-markerat_som_viktigt.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_say_date">
<input pattern="^(.*)$">
<match>
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
</match>
</input>
</macro>
<macro name="voicemail_disk_quota_exceeded">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-den_rostbrevladan_ar_full_vanligen_forsok_ringa_senare.wav"/>
</match>
</input>
</macro>
<macro name="valet_announce_ext">
<input pattern="^([^\:]+):(.*)$">
<match>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="valet_lot_full">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
</match>
</input>
</macro>
<macro name="valet_lot_empty">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
</match>
</input>
</macro>
</include><!--This line will be ignored it's here to validate the xml and is optional -->

View File

@ -41,7 +41,6 @@
<load module="mod_g729"/>
<load module="mod_amr"/>
<!--<load module="mod_ilbc"/>-->
<load module="mod_speex"/>
<load module="mod_h26x"/>
<load module="mod_vp8"/>
<!--<load module="mod_siren"/>-->

View File

@ -6,13 +6,8 @@
<param name="debug-presence" value="0"/>
</global_settings>
<!--
The rabbit hole goes deep. This includes all the
profiles in the sip_profiles directory that is up
one level from this directory.
-->
<profiles>
<X-PRE-PROCESS cmd="include" data="../sip_profiles/*.xml"/>
<X-PRE-PROCESS cmd="include" data="../sbc_profiles/*.xml"/>
</profiles>
</configuration>

View File

@ -9,7 +9,6 @@
will build the domains acl using this value.
-->
<?xml version="1.0" encoding="utf-8"?>
<!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
<include>
<context name="default">

View File

@ -1,4 +1,4 @@
<include>
<document type="freeswitch/xml">
<!--#comment
All comments starting with #command will be preprocessed and never sent to the xml parser
Valid instructions:
@ -25,19 +25,7 @@
<X-PRE-PROCESS cmd="include" data="dialplan/*.xml"/>
</section>
<!-- mod_dingaling is reliant on the vcard data in the "directory" section. -->
<!-- mod_sofia is reliant on the user data for authorization -->
<section name="directory" description="User Directory">
<X-PRE-PROCESS cmd="include" data="directory/*.xml"/>
</section>
<!-- phrases section (under development still) -->
<section name="phrases" description="Speech Phrase Management">
<macros>
<X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/>
</macros>
</section>
</include>
</document>

View File

@ -1,3 +1,4 @@
<include>
<!-- Preprocessor Variables
These are introduced when configuration strings must be consistent across modules.
-->
@ -150,3 +151,4 @@
<X-PRE-PROCESS cmd="set" data="external_tls_port=5081"/>
<X-PRE-PROCESS cmd="set" data="external_ssl_enable=false"/>
<X-PRE-PROCESS cmd="set" data="external_ssl_dir=$${base_dir}/conf/ssl"/>
</include>

View File

@ -86,7 +86,6 @@
<load module="mod_dptools"/>
<load module="mod_dialplan_xml"/>
<load module="mod_voipcodecs"/>
<load module="mod_speex"/>
<load module="mod_celt"/>
<load module="mod_sndfile"/>
<load module="mod_tone_stream"/>

View File

@ -2,7 +2,7 @@
<lists>
<!-- every 10 calls to test you will get foo1 once and foo2 9 times...yes NINE TIMES! -->
<!-- this is not the same as 100 with 10 and 90 that would do foo1 10 times in a row then foo2 90 times in a row -->
<list name="test" total-weight="10">
<list name="test">
<node name="foo1" weight="1"/>
<node name="foo2" weight="9"/>
</list>

View File

@ -5,5 +5,6 @@
<param name="listen-port" value="8021"/>
<param name="password" value="ClueCon"/>
<!--<param name="apply-inbound-acl" value="lan"/>-->
<!--<param name="stop-on-bind-error" value="true"/>-->
</settings>
</configuration>

View File

@ -13,8 +13,8 @@
<!-- Maximum number of log files to keep before wrapping -->
<!-- If this parameter is enabled, the log filenames will not include a date stamp -->
<!-- <param name="maximum-rotate" value="32"/> -->
<!-- Uncomment to prefix all log lines by the session's uuid -->
<!-- <param name="uuid" value="true" /> -->
<!-- Prefix all log lines by the session's uuid -->
<param name="uuid" value="true" />
</settings>
<mappings>
<!--

View File

@ -85,7 +85,6 @@
<load module="mod_g729"/>
<load module="mod_amr"/>
<!--<load module="mod_ilbc"/>-->
<load module="mod_speex"/>
<load module="mod_h26x"/>
<load module="mod_vp8"/>
<load module="mod_b64"/>
@ -109,7 +108,8 @@
<!-- <load module="mod_posix_timer"/> -->
<!-- Languages -->
<load module="mod_spidermonkey"/>
<!-- <load module="mod_spidermonkey"/> -->
<load module="mod_v8"/>
<!-- <load module="mod_perl"/> -->
<!-- <load module="mod_python"/> -->
<!-- <load module="mod_java"/> -->
@ -126,6 +126,7 @@
<load module="mod_say_en"/>
<!-- <load module="mod_say_ru"/> -->
<!-- <load module="mod_say_zh"/> -->
<!-- <load module="mod_say_sv"/> -->
<!-- Third party modules -->
<!--<load module="mod_nibblebill"/>-->

View File

@ -7,8 +7,9 @@
foo/server:port,server:port SET
-->
<param name="connection-string" value="127.0.0.1:27017"/>
<param name="min-connections" value="10"/>
<param name="max-connections" value="100"/>
<!-- Timeout in seconds. 0 means no timeout -->
<param name="socket-timeout" value="0"/>
<!--
<param name="map" value="function() { emit(this.a, 1); }"/>

View File

@ -0,0 +1,6 @@
<configuration name="opus.conf">
<settings>
<param name="use-vbr" value="1"/>
<param name="complexity" value="10"/>
</settings>
</configuration>

View File

@ -142,6 +142,9 @@
<!-- <param name="rtp-start-port" value="16384"/> -->
<!-- <param name="rtp-end-port" value="32768"/> -->
<!-- Test each port to make sure it is not in use by some other process before allocating it to RTP -->
<!-- <param name="rtp-port-usage-robustness" value="true"/> -->
<param name="rtp-enable-zrtp" value="true"/>
<!-- <param name="core-db-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'" /> -->

View File

@ -12,7 +12,7 @@
<param name="facility" value="user"/>
<param name="ident" value="freeswitch"/>
<param name="loglevel" value="warning"/>
<!-- Uncomment the following line to log uuids in syslogs (when applicable) -->
<!-- <param name="uuid" value="true"/> -->
<!-- log uuids in syslogs -->
<param name="uuid" value="true"/>
</settings>
</configuration>

View File

@ -0,0 +1,5 @@
<configuration name="v8.conf" description="Google V8 JavaScript Plug-Ins">
<modules>
<!-- <load module="mod_v8_skel"/> -->
</modules>
</configuration>

View File

@ -67,5 +67,6 @@
<X-NO-PRE-PROCESS cmd="include" data="lang/es/es_MX.xml"/>
<X-PRE-PROCESS cmd="include" data="lang/pt/pt_BR.xml"/>
<X-NO-PRE-PROCESS cmd="include" data="lang/pt/pt_PT.xml"/>
<X-NO-PRE-PROCESS cmd="include" data="lang/sv/*.xml"/>
</section>
</document>

View File

@ -0,0 +1,7 @@
<include>
<language name="sv" sound-path="$${sounds_dir}/sv/se/jakob" tts-engine="" tts-voice="">
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
<!--voicemail is purely implemented with files based one that is the default. -->
</language>
</include>

View File

@ -0,0 +1,504 @@
<include><!--This line will be ignored it's here to validate the xml and is optional -->
<macro name="voicemail_enter_id">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-knappa_in_din_anknytning_foljt_av.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_enter_pass">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-knappa_in_ditt_pinnummer_foljt_av.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_fail_auth">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-felaktig_inloggning.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_hello">
<input pattern="(.*)">
<match>
<!--<action function="play-file" data="voicemail/vm-hej.wav"/> -->
</match>
</input>
</macro>
<macro name="voicemail_goodbye">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-hejda.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_abort">
<input pattern="(.*)">
<match>
<action function="play-file" data="voicemail/vm-for_manga_felaktiga_forsok.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_message_count">
<!--
Pattern matching needed:
0:*
1:new
*:new
:saved
:urgent
:urgent-new
:urgent-saved
-->
<input pattern="^(0):(.*)$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="play-file" data="voicemail/vm-inga.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):new$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-nytt.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):new$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-nya.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):saved$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-sparat.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):saved$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-sparade.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):urgent$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-viktigt.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):urgent$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-viktiga.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):urgent-new$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-viktigt_nytt.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):urgent-new$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-viktiga_nya.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
<input pattern="^(1):urgent-saved$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items" gender="utrum"/>
<action function="play-file" data="voicemail/vm-viktigt_sparat.wav"/>
<action function="play-file" data="voicemail/vm-meddelande..wav"/>
</match>
</input>
<input pattern="^(\d+):urgent-saved$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-du_har.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-viktiga_sparade.wav"/>
<action function="play-file" data="voicemail/vm-meddelanden.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_menu">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
<!-- To listen to new messages -->
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_nya_meddelanden.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To listen to saved messages -->
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_sparade_meddelanden.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- For advanced options -->
<action function="play-file" data="voicemail/vm-for_avancerade_installningar.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To exit -->
<action function="play-file" data="voicemail/vm-for_att_avsluta.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
</match>
</input>
</macro>
<macro name="voicemail_config_menu">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
<!-- To record a greeting -->
<action function="play-file" data="voicemail/vm-for_att_spela_in_en_halsning.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To choose greeting -->
<action function="play-file" data="voicemail/vm-for_att_valja_utgaende_meddelande.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To record your name -->
<action function="play-file" data="voicemail/vm-for_att_spela_in_ditt_namn.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To change password -->
<action function="play-file" data="voicemail/vm-for_att_byta_losenord.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<!-- To return to main menu -->
<action function="play-file" data="voicemail/vm-for_att_lyssna_till_huvudmenyn.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_record_name">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-efter_tonen_kan_du_spela_in_ditt_namn.wav"/>
<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_record_file_check">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_spara_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_spela_in_igen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_record_urgent_check">
<input pattern="^([0-9#*]):([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-for_att_markera_detta_meddelande_viktigt.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_fortsatta.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_forward_prepend">
<input pattern="^([0-9#*]):([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-for_att_infoga_en_introduktion_till_detta_meddelande.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_skicka_detta_meddelande_nu.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_forward_message_enter_extension">
<input pattern="^([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-knappa_in_anknytningen_att_vidarebefordra_detta_meddelande_till.wav"/>
<action function="play-file" data="voicemail/vm-foljt_av.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_invalid_extension">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-det_var_en_felaktig_anknytning.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_listen_file_check">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
<match>
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_spara_meddelandet.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_radera_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande_till_din_epost.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_ringa_tillbaka_nu.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
</match>
</input>
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
<action function="play-file" data="voicemail/vm-for_att_lyssna_pa_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_spara_meddelandet.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_radera_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_ringa_tillbaka_nu.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(200)"/>
<action function="play-file" data="voicemail/vm-for_att_vidarebefordra_detta_meddelande.wav"/>
<action function="play-file" data="voicemail/vm-tryck.wav"/>
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_choose_greeting">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-valj_en_halsning_mellan_1_och_9.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_choose_greeting_fail">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-det_var_ett_felaktigt_val.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_record_greeting">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-spela_in_din_halsning_efter_tonen.wav"/>
<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_record_message">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-spela_in_ditt_meddelande_efter_tonen.wav"/>
<action function="play-file" data="voicemail/vm-for_att_avsluta_inspelningen.wav"/>
<action function="play-file" data="voicemail/vm-tryck_valfri_knapp_eller_sluta_prata.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_greeting_selected">
<input pattern="^(\d+)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande_nummer.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-markerad.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_play_greeting">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-personen_med_anknytning.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-not_ar_inte_tillganglig.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_say_number">
<input pattern="^(\d+)$">
<match>
<action function="say" data="$1" method="pronounced" type="items"/>
</match>
</input>
</macro>
<macro name="voicemail_say_message_number">
<input pattern="^([a-z]+):(\d+)$">
<match>
<action function="play-file" data="voicemail/vm-$1.wav"/>
<action function="play-file" data="voicemail/vm-meddelande_nummer.wav"/>
<action function="say" data="$2" method="pronounced" type="items"/>
</match>
</input>
</macro>
<macro name="voicemail_say_phone_number">
<input pattern="^(.*)$">
<match>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="voicemail_say_name">
<input pattern="^(.*)$">
<match>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
<macro name="voicemail_ack">
<input pattern="^(too-small)$">
<match>
<action function="play-file" data="voicemail/vm-din_inspelning_ar_kortare_an_tillaten_langd_vanligen_forsok_igen.wav"/>
</match>
</input>
<input pattern="^(deleted)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande.wav"/>
<action function="play-file" data="voicemail/vm-raderat.wav"/>
</match>
</input>
<input pattern="^(saved)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande.wav"/>
<action function="play-file" data="voicemail/vm-sparat.wav"/>
</match>
</input>
<input pattern="^(emailed)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande.wav"/>
<action function="play-file" data="voicemail/vm-skickat_pa_epost.wav"/>
</match>
</input>
<input pattern="^(marked-urgent)$">
<match>
<action function="play-file" data="voicemail/vm-meddelande.wav"/>
<action function="play-file" data="voicemail/vm-markerat_som_viktigt.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_say_date">
<input pattern="^(.*)$">
<match>
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
</match>
</input>
</macro>
<macro name="voicemail_disk_quota_exceeded">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="voicemail/vm-den_rostbrevladan_ar_full_vanligen_forsok_ringa_senare.wav"/>
</match>
</input>
</macro>
<macro name="valet_announce_ext">
<input pattern="^([^\:]+):(.*)$">
<match>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<macro name="valet_lot_full">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
</match>
</input>
</macro>
<macro name="valet_lot_empty">
<input pattern="^(.*)$">
<match>
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
</match>
</input>
</macro>
</include><!--This line will be ignored it's here to validate the xml and is optional -->

View File

@ -37,6 +37,7 @@
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.
@ -182,6 +183,8 @@
<!--<param name="all-reg-options-ping" value="true"/>-->
<!-- Send an OPTIONS packet to NATed registered endpoints. Can be 'true' or 'udp-only'. -->
<!--<param name="nat-options-ping" value="true"/>-->
<!--<param name="sip-options-respond-503-on-busy" value="true"/>-->
<!--<param name="sip-messages-respond-200-ok" value="true"/>-->
<!-- TLS: disabled by default, set to "true" to enable -->
<param name="tls" value="$${internal_ssl_enable}"/>
@ -204,9 +207,12 @@
<param name="tls-verify-depth" value="2"/>
<!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
<param name="tls-verify-in-subjects" value=""/>
<!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
<!-- TLS version default: tlsv1,tlsv1.1,tlsv1.2 -->
<param name="tls-version" value="$${sip_tls_version}"/>
<!-- TLS ciphers default: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH -->
<param name="tls-ciphers" value="$${sip_tls_ciphers}"/>
<!-- turn on auto-flush during bridge (skip timer sleep when the socket already has data)
(reduces delay on latent connections default true, must be disabled explicitly)-->
<!--<param name="rtp-autoflush-during-bridge" value="false"/>-->

View File

@ -270,10 +270,19 @@
<X-PRE-PROCESS cmd="set" data="default_provider_contact=5000"/>
<!--
SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls
-->
<X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1"/>
SIP and TLS settings. http://wiki.freeswitch.org/wiki/Tls
valid options: sslv2,sslv3,sslv23,tlsv1,tlsv1.1,tlsv1.2
default: tlsv1,tlsv1.1,tlsv1.2
-->
<X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1,tlsv1.1,tlsv1.2"/>
<!--
TLS cipher suite: default ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
-->
<X-PRE-PROCESS cmd="set" data="sip_tls_ciphers=ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"/>
<!-- Internal SIP Profile -->
<X-PRE-PROCESS cmd="set" data="internal_auth_calls=true"/>
<X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/>

View File

@ -1,6 +1,6 @@
From: "${voicemail_caller_id_name}" <${voicemail_caller_id_number}@${voicemail_domain}>
Date: ${RFC2822_DATE}
To: <${voicemail_email}>
To: ${voicemail_email}
Subject: Voicemail from "${voicemail_caller_id_name}" <${voicemail_caller_id_number}> ${voicemail_message_len}
X-Priority: ${voicemail_priority}
X-Mailer: FreeSWITCH

View File

@ -3,10 +3,10 @@
# Must change all of the below together
# For a release, set revision for that tagged release as well and uncomment
AC_INIT([freeswitch], [1.5.6b], bugs@freeswitch.org)
AC_INIT([freeswitch], [1.5.8b], bugs@freeswitch.org)
AC_SUBST(SWITCH_VERSION_MAJOR, [1])
AC_SUBST(SWITCH_VERSION_MINOR, [5])
AC_SUBST(SWITCH_VERSION_MICRO, [6b])
AC_SUBST(SWITCH_VERSION_MICRO, [8b])
AC_SUBST(SWITCH_VERSION_REVISION, [])
AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, [])
@ -162,8 +162,6 @@ if test "${enable_optimizer}" = "yes" ; then
AX_CC_MAXOPT
fi
AX_PATH_LIBGNUTLS()
# set defaults for use on all platforms
SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_builddir}/src/include -I${switch_srcdir}/libs/libteletone/src -I${switch_srcdir}/libs/stfu"
SWITCH_AM_CXXFLAGS="-I${switch_srcdir}/src/include -I${switch_builddir}/src/include -I${switch_srcdir}/libs/libteletone/src -I${switch_srcdir}/libs/stfu"
@ -178,7 +176,7 @@ elif test "x${ax_cv_c_compiler_vendor}" = "xclang" ; then
SOLINK="-dynamic -force-flat-namespace"
;;
*)
AC_ERROR([Please update configure.in with SOLINK values for your compiler])
SOLINK="-shared -Xlinker -x"
;;
esac
@ -402,14 +400,17 @@ AM_CONDITIONAL([ENABLE_ZRTP],[test "x$enable_zrtp" != "xno"])
AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
AC_ARG_ENABLE(core-odbc-support,
[AS_HELP_STRING([--enable-core-odbc-support], [Compile with ODBC Support])],,[enable_core_odbc_support="no"])
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]))
AC_ARG_ENABLE(core-odbc-support,
[AS_HELP_STRING([--enable-core-odbc-support], [Compile with ODBC Support (default is optional)])],,[enable_core_odbc_support="optional"])
if ! test "$enable_core_odbc_support" = "no"; then
AX_LIB_ODBC
if test "$ac_cv_found_odbc" = "yes" ; then
enable_core_odbc_support="yes"
elif test "$enable_core_odbc_support" = "yes"; then
AC_MSG_ERROR([no usable libodbc; please install unixodbc devel package or equivalent])
else
enable_core_odbc_support="no"
fi
fi
CHECK_LIBUUID
@ -424,39 +425,47 @@ AC_ARG_ENABLE(core-pgsql-pkgconfig,
if test x"$enable_core_pgsql_support" = x"yes" ; then
AC_PATH_PROG([PG_CONFIG], [pg_config], [no])
AC_PATH_PROG([PKG_CONFIG], [pkg-config], [no])
if test "$PG_CONFIG" = "no"; then
AC_MSG_RESULT([no])
AC_MSG_FAILURE([Unabled to find pg_config in PATH. Is PostgreSQL installed?])
else
if test "$PKG_CONFIG" = "no" \
|| test x"$enable_core_pgsql_pkgconfig" = x"no" \
|| ! pkg-config libpq; then
AC_MSG_CHECKING([for PostgreSQL libraries])
POSTGRESQL_CXXFLAGS="`$PG_CONFIG --cppflags` -I`$PG_CONFIG --includedir`"
POSTGRESQL_LDFLAGS="`$PG_CONFIG --ldflags|sed 's/ -Wl,--as-needed//g'` -L`$PG_CONFIG --libdir` -lpq"
POSTGRESQL_VERSION=`$PG_CONFIG --version | sed -e 's#PostgreSQL ##'`
POSTGRESQL_MAJOR_VERSION=`$PG_CONFIG --version | sed -e 's/devel//' | sed -re 's#PostgreSQL ([0-9]+).[0-9]+.?[0-9]+?#\1#'`
POSTGRESQL_MINOR_VERSION=`$PG_CONFIG --version | sed -e 's/devel//' | sed -re 's#PostgreSQL [0-9]+.([0-9]+).?[0-9]+?#\1#'`
POSTGRESQL_PATCH_VERSION=`$PG_CONFIG --version | sed -e 's/devel//' | sed -re 's#PostgreSQL [0-9]+.[0-9]+.?([0-9]+)?#\1#'`
if test "$PG_CONFIG" != "no"; then
AC_MSG_CHECKING([for PostgreSQL libraries via pg_config])
POSTGRESQL_CFLAGS="-I`$PG_CONFIG --includedir`"
POSTGRESQL_LIBDIR="-L`$PG_CONFIG --libdir`"
POSTGRESQL_LDFLAGS="-L`$PG_CONFIG --libdir` -lpq"
POSTGRESQL_VERSION=`$PG_CONFIG --version | sed -e 's#PostgreSQL ##'`
POSTGRESQL_MAJOR_VERSION=`$PG_CONFIG --version | sed -e 's/devel//' | sed -re 's#PostgreSQL ([0-9]+).[0-9]+.?[0-9]+?#\1#'`
POSTGRESQL_MINOR_VERSION=`$PG_CONFIG --version | sed -e 's/devel//' | sed -re 's#PostgreSQL [0-9]+.([0-9]+).?[0-9]+?#\1#'`
POSTGRESQL_PATCH_VERSION=`$PG_CONFIG --version | sed -e 's/devel//' | sed -re 's#PostgreSQL [0-9]+.[0-9]+.?([0-9]+)?#\1#'`
else
AC_MSG_ERROR([no usable pkg-config or pg_config; please install libpq devel package or equivalent])
fi
else
AC_MSG_CHECKING([for PostgreSQL libraries])
POSTGRESQL_CXXFLAGS="`$PKG_CONFIG --cflags libpq`"
AC_MSG_CHECKING([for PostgreSQL libraries via pkg_config])
POSTGRESQL_CFLAGS="`$PKG_CONFIG --cflags libpq`"
POSTGRESQL_LIBDIR="`$PKG_CONFIG libpq --libs-only-L`"
POSTGRESQL_LDFLAGS="`$PKG_CONFIG --libs libpq`"
POSTGRESQL_VERSION="`$PKG_CONFIG --modversion libpq`"
POSTGRESQL_MAJOR_VERSION="`echo $POSTGRESQL_VERSION | cut -d. -f1`"
POSTGRESQL_MINOR_VERSION="`echo $POSTGRESQL_VERSION | cut -d. -f2`"
POSTGRESQL_PATCH_VERSION="`echo $POSTGRESQL_VERSION | cut -d. -f3`"
fi
save_LIBS="$LIBS"
LIBS="$POSTGRESQL_LIBDIR $LIBS"
AC_MSG_RESULT([$POSTGRESQL_LIBDIR])
AC_DEFINE([SWITCH_HAVE_PGSQL], [1], [Define to 1 if PostgreSQL libraries are available])
AC_DEFINE_UNQUOTED([POSTGRESQL_VERSION], "${POSTGRESQL_VERSION}", [Specifies the version of PostgreSQL we are linking against])
AC_DEFINE_UNQUOTED([POSTGRESQL_MAJOR_VERSION], ${POSTGRESQL_MAJOR_VERSION}, [Specifies the version of PostgreSQL we are linking against])
AC_DEFINE_UNQUOTED([POSTGRESQL_MINOR_VERSION], ${POSTGRESQL_MINOR_VERSION}, [Specifies the version of PostgreSQL we are linking against])
AC_DEFINE_UNQUOTED([POSTGRESQL_PATCH_VERSION], ${POSTGRESQL_PATCH_VERSION}, [Specifies the version of PostgreSQL we are linking against])
AC_CHECK_LIB([pq], [PQgetvalue],, AC_MSG_ERROR([no usable libpq; please install PostgreSQL devel package or equivalent]))
AC_MSG_RESULT([yes])
SWITCH_AM_CXXFLAGS="$POSTGRESQL_CXXFLAGS $SWITCH_AM_CXXFLAGS"
SWITCH_AM_CXXFLAGS="$POSTGRESQL_CFLAGS $SWITCH_AM_CXXFLAGS"
SWITCH_AM_LDFLAGS="$POSTGRESQL_LDFLAGS $SWITCH_AM_LDFLAGS"
fi
LIBS="$save_LIBS"
fi
AC_ARG_ENABLE(deprecated-core-db-events,
@ -470,10 +479,81 @@ AC_ARG_ENABLE(timerfd-wrapper,
[AC_HELP_STRING([--enable-timerfd-wrapper],[timerfd is in the kernel but not in your libc])],[enable_timer_fd_wrapper="$enableval"],[enable_timer_fd_wrapper="no"])
AM_CONDITIONAL([ENABLE_TIMERFD_WRAPPER],[test "x$enable_timer_fd_wrapper" != "xno"])
ESL_LDFLAGS=
PLATFORM_CORE_LDFLAGS=
PLATFORM_CORE_LIBS=
# tweak platform specific flags
case "$host" in
*darwin12.*|*darwin11.*)
APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
APR_ADDTO(CFLAGS, -pipe -no-cpp-precomp -Wno-deprecated-declarations -I/usr/local/opt/openssl/include)
APR_ADDTO(LDFLAGS, -pipe -bind_at_load -L/usr/local/opt/openssl/lib)
APR_ADDTO(CXXFLAGS, -pipe)
APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
if test "x$enable_core_odbc_support" != "xno"; then
APR_ADDTO([PLATFORM_CORE_LDFLAGS], [--framework CoreFoundation])
fi
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl])
;;
*darwin10.*)
APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
APR_ADDTO(CFLAGS, -pipe -no-cpp-precomp -I/usr/local/opt/openssl/include)
APR_ADDTO(LDFLAGS, -pipe -bind_at_load -L/usr/local/opt/openssl/lib)
APR_ADDTO(CXXFLAGS, -pipe)
APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
if test "x$enable_core_odbc_support" != "xno"; then
APR_ADDTO([PLATFORM_CORE_LDFLAGS], [--framework CoreFoundation])
fi
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl])
;;
*darwin*)
APR_ADDTO(CFLAGS, -I/usr/local/opt/openssl/include)
APR_ADDTO(LDFLAGS, -L/usr/local/opt/openssl/lib)
APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
if test "x$enable_core_odbc_support" != "xno"; then
APR_ADDTO([PLATFORM_CORE_LDFLAGS], [--framework CoreFoundation])
fi
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl])
;;
*-solaris2*)
APR_ADDTO(SWITCH_AM_CFLAGS, -DPATH_MAX=2048 -D__EXTENSIONS__)
APR_ADDTO(SWITCH_AM_LDFLAGS, -lsendfile -lresolv -lsocket -lnsl -luuid)
APR_ADDTO(ESL_LDFLAGS, -lnsl -lsocket)
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl -lcrypt -lrt -lsendfile -lresolv -lsocket -lnsl -luuid])
;;
*dragonfly*)
APR_ADDTO(CFLAGS, -I/usr/local/include)
APR_ADDTO(LDFLAGS, -L/usr/local/lib)
APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
;;
*openbsd*)
APR_ADDTO(CFLAGS, -I/usr/local/include)
APR_ADDTO(LDFLAGS, -L/usr/local/lib)
APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
;;
*netbsd*)
APR_ADDTO(CFLAGS, -I/usr/pkg/include)
APR_ADDTO(LDFLAGS, -L/usr/pkg/lib)
APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/pkg/include)
;;
*bsd*)
APR_ADDTO(CFLAGS, -I/usr/local/include)
APR_ADDTO(LDFLAGS, -L/usr/local/lib)
APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
APR_ADDTO([PLATFORM_CORE_LIBS], [-lcrypt -lrt])
;;
*linux*)
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl -lcrypt -lrt])
;;
esac
APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99)
AC_CHECK_LIB(z, inflateReset, have_libz=yes, AC_MSG_ERROR([no usable zlib; please install zlib devel package or equivalent]))
if test "x$have_libz" = "xyes" ; then
APR_ADDTO(SWITCH_AM_LDFLAGS, -lz)
APR_ADDTO([PLATFORM_CORE_LIBS], [-lz])
fi
AC_CHECK_LIB(jpeg, jpeg_std_error,, AC_MSG_ERROR([no usable libjpeg; please install libjpeg devel package or equivalent]))
@ -495,58 +575,6 @@ if test "x$have_libresolv" = "xyes" ; then
APR_ADDTO(SWITCH_AM_LDFLAGS, -lresolv)
fi
ESL_LDFLAGS=
PLATFORM_CORE_LDFLAGS=
PLATFORM_CORE_LIBS=
# tweak platform specific flags
case "$host" in
*darwin12.*|*darwin11.*)
APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
APR_ADDTO(CFLAGS, -pipe -no-cpp-precomp -Wno-deprecated-declarations)
APR_ADDTO(LDFLAGS, -pipe -bind_at_load)
APR_ADDTO(CXXFLAGS, -pipe)
APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
if test "x$enable_core_odbc_support" != "xno"; then
APR_ADDTO([PLATFORM_CORE_LDFLAGS], [--framework CoreFoundation])
fi
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl])
;;
*darwin10.*)
APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
APR_ADDTO(CFLAGS, -pipe -no-cpp-precomp)
APR_ADDTO(LDFLAGS, -pipe -bind_at_load)
APR_ADDTO(CXXFLAGS, -pipe)
APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
if test "x$enable_core_odbc_support" != "xno"; then
APR_ADDTO([PLATFORM_CORE_LDFLAGS], [--framework CoreFoundation])
fi
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl])
;;
*darwin*)
APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
if test "x$enable_core_odbc_support" != "xno"; then
APR_ADDTO([PLATFORM_CORE_LDFLAGS], [--framework CoreFoundation])
fi
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl])
;;
*-solaris2*)
APR_ADDTO(SWITCH_AM_CFLAGS, -DPATH_MAX=2048 -D__EXTENSIONS__)
APR_ADDTO(SWITCH_AM_LDFLAGS, -lsendfile -lresolv -lsocket -lnsl -luuid)
APR_ADDTO(ESL_LDFLAGS, -lnsl -lsocket)
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl -lcrypt -lrt -lsendfile -lresolv -lsocket -lnsl -luuid])
;;
*bsd*)
APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
APR_ADDTO([PLATFORM_CORE_LIBS], [-lcrypt -lrt])
;;
*linux*)
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl -lcrypt -lrt])
;;
esac
APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99)
AC_SUBST(SWITCH_AM_CFLAGS)
AC_SUBST(SWITCH_ANSI_CFLAGS)
AC_SUBST(SWITCH_AM_CXXFLAGS)
@ -811,6 +839,8 @@ elif test "$ac_cv_sizeof_long" = "8"; then
int64_value="long"
long_value=long
case "$host" in
*pc-solaris2*)
;;
*-solaris2*|*apple-darwin*|*-openbsd*)
if test "$ac_cv_sizeof_long_long" = "8"; then
int64_t_fmt='#define SWITCH_INT64_T_FMT "lld"'
@ -1005,14 +1035,18 @@ SAC_OPENSSL
if test x$HAVE_OPENSSL = x1; then
openssl_CFLAGS="$openssl_CFLAGS -DHAVE_OPENSSL";
APR_ADDTO(SWITCH_AM_CFLAGS, -DHAVE_OPENSSL)
AC_CHECK_LIB(ssl, SSL_CTX_set_tlsext_use_srtp, AC_DEFINE_UNQUOTED(HAVE_OPENSSL_DTLS_SRTP, 1, HAVE_OPENSSL_DTLS_SRTP))
AC_CHECK_LIB(ssl, DTLSv1_method, AC_DEFINE_UNQUOTED(HAVE_OPENSSL_DTLS, 1, HAVE_OPENSSL_DTLS), AC_MSG_WARN([OpenSSL version < 1.0.1e you might want to upgrade]))
AC_CHECK_LIB(ssl, SSL_CTX_set_tlsext_use_srtp, AC_DEFINE_UNQUOTED(HAVE_OPENSSL_DTLS_SRTP, 1, HAVE_OPENSSL_DTLS_SRTP), AC_MSG_ERROR([OpenSSL >= 1.0.1e and associaed developement headers required]))
AC_CHECK_LIB(ssl, DTLSv1_method, AC_DEFINE_UNQUOTED(HAVE_OPENSSL_DTLS, 1, HAVE_OPENSSL_DTLS), AC_MSG_ERROR([OpenSSL >= 1.0.1e and associaed developement headers required]))
else
AC_MSG_ERROR([OpenSSL and associaed developement headers required])
AC_MSG_ERROR([OpenSSL >= 1.0.1e and associaed developement headers required])
fi
AX_CHECK_JAVA
# Option to enable static linking of Google's V8 inside mod_v8
AC_ARG_ENABLE(static-v8,
[AS_HELP_STRING([--enable-static-v8], [Statically link V8 into mod_v8])], [enable_static_v8="$enableval"], [enable_static_v8="no"])
AM_CONDITIONAL([ENABLE_STATIC_V8],[test "x$enable_static_v8" != "xno"])
AM_CONDITIONAL([HAVE_ODBC],[test "x$enable_core_odbc_support" != "xno"])
AM_CONDITIONAL([HAVE_LIBEDIT],[test "x$enable_core_libedit_support" != "xno"])
@ -1159,8 +1193,10 @@ AC_CONFIG_FILES([Makefile
src/mod/asr_tts/mod_unimrcp/Makefile
src/mod/languages/mod_java/Makefile
src/mod/languages/mod_lua/Makefile
src/mod/legacy/languages/mod_lua/Makefile
src/mod/languages/mod_python/Makefile
src/mod/languages/mod_spidermonkey/Makefile
src/mod/languages/mod_v8/Makefile
src/mod/event_handlers/mod_erlang_event/Makefile
src/include/switch_am_config.h
build/getsounds.sh
@ -1177,6 +1213,7 @@ AC_CONFIG_FILES([Makefile
AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux])
AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin])
AM_CONDITIONAL(ISFREEBSD, [test `uname -s` = FreeBSD])
AM_CONDITIONAL(IS64BITLINUX, [test `uname -m` = x86_64])
#some vars to sub into the Makefile.am's
@ -1227,7 +1264,9 @@ AC_CONFIG_SUBDIRS([libs/pcre])
AC_CONFIG_SUBDIRS([libs/apr])
AC_CONFIG_SUBDIRS([libs/apr-util])
AC_CONFIG_SUBDIRS([libs/ilbc])
AC_CONFIG_SUBDIRS([libs/curl])
if test "$ac_cv_use_system_curl" != "yes"; then
AC_CONFIG_SUBDIRS([libs/curl])
fi
AC_CONFIG_SUBDIRS([libs/iksemel])
AC_CONFIG_SUBDIRS([libs/js/nsprpub])
AC_CONFIG_SUBDIRS([libs/js])
@ -1272,14 +1311,7 @@ echo $ECHO_N ".$ECHO_C" 1>&6
sleep 1
echo $ECHO_N ".$ECHO_C" 1>&6
sleep 1
echo $ECHO_N ".$ECHO_C" 1>&6
sleep 1
echo $ECHO_N ".$ECHO_C" 1>&6
sleep 1
echo $ECHO_N ".$ECHO_C" 1>&6
sleep 1
AC_MSG_RESULT([ See you in August. ;-)])
sleep 2
echo ""
fi

1
debian/AUTHORS vendored
View File

@ -23,4 +23,3 @@ Thanks-to: Steven Ayre <steveayre@gmail.com>
Thanks-to: William King <william.king@quentustech.com>
# for moral support and small tweaks

12
debian/README.Debian vendored
View File

@ -1,5 +1,5 @@
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
@ -18,9 +18,9 @@ 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
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>, Wed, 3 Oct 2012 02:15:32 +0000
-- Travis Cross <tc@traviscross.com>, Sun, 23 Feb 2014 17:10:49 +0000

200
debian/README.source vendored
View File

@ -1,9 +1,8 @@
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.
Introduction
------------
Because FreeSWITCH has so many modules it was necessary to create a
system to autogenerate the majority of the packaging. This in done
@ -11,6 +10,96 @@ 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.
Getting the FreeSWITCH sources
------------------------------
Everything that follows will assume that you're in the base directory
of a FreeSWITCH git repository. You can achieve this with:
aptitude update && aptitude install -y git
mkdir -p /usr/src/freeswitch
git clone git://git.freeswitch.org/freeswitch /usr/src/freeswitch/src
cd /usr/src/freeswitch/src
Ensuring you have a clean build directory
-----------------------------------------
Every time you start over, you should make sure your build directory
is perfectly clean and clear of untracked files. You can accomplish
this with:
git clean -fdx && git reset --hard origin/master
Using the packaging to do a normal build
----------------------------------------
Let's say you don't want to build the Debian packages; you just want
to build FS. You'll need certain dependencies installed on your
system to do this. And you probably want to configure FS in the same
way we do for the packaging. You can let the packaging files do this
work for you so you don't have to manually keep track of which
dependencies are required to build FS. Build as follows:
aptitude update && aptitude install -y devscripts equivs build-essential
my_release=$(awk '/deb .*\/debian/{print $3; exit}' /etc/apt/sources.list)
(cd debian && ./bootstrap.sh -c $my_release)
sed -i debian/control -e '/^#/d' && sed -i debian/control -e '/^$/N;/^\n$/D'
mk-build-deps -i
make -f debian/rules .stamp-configure && make
The debian/modules.conf 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>
Building the Debian packaging
-----------------------------
If you want actualy Debian binary or source packages to upload to your
own repository, you'll need to build them as described here. We have
some fancy automatic tools to accomplish this. The tools allow you to
start from a very bare Debian image and generate working packages.
Building in this manner is only supported on Debian sid, though it
will generate packages for all supported Debian releases. Simply run:
./debian/util.sh build-all -ibn -z9
Building only some modules
--------------------------
If you don't need all the modules to build, create a modules.conf file
outside of your source tree and pass the -f option to build-all. e.g.:
echo "applications/mod_commands" > /tmp/modules.conf
./debian/util.sh build-all -ibn -z9 -f /tmp/modules.conf
Testing a particular module under packaging
-------------------------------------------
If you need to build a small set of modules for compile testing in the
pbuilder environment, you can run:
./debian/util.sh build-all -dni -z1 -a amd64 -c sid -l "applications/mod_commands"
Getting help with debian/util.sh
--------------------------------
The debian/util.sh has many options. You can see the documentation
for these options by running:
./debian/util.sh -h
The debian/control-modules file
-------------------------------
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
@ -19,78 +108,55 @@ 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
# 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.
Building Debian packages without util.sh
----------------------------------------
The format of debian/modules.conf is:
Building the packages without util.sh is not recommended as util.sh
takes care of many non-trivial details. If needed, however, the
packages can be built:
## 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 "unstable" "Custom build."
dpkg-buildpackage -b -us -uc -Zxz -z9
git reset --hard HEAD^
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 origin/master
./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 "unstable" "Custom build."
dpkg-buildpackage -b -us -uc -Zxz -z9
git reset --hard HEAD^
To build for a stable branch, do this:
distro=sid # update as needed
stable_ver="1.2.1" # update as needed
# if you only want to build some modules, put them one per line here, e.g.:
#echo "applications/mod_commands" >> debian/modules.conf
ver="$(echo "$stable_ver" | sed -e 's/-/~/g')~n$(date +%Y%m%dT%H%M%SZ)-1~${distro}+1"
git clean -fdx && git reset --hard refs/tags/v${stable_ver}
./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 "unstable" "Custom build."
dpkg-buildpackage -b -us -uc -Zxz -z9
git reset --hard origin/master
distro=sid # update as needed
stable_ver="1.2.1" # update as needed
ver="$(echo "$stable_ver" | sed -e 's/-/~/g')~n$(date +%Y%m%dT%H%M%SZ)-1~${distro}+1"
git clean -fdx && git reset --hard refs/tags/v${stable_ver}
./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 "unstable" "Custom build."
dpkg-buildpackage -b -us -uc -Zxz -z9
git reset --hard origin/master
Alternatively, you can build using our automated tools. To build the
source packages and all supported binary packages for sid, wheezy,
squeeze on i386 and amd64, run the following as root from a clean
Debian sid 'buildd' image:
aptitude update && aptitude upgrade
aptitude install -y \
rsync git less cowbuilder ccache \
devscripts equivs build-essential
mkdir /usr/src/freeswitch
git clone git://git.freeswitch.org/freeswitch /usr/src/freeswitch/src
cd /usr/src/freeswitch/src
# if you only want to build some modules, create a modules.conf
# outside the source tree and add -f ../path/to/modules.conf to the
# command below. See ./debian/util.sh -h for further usage
# information.
./debian/util.sh build-all -bn -z9
Building the freeswitch-sounds and freeswitch-music packages
------------------------------------------------------------
The source packages for sounds and music on hold are maintained in a
separate repository. Each set of sounds has a separate version number
@ -101,7 +167,7 @@ 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
git clone https://github.com/traviscross/freeswitch-sounds.git
cd freeswitch-sounds && cat debian/README.source
-- Travis Cross <tc@traviscross.com>, Fri, 29 Mar 2013 22:07:26 +0000
-- Travis Cross <tc@traviscross.com>, Sun, 23 Feb 2014 18:08:08 +0000

260
debian/bootstrap.sh vendored
View File

@ -28,7 +28,6 @@ avoid_mods=(
endpoints/mod_opal
endpoints/mod_reference
endpoints/mod_unicall
formats/mod_shout
languages/mod_managed
languages/mod_spidermonkey
sdk/autotools
@ -36,6 +35,7 @@ avoid_mods=(
xml_int/mod_xml_radius
)
avoid_mods_sid=(
languages/mod_java
)
avoid_mods_jessie=(
)
@ -45,6 +45,29 @@ avoid_mods_squeeze=(
formats/mod_vlc
languages/mod_managed
)
manual_pkgs=(
freeswitch-all
freeswitch
libfreeswitch1
freeswitch-meta-bare
freeswitch-meta-default
freeswitch-meta-vanilla
freeswitch-meta-sorbet
freeswitch-meta-all
freeswitch-meta-codecs
freeswitch-meta-conf
freeswitch-meta-lang
freeswitch-meta-mod-say
freeswitch-all-dbg
freeswitch-dbg
libfreeswitch1-dbg
libfreeswitch-dev
freeswitch-doc
freeswitch-init
freeswitch-sysvinit
freeswitch-systemd
freeswitch-lang
)
err () {
echo "$0 error: $1" >&2
@ -60,6 +83,31 @@ xread () {
return $ret
}
intersperse () {
local sep="$1"
awk "
BEGIN {
first=1;
sep=\"${sep}\";
}"'
/.*/ {
if (first == 0) {
printf "%s%s", sep, $0;
} else {
printf "%s", $0;
}
first=0;
}
END { printf "\n"; }'
}
postfix () {
local px="$1"
awk "
BEGIN { px=\"${px}\"; }"'
/.*/ { printf "%s%s\n", $0, px; }'
}
avoid_mod_filter () {
local x="avoid_mods_$codename[@]"
local -a mods=("${avoid_mods[@]}" "${!x}")
@ -97,20 +145,20 @@ mod_filter_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
test -d $x || continue
test ! ${x##*/} = legacy || continue
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
done
}
@ -167,6 +215,60 @@ map_langs () {
done
}
map_pkgs () {
local fsx="$1"
for x in "${manual_pkgs[@]}"; do
$fsx $x
done
map_pkgs_confs () { $fsx "freeswitch-conf-${conf//_/-}"; }
map_confs map_pkgs_confs
map_pkgs_langs () { $fsx "freeswitch-lang-${lang//_/-}"; }
map_langs map_pkgs_langs
map_pkgs_mods () {
$fsx "freeswitch-${module//_/-}"
$fsx "freeswitch-${module//_/-}-dbg"; }
map_modules map_pkgs_mods
}
list_pkgs () {
list_pkgs_thunk () { printf '%s\n' "$1"; }
map_pkgs list_pkgs_thunk
}
list_freeswitch_all_pkgs () {
list_pkgs \
| grep -v '^freeswitch-all$' \
| grep -v -- '-dbg$'
}
list_freeswitch_all_provides () {
list_freeswitch_all_pkgs \
| intersperse ',\n '
}
list_freeswitch_all_replaces () {
list_freeswitch_all_pkgs \
| postfix ' (<= ${binary:Version})' \
| intersperse ',\n '
}
list_freeswitch_all_dbg_pkgs () {
list_pkgs \
| grep -v '^freeswitch-all-dbg$' \
| grep -- '-dbg$'
}
list_freeswitch_all_dbg_provides () {
list_freeswitch_all_dbg_pkgs \
| intersperse ',\n '
}
list_freeswitch_all_dbg_replaces () {
list_freeswitch_all_dbg_pkgs \
| postfix ' (<= ${binary:Version})' \
| intersperse ',\n '
}
print_source_control () {
cat <<EOF
Source: freeswitch
@ -182,6 +284,8 @@ Build-Depends:
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,
# core codecs
libogg-dev,
# configure options
libssl-dev, unixodbc-dev, libpq-dev,
libncurses5-dev, libjpeg62-dev | libjpeg8-dev,
@ -206,17 +310,9 @@ print_core_control () {
cat <<EOF
Package: freeswitch-all
Architecture: any
Provides: freeswitch, libfreeswitch1, freeswitch-doc, freeswitch-init
Replaces: freeswitch (<= \${binary:Version}),
libfreeswitch1 (<= \${binary:Version}),
freeswitch-doc (<= \${binary:Version}),
freeswitch-sysvinit (<= \${binary:Version}),
freeswitch-systemd (<= \${binary:Version})
Breaks: freeswitch (<= \${binary:Version}),
libfreeswitch1 (<= \${binary:Version}),
freeswitch-doc (<= \${binary:Version}),
freeswitch-sysvinit (<= \${binary:Version}),
freeswitch-systemd (<= \${binary:Version})
Provides: $(list_freeswitch_all_provides)
Replaces: $(list_freeswitch_all_replaces)
Conflicts: $(list_freeswitch_all_replaces)
Depends: \${shlibs:Depends}, \${perl:Depends}, \${misc:Depends},
freeswitch-music-default (>= 1.0.8),
freeswitch-sounds-en-us-callie (>= 1.0.25) | freeswitch-sounds,
@ -259,8 +355,8 @@ Recommends:
freeswitch-mod-commands (= \${binary:Version}),
freeswitch-init (= \${binary:Version}),
freeswitch-lang (= \${binary:Version}),
freeswitch-music (= \${binary:Version}),
freeswitch-sounds (= \${binary:Version})
freeswitch-music,
freeswitch-sounds
Suggests:
Description: Cross-Platform Scalable Multi-Protocol Soft Switch
$(debian_wrap "${fs_description}")
@ -293,8 +389,8 @@ Recommends:
freeswitch-init (= \${binary:Version}),
freeswitch-lang (= \${binary:Version}),
freeswitch-meta-codecs (= \${binary:Version}),
freeswitch-music (= \${binary:Version}),
freeswitch-sounds (= \${binary:Version})
freeswitch-music,
freeswitch-sounds
Suggests:
freeswitch-mod-cidlookup (= \${binary:Version}),
freeswitch-mod-curl (= \${binary:Version}),
@ -337,7 +433,6 @@ Depends: \${misc:Depends}, freeswitch (= \${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}),
@ -348,8 +443,8 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
Recommends:
freeswitch-init (= \${binary:Version}),
freeswitch-lang (= \${binary:Version}),
freeswitch-music (= \${binary:Version}),
freeswitch-sounds (= \${binary:Version}),
freeswitch-music,
freeswitch-sounds,
freeswitch-conf-vanilla (= \${binary:Version}),
Suggests:
freeswitch-mod-spidermonkey (= \${binary:Version}),
@ -366,8 +461,8 @@ Recommends:
freeswitch-init (= \${binary:Version}),
freeswitch-lang (= \${binary:Version}),
freeswitch-meta-codecs (= \${binary:Version}),
freeswitch-music (= \${binary:Version}),
freeswitch-sounds (= \${binary:Version}),
freeswitch-music,
freeswitch-sounds,
freeswitch-mod-abstraction (= \${binary:Version}),
freeswitch-mod-avmd (= \${binary:Version}),
freeswitch-mod-blacklist (= \${binary:Version}),
@ -452,8 +547,8 @@ Recommends:
freeswitch-meta-conf (= \${binary:Version}),
freeswitch-meta-lang (= \${binary:Version}),
freeswitch-meta-mod-say (= \${binary:Version}),
freeswitch-music (= \${binary:Version}),
freeswitch-sounds (= \${binary:Version}),
freeswitch-music,
freeswitch-sounds,
freeswitch-mod-abstraction (= \${binary:Version}),
freeswitch-mod-avmd (= \${binary:Version}),
freeswitch-mod-blacklist (= \${binary:Version}),
@ -575,7 +670,6 @@ Depends: \${misc:Depends}, freeswitch (= \${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}),
freeswitch-mod-vp8 (= \${binary:Version})
Suggests:
@ -646,7 +740,10 @@ Package: freeswitch-all-dbg
Section: debug
Priority: extra
Architecture: any
Depends: \${misc:Depends}, freeswitch (= \${binary:Version})
Provides: $(list_freeswitch_all_dbg_provides)
Replaces: $(list_freeswitch_all_dbg_replaces)
Breaks: $(list_freeswitch_all_dbg_replaces)
Depends: \${misc:Depends}, freeswitch-all (= \${binary:Version})
Description: debugging symbols for FreeSWITCH
$(debian_wrap "${fs_description}")
.
@ -732,48 +829,6 @@ Description: Language files for FreeSWITCH
This is a metapackage which depends on the default language packages
for FreeSWITCH.
## 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
}
@ -896,7 +951,7 @@ print_lang_control () {
Package: freeswitch-lang-${lang//_/-}
Architecture: all
Depends: \${misc:Depends}
Recommends: freeswitch-sounds-${lang} (= \${binary:Version})
Recommends: freeswitch-sounds-${lang}
Description: ${lang_name} language files for FreeSWITCH
$(debian_wrap "${fs_description}")
.
@ -916,7 +971,7 @@ print_edit_warning () {
}
gencontrol_per_mod () {
print_mod_control "$module_name" "$description" "$long_description" >> control
print_mod_control "$module_name" "$description" "$long_description" >> control
}
gencontrol_per_cat () {
@ -936,12 +991,11 @@ genoverrides_per_mod () {
test -f $f.tmpl && cat $f.tmpl >> $f
}
genmodules_per_cat () {
echo "## $category" >> modules_.conf
}
genmodules_per_mod () {
echo "$module" >> modules_.conf
genmodulesconf () {
genmodules_per_cat () { echo "## $category"; }
genmodules_per_mod () { echo "$module"; }
print_edit_warning
map_modules 'mod_filter' 'genmodules_per_cat' 'genmodules_per_mod'
}
genconf () {
@ -1141,6 +1195,18 @@ set_modules_non_dfsg () {
done
}
conf_merge () {
local of="$1" if="$2"
if [ -s $if ]; then
grep -v '^##\|^$' $if | while xread x; do
touch $of
if ! grep -e "$x" $of >/dev/null; then
printf '%s\n' "$x" >> $of
fi
done
fi
}
codename="sid"
modulelist_opt=""
while getopts "c:m:" o; do
@ -1164,6 +1230,8 @@ echo "Parsing control-modules..." >&2
parse_mod_control
echo "Displaying includes/excludes..." >&2
map_modules 'mod_filter_show' '' ''
echo "Generating modules_.conf..." >&2
genmodulesconf > modules_.conf
echo "Generating control-modules.gen as sanity check..." >&2
(echo "# -*- mode:debian-control -*-"; \
echo "##### Author: Travis Cross <tc@traviscross.com>"; echo; \
@ -1186,21 +1254,13 @@ echo "Generating debian/ (lang)..." >&2
map_langs 'genlang'
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"
"gencontrol_per_cat" \
"gencontrol_per_mod geninstall_per_mod genoverrides_per_mod"
echo "Generating debian/ (-all package)..." >&2
grep -e '^Package:' control | grep -v '^freeswitch-all$' | while xread l; do
m="${l#*: }"
f=$m.install
if [ -s $f ]; then
grep -v '^##\|^$' $f | while xread x; do
if ! grep -e "$x" freeswitch-all.install >/dev/null; then
printf '%s\n' "$x" >> freeswitch-all.install
fi
done
fi
conf_merge freeswitch-all.install $m.install
done
for x in postinst postrm preinst prerm; do
cp -a freeswitch.$x freeswitch-all.$x

View File

@ -29,6 +29,7 @@ Description: Caller ID name lookup
Module: applications/mod_cluechoo
Description: Clue Choo
This demo module renders a Clue Choo train on the FreeSWITCH console.
Build-Depends: libncurses5-dev
Module: applications/mod_commands
Description: Command module
@ -337,11 +338,6 @@ 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.
@ -540,6 +536,8 @@ Module: formats/mod_vlc
Description: VLC streaming
This module provides VLC streaming.
Build-Depends: libvlc-dev (>= 2.0.0)
Depends: vlc-nox
Suggests: vlc-dbg
Distro-Conflicts: squeeze
## mod/languages
@ -573,6 +571,10 @@ Description: mod_spidermonkey
Adds mod_spidermonkey.
Build-Depends: unixodbc-dev
Module: languages/mod_v8
Description: mod_v8
Adds mod_v8.
Module: languages/mod_yaml
Description: mod_yaml
Adds mod_yaml.
@ -650,6 +652,10 @@ Module: say/mod_say_ru
Description: mod_say_ru
Adds mod_say_ru.
Module: say/mod_say_sv
Description: mod_say_sv
Adds mod_say_sv.
Module: say/mod_say_th
Description: mod_say_th
Adds mod_say_th.

50
debian/copyright vendored
View File

@ -3,8 +3,8 @@ Upstream-Name: freeswitch
Source: http://freeswitch.org/
Files: *
Copyright: 2005-2012 Anthony Minessale II <anthm@freeswitch.org>
2005-2012 Anthony Minessale II
Copyright: 2005-2014 Anthony Minessale II <anthm@freeswitch.org>
2005-2014 Anthony Minessale II
License: MPL-1.1
MOZILLA PUBLIC LICENSE
Version 1.1
@ -1262,8 +1262,8 @@ License: ISC
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: libs/freetdm/*
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
2005-2012, Anthony Minessale II
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
2005-2014, Anthony Minessale II
2009,2010 Moises Silva <moy@sangoma.com>
David Yat Sin <dyatsin@sangoma.com>
2007, Jan Vidar Berger, Case Labs, Ltd.
@ -1284,7 +1284,7 @@ License: BSD-3-clause
Files: libs/freetdm/src/priserver.c
libs/freetdm/src/sangoma_pri.?
Copyright: 2005-2012, Anthony Minessale II
Copyright: 2005-2014, Anthony Minessale II
Nenad Corbic <ncorbic@sangoma.com>
License: GPL-2+
@ -1296,8 +1296,8 @@ Files: libs/freetdm/src/libteletone_detect.c
libs/freetdm/src/libteletone_generate.c
libs/libteletone/src/libteletone_detect.[ch]
src/mod/applications/mod_spandsp/udptl.[ch]
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
2005-2012, Anthony Minessale II
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
2005-2014, Anthony Minessale II
2001-2009, Steve Underwood <steveu@coppice.org>
License: MPL-1.1
@ -1427,7 +1427,7 @@ Files: libs/js/nsprpub/pr/tests/tmocon.c
libs/js/nsprpub/pr/src/md/unix/os_ReliantUNIX.s
libs/js/nsprpub/pr/src/md/unix/os_Darwin_ppc.s
libs/js/nsprpub/pr/src/md/unix/os_SunOS_ultrasparc.s
libs/js/nsprpub/pr/src/md/unix/os_Linux_ia64.s
libs/js/nsprpub/pr/src/md/unix/os_Linux_ia64.s
libs/js/nsprpub/pr/tests/testfile.c
libs/js/nsprpub/pr/src/md/unix/os_Darwin_x86.s
libs/js/nsprpub/pr/src/md/unix/os_AIX.s
@ -1538,7 +1538,7 @@ Copyright: 2005-2010, James Martelletti <james@nerdc0re.com>
License: MPL-1.1
Files: src/mod/event_handlers/mod_cdr_mongodb/mod_cdr_mongodb.c
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
License: MPL-1.1
Files: src/mod/event_handlers/mod_cdr_mongodb/driver/src/md5.[ch]
@ -1552,7 +1552,7 @@ License: MPL-1.1
Files: src/mod/say/mod_say_??/mod_say_??.c
scripts/c/socket2me/socket2me.c
src/mod/xml_int/mod_xml_scgi/xml_scgi_server.pl
Copyright: 2007-2012, Anthony Minessale II <anthm@freeswitch.org>
Copyright: 2007-2014, Anthony Minessale II <anthm@freeswitch.org>
2007-2013, Anthony Minessale II
2011-2012, Shahar Hadas
License: BSD-3-clause
@ -1595,7 +1595,7 @@ Copyright: 2002-2003 the Icecast team <team@icecast.org>
License: LGPL-2+
Files: */switch_xml.[ch]
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
2004-2006 Aaron Voisine <aaron@voisine.org>
License: MPL-1.1 or BSD-like
@ -1722,7 +1722,7 @@ Copyright: 2007-2010 Khomp Ind. & Com.
License: MPL-1.1 or LGPL-2.1+
Files: src/mod/endpoints/mod_khomp/mod_khomp.cpp
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
License: MPL-1.1
Files: src/mod/endpoints/mod_khomp/commons/base/atomic.hpp
@ -1795,11 +1795,11 @@ License: Perl
Files: src/mod/endpoints/mod_portaudio/*
Copyright: 1999-2000 Ross Bencina and Phil Burk
2005-2012, Anthony Minessale II <anthm@freeswitch.org>
2005-2014, Anthony Minessale II <anthm@freeswitch.org>
License: MIT/X11 (BSD like)
Files: src/mod/endpoints/mod_portaudio/mod_portaudio.c
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
License: MPL-1.1
Files: src/mod/endpoints/mod_sofia/sip-dig.c
@ -1834,7 +1834,7 @@ Copyright: 2006-2011, Skype Limited.
License: BSD-2-clause
Files: libs/libdingaling/*
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
2001-2003 Allan Saddi <allan@saddi.com>
License: MPL-1.1
@ -1870,7 +1870,7 @@ Copyright: 2011-2012 The WebRTC project authors
License: BSD-3-clause
Files: src/mod/codecs/mod_isac/mod_isac.c
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
License: MPL-1.1
Files: libs/srtp/*
@ -1958,7 +1958,7 @@ License: LGPL
Files: libs/libwebsockets/win32port/zlib/*
Copyright: 1995-2010 Jean-loup Gailly
1995-2010 Mark Adler
1995-2010 Mark Adler
1995-2010 Jean-loup Gailly and Mark Adler
1995-2010 Jean-loup Gailly and Mark Adler ";
License: zlib/libpng
@ -1989,7 +1989,7 @@ License: ISC
Files: libs/esl/*
Copyright: 2007 Michael Jerris
2002 Todd C. Miller <Todd.Miller@courtesan.com>
2007-2012, Anthony Minessale II
2007-2014, Anthony Minessale II
2000 The NetBSD Foundation, Inc.
License: BSD-3-clause
@ -2052,7 +2052,7 @@ Copyright: 1995 Abandoned Colin Plumb
License: public-domain
Files: libs/stfu/*
Copyright: 2007-2012 Anthony Minessale II <anthm@freeswitch.org>
Copyright: 2007-2014 Anthony Minessale II <anthm@freeswitch.org>
License: MIT/X11 (BSD like)
Files: libs/sqlite/*
@ -2070,9 +2070,9 @@ Copyright: 1997-2008 University of Cambridge
License: BSD-3-clause
Files: libs/openzap/*
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
2007-2012, Anthony Minessale II, Nenad Corbic
2005-2012, Anthony Minessale II
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
2007-2014, Anthony Minessale II, Nenad Corbic
2005-2014, Anthony Minessale II
2006 Nenad Corbic <ncorbic@sangoma.com>
2007 Jan Vidar Berger, Case Labs, Ltd.
2007,2008 Michael Jerris
@ -2098,13 +2098,13 @@ License: BSD-2-clause
Files: libs/openzap/src/include/libteletone.h
libs/openzap/mod_openzap/mod_openzap.c
Copyright: 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
2005-2012, Anthony Minessale II
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
2005-2014, Anthony Minessale II
License: MPL-1.1
Files: libs/openzap/src/sangoma_pri.[ch]
libs/openzap/src/priserver.c
Copyright: 2005-2012 Anthony Minessale II
Copyright: 2005-2014 Anthony Minessale II
2006 Nenad Corbic <ncorbic@sangoma.com>
License: GPL-2+

View File

@ -32,4 +32,3 @@ UMask=0007
[Install]
WantedBy=multi-user.target

View File

@ -4,6 +4,8 @@
# Provides: freeswitch
# Required-Start: $network $remote_fs $local_fs
# Required-Stop: $network $remote_fs $local_fs
# Should-Start: postgresql mysql memcached mongodb
# Should-Stop: postgresql mysql memcached mongodb
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: FreeSWITCH Softswitch

32
debian/rules vendored
View File

@ -2,19 +2,22 @@
# -*- mode:makefile -*-
##### Author: Travis Cross <tc@traviscross.com>
#export DH_VERBOSE=1
export DH_VERBOSE=1
export VERBOSE=1
FS_CC?=gcc
FS_CXX?=g++
FS_CFLAGS?=-g3 -O2 -fPIC
FS_CPPFLAGS?=
FS_CPPFLAGS?=-D_FORTIFY_SOURCE=2
FS_CFLAGS?=-g3 -O2 -fPIC -fstack-protector --param=ssp-buffer-size=4
FS_CXXFLAGS?=$(FS_CFLAGS)
FS_LDFLAGS?=-Wl,-z,relro
export PATH?=/usr/lib/ccache:/usr/sbin:/usr/bin:/sbin:/bin
export CC=$(FS_CC)
export CXX=$(FS_CXX)
export CFLAGS=$(FS_CFLAGS)
export CPPFLAGS=$(FS_CPPFLAGS)
export CXXFLAGS=$(FS_CXXFLAGS)
export CC:=$(FS_CC)
export CXX:=$(FS_CXX)
export CPPFLAGS:=$(FS_CPPFLAGS)
export CFLAGS:=$(FS_CFLAGS)
export CXXFLAGS:=$(FS_CXXFLAGS)
export LDFLAGS:=$(FS_LDFLAGS)
show_vars= \
echo; \
@ -22,9 +25,10 @@ show_vars= \
echo "PATH='$(PATH)'"; \
echo "CC='$(CC)'"; \
echo "CXX='$(CXX)'"; \
echo "CFLAGS='$(CFLAGS)'"; \
echo "CPPFLAGS='$(CPPFLAGS)'"; \
echo "CFLAGS='$(CFLAGS)'"; \
echo "CXXFLAGS='$(CXXFLAGS)'"; \
echo "LDFLAGS='$(LDFLAGS)'"; \
echo "CCACHE_DIR='$(CCACHE_DIR)'"; \
echo;
@ -78,7 +82,8 @@ override_dh_auto_clean:
--with-grammardir=/usr/share/freeswitch/grammar \
--with-certsdir=/etc/freeswitch/tls \
--with-scriptdir=/usr/share/freeswitch/scripts \
--with-recordingsdir=/var/lib/freeswitch/recordings
--with-recordingsdir=/var/lib/freeswitch/recordings \
--enable-static-v8
touch $@
override_dh_auto_configure: .stamp-configure
@ -106,6 +111,12 @@ override_dh_installinit:
dh_installinit -pfreeswitch-sysvinit --name=freeswitch
dh_installinit -pfreeswitch-all --name=freeswitch
override_dh_makeshlibs:
dh_makeshlibs
sed \
-e '/^libfreeswitch 1/{s/freeswitch-all/libfreeswitch1/g}' \
-i debian/freeswitch-all/DEBIAN/shlibs
debian-bootstrap: debian/.stamp-bootstrap
debian/.stamp-bootstrap:
(cd debian && ./bootstrap.sh)
@ -127,4 +138,3 @@ binary-quicktest:
echo "applications/mod_commands" > debian/modules.conf
(cd debian && ./bootstrap.sh)
dh binary

43
debian/util.sh vendored
View File

@ -101,13 +101,13 @@ getlibs () {
getlib http://downloads.mongodb.org/cxx-driver/mongodb-linux-x86_64-v1.8-latest.tgz
getlib http://files.freeswitch.org/downloads/libs/json-c-0.9.tar.gz
getlib http://files.freeswitch.org/downloads/libs/libmemcached-0.32.tar.gz
getlib http://files.freeswitch.org/downloads/libs/soundtouch-1.6.0.tar.gz
getlib http://files.freeswitch.org/downloads/libs/soundtouch-1.7.1.tar.gz
getlib http://files.freeswitch.org/downloads/libs/flite-1.5.4-current.tar.bz2
getlib http://files.freeswitch.org/downloads/libs/sphinxbase-0.7.tar.gz
getlib http://files.freeswitch.org/downloads/libs/pocketsphinx-0.7.tar.gz
getlib http://files.freeswitch.org/downloads/libs/communicator_semi_6000_20080321.tar.gz
getlib http://files.freeswitch.org/downloads/libs/celt-0.10.0.tar.gz
getlib http://files.freeswitch.org/downloads/libs/opus-1.0.2.tar.gz
getlib http://files.freeswitch.org/downloads/libs/opus-1.1.tar.gz
getlib http://files.freeswitch.org/downloads/libs/openldap-2.4.19.tar.gz
getlib http://download.zeromq.org/zeromq-2.1.9.tar.gz \
|| getlib http://download.zeromq.org/historic/zeromq-2.1.9.tar.gz
@ -115,6 +115,7 @@ getlibs () {
getlib http://files.freeswitch.org/downloads/libs/lame-3.98.4.tar.gz
getlib http://files.freeswitch.org/downloads/libs/libshout-2.2.2.tar.gz
getlib http://files.freeswitch.org/downloads/libs/mpg123-1.13.2.tar.gz
getlib http://files.freeswitch.org/downloads/libs/v8-3.24.14.tar.bz2
# cleanup mongo
(
cd mongo-cxx-driver-v1.8
@ -208,12 +209,13 @@ EOF
create_dsc () {
{
set -e
local OPTIND OPTARG modules_conf="" modules_list="" speed="normal" zl=9
while getopts 'f:m:s:z:' o "$@"; do
local OPTIND OPTARG modules_conf="" modules_list="" speed="normal" suite_postfix="" suite_postfix_p=false zl=9
while getopts 'f:m:s:u:z:' o "$@"; do
case "$o" in
f) modules_conf="$OPTARG";;
m) modules_list="$OPTARG";;
s) speed="$OPTARG";;
u) suite_postfix="$OPTARG"; suite_postfix_p=true; ;;
z) zl="$OPTARG";;
esac
done
@ -222,6 +224,7 @@ create_dsc () {
local suite="$(find_suite $distro)"
local orig_ver="$(echo "$orig" | sed -e 's/^.*_//' -e 's/\.orig\.tar.*$//')"
local dver="${orig_ver}-1~${distro}+1"
$suite_postfix_p && { suite="${distro}${suite_postfix}"; }
[ -x "$(which dch)" ] \
|| err "package devscripts isn't installed"
if [ -n "$modules_conf" ]; then
@ -317,33 +320,46 @@ build_debs () {
build_all () {
local OPTIND OPTARG
local orig_opts="" dsc_opts="" deb_opts=""
local archs="" distros="" orig="" par=false
while getopts 'a:bc:df:jm:no:s:v:z:' o "$@"; do
local orig_opts="" dsc_opts="" deb_opts="" modlist=""
local archs="" distros="" orig="" depinst=false par=false
while getopts 'a:bc:df:ijl:m:no:s:u:v:z:' o "$@"; do
case "$o" in
a) archs="$archs $OPTARG";;
b) orig_opts="$orig_opts -b";;
c) distros="$distros $OPTARG";;
d) deb_opts="$deb_opts -d";;
f) dsc_opts="$dsc_opts -f$OPTARG";;
i) depinst=true;;
j) par=true;;
l) modlist="$OPTARG";;
m) orig_opts="$orig_opts -m$OPTARG"; dsc_opts="$dsc_opts -m$OPTARG";;
n) orig_opts="$orig_opts -n";;
o) orig="$OPTARG";;
s) dsc_opts="$dsc_opts -s$OPTARG";;
u) dsc_opts="$dsc_opts -u$OPTARG";;
v) orig_opts="$orig_opts -v$OPTARG";;
z) orig_opts="$orig_opts -z$OPTARG"; dsc_opts="$dsc_opts -z$OPTARG";;
esac
done
shift $(($OPTIND-1))
[ -n "$archs" ] || archs="amd64 i386"
[ -n "$distros" ] || distros="sid jessie wheezy squeeze"
[ -n "$distros" ] || distros="sid jessie wheezy"
! $depinst || aptitude install -y \
rsync git less cowbuilder ccache \
devscripts equivs build-essential
[ -n "$orig" ] || orig="$(create_orig $orig_opts HEAD | tail -n1)"
if [ -n "$modlist" ]; then
local modtmp="$(mktemp /tmp/modules-XXXXXXXXXX.conf)"
> $modtmp
for m in "$modlist"; do printf '%s\n' "$m" >> $modtmp; done
dsc_opts="$dsc_opts -f${modtmp}"; fi
[ -n "$orig" ] || orig="$(create_orig $orig_opts HEAD | tail -n1)"
mkdir -p ../log
> ../log/changes
echo; echo; echo; echo
trap 'echo "Killing children...">&2; for x in $(jobs -p); do kill $x; done' EXIT
if [ "${orig:0:2}" = ".." ]; then
echo "true" > ../log/builds-ok
for distro in $distros; do
echo "Creating $distro dsc..." >&2
local dsc="$(create_dsc $dsc_opts $distro $orig 2>../log/$distro | tail -n1)"
@ -357,6 +373,8 @@ build_all () {
echo "Done building $distro-$arch debs." >&2
if [ "${changes:0:2}" = ".." ]; then
echo "$changes" >> ../log/changes
else
echo "false" > ../log/builds-ok
fi
} &
$par || wait
@ -366,8 +384,10 @@ build_all () {
done
! $par || wait
fi
[ -z "$modlist" ] || rm -f $modtmp
trap - EXIT
cat ../log/changes
test "$(cat ../log/builds-ok)" = true || exit 1
}
usage () {
@ -392,7 +412,9 @@ commands:
-d Enable cowbuilder debug hook
-f <modules.conf>
Build only modules listed in this file
-i Auto install build deps on host system
-j Build debs in parallel
-l <modules>
-m [ quicktest | non-dfsg ]
Choose custom list of modules to build
-n Nightly build
@ -400,6 +422,8 @@ commands:
Specify existing .orig.tar.xz file
-s [ paranoid | reckless ]
Set FS bootstrap/build -j flags
-u <suite-postfix>
Specify a custom suite postfix
-v Set version
-z Set compression level
@ -421,6 +445,8 @@ commands:
Choose custom list of modules to build
-s [ paranoid | reckless ]
Set FS bootstrap/build -j flags
-u <suite-postfix>
Specify a custom suite postfix
-z Set compression level
create-orig <treeish>
@ -455,4 +481,3 @@ case "$cmd" in
create-orig) create_orig "$@" ;;
*) usage ;;
esac

View File

@ -38,6 +38,7 @@ that much better:
Juan Jose Comellas <juanjo@comellas.org> - Patch to switch_utils for arg parsing.
Dale Thatcher <freeswitch at dalethatcher dot com> - Additions to mod_conference.
Simon Perreault & Marc Blanchet from Viagenie.ca - IPv6 Support.
Peter Olsson <peter@olssononline.se> - mod_v8, and other various patches.
A big THANK YOU goes to:

19
docs/Debugging Normal file
View File

@ -0,0 +1,19 @@
How to Debug FreeSWITCH Issues
==============================
Dumping a core file
-------------------
Run:
sysctl -w kernel.core_pattern=/tmp/core.%t_%e_s%s
sysctl -w fs.suid_dumpable=1
ulimit -c unlimited
freeswitch -core
Getting a backtrace from a core file
------------------------------------
Run:
./debian/scripts/backtrace-from-corefile /tmp/<name-of-corefile>

View File

@ -108,10 +108,9 @@ submitted to JIRA.
You can also reach us on freenode.net at:
> #freeswitch-dev
Finally, feel free to join us in our weekly conference call. Many of
the core developers are often on the call and you'll have an
opportunity at the beginning or end of the call to ask your questions:
> http://wiki.freeswitch.org/wiki/Weekly_Conference_Call

2
docs/man/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*.1
*.html

155
docs/man/freeswitch.1.ronn Normal file
View File

@ -0,0 +1,155 @@
freeswitch(1) -- scalable multi-protocol softswitch
===================================================
## SYNOPSIS
`freeswitch` [<options>]
## DESCRIPTION
`freeswitch` is a high-performance softswitch that supports many kinds
of telephony applications. It's commonly used as a PBX with SIP
endpoints.
`freeswitch` expects a set of configuration files to exist in
/etc/freeswitch. Example configurations can be found in
/usr/share/freeswitch/conf.
`freeswitch` is a modular system and modules can be loaded at runtime.
`freeswitch` is started in the foreground by default but can also be
started as a daemon.
## OPTIONS
* `-h`:
Show inline help.
* `-version`:
Print the version and exit.
* `-nf`:
Stay in the foreground (default unless `-nc` is specified).
* `-reincarnate`:
Restart the switch in the event of an uncontrolled exit.
* `-reincarnate-reexec`:
Like `-reincarnate` but cause the switch binary to be run again
with execv.
* `-u` <user>:
Run setuid after starting the switch.
* `-g` <group>:
Run setgid after starting the switch.
* `-core`:
Cause the switch to dump a core when crashing; you'll need to
ensure your system ulimits allow this, and if you've set `-u` or
`-g` you may also need to run:
sysctl -w fs.suid_dumpable=1
* `-rp`:
Enable realtime priority.
* `-lp`:
Enable low priority.
* `-np`:
Enable normal priority.
* `-vg`:
Run under Valgrind.
* `-nosql`:
Disable the use of SQL for internal switch operations.
* `-heavy-timer`:
Use a more expensive system timer that may be more accurate, but
note this may also impose heavier loads on your system.
* `-nonat`:
When the switch starts, it runs checks to determine if it is
behind NAT; this flag disables these checks.
* `-nonatmap`:
Disable automatic NAT port mapping.
* `-nocal`:
When the switch starts, it calibrates itself to deviations in the
system clock; this flag disables this calibration.
* `-nort`:
Disable use of clock_realtime.
* `-stop`:
Stop the switch if running in the background.
* `-nc`:
Disable the interactive console and cause the switch to go into
the background unless `-nf` is also specified.
* `-ncwait`:
Like `-nc` but cause the parent process to wait until the switch
is started before exiting.
* `-c`:
Enable the interactive console and stay in the foreground (this is
the default).
* `-base` <basedir>:
Set the prefix directory.
* `-cfgname` <filename>:
Set the pathname to the main configuration file.
* `-conf` <directory>:
Set the directory for configuration files.
* `-log` <directory>:
Set the directory for log files.
* `-run` <directory>:
Set the directory for temporary runtime files.
* `-db` <directory>:
Set the directory for internal database files.
* `-mod` <directory>:
Set the directory for runtime modules.
* `-htdocs` <directory>:
Set the directory for htdocs.
* `-scripts` <directory>:
Set the directory for call control scripts.
* `-temp` <directory>:
Set the directory for temporary files.
* `-grammar` <directory>:
Set the directory for grammar files.
* `-recordings` <directory>:
Set the directory for call recordings.
* `-storage` <directory>:
Set the directory for voicemail storage.
* `-sounds` <directory>:
Set the directory for sound files.
## AUTHORS
FreeSWITCH was originally developed by `Anthony Minessale II
<anthm@freeswitch.org>` with continued development by Anthony and a
team of active contributors.
This man page and the packaging for Debian was written by `Travis
Cross <tc@traviscross.com>`.
## SEE ALSO
sysctl(8), ulimit(1posix)

View File

@ -35,6 +35,8 @@
</ascii>
<phonetic-ascii>
<prompt phrase="Espacio" filename="32.wav"/>
<prompt phrase="Almohadilla" filename="35.wav"/>
<prompt phrase="Asterisco" filename="42.wav"/>
<prompt phrase="Punto" filename="46.wav"/>
<prompt phrase="Alpha" filename="97.wav"/>
<prompt phrase="Bravo" filename="98.wav"/>
@ -186,13 +188,13 @@
<prompt phrase="Inicio de sesión incorrecto." filename="vm-fail_auth.wav"/>
<prompt phrase="Bienvenido a su buzón de voz." filename="vm-hello.wav"/>
<prompt phrase="Adiós" filename="vm-goodbye.wav"/>
<prompt phrase="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." filename="vm-record_name1.wav"/>
<prompt phrase="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." filename="vm-record_name1.wav"/>
<prompt phrase="Elija un saludo entre 1 y 9." filename="vm-choose_greeting_choose.wav"/>
<prompt phrase="Valor inválido." filename="vm-choose_greeting_fail.wav"/>
<prompt phrase="Demasiados intentos fallidos." filename="vm-abort.wav"/>
<prompt phrase="Para cambiar su contraseña..." filename="vm-change_password.wav"/>
<prompt phrase="Grabe su saludo después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación." filename="vm-record_greeting.wav"/>
<prompt phrase="Grabe su mensaje después de la señal, pulse cualquier tecla o deje de hablar para poner fin a la grabación." filename="vm-record_message.wav"/>
<prompt phrase="Grabe su saludo después de la señal. Pulse cualquier tecla o deje de hablar para poner fin a la grabación." filename="vm-record_greeting.wav"/>
<prompt phrase="Grabe su mensaje después de la señal. Pulse cualquier tecla o deje de hablar para poner fin a la grabación." filename="vm-record_message.wav"/>
<prompt phrase="...no está disponible." filename="vm-play_greeting.wav"/>
<prompt phrase="Urgente nuevo." filename="vm-urgent-new.wav"/>
<prompt phrase="Nuevo" filename="vm-new.wav"/>
@ -222,34 +224,60 @@
<prompt phrase="...no está disponible." filename="vm-not_available.wav"/>
<prompt phrase="Mensaje número..." filename="vm-message_number.wav"/>
<prompt phrase="Eliminado" filename="vm-deleted.wav"/>
<prompt phrase="Su grabación es demasiado corta, por favor intente de nuevo." filename="vm-too-small.wav"/>
<prompt phrase="Su grabación es demasiado corta. Por favor intente de nuevo." filename="vm-too-small.wav"/>
<prompt phrase="...en la bandeja de entrada." filename="vm-in_folder.wav"/>
<prompt phrase="Para devolver la llamada..." filename="vm-return_call.wav"/>
<prompt phrase="Urgente" filename="vm-urgent.wav"/>
<prompt phrase="Este buzón está lleno. Por favor intente llamar mas tarde." filename="vm-mailbox_full.wav"/>
<prompt phrase="Bienvenido a su nuevo buzón de voz. Para escuchar el tutorial y configurar su buzón, pulse 1. Para saltarlo pulse 2." filename="vm-tutorial_yes_no.wav"/>
<prompt phrase="Necesito grabar su nombre y apellido. Esta grabación se usará entre otros en el servicio de directorio." filename="vm-tutorial_record_name.wav"/>
<prompt phrase="Su número de identificación personal o PIN sirve para impedir a terceros el acceso a sus mensajes. Desea cambiar su PIN ahora?" filename="vm-tutorial_change_pin.wav"/>
<prompt phrase="Su número de identificación personal o PIN sirve para impedir a terceros el acceso a sus mensajes. ¿Desea cambiar su PIN ahora?" filename="vm-tutorial_change_pin.wav"/>
<prompt phrase="La persona con la que intenta hablar no está disponible y no tiene buzón de voz." filename="vm-not_available_no_voicemail.wav"/>
<prompt phrase="Por favor, introduzca la extensión de destino para remandar este mensaje." filename="vm-forward_enter_ext.wav"/>
<prompt phrase="...seguido de almohadilla." filename="vm-followed_by_pound.wav"/>
<prompt phrase="...seguido de..." filename="vm-followed_by.wav"/>
<prompt phrase="...ha sido cambiado a..." filename="vm-has_been_changed_to.wav"/>
<prompt phrase="marcado nuevo" filename="vm-marked_new.wav"/>
<prompt phrase="Esa fue una extensión inválida." filename="vm-that_was_an_invalid_ext.wav"/>
<prompt phrase="No hay más mensajes." filename="vm-no_more_messages.wav"/>
<prompt phrase="de" filename="vm-from.wav"/>
<prompt phrase="último" filename="vm-last.wav"/>
<prompt phrase="siguiente" filename="vm-next.wav"/>
<prompt phrase="recibido" filename="vm-received.wav"/>
<prompt phrase="recuperado" filename="vm-undeleted.wav"/>
<prompt phrase="Para borrar este mensaje..." filename="vm-delete_message.wav"/>
<prompt phrase="Para añadir una introducción a este mensaje..." filename="vm-forward_add_intro.wav"/>
<prompt phrase="Para marcar este mensaje como nuevo..." filename="vm-mark_message_new.wav"/>
<prompt phrase="Para escuchar el encabezado del mensaje..." filename="vm-message_envelope.wav"/>
<prompt phrase="Para escuchar el mensaje siguiente..." filename="vm-play_next_message.wav"/>
<prompt phrase="Para escuchar el mensaje previo..." filename="vm-play_previous_message.wav"/>
<prompt phrase="Para repetir este mensaje..." filename="vm-repeat_message.wav"/>
<prompt phrase="Para guardar este mensaje..." filename="vm-save_message.wav"/>
<prompt phrase="Para mandar este mensaje ahora..." filename="vm-send_message_now.wav"/>
<prompt phrase="Para remandar este mensaje..." filename="vm-to_forward.wav"/>
<prompt phrase="Para grabar un saludo..." filename="vm-to_record_greeting.wav"/>
<prompt phrase="Para recuperar este mensaje..." filename="vm-undelete_message.wav"/>
</voicemail>
<directory>
<prompt phrase="Por favor introduzca las primeras letras del nombre buscado." filename="dir-enter_person.wav"/>
<prompt phrase="...apellido..." filename="dir-last_name.wav"/>
<prompt phrase="Para buscar por..." filename="dir-to_search_by.wav"/>
<prompt phrase="...nombre..." filename="dir-first_name.wav"/>
<prompt phrase="No hay resultados que coincidan con su busqueda." filename="dir-no_matching_results.wav"/>
<prompt phrase="...resultados coinciden con su busqueda." filename="dir-result_match.wav"/>
<prompt phrase="Su busqueda genera demasiados resultados." filename="dir-too_many_result.wav"/>
<prompt phrase="No hay resultados que coincidan con su búsqueda." filename="dir-no_matching_results.wav"/>
<prompt phrase="...resultados coinciden con su búsqueda." filename="dir-result_match.wav"/>
<prompt phrase="Su búsqueda genera demasiados resultados." filename="dir-too_many_result.wav"/>
<prompt phrase="No hay más resultados." filename="dir-no_more_results.wav"/>
<prompt phrase="Resultado número..." filename="dir-result_number.wav"/>
<prompt phrase="...en la extensión..." filename="dir-at_extension.wav"/>
<prompt phrase="Para seleccionar este resultado..." filename="dir-to_select_entry.wav"/>
<prompt phrase="Para el resultado siguiente..." filename="dir-for_next.wav"/>
<prompt phrase="Para el resultado previo..." filename="dir-for_prev.wav"/>
<prompt phrase="Para empezar una nueva busqueda..." filename="dir-start_new_search.wav"/>
<prompt phrase="Para empezar una nueva búsqueda..." filename="dir-start_new_search.wav"/>
<prompt phrase="Necesita especificar un mínimo de..." filename="dir-specify_mininum.wav"/>
<prompt phrase="...letras del nombre buscado." filename="dir-letters_of_person_name.wav"/>
<prompt phrase="Por favor intente de nuevo." filename="dir-please_try_again.wav"/>
<prompt phrase="Pulse..." filename="dir-press.wav" info="we can copy vm/vm-press.wav"/>
<prompt phrase="Por favor introduzca las primeras letras del nombre o apellido de la persona." filename="dir-enter_person_first_or_last.wav"/>
</directory>
<conference>
<prompt phrase="NULL" filename="conf-ack.wav" type="tone"/>
@ -264,16 +292,22 @@
<prompt phrase="Esta conferencia está bloqueada." filename="conf-locked.wav"/>
<prompt phrase="La conferencia está ahora bloqueada." filename="conf-is-locked.wav"/>
<prompt phrase="La conferencia está ahora desbloqueada." filename="conf-is-unlocked.wav"/>
<prompt phrase="Por favor ingrese el PIN de la conferencia." filename="conf-pin.wav"/>
<prompt phrase="Por favor introduzca el PIN de la conferencia." filename="conf-pin.wav"/>
<prompt phrase="PIN inválido, intente de nuevo." filename="conf-bad-pin.wav"/>
<prompt phrase="Hasta luego." filename="conf-goodbye.wav"/>
<prompt phrase="Bienvenido a la conferencia." filename="conf-welcome.wav"/>
<prompt phrase="Por favor introduzca el número de conferencia, seguido de la tecla almohadilla." filename="conf-enter_conf_number.wav"/>
<prompt phrase="Introduzca el PIN de la conferencia, seguido de la tecla almohadilla." filename="conf-enter_conf_pin.wav"/>
<prompt phrase="...se incorporó a la conferencia." filename="conf-has_joined.wav"/>
<prompt phrase="...ha abandonado la conferencia." filename="conf-has_left.wav"/>
<prompt phrase="Su llamada ya está silenciada." filename="conf-you_are_already_muted.wav"/>
<prompt phrase="Su llamada ha sido silenciada en ambos sentidos." filename="conf-you_are_now_bidirectionally_muted.wav"/>
</conference>
<ivr>
<prompt phrase="Número de cuenta" filename="ivr-account_number.wav"/>
<prompt phrase="Conectar con el llamante" filename="ivr-connect_to_caller.wav"/>
<prompt phrase="Si conoce la extensión de su destino, por favor marquela ahora." filename="ivr-enter_ext_pound.wav"/>
<prompt phrase="Por favor ingrese un número de extensión seguido por la tecla almohadilla." filename="ivr-enter_ext.wav"/>
<prompt phrase="Si conoce la extensión de su destino, por favor márquela ahora." filename="ivr-enter_ext_pound.wav"/>
<prompt phrase="Por favor introduzca un número de extensión seguido por la tecla almohadilla." filename="ivr-enter_ext.wav"/>
<prompt phrase="Para esta persona..." filename="ivr-for_this_person.wav"/>
<prompt phrase="Por favor espere mientras se conecta su llamada." filename="ivr-hold_connect_call.wav"/>
<prompt phrase="Lo siento..." filename="ivr-im_sorry.wav"/>
@ -338,7 +372,7 @@
<prompt phrase="El tiempo estimado de espera es..." filename="ivr-estimated_hold_time.wav"/>
<prompt phrase="Más de..." filename="ivr-more_than.wav"/>
<prompt phrase="Menos de..." filename="ivr-less_than.wav"/>
<prompt phrase="Empieze a grabar." filename="ivr-begin_recording.wav "/>
<prompt phrase="Empiece a grabar." filename="ivr-begin_recording.wav "/>
<prompt phrase="El desvío de llamada ha sido desactivado." filename="ivr-call_forwarding_has_been_cancelled.wav"/>
<prompt phrase="El desvío de llamada ha sido activado." filename="ivr-call_forwarding_has_been_set.wav"/>
<prompt phrase="Por favor introduzca el número de teléfono." filename="ivr-please_enter_the_phone_number.wav"/>
@ -346,7 +380,7 @@
<prompt phrase="Para aceptar, pulse 1. Para rechazar, pulse 2. Para enviar al buzón de voz, pulse 3." filename="ivr-accept_reject_voicemail.wav"/>
<prompt phrase="Llamada entrante." filename="ivr-incoming_call.wav"/>
<prompt phrase="Gracias por llamar." filename="ivr-thank_you_for_calling.wav"/>
<prompt phrase="Por favor mentengase a la espera. Su llamada será atendida en un momento." filename="ivr-stay_on_line_call_answered_momentarily.wav"/>
<prompt phrase="Por favor manténgase a la espera. Su llamada será atendida en un momento." filename="ivr-stay_on_line_call_answered_momentarily.wav"/>
<prompt phrase="Su llamada está siendo procesada." filename="ivr-call_being_transferred.wav"/>
<prompt phrase="Por favor disfrute de la música mientras su llamada está siendo procesada..." filename="ivr-enjoy_music_while_transfer.wav"/>
<prompt phrase="Usted tiene una llamada de..." filename="ivr-call_from.wav"/>
@ -368,9 +402,8 @@
<prompt phrase="Número." filename="ivr-number.wav"/>
<prompt phrase="...seguido de la tecla almohadilla." filename="ivr-followed_by_pound.wav"/>
<prompt phrase="El balance de la cuenta es..." filename="ivr-account_balance_is.wav"/>
<prompt phrase="Gracias por llamar. Si conoce la extensión de su destino, por favor marquela ahora. Para acceder al directorio, pulse..." filename="ivr-generic_greeting.wav"/>
<prompt phrase="...fichero..." filename="ivr-file.wav"/>
<prompt phrase="...ficheros..." filename="ivr-files-.wav"/>
<prompt phrase="...ficheros..." filename="ivr-files.wav"/>
<prompt phrase="Para una llamada de despertador..." filename="ivr-for_a_wakeup_call.wav"/>
<prompt phrase="Este es el servicio de despertador." filename="ivr-this_is_your_wakeup_call.wav"/>
<prompt phrase="Para solicitar una llamada de despertador..." filename="ivr-request_wakeup_call.wav"/>
@ -385,66 +418,46 @@
<prompt phrase="Para una llamada de despertador única..." filename="ivr-for_one_time_wakeup_call.wav"/>
<prompt phrase="Llamada de despertador única..." filename="ivr-one_time_wakeup_call.wav"/>
<prompt phrase="...llamada de despertador..." filename="ivr-wakeup_call.wav"/>
<prompt phrase="¡Vamos despierta cielo!" filename="ivr-wakey_wakey_sunshine.wav"/>
<prompt phrase="¡Vamos, despierta cielo!" filename="ivr-wakey_wakey_sunshine.wav"/>
<prompt phrase="Bienvenido." filename="ivr-welcome.wav"/>
<prompt phrase="Bienvenido a..." filename="ivr-welcome_to.wav"/>
<prompt phrase="Buenos días." filename="ivr-good_morning.wav"/>
<prompt phrase="Buenas tardes." filename="ivr-good_afternoon.wav"/>
<prompt phrase="Buenas noches." filename="ivr-good_evening.wav"/>
<prompt phrase="Gracias." filename="ivr-Thank_you.wav"/>
<prompt phrase="Para..." filename="ivr-for.wav"/>
<prompt phrase="El tiempo de espera esta siendo anormalmente elevado." filename="ivr-longer_than_usual_hold_times.wav"/>
<prompt phrase="Usted es el..." filename="ivr-you_are_the.wav"/>
<prompt phrase="Un momento por favor." filename="ivr-one_moment_please.wav"/>
<prompt phrase="Su llamada será atendida según el orden de entrada." filename="ivr-call_answered_order_received.wav"/>
<prompt phrase="Por favor introduzca el número de conferencia, seguido de la tecla almohadilla." filename="conf-enter_conf_number.wav"/>
<prompt phrase="Introduzca el PIN de la conferencia, seguido de la tecla almohadilla." filename="conf-enter_conf_pin.wav"/>
<prompt phrase="...se incorporó a la conferencia." filename="conf-has_joined.wav"/>
<prompt phrase="...ha abandonado la conferencia." filename="conf-has_left.wav"/>
<prompt phrase="Usted entró..." filename="ivr-you_entered.wav"/>
<prompt phrase="Número de extensión..." filename="ivr-extension_number.wav"/>
<prompt phrase="Por favor mantengase a la espera mientras contactamos con su destino." filename="ivr-please_hold_while_party_contacted.wav"/>
<prompt phrase="Por favor manténgase a la espera mientras contactamos con su destino." filename="ivr-please_hold_while_party_contacted.wav"/>
<prompt phrase="Por favor disfrute de la música mientras le conectamos con su destino." filename="ivr-please_enjoy_music_while_party_reached.wav"/>
<prompt phrase="Gracias por llamar. Si conoce la extensión de su destino, por favor marquela ahora, o marque nueve para el servicio de directorio." filename="ivr-generic_greeting.wav"/>
<prompt phrase="Gracias por llamar. Si conoce la extensión de su destino, por favor márquela ahora, o marque nueve para el servicio de directorio." filename="ivr-generic_greeting.wav"/>
<prompt phrase="Si es correcto, pulse 1. Sino, pulse 2." filename="ivr-if_correct_one_if_not_two.wav"/>
<prompt phrase="Para repetir esta información..." filename="ivr-repeat_this_information.wav"/>
<prompt phrase="No no no!" filename="ivr-no_no_no.wav"/>
<prompt phrase="Era su intención pulsar esta tecla?" filename="ivr-did_you_mean_to_press_key.wav"/>
<prompt phrase="Pensaba Usted DE VERDAD pulsar esta tecla?" filename="ivr-seriously_mean_to_press_key.wav"/>
<prompt phrase="¡No no no!" filename="ivr-no_no_no.wav"/>
<prompt phrase="¿Era su intención pulsar esta tecla?" filename="ivr-did_you_mean_to_press_key.wav"/>
<prompt phrase="¿Pensaba Usted DE VERDAD pulsar esta tecla?" filename="ivr-seriously_mean_to_press_key.wav"/>
<prompt phrase="Oh DA IGUAL." filename="ivr-oh_whatever.wav"/>
<prompt phrase="Se acabó! Un error más y le colgaré a la cara." filename="ivr-one_more_mistake.wav"/>
<prompt phrase="Felicitaciones. Ha pulsado estrella. Esto no significa que ES una estrella. Tan solo significa que puede pulsar teclas y probablemente tiene dedos." filename="ivr-congratulations_you_pressed_star.wav"/>
<prompt phrase="¡Se acabó! Un error más y le colgaré a la cara." filename="ivr-one_more_mistake.wav"/>
<prompt phrase="¡Felicitaciones! Ha pulsado estrella. Esto no significa que ES una estrella. Tan solo significa que puede pulsar teclas y probablemente tiene dedos." filename="ivr-congratulations_you_pressed_star.wav"/>
<prompt phrase="Todos nuestros ingenieros están ocupados en demostrar lo impresionante que es el CudaTel." filename="ivr-engineers_busy_assisting_other_sales.wav"/>
<prompt phrase="La persona con la que intenta hablar no está disponible y no tiene buzón de voz." filename="vm-not_available_no_voicemail.wav"/>
<prompt phrase="Este mensaje se auto-destruira en 5, 4, 3, 2, 1..." filename="ivr-message_self_destruct.wav"/>
<prompt phrase="Su llamada ya está silenciada." filename="conf-you_are_already_muted.wav"/>
<prompt phrase="Su llamada ha sido silenciada en ambos sentidos." filename="conf-you_are_now_bidirectionally_muted.wav"/>
<prompt phrase="Este mensaje se auto-destruirá en 5, 4, 3, 2, 1..." filename="ivr-message_self_destruct.wav"/>
<prompt phrase="Todas sus llamadas nos pertenecen." filename="ivr-all_your_call_are_belong_to_us.wav"/>
<prompt phrase="Me encanta como está pulsando estas teclas!" filename="ivr-love_those_touch_tones.wav"/>
<prompt phrase="¡Me encanta como está pulsando estas teclas!" filename="ivr-love_those_touch_tones.wav"/>
<prompt phrase="No, no tenemos bananas." filename="ivr-yes_we_have_no_bananas.wav"/>
<prompt phrase="Está haciendo el ridículo!" filename="ivr-dude_you_suck.wav"/>
<prompt phrase="Su llamada es muy importante para nosotros, pero su bienestar mental no lo es, así que estamos felices mantenerle a la espera, torturándole indefinidamente con nuestra pésima música en espera." filename="ivr-on_hold_indefinitely.wav"/>
<prompt phrase="¡Está haciendo el ridículo!" filename="ivr-dude_you_suck.wav"/>
<prompt phrase="Su llamada es muy importante para nosotros, pero su bienestar mental no lo es, así que estamos felices de mantenerle a la espera, torturándole indefinidamente con nuestra pésima música en espera." filename="ivr-on_hold_indefinitely.wav"/>
<prompt phrase="...ha abandonado el edificio." filename="ivr-has_left_the_building.wav"/>
<prompt phrase="Este teléfono no está asignado y no puede ser usado para realizar llamadas externas." filename="ivr-phone_is_unassigned.wav"/>
<prompt phrase="Este teléfono no está configurado correctamente." filename="ivr-phone_not_configured.wav"/>
<prompt phrase="Felicitaciones! Este teléfono está configurado correctamente y puede ahora ser asociado a un usuario." filename="ivr-phone_is_configured_properly.wav"/>
<prompt phrase="¡Felicitaciones! Este teléfono está configurado correctamente y puede ahora ser asociado a un usuario." filename="ivr-phone_is_configured_properly.wav"/>
<prompt phrase="Por favor contacte con el administrador del sistema para obtener asistencia." filename="ivr-contact_system_administrator.wav"/>
<prompt phrase="Barracuda Networks" filename="ivr-barracuda_networks.wav"/>
<prompt phrase="CudaTel Communication Server" filename="ivr-cudatel_communication_server.wav"/>
<prompt phrase="Por favor introduzca las primeras letras del nombre o apellido de la persona." filename="dir-enter_person_first_or_last.wav"/>
<prompt phrase="No hay llamadas en espera en esta cola." filename="ivr-no_calls_waiting_in_queue.wav"/>
<prompt phrase="Brian West" filename="misc-Brian_West.wav"/>
<prompt phrase="Anthony Minessale" filename="misc-Anthony_Minessale.wav"/>
<prompt phrase="Michael Jerris" filename="misc-Michael_Jerris.wav"/>
<prompt phrase="Raymond Chandler" filename="misc-Raymond_Chandler.wav"/>
<prompt phrase="Michael Collins" filename="misc-Michael_Collins.wav"/>
<prompt phrase="Mark Mann" filename="misc-Mark_Mann.wav"/>
<prompt phrase="William King" filename="misc-William_King.wav"/>
<prompt phrase="Rudy Fleminger" filename="misc-Rudy_Fleminger.wav"/>
<prompt phrase="Andrew Thompson" filename="misc-Andrew_Thompson.wav"/>
<prompt phrase="Graham Saathoff" filename="misc-Graham_Saathoff.wav"/>
<prompt phrase="Nicholaus Belluni" filename="misc-Nicholaus_Belluni.wav"/>
<prompt phrase="Sean Heiney" filename="misc-Sean_Heiney.wav"/>
<prompt phrase="Usted es el llamante prioritario. Por supuesto, todos nuestros llamantes son prioritarios, por lo que puede tener que esperar un poco." filename="ivr-youre_number_one.wav"/>
</ivr>
<misc>
<prompt phrase="Esta llamada está ahora protegida." filename="call_secured.wav"/>
@ -458,6 +471,12 @@
<prompt phrase="Ha ocurrido un error, por favor contacte con el administrador." filename="error.wav"/>
<prompt phrase="Su llamada será terminada en..." filename="misc-your_call_will_be_terminated_in.wav"/>
<prompt phrase="Su llamada ha sido terminada." filename="misc-your_call_has_been_terminated.wav"/>
<prompt phrase="Por motivos de entrenamiento y calidad, esta llamada puede ser escuchada o grabada." filename="call_secured.wav"/>
<prompt phrase="Inglés" filename="en.wav"/>
<prompt phrase="Español" filename="es.wav"/>
<prompt phrase="Esa es una extensión inválida." filename="invalid_extension.wav"/>
<prompt phrase="Este teléfono no está autorizado para realizar llamadas hacia fuera." filename="phone_not_auth.wav"/>
<prompt phrase="Lo siento." filename="sorry.wav"/>
</misc>
<zrtp>
<!-- base256 prompts for SAS -->
@ -975,11 +994,11 @@
<prompt phrase="yesteryear" filename="yesteryear.wav"/>
<!-- Event prompts -->
<prompt phrase="Bienvenidos al servicio de inscripción ZRTP." filename="zrtp-enroll_welcome.wav"/>
<prompt phrase="Usted debe verificar la cadena de carácteres con su destino. Si no coincide, indica la presencia de una escucha telefónica." filename="zrtp-check_sas.wav"/>
<prompt phrase="Usted debe verificar la cadena de caracteres con su destino. Si no coincide, indica la presencia de una escucha telefónica." filename="zrtp-check_sas.wav"/>
<prompt phrase="Solo teléfonos autenticados pueden confiar en llamadas securizadas con ZRTP. Su teléfono no está autenticado con este sistema, por lo que esta llamada no estará securizada." filename="zrtp-enroll_not_sip_registered.wav"/>
<prompt phrase="Su teléfono indica que confia en este sistema para realizar llamadas seguras con ZRTP, no necesita hacer nada más." filename="zrtp-enroll_already_enrolled.wav"/>
<prompt phrase="Solo teléfonos soportando el protócolo ZRTP pueden usar esta extensión. Su teléfono no tiene ZRTP habilitado, por lo que esta llamada no estará securizada." filename="zrtp-enroll_notzrtp.wav"/>
<prompt phrase="Este sistema esta configurado para manejar llamadas cifradas con ZRTP. Decida si permite al sistema tener la posibilidad de interceptar o monitorizar su llamada. Puede colgar una vez confirmado." filename="zrtp-enroll_confirmed.wav"/>
<prompt phrase="Su teléfono indica que confía en este sistema para realizar llamadas seguras con ZRTP, no necesita hacer nada más." filename="zrtp-enroll_already_enrolled.wav"/>
<prompt phrase="Solo teléfonos soportando el protocolo ZRTP pueden usar esta extensión. Su teléfono no tiene ZRTP habilitado, por lo que esta llamada no estará securizada." filename="zrtp-enroll_notzrtp.wav"/>
<prompt phrase="Este sistema está configurado para manejar llamadas cifradas con ZRTP. Decida si permite al sistema tener la posibilidad de interceptar o monitorizar su llamada. Puede colgar una vez confirmado." filename="zrtp-enroll_confirmed.wav"/>
<prompt phrase="Compara verbalmente este código de autenticación con su destino." filename="zrtp-is_secure.wav"/>
<prompt phrase="El código de autenticación no está verificado." filename="zrtp-is_unverified.wav"/>
<prompt phrase="El código de autenticación está verificado." filename="zrtp-is_verified.wav"/>

View File

@ -35,6 +35,8 @@
</ascii>
<phonetic-ascii>
<prompt phrase="Espacio" filename="32.wav"/>
<prompt phrase="Signo de número" filename="35.wav"/>
<prompt phrase="Asterisco" filename="42.wav"/>
<prompt phrase="Punto" filename="46.wav"/>
<prompt phrase="Alpha" filename="97.wav"/>
<prompt phrase="Bravo" filename="98.wav"/>
@ -182,7 +184,7 @@
<prompt phrase="Usted tiene..." filename="vm-you_have.wav"/>
<prompt phrase="Por favor ingrese su número de usuario, seguido por..." filename="vm-enter_id.wav"/>
<prompt phrase="Por favor ingrese su contraseña, seguido por..." filename="vm-enter_pass.wav"/>
<prompt phrase="Inicio de sesión incorrectos." filename="vm-fail_auth.wav"/>
<prompt phrase="Inicio de sesión incorrecto." filename="vm-fail_auth.wav"/>
<prompt phrase="Bienvenido a su buzon de voz." filename="vm-hello.wav"/>
<prompt phrase="Adiós." filename="vm-goodbye.wav"/>
<prompt phrase="Después del tono, por favor anote su nombre, pulse cualquier tecla o deje de hablar para poner fin a la grabación." filename="vm-record_name1.wav"/>
@ -228,27 +230,53 @@
<prompt phrase="Este buzón está lleno. Por favor intente llamar mas tarde." filename="vm-mailbox_full.wav"/>
<prompt phrase="Bienvenido a su nuevo buzón de voz. Para escuchar el tutorial y configurar su buzón, pulse 1. Para saltarlo pulse 2." filename="vm-tutorial_yes_no.wav"/>
<prompt phrase="Necesito grabar su nombre y apellido. Esta grabación se usará entre otros en el servicio de directorio." filename="vm-tutorial_record_name.wav"/>
<prompt phrase="Su número de identificación personal o PIN sirve para impedir a terceros el acceso a sus mensajes. Desea cambiar su PIN ahora?" filename="vm-tutorial_change_pin.wav"/>
<prompt phrase="Su número de identificación personal o PIN sirve para impedir a terceros el acceso a sus mensajes. ¿Desea cambiar su PIN ahora?" filename="vm-tutorial_change_pin.wav"/>
<prompt phrase="La persona con la que intenta hablar no está disponible y no tiene buzón de voz." filename="vm-not_available_no_voicemail.wav"/>
<prompt phrase="Por favor, introduzca la extensión de destino para remandar este mensaje." filename="vm-forward_enter_ext.wav"/>
<prompt phrase="...seguido de almohadilla." filename="vm-followed_by_pound.wav"/>
<prompt phrase="...seguido de..." filename="vm-followed_by.wav"/>
<prompt phrase="...ha sido cambiado a..." filename="vm-has_been_changed_to.wav"/>
<prompt phrase="marcado nuevo" filename="vm-marked_new.wav"/>
<prompt phrase="Esa fue una extensión inválida." filename="vm-that_was_an_invalid_ext.wav"/>
<prompt phrase="No hay más mensajes." filename="vm-no_more_messages.wav"/>
<prompt phrase="de" filename="vm-from.wav"/>
<prompt phrase="último" filename="vm-last.wav"/>
<prompt phrase="siguiente" filename="vm-next.wav"/>
<prompt phrase="recibido" filename="vm-received.wav"/>
<prompt phrase="recuperado" filename="vm-undeleted.wav"/>
<prompt phrase="Para borrar este mensaje..." filename="vm-delete_message.wav"/>
<prompt phrase="Para añadir una introducción a este mensaje..." filename="vm-forward_add_intro.wav"/>
<prompt phrase="Para marcar este mensaje como nuevo..." filename="vm-mark_message_new.wav"/>
<prompt phrase="Para escuchar el encabezado del mensaje..." filename="vm-message_envelope.wav"/>
<prompt phrase="Para escuchar el mensaje siguiente..." filename="vm-play_next_message.wav"/>
<prompt phrase="Para escuchar el mensaje previo..." filename="vm-play_previous_message.wav"/>
<prompt phrase="Para repetir este mensaje..." filename="vm-repeat_message.wav"/>
<prompt phrase="Para guardar este mensaje..." filename="vm-save_message.wav"/>
<prompt phrase="Para mandar este mensaje ahora..." filename="vm-send_message_now.wav"/>
<prompt phrase="Para remandar este mensaje..." filename="vm-to_forward.wav"/>
<prompt phrase="Para grabar un saludo..." filename="vm-to_record_greeting.wav"/>
<prompt phrase="Para recuperar este mensaje..." filename="vm-undelete_message.wav"/>
</voicemail>
<directory>
<prompt phrase="Por favor introduzca las primeras letras del nombre buscado." filename="dir-enter_person.wav"/>
<prompt phrase="Por favor ingrese las primeras letras del nombre buscado." filename="dir-enter_person.wav"/>
<prompt phrase="...apellido..." filename="dir-last_name.wav"/>
<prompt phrase="Para buscar por..." filename="dir-to_search_by.wav"/>
<prompt phrase="...nombre..." filename="dir-first_name.wav"/>
<prompt phrase="No hay resultados que coincidan con su busqueda." filename="dir-no_matching_results.wav"/>
<prompt phrase="...resultados coinciden con su busqueda." filename="dir-result_match.wav"/>
<prompt phrase="Su busqueda genera demasiados resultados." filename="dir-too_many_result.wav"/>
<prompt phrase="No hay resultados que coincidan con su búsqueda." filename="dir-no_matching_results.wav"/>
<prompt phrase="...resultados coinciden con su búsqueda." filename="dir-result_match.wav"/>
<prompt phrase="Su búsqueda genera demasiados resultados." filename="dir-too_many_result.wav"/>
<prompt phrase="No hay más resultados." filename="dir-no_more_results.wav"/>
<prompt phrase="Resultado número..." filename="dir-result_number.wav"/>
<prompt phrase="...en la extensión..." filename="dir-at_extension.wav"/>
<prompt phrase="Para seleccionar este resultado..." filename="dir-to_select_entry.wav"/>
<prompt phrase="Para el resultado siguiente..." filename="dir-for_next.wav"/>
<prompt phrase="Para el resultado previo..." filename="dir-for_prev.wav"/>
<prompt phrase="Para empezar una nueva busqueda..." filename="dir-start_new_search.wav"/>
<prompt phrase="Para empezar una nueva búsqueda..." filename="dir-start_new_search.wav"/>
<prompt phrase="Necesita especificar un mínimo de..." filename="dir-specify_mininum.wav"/>
<prompt phrase="...letras del nombre buscado." filename="dir-letters_of_person_name.wav"/>
<prompt phrase="Por favor intentelo de nuevo." filename="dir-please_try_again.wav"/>
<prompt phrase="Pulse..." filename="dir-press.wav" info="we can copy vm/vm-press.wav"/>
<prompt phrase="Por favor ingrese las primeras letras del nombre o apellido de la persona." filename="dir-enter_person_first_or_last.wav"/>
</directory>
<conference>
<prompt phrase="NULL" filename="conf-ack.wav" type="tone"/>
@ -267,6 +295,12 @@
<prompt phrase="PIN inválido, intente de nuevo." filename="conf-bad-pin.wav"/>
<prompt phrase="Hasta luego." filename="conf-goodbye.wav"/>
<prompt phrase="Bienvenido a la conferencia." filename="conf-welcome.wav"/>
<prompt phrase="Por favor ingrese el número de conferencia, seguido del signo de número." filename="conf-enter_conf_number.wav"/>
<prompt phrase="Ingrese el PIN de la conferencia, seguido del signo de número." filename="conf-enter_conf_pin.wav"/>
<prompt phrase="...se incorporó a la conferencia." filename="conf-has_joined.wav"/>
<prompt phrase="...ha abandonado la conferencia." filename="conf-has_left.wav"/>
<prompt phrase="Su llamada ya está silenciada." filename="conf-you_are_already_muted.wav"/>
<prompt phrase="Su llamada ha sido silenciada en ambos sentidos." filename="conf-you_are_now_bidirectionally_muted.wav"/>
</conference>
<ivr>
<prompt phrase="Número de cuenta" filename="ivr-account_number.wav"/>
@ -314,8 +348,8 @@
<prompt phrase="Soporte técnico" filename="ivr-technical_support.wav"/>
<prompt phrase="Operador" filename="ivr-operator.wav"/>
<prompt phrase="Usted marcó una extensión inválida." filename="ivr-you_have_dialed_an_invalid_extension.wav"/>
<prompt phrase="Por favor introduzca su número de extensión, seguido de la tecla almohadilla." filename="ivr-please_enter_extension_followed_by_pound.wav"/>
<prompt phrase="Por favor introduzca su contraseña, seguido de la tecla almohadilla." filename="ivr-please_enter_pin_followed_by_pound.wav"/>
<prompt phrase="Por favor ingrese su número de extensión, seguido del signo de número." filename="ivr-please_enter_extension_followed_by_pound.wav"/>
<prompt phrase="Por favor ingrese su contraseña, seguido del signo de número." filename="ivr-please_enter_pin_followed_by_pound.wav"/>
<prompt phrase="Su contraseña o extensión es inválida." filename="ivr-pin_or_extension_is-invalid.wav"/>
<prompt phrase="Usted esta a punto de asociar este teléfono a su cuenta..." filename="ivr-you_are_about_to_provision_this_phone.wav"/>
<prompt phrase="Por favor vuelva a introducir su contraseña para confirmar." filename="ivr-please_reenter_your_pin.wav"/>
@ -326,7 +360,7 @@
<prompt phrase="Usted está ahora desconectado." filename="ivr-you_are_now_logged_out.wav"/>
<prompt phrase="Por favor intentelo de nuevo." filename="ivr-please_try_again.wav"/>
<prompt phrase="Usted está a punto de asociar este teléfono a su cuenta de forma permanente." filename="ivr-provision_phone_permanently_to_extension.wav"/>
<prompt phrase="Por favor introduzca su número de extensión con la cual desea asociar su teléfono, seguido de la tecla almohadilla." filename="ivr-extension_to_provision_this_phone.wav"/>
<prompt phrase="Por favor ingrese su número de extensión con la cual desea asociar su teléfono, seguido del signo de número." filename="ivr-extension_to_provision_this_phone.wav"/>
<prompt phrase="Gracias, este teléfono va a reiniciarse ahora." filename="ivr-this_phone_will_now_reboot.wav"/>
<prompt phrase="Gracias, su grabación ha sido guardada." filename="ivr-recording_saved.wav"/>
<prompt phrase="Pulse 1 para guardar su grabación. Pulse 2 para escuchar su grabación. Pulse 3 para volver a grabar." filename="ivr-save_review_record.wav"/>
@ -337,39 +371,38 @@
<prompt phrase="El tiempo estimado de espera es..." filename="ivr-estimated_hold_time.wav"/>
<prompt phrase="Más de..." filename="ivr-more_than.wav"/>
<prompt phrase="Menos de..." filename="ivr-less_than.wav"/>
<prompt phrase="Empieze a grabar." filename="ivr-begin_recording.wav "/>
<prompt phrase="Empiece a grabar." filename="ivr-begin_recording.wav "/>
<prompt phrase="El desvío de llamada ha sido desactivado." filename="ivr-call_forwarding_has_been_cancelled.wav"/>
<prompt phrase="El desvío de llamada ha sido activado." filename="ivr-call_forwarding_has_been_set.wav"/>
<prompt phrase="Por favor introduzca el número de teléfono." filename="ivr-please_enter_the_phone_number.wav"/>
<prompt phrase="Por favor ingrese el número de teléfono." filename="ivr-please_enter_the_phone_number.wav"/>
<prompt phrase="Por favor diga su nombre, y la razón de la llamada." filename="ivr-please_state_your_name_and_reason_for_calling.wav"/>
<prompt phrase="Para aceptar, pulse 1. Para rechazar, pulse 2. Para mandar a buzón de voz, pulse 3." filename="ivr-accept_reject_voicemail.wav"/>
<prompt phrase="Llamada entrante." filename="ivr-incoming_call.wav"/>
<prompt phrase="Gracias por llamar." filename="ivr-thank_you_for_calling.wav"/>
<prompt phrase="Por favor mentengase a la espera. Su llamada será atendida en un momento." filename="ivr-stay_on_line_call_answered_momentarily.wav"/>
<prompt phrase="Por favor manténgase a la espera. Su llamada será atendida en un momento." filename="ivr-stay_on_line_call_answered_momentarily.wav"/>
<prompt phrase="Su llamada está siendo procesada." filename="ivr-call_being_transferred.wav"/>
<prompt phrase="Por favor disfrute de la música mientras su llamada está siendo procesada..." filename="ivr-enjoy_music_while_transfer.wav"/>
<prompt phrase="Usted tiene una llamada de..." filename="ivr-call_from.wav"/>
<prompt phrase="Este menú no tiene entradas. Por favor contacte con el administrador." filename="ivr-no_menu_items.wav"/>
<prompt phrase="Para el servicio de directorio, pulse..." filename="ivr-for_directory_press.wav"/>
<prompt phrase="Usando las teclas de su teléfono..." filename="ivr-using_telephone_keypad.wav"/>
<prompt phrase="Introduzca las primeras letras del apellido de la persona." filename="ivr-enter_letters_last_name.wav"/>
<prompt phrase="Introduzca las primeras letras del nombre de la persona." filename="ivr-enter_letters_first_name.wav"/>
<prompt phrase="Introduzca las primeras letras del nombre o apellido de la persona." filename="ivr-enter_letters_first_or_last_name.wav"/>
<prompt phrase="Ingrese las primeras letras del apellido de la persona." filename="ivr-enter_letters_last_name.wav"/>
<prompt phrase="Ingrese las primeras letras del nombre de la persona." filename="ivr-enter_letters_first_name.wav"/>
<prompt phrase="Ingrese las primeras letras del nombre o apellido de la persona." filename="ivr-enter_letters_first_or_last_name.wav"/>
<prompt phrase="Si es correcto, pulse..." filename="ivr-if_correct_press.wav"/>
<prompt phrase="Sino, pulse..." filename="ivr-if_not_press.wav"/>
<prompt phrase="Cuando termine, pulse la tecla almohadilla." filename="ivr-finished_pound_hash_key.wav"/>
<prompt phrase="Cuando termine, pulse el signo de número." filename="ivr-finished_pound_hash_key.wav"/>
<prompt phrase="La función de No Molestar ha sido activada." filename="ivr-dnd_activated.wav"/>
<prompt phrase="La función de No Molestar ha sido desactivada." filename="ivr-dnd_cancelled.wav"/>
<prompt phrase="Pulse cualquier otro dígito..." filename="ivr-any_other_digit.wav"/>
<prompt phrase="Pulse uno si su respuesta es sí. Pulse dos si su respuesta es no." filename="ivr-one_yes_two_no.wav"/>
<prompt phrase="Por favor introduzca el número de la cola, seguido de la tecla almohadilla." filename="ivr-enter_queue_number.wav"/>
<prompt phrase="Por favor introduzca el..." filename="ivr-please_enter_the.wav"/>
<prompt phrase="Por favor ingrese el número de la cola, seguido del signo de número." filename="ivr-enter_queue_number.wav"/>
<prompt phrase="Por favor ingrese el..." filename="ivr-please_enter_the.wav"/>
<prompt phrase="Número." filename="ivr-number.wav"/>
<prompt phrase="...seguido de la tecla almohadilla." filename="ivr-followed_by_pound.wav"/>
<prompt phrase="...seguido del signo de número." filename="ivr-followed_by_pound.wav"/>
<prompt phrase="El balance de la cuenta es..." filename="ivr-account_balance_is.wav"/>
<prompt phrase="Gracias por llamar. Si conoce la extensión de su destino, por favor marquela ahora. Para acceder al directorio, pulse..." filename="ivr-generic_greeting.wav"/>
<prompt phrase="...fichero..." filename="ivr-file.wav"/>
<prompt phrase="...ficheros..." filename="ivr-files-.wav"/>
<prompt phrase="...ficheros..." filename="ivr-files.wav"/>
<prompt phrase="Para una llamada de despertador..." filename="ivr-for_a_wakeup_call.wav"/>
<prompt phrase="Este es el servicio de despertador." filename="ivr-this_is_your_wakeup_call.wav"/>
<prompt phrase="Para solicitar una llamada de despertador..." filename="ivr-request_wakeup_call.wav"/>
@ -384,66 +417,46 @@
<prompt phrase="Para una llamada de despertador única..." filename="ivr-for_one_time_wakeup_call.wav"/>
<prompt phrase="Llamada de despertador única..." filename="ivr-one_time_wakeup_call.wav"/>
<prompt phrase="...llamada de despertador..." filename="ivr-wakeup_call.wav"/>
<prompt phrase="¡Vamos despierta cielo!" filename="ivr-wakey_wakey_sunshine.wav"/>
<prompt phrase="¡Vamos, despierta cielo!" filename="ivr-wakey_wakey_sunshine.wav"/>
<prompt phrase="Bienvenido." filename="ivr-welcome.wav"/>
<prompt phrase="Bienvenido a..." filename="ivr-welcome_to.wav"/>
<prompt phrase="Buenos días." filename="ivr-good_morning.wav"/>
<prompt phrase="Buenas tardes." filename="ivr-good_afternoon.wav"/>
<prompt phrase="Buenas noches." filename="ivr-good_evening.wav"/>
<prompt phrase="Gracias." filename="ivr-Thank_you.wav"/>
<prompt phrase="Para..." filename="ivr-for.wav"/>
<prompt phrase="El tiempo de espera esta siendo anormalmente elevado." filename="ivr-longer_than_usual_hold_times.wav"/>
<prompt phrase="Usted es el..." filename="ivr-you_are_the.wav"/>
<prompt phrase="Un momento por favor." filename="ivr-one_moment_please.wav"/>
<prompt phrase="Su llamada será atendida según el orden de entrada." filename="ivr-call_answered_order_received.wav"/>
<prompt phrase="Por favor introduzca el número de conferencia, seguido de la tecla almohadilla." filename="conf-enter_conf_number.wav"/>
<prompt phrase="Introduzca el PIN de la conferencia, seguido de la tecla almohadilla." filename="conf-enter_conf_pin.wav"/>
<prompt phrase="...se incorporó a la conferencia." filename="conf-has_joined.wav"/>
<prompt phrase="...ha abandonado la conferencia." filename="conf-has_left.wav"/>
<prompt phrase="Usted entró..." filename="ivr-you_entered.wav"/>
<prompt phrase="Número de extensión..." filename="ivr-extension_number.wav"/>
<prompt phrase="Por favor mantengase a la espera mientras contactamos con su destino." filename="ivr-please_hold_while_party_contacted.wav"/>
<prompt phrase="Por favor manténgase a la espera mientras contactamos con su destino." filename="ivr-please_hold_while_party_contacted.wav"/>
<prompt phrase="Por favor disfrute de la música mientras le conectamos con su destino." filename="ivr-please_enjoy_music_while_party_reached.wav"/>
<prompt phrase="Gracias por llamar. Si conoce la extensión de su destino, por favor marquela ahora, o marque nueve para el servicio de directorio." filename="ivr-generic_greeting.wav"/>
<prompt phrase="Gracias por llamar. Si conoce la extensión de su destino, por favor márquela ahora, o marque nueve para el servicio de directorio." filename="ivr-generic_greeting.wav"/>
<prompt phrase="Si es correcto, pulse 1. Sino, pulse 2." filename="ivr-if_correct_one_if_not_two.wav"/>
<prompt phrase="Para repetir esta información..." filename="ivr-repeat_this_information.wav"/>
<prompt phrase="No no no!" filename="ivr-no_no_no.wav"/>
<prompt phrase="Era su intención pulsar esta tecla?" filename="ivr-did_you_mean_to_press_key.wav"/>
<prompt phrase="Pensaba Usted DE VERDAD pulsar esta tecla?" filename="ivr-seriously_mean_to_press_key.wav"/>
<prompt phrase="¡No no no!" filename="ivr-no_no_no.wav"/>
<prompt phrase="¿Era su intención pulsar esta tecla?" filename="ivr-did_you_mean_to_press_key.wav"/>
<prompt phrase="¿Pensaba Usted DE VERDAD pulsar esta tecla?" filename="ivr-seriously_mean_to_press_key.wav"/>
<prompt phrase="Oh DA IGUAL." filename="ivr-oh_whatever.wav"/>
<prompt phrase="No más! Un error más y le colgaré a la cara." filename="ivr-one_more_mistake.wav"/>
<prompt phrase="Felicitaciones. Ha pulsado estrella. Esto no significa que ES una estrella. Tan solo significa que puede pulsar teclas y probablemente tiene dedos." filename="ivr-congratulations_you_pressed_star.wav"/>
<prompt phrase="¡No más! Un error más y le colgaré a la cara." filename="ivr-one_more_mistake.wav"/>
<prompt phrase="¡Felicitaciones! Ha pulsado estrella. Esto no significa que ES una estrella. Tan solo significa que puede pulsar teclas y probablemente tiene dedos." filename="ivr-congratulations_you_pressed_star.wav"/>
<prompt phrase="Todos nuestros ingenieros están ocupados en demostrar lo impresionante que es el CudaTel." filename="ivr-engineers_busy_assisting_other_sales.wav"/>
<prompt phrase="La persona con la que intenta hablar no está disponible y no tiene buzón de voz." filename="vm-not_available_no_voicemail.wav"/>
<prompt phrase="Este mensaje se auto-destruira en 5, 4, 3, 2, 1..." filename="ivr-message_self_destruct.wav"/>
<prompt phrase="Su llamada ya está silenciada." filename="conf-you_are_already_muted.wav"/>
<prompt phrase="Su llamada ha sido silenciada en ambos sentidos." filename="conf-you_are_now_bidirectionally_muted.wav"/>
<prompt phrase="Este mensaje se auto-destruirá en 5, 4, 3, 2, 1..." filename="ivr-message_self_destruct.wav"/>
<prompt phrase="Todas sus llamadas nos pertenecen." filename="ivr-all_your_call_are_belong_to_us.wav"/>
<prompt phrase="Me encanta como está pulsando estas teclas!" filename="ivr-love_those_touch_tones.wav"/>
<prompt phrase="¡Me encanta como está pulsando estas teclas!" filename="ivr-love_those_touch_tones.wav"/>
<prompt phrase="No, no tenemos bananas." filename="ivr-yes_we_have_no_bananas.wav"/>
<prompt phrase="Hombre, estas siendo ridículo!" filename="ivr-dude_you_suck.wav"/>
<prompt phrase="Su llamada es muy importante para nosotros, pero su bienestar mental no lo es, asi que estamos felices mantenerle a la espera, torturandole indefinidamente con nuestra péssima música en espera." filename="ivr-on_hold_indefinitely.wav"/>
<prompt phrase="¡Hombre, estas siendo ridículo!" filename="ivr-dude_you_suck.wav"/>
<prompt phrase="Su llamada es muy importante para nosotros, pero su bienestar mental no lo es, asi que estamos felices de mantenerle a la espera, torturandole indefinidamente con nuestra péssima música en espera." filename="ivr-on_hold_indefinitely.wav"/>
<prompt phrase="...ha dejado el edificio." filename="ivr-has_left_the_building.wav"/>
<prompt phrase="Este teléfono no está asignado y no puede ser usado para realizar llamadas externas." filename="ivr-phone_is_unassigned.wav"/>
<prompt phrase="Este teléfono no está configurado correctamente." filename="ivr-phone_not_configured.wav"/>
<prompt phrase="Felicitaciones! Este teléfono está configurado correctamente y puede ahora ser asociado a un usuario." filename="ivr-phone_is_configured_properly.wav"/>
<prompt phrase="¡Felicitaciones! Este teléfono está configurado correctamente y puede ahora ser asociado a un usuario." filename="ivr-phone_is_configured_properly.wav"/>
<prompt phrase="Por favor contacte con el administrador del sistema para obtener asistencia." filename="ivr-contact_system_administrator.wav"/>
<prompt phrase="Barracuda Networks" filename="ivr-barracuda_networks.wav"/>
<prompt phrase="CudaTel Communication Server" filename="ivr-cudatel_communication_server.wav"/>
<prompt phrase="Por favor introduzca las primeras letras del nombre o apellido de la persona." filename="dir-enter_person_first_or_last.wav"/>
<prompt phrase="No hay llamadas en espera en esta cola." filename="ivr-no_calls_waiting_in_queue.wav"/>
<prompt phrase="Brian West" filename="misc-Brian_West.wav"/>
<prompt phrase="Anthony Minessale" filename="misc-Anthony_Minessale.wav"/>
<prompt phrase="Michael Jerris" filename="misc-Michael_Jerris.wav"/>
<prompt phrase="Raymond Chandler" filename="misc-Raymond_Chandler.wav"/>
<prompt phrase="Michael Collins" filename="misc-Michael_Collins.wav"/>
<prompt phrase="Mark Mann" filename="misc-Mark_Mann.wav"/>
<prompt phrase="William King" filename="misc-William_King.wav"/>
<prompt phrase="Rudy Fleminger" filename="misc-Rudy_Fleminger.wav"/>
<prompt phrase="Andrew Thompson" filename="misc-Andrew_Thompson.wav"/>
<prompt phrase="Graham Saathoff" filename="misc-Graham_Saathoff.wav"/>
<prompt phrase="Nicholaus Belluni" filename="misc-Nicholaus_Belluni.wav"/>
<prompt phrase="Sean Heiney" filename="misc-Sean_Heiney.wav"/>
<prompt phrase="Usted es el llamante prioritario. Por supuesto, todos nuestros llamantes son prioritarios, por lo que puede tener que esperar un poco." filename="ivr-youre_number_one.wav"/>
</ivr>
<misc>
<prompt phrase="Esta llamada ha sido asegurada." filename="call_secured.wav"/>
@ -457,6 +470,12 @@
<prompt phrase="Un error ha ocurrido, por favor contacte al administrador." filename="error.wav"/>
<prompt phrase="Su llamada será terminada en..." filename="misc-your_call_will_be_terminated_in.wav"/>
<prompt phrase="Su llamada ha sido terminada." filename="misc-your_call_has_been_terminated.wav"/>
<prompt phrase="Por motivos de entrenamiento y calidad, esta llamada puede ser escuchada o grabada." filename="call_secured.wav"/>
<prompt phrase="Inglés" filename="en.wav"/>
<prompt phrase="Español" filename="es.wav"/>
<prompt phrase="Esa es una extensión inválida." filename="invalid_extension.wav"/>
<prompt phrase="Este teléfono no está autorizado para realizar llamadas hacia fuera." filename="phone_not_auth.wav"/>
<prompt phrase="Lo siento." filename="sorry.wav"/>
</misc>
<zrtp>
<!-- base256 prompts for SAS -->
@ -974,11 +993,11 @@
<prompt phrase="yesteryear" filename="yesteryear.wav"/>
<!-- Event prompts -->
<prompt phrase="Bienvenidos al servicio de inscripción ZRTP." filename="zrtp-enroll_welcome.wav"/>
<prompt phrase="Usted debe verificar la cadena de carácteres con su destino. Si no coincide, indica la presencia de una escucha telefónica." filename="zrtp-check_sas.wav"/>
<prompt phrase="Usted debe verificar la cadena de caracteres con su destino. Si no coincide, indica la presencia de una escucha telefónica." filename="zrtp-check_sas.wav"/>
<prompt phrase="Solo teléfonos autenticados pueden confiar en llamadas seguras con ZRTP. Su teléfono no está autenticado con este sistema, su llamada no estará securizada." filename="zrtp-enroll_not_sip_registered.wav"/>
<prompt phrase="Su teléfono indica que confia en este sistema para realizar llamadas seguras con ZRTP, no necesita hacer nada más." filename="zrtp-enroll_already_enrolled.wav"/>
<prompt phrase="Solo teléfonos soportando el protócolo ZRTP pueden usar esta extensión. Su teléfono no tiene ZRTP habilitado, y está llamada no será securizada." filename="zrtp-enroll_notzrtp.wav"/>
<prompt phrase="Este sistema esta configurado para manejar llamadas cifradas con ZRTP. Decida si permite al sistema tener la posibilidad de interceptar o monitorizar su llamada. Puede colgar una vez confirmado." filename="zrtp-enroll_confirmed.wav"/>
<prompt phrase="Su teléfono indica que confía en este sistema para realizar llamadas seguras con ZRTP, no necesita hacer nada más." filename="zrtp-enroll_already_enrolled.wav"/>
<prompt phrase="Solo teléfonos soportando el protocolo ZRTP pueden usar esta extensión. Su teléfono no tiene ZRTP habilitado, y está llamada no será securizada." filename="zrtp-enroll_notzrtp.wav"/>
<prompt phrase="Este sistema está configurado para manejar llamadas cifradas con ZRTP. Decida si permite al sistema tener la posibilidad de interceptar o monitorizar su llamada. Puede colgar una vez confirmado." filename="zrtp-enroll_confirmed.wav"/>
<prompt phrase="Compara verbalmente este código de autenticación con su destino." filename="zrtp-is_secure.wav"/>
<prompt phrase="El código de autenticación no está verificado." filename="zrtp-is_unverified.wav"/>
<prompt phrase="El código de autenticación está verificado." filename="zrtp-is_verified.wav"/>

File diff suppressed because it is too large Load Diff

View File

@ -34,6 +34,8 @@
</ascii>
<phonetic-ascii>
<prompt phrase="Espaço" filename="32.wav"/>
<prompt phrase="Cardinal" filename="35.wav"/>
<prompt phrase="Asterisco" filename="42.wav"/>
<prompt phrase="Ponto" filename="46.wav"/>
<prompt phrase="Alpha" filename="97.wav"/>
<prompt phrase="Bravo" filename="98.wav"/>
@ -224,10 +226,35 @@
<prompt phrase="Bem-Vindo ao seu voicemail. Para ouvir o tutorial e configurar o seu voicemail, pressione um. Para saltar-lo pressione dois." filename="vm-tutorial_yes_no.wav"/>
<prompt phrase="Necessita gravar o seu nome e sobrenome. Esta gravação é usada entre outros, no serviço de directório." filename="vm-tutorial_record_name.wav"/>
<prompt phrase="O número de identificação pessoal ou PIN serve para impedir o acesso de terceiros às suas mensagens. Deseja alterar o seu PIN agora?" filename="vm-tutorial_change_pin.wav"/>
<prompt phrase="O destino que deseja contactar não está disponível e não tem correio de voz." filename="vm-not_available_no_voicemail.wav"/>
<prompt phrase="Por favor introduza a extensão para a qual pretende encaminhar esta mensagem." filename="vm-forward_enter_ext.wav"/>
<prompt phrase="...seguido de cardinal." filename="vm-followed_by_pound.wav"/>
<prompt phrase="...seguido de..." filename="vm-followed_by.wav"/>
<prompt phrase="...foi alterado para..." filename="vm-has_been_changed_to.wav"/>
<prompt phrase="Marcada como nova" filename="vm-marked_new.wav"/>
<prompt phrase="Essa era uma extensão inválida." filename="vm-that_was_an_invalid_ext.wav"/>
<prompt phrase="Não há mais mensagens." filename="vm-no_more_messages.wav"/>
<prompt phrase="De" filename="vm-from.wav"/>
<prompt phrase="último" filename="vm-last.wav"/>
<prompt phrase="seguinte" filename="vm-next.wav"/>
<prompt phrase="Recebido" filename="vm-received.wav"/>
<prompt phrase="Recuperada" filename="vm-undeleted.wav"/>
<prompt phrase="Para apagar esta mensagem..." filename="vm-delete_message.wav"/>
<prompt phrase="Para adicionar uma introdução a esta mensagem..." filename="vm-forward_add_intro.wav"/>
<prompt phrase="Para marcar esta mensagem como nova..." filename="vm-mark_message_new.wav"/>
<prompt phrase="Para ouvir o cabeçalho da mensagem..." filename="vm-message_envelope.wav"/>
<prompt phrase="Para ouvir a mensagem seguinte..." filename="vm-play_next_message.wav"/>
<prompt phrase="Para ouvir a mensagem anterior..." filename="vm-play_previous_message.wav"/>
<prompt phrase="Para repetir esta mensagem..." filename="vm-repeat_message.wav"/>
<prompt phrase="Para guardar esta mensagem..." filename="vm-save_message.wav"/>
<prompt phrase="Para enviar esta mensagem agora..." filename="vm-send_message_now.wav"/>
<prompt phrase="Para encaminhar esta mensagem..." filename="vm-to_forward.wav"/>
<prompt phrase="Para gravar uma saudação..." filename="vm-to_record_greeting.wav"/>
<prompt phrase="Para recuperar esta mensagem..." filename="vm-undelete_message.wav"/>
</voicemail>
<directory>
<prompt phrase="Por favor introduza as primeiras letras do nome da pessoa." filename="dir-enter-person.wav"/>
<prompt phrase="...último nome..." filename="dir-last_name.wav"/>
<prompt phrase="...apelido..." filename="dir-last_name.wav"/>
<prompt phrase="Para pesquisar por..." filename="dir-to_search_by.wav"/>
<prompt phrase="...primeiro nome..." filename="dir-first_name.wav"/>
<prompt phrase="Não foram encontrados resultados, tente novamente." filename="dir-no_match_entry.wav"/>
@ -243,6 +270,7 @@
<prompt phrase="Você necessita de especificar um mínimo de..." filename="dir-specify_mininum_first.wav"/>
<prompt phrase="...letras do nome da pessoa, tente novamente." filename="dir-letters_of_person_name.wav"/>
<prompt phrase="marque" filename="dir-press.wav"/>
<prompt phrase="Por favor, introduza as primeiras letras do nome ou apelido da pessoa" filename="dir-enter_person_first_or_last.wav"/>
</directory>
<conference>
<prompt phrase="NULL" filename="conf-ack.wav" type="tone"/>
@ -261,6 +289,12 @@
<prompt phrase="PIN inválido, tente novamente." filename="conf-bad-pin.wav"/>
<prompt phrase="Até breve." filename="conf-goodbye.wav"/>
<prompt phrase="Bem-vindo à conferência." filename="conf-welcome.wav"/>
<prompt phrase="Por favor marque o número da conferência, seguido de cardinal" filename="conf-enter_conf_number.wav"/>
<prompt phrase="Introduza o número PIN da conferência, seguido de cardinal." filename="conf-enter_conf_pin.wav"/>
<prompt phrase="...entrou na conferência." filename="conf-has_joined.wav"/>
<prompt phrase="...abandonou a conferência." filename="conf-has_left.wav"/>
<prompt phrase="Você já está em silêncio." filename="conf-you_are_already_muted.wav"/>
<prompt phrase="Você está agora em silêncio em ambos sentidos." filename="conf-you_are_now_bidirectionally_muted.wav"/>
</conference>
<ivr>
<prompt phrase="Número da conta" filename="ivr-account_number.wav"/>
@ -273,7 +307,7 @@
<prompt phrase="Por favor" filename="ivr-please.wav"/>
<prompt phrase="Por favor devolva a nossa chamada às..." filename="ivr-please_return_our_call_at.wav"/>
<prompt phrase="De acordo com o número de referência" filename="ivr-regarding_reference_number.wav"/>
<prompt phrase="Este é um exemplo de um submenu IVR..." filename="ivr-sample_submenu.wav"/>
<prompt phrase="Este é um exemplo de um submenu de Resposta Interactiva de Voz..." filename="ivr-sample_submenu.wav"/>
<prompt phrase="Por favor diga o seu nome depois do sinal." filename="ivr-say_name.wav"/>
<prompt phrase="Enviar esta chamada para o correio de voz." filename="ivr-send_to_voicemail.wav"/>
<prompt phrase="Para falar com um responsável do apoio a clientes..." filename="ivr-speak_to_a_customer_service_representative.wav"/>
@ -285,7 +319,7 @@
<prompt phrase="Para ligar à conferência FreeSWITCH..." filename="ivr-to_call_the_freeswitch_conference.wav"/>
<prompt phrase="Para realizar um teste FreeSWITCH eco..." filename="ivr-to_do_a_freeswitch_echo_test.wav"/>
<prompt phrase="Para realizar um teste FWD eco..." filename="ivr-to_do_a_fwd_echo_test.wav"/>
<prompt phrase="Para ouvir o exemplo de um submenu IVR..." filename="ivr-to_hear_sample_submenu.wav"/>
<prompt phrase="Para ouvir o exemplo de um submenu de Resposta Interactiva de Voz..." filename="ivr-to_hear_sample_submenu.wav"/>
<prompt phrase="Para ouvir gritaria de macacos..." filename="ivr-to_hear_screaming_monkeys.wav"/>
<prompt phrase="Para ouvir música em espera..." filename="ivr-to_listen_to_moh.wav"/>
<prompt phrase="Para ouvir novamente estas opções..." filename="ivr-to_repeat_these_options.wav"/>
@ -361,9 +395,8 @@
<prompt phrase="Número." filename="ivr-number.wav"/>
<prompt phrase="...seguido de cardinal." filename="ivr-followed_by_pound.wav"/>
<prompt phrase="O saldo da conta é..." filename="ivr-account_balance_is.wav"/>
<prompt phrase="Obrigado por telefonar. Se conhece a extensão do destinatário, por favor marque-a agora. Para ir para o directório, marque..." filename="ivr-generic_greeting.wav"/>
<prompt phrase="...ficheiro..." filename="ivr-file.wav"/>
<prompt phrase="...ficheiros..." filename="ivr-files-.wav"/>
<prompt phrase="...ficheiros..." filename="ivr-files.wav"/>
<prompt phrase="Para uma chamada de despertar..." filename="ivr-for_a_wakeup_call.wav"/>
<prompt phrase="Esta é a sua chamada de despertar." filename="ivr-this_is_your_wakeup_call.wav"/>
<prompt phrase="Para solicitar uma chamada de despertar..." filename="ivr-request_wakeup_call.wav"/>
@ -384,16 +417,11 @@
<prompt phrase="Bom dia." filename="ivr-good_morning.wav"/>
<prompt phrase="Boa tarde." filename="ivr-good_afternoon.wav"/>
<prompt phrase="Boa noite." filename="ivr-good_evening.wav"/>
<prompt phrase="Obrigado." filename="ivr-Thank_you.wav"/>
<prompt phrase="Para..." filename="ivr-for.wav"/>
<prompt phrase="Estamos a observar tempos de espera superiores ao normal." filename="ivr-longer_than_usual_hold_times.wav"/>
<prompt phrase="Você é o..." filename="ivr-you_are_the.wav"/>
<prompt phrase="Um momento por favor." filename="ivr-one_moment_please.wav"/>
<prompt phrase="A sua chamada será atendida pela ordem que foi recebida." filename="ivr-call_answered_order_received.wav"/>
<prompt phrase="Por favor marque o número da conferência, seguido de cardinal" filename="conf-enter_conf_number.wav"/>
<prompt phrase="Introduza o número PIN da conferência, seguido de cardinal." filename="conf-enter_conf_pin.wav"/>
<prompt phrase="...entrou na conferência." filename="conf-has_joined.wav"/>
<prompt phrase="...abandonou a conferência." filename="conf-has_left.wav"/>
<prompt phrase="Você entrou..." filename="ivr-you_entered.wav"/>
<prompt phrase="Número da extensão..." filename="ivr-extension_number.wav"/>
<prompt phrase="Por favor aguarde enquanto contactamos com o destinatário." filename="ivr-please_hold_while_party_contacted.wav"/>
@ -408,10 +436,7 @@
<prompt phrase="Já chega! Um erro mais e desligo a chamada." filename="ivr-one_more_mistake.wav"/>
<prompt phrase="Felicidades, você pressionou estrela. Isto não significa que você é uma estrela. Apenas significa que pode pressionar teclas e que provavelmente tem dedos." filename="ivr-congratulations_you_pressed_star.wav"/>
<prompt phrase="Todos os nossos engenheiros estão ocupados demonstrando como é impressionante CudaTel." filename="ivr-engineers_busy_assisting_other_sales.wav"/>
<prompt phrase="O destino que deseja contactar não está disponível e não tem correio de voz." filename="vm-not_available_no_voicemail.wav"/>
<prompt phrase="Esta mensagem vai autodestruir-se em 5, 4, 3, 2, 1..." filename="ivr-message_self_destruct.wav"/>
<prompt phrase="Você já está em silêncio." filename="conf-you_are_already_muted.wav"/>
<prompt phrase="Você está agora em silêncio em ambos sentidos." filename="conf-you_are_now_bidirectionally_muted.wav"/>
<prompt phrase="Todas as suas chamadas pertencem-nos." filename="ivr-all_your_call_are_belong_to_us.wav"/>
<prompt phrase="Adoro a forma como você pressiona as teclas!" filename="ivr-love_those_touch_tones.wav"/>
<prompt phrase="Sim, nós não temos bananas." filename="ivr-yes_we_have_no_bananas.wav"/>
@ -424,20 +449,8 @@
<prompt phrase="Por favor contacte o administrador do sistema para assistência." filename="ivr-contact_system_administrator.wav"/>
<prompt phrase="Barracuda Networks" filename="ivr-barracuda_networks.wav"/>
<prompt phrase="CudaTel Communication Server" filename="ivr-cudatel_communication_server.wav"/>
<prompt phrase="Por favor, introduza as primeiras letras do primeiro ou último nome da pessoa" filename="dir-enter_person_first_or_last.wav"/>
<prompt phrase="Não há mais chamadas á espera nesta fila." filename="ivr-no_calls_waiting_in_queue.wav"/>
<prompt phrase="Brian West" filename="misc-Brian_West.wav"/>
<prompt phrase="Anthony Minessale" filename="misc-Anthony_Minessale.wav"/>
<prompt phrase="Michael Jerris" filename="misc-Michael_Jerris.wav"/>
<prompt phrase="Raymond Chandler" filename="misc-Raymond_Chandler.wav"/>
<prompt phrase="Michael Collins" filename="misc-Michael_Collins.wav"/>
<prompt phrase="Mark Mann" filename="misc-Mark_Mann.wav"/>
<prompt phrase="William King" filename="misc-William_King.wav"/>
<prompt phrase="Rudy Fleminger" filename="misc-Rudy_Fleminger.wav"/>
<prompt phrase="Andrew Thompson" filename="misc-Andrew_Thompson.wav"/>
<prompt phrase="Graham Saathoff" filename="misc-Graham_Saathoff.wav"/>
<prompt phrase="Nicholaus Belluni" filename="misc-Nicholaus_Belluni.wav"/>
<prompt phrase="Sean Heiney" filename="misc-Sean_Heiney.wav"/>
<prompt phrase="Você é o cliente número um. Claro, todos os nossos clientes são número um na nossa lista, portanto você pode ter que esperar um pouco." filename="ivr-youre_number_one.wav"/>
</ivr>
<misc>
<prompt phrase="Foi activada a segurança para esta chamada." filename="call_secured.wav"/>
@ -451,6 +464,12 @@
<prompt phrase="Ocorreu um erro, por favor entre em contacto com o administrador." filename="error.wav"/>
<prompt phrase="A sua chamada irá terminar em..." filename="misc-your_call_will_be_terminated_in.wav"/>
<prompt phrase="A sua chamada foi concluída." filename="misc-your_call_has_been_terminated.wav"/>
<prompt phrase="Esta chamada pode estar a ser ouvida ou pode ser gravada, com objectivos de treino e de testes de qualidade." filename="call_secured.wav"/>
<prompt phrase="Inglês" filename="en.wav"/>
<prompt phrase="Espanhol" filename="es.wav"/>
<prompt phrase="Essa é uma extensão inválida." filename="invalid_extension.wav"/>
<prompt phrase="Este telefone não está autorizado a realizar chamadas para o exterior." filename="phone_not_auth.wav"/>
<prompt phrase="Lamento." filename="sorry.wav"/>
</misc>
<zrtp>
<!-- base256 prompts for SAS -->
@ -972,7 +991,7 @@
<prompt phrase="Apenas telefones que estão autenticados podem ser configurados para usarem este sistema de retransmissão ZRTP para chamadas com modo de segurança activo. Se o seu telefone não está autenticado com o sistema, esta chamada não terá qualquer efeito." filename="zrtp-enroll_not_sip_registered.wav"/>
<prompt phrase="O seu telefone indica que já confia neste sistema de retransmissão ZRTP para chamadas com o modo de segurança activo, portanto você já não precisa de fazer mais nada." filename="zrtp-enroll_already_enrolled.wav"/>
<prompt phrase="Apenas telefones equipados com o protocolo ZRTP podem usar esta extensão. O seu telefone não suporta ZRTP, portanto esta chamada não terá qualquer efeito." filename="zrtp-enroll_notzrtp.wav"/>
<prompt phrase="Este sistema está preparado para suportar chamadas encriptadas ZRTP. Você deve determinar se deseja permitir que o sistema possa interceptar ou gravar as suas chamadas telefónicas com o modo de segurança activado. Você pode desligar após confirmar este comportamento." filename="zrtp-enroll_confirmed.wav"/>
<prompt phrase="Este sistema está preparado para suportar chamadas telefónicas encriptadas em ZRTP. Você deve determinar se deseja permitir que o sistema possa interceptar ou gravar as suas chamadas telefónicas com o modo de segurança activado. Você pode desligar após confirmar este comportamento." filename="zrtp-enroll_confirmed.wav"/>
<prompt phrase="Comparando verbalmente o código desta autenticação com o destinatário." filename="zrtp-is_secure.wav"/>
<prompt phrase="O código de autenticação não foi verificado." filename="zrtp-is_unverified.wav"/>
<prompt phrase="O código de autenticação foi verificado." filename="zrtp-is_verified.wav"/>

178
freeswitch-config-rayo.spec Normal file
View File

@ -0,0 +1,178 @@
######################################################################################################################
#
# freeswitch-config-rayo for FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
# Copyright (C) 2013, Grasshopper
#
# Version: MPL 1.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is freeswitch-config-rayo for FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
#
# The Initial Developer of the Original Code is Grasshopper
# Portions created by the Initial Developer are Copyright (C)
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Chris Rienzo <crienzo@grasshopper.com>
#
# freeswitch-rayo-config -- RPM packaging for Rayo Server configuration
#
######################################################################################################################
%define version %{VERSION_NUMBER}
%define release %{BUILD_NUMBER}
%define fsname freeswitch
%define PREFIX %{_prefix}
%define EXECPREFIX %{_exec_prefix}
%define BINDIR %{_bindir}
%define SBINDIR %{_sbindir}
%define LIBEXECDIR %{_libexecdir}/%fsname
%define SYSCONFDIR %{_sysconfdir}/%fsname
%define SHARESTATEDIR %{_sharedstatedir}/%fsname
%define LOCALSTATEDIR %{_localstatedir}/lib/%fsname
%define LIBDIR %{_libdir}
%define INCLUDEDIR %{_includedir}
%define _datarootdir %{_prefix}/share
%define DATAROOTDIR %{_datarootdir}
%define DATADIR %{_datadir}
%define INFODIR %{_infodir}
%define LOCALEDIR %{_datarootdir}/locale
%define MANDIR %{_mandir}
%define DOCDIR %{_defaultdocdir}/%fsname
%define HTMLDIR %{_defaultdocdir}/%fsname/html
%define DVIDIR %{_defaultdocdir}/%fsname/dvi
%define PDFDIR %{_defaultdocdir}/%fsname/pdf
%define PSDIR %{_defaultdocdir}/%fsname/ps
%define LOGFILEDIR /var/log/%fsname
%define MODINSTDIR %{_libdir}/%fsname/mod
%define RUNDIR %{_localstatedir}/run/%fsname
%define DBDIR %{LOCALSTATEDIR}/db
%define HTDOCSDIR %{_datarootdir}/%fsname/htdocs
%define SOUNDSDIR %{_datarootdir}/%fsname/sounds
%define GRAMMARDIR %{_datarootdir}/%fsname/grammar
%define SCRIPTDIR %{_datarootdir}/%fsname/scripts
%define RECORDINGSDIR %{LOCALSTATEDIR}/recordings
%define PKGCONFIGDIR %{_datarootdir}/%fsname/pkgconfig
%define HOMEDIR %{LOCALSTATEDIR}
Name: freeswitch-config-rayo
Version: %{version}
Release: %{release}%{?dist}
License: MPL1.1
Summary: Rayo configuration for the FreeSWITCH Open Source telephone platform.
Group: System/Libraries
Packager: Chris Rienzo
URL: http://www.freeswitch.org/
Source0: freeswitch-%{version}.tar.bz2
Requires: freeswitch = %{version}
Requires: freeswitch-application-conference
Requires: freeswitch-application-esf
Requires: freeswitch-application-expr
Requires: freeswitch-application-fsv
Requires: freeswitch-application-http-cache
Requires: freeswitch-asrtts-flite
Requires: freeswitch-asrtts-pocketsphinx
Requires: freeswitch-codec-celt
Requires: freeswitch-codec-h26x
Requires: freeswitch-codec-ilbc
Requires: freeswitch-codec-opus
Requires: freeswitch-codec-vp8
Requires: freeswitch-event-rayo
Requires: freeswitch-format-local-stream
Requires: freeswitch-format-mod-shout
Requires: freeswitch-format-shell-stream
Requires: freeswitch-format-ssml
Requires: freeswitch-sounds-music-8000
Requires: freeswitch-sounds-music-16000
Requires: freeswitch-sounds-music-32000
Requires: freeswitch-sounds-music-48000
Requires: freeswitch-lang-en
Requires: freeswitch-sounds-en-us-callie-8000
Requires: freeswitch-sounds-en-us-callie-16000
Requires: freeswitch-sounds-en-us-callie-32000
Requires: freeswitch-sounds-en-us-callie-48000
BuildRequires: bash
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
FreeSWITCH rayo server implementation.
%prep
%setup -b0 -q -n freeswitch-%{version}
%build
%install
%{__rm} -rf %{buildroot}
%{__install} -d -m 0750 %{buildroot}/%{SYSCONFDIR}
%{__install} -d -m 0750 %{buildroot}/%{SYSCONFDIR}/autoload_configs
%{__install} -d -m 0750 %{buildroot}/%{SYSCONFDIR}/dialplan
%{__install} -d -m 0750 %{buildroot}/%{SYSCONFDIR}/sip_profiles
%{__install} -d -m 0750 %{buildroot}/%{SYSCONFDIR}/directory
%{__cp} -prv ./conf/rayo/*.{xml,types,pem} %{buildroot}/%{SYSCONFDIR}/
%{__cp} -prv ./conf/rayo/{autoload_configs,dialplan} %{buildroot}/%{SYSCONFDIR}/
%{__cp} -prv ./conf/rayo/sip_profiles/external.xml %{buildroot}/%{SYSCONFDIR}/sip_profiles
%{__cp} -prv ./conf/rayo/sip_profiles/external %{buildroot}/%{SYSCONFDIR}/sip_profiles
%{__cp} -prv ./conf/rayo/directory %{buildroot}/%{SYSCONFDIR}/
%postun
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-,freeswitch,daemon)
%dir %attr(0750, freeswitch, daemon) %{SYSCONFDIR}
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/cacert.pem
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/*.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/mime.types
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/acl.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/cdr_csv.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/conference.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/console.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/event_socket.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/http_cache.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/local_stream.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/logfile.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/modules.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/pocketsphinx.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/post_load_modules.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/presence_map.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/rayo.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/shout.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/sofia.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/spandsp.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/ssml.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/switch.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/autoload_configs/timezones.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/dialplan/public.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/directory/default.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/directory/default/*.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/sip_profiles/*.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{SYSCONFDIR}/sip_profiles/external/*.xml
### END OF config-rayo
######################################################################################################################
#
# Changelog
#
######################################################################################################################
%changelog
* Mon Jun 03 2013 - crienzo@grasshopper.com
- Added users and internal profile for softphone testing
* Wed May 08 2013 - crienzo@grasshopper.com
- Initial revision

View File

@ -0,0 +1,377 @@
##############################################################################
# Copyright and license
##############################################################################
#
# Spec file for package freeswitch-sounds-sv-se-jakob (version 1.0.18-1)
#
# Copyright (c) 2009 Patrick Laimbock
# Some fixes and additions (c) 2011 Michal Bielicki
# Copied and modified for mod_say_sv (c) 2013 Jakob Sundberg
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
##############################################################################
# Determine distribution
##############################################################################
# %define is_rhel5 %(test -f /etc/redhat-release && egrep -q 'release 5' /etc/redhat-release && echo 1 || echo 0)
##############################################################################
# Set variables
##############################################################################
%define version %{VERSION_NUMBER}
%define release %{BUILD_NUMBER}
%define fsname freeswitch
# you could add a version number to be more strict
%define PREFIX %{_prefix}
%define EXECPREFIX %{_exec_prefix}
%define BINDIR %{_bindir}
%define SBINDIR %{_sbindir}
%define LIBEXECDIR %{_libexecdir}/%{fsname}
%define SYSCONFDIR %{_sysconfdir}/%{fsname}
%define SHARESTATEDIR %{_sharedstatedir}/%{fsname}
%define LOCALSTATEDIR %{_localstatedir}/lib/%{fsname}
%define LIBDIR %{_libdir}
%define INCLUDEDIR %{_includedir}
%define _datarootdir %{_prefix}/share
%define DATAROOTDIR %{_datarootdir}
%define DATADIR %{_datadir}
%define INFODIR %{_infodir}
%define LOCALEDIR %{_datarootdir}/locale
%define MANDIR %{_mandir}
%define DOCDIR %{_defaultdocdir}/%{fsname}
%define HTMLDIR %{_defaultdocdir}/%{fsname}/html
%define DVIDIR %{_defaultdocdir}/%{fsname}/dvi
%define PDFDIR %{_defaultdocdir}/%{fsname}/pdf
%define PSDIR %{_defaultdocdir}/%{fsname}/ps
%define LOGFILEDIR /var/log/%{fsname}
%define MODINSTDIR %{_libdir}/%{fsname}/mod
%define RUNDIR %{_localstatedir}/run/%{fsname}
%define DBDIR %{LOCALSTATEDIR}/db
%define HTDOCSDIR %{_datarootdir}/%{fsname}/htdocs
%define SOUNDSDIR %{_datarootdir}/%{fsname}/sounds
%define GRAMMARDIR %{_datarootdir}/%{fsname}/grammar
%define SCRIPTDIR %{_datarootdir}/%{fsname}/scripts
%define RECORDINGSDIR %{LOCALSTATEDIR}/recordings
%define PKGCONFIGDIR %{_datarootdir}/%{fsname}/pkgconfig
%define HOMEDIR %{LOCALSTATEDIR}
##############################################################################
# General
##############################################################################
Summary: FreeSWITCH sv-se Jakob prompts
Name: freeswitch-sounds-sv-se-jakob
Version: %{version}
Release: %{release}%{?dist}
License: MPL
Group: Applications/Communications
Packager: Patrick Laimbock <vc-rpms@voipconsulting.nl>
URL: http://www.freeswitch.org
Source0:http://files.freeswitch.org/%{name}-48000-%{version}.tar.bz2
BuildArch: noarch
BuildRequires: sox
Requires: freeswitch
Requires: freeswitch-sounds-sv-se-jakob-48000
Requires: sox
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
FreeSWITCH 48kHz sv-se jakob prompts plus, during the installation,
it will also install locally generated 8KHz, 16KHz and 32KHz prompts
%package -n freeswitch-sounds-sv-se-jakob-8000
Summary: FreeSWITCH 8kHz sv-se jakob prompts
Group: Applications/Communications
BuildArch: noarch
Requires: %{fsname}
%description -n freeswitch-sounds-sv-se-jakob-8000
FreeSWITCH 8kHz sv-se jakob prompts
%package -n freeswitch-sounds-sv-se-jakob-16000
Summary: FreeSWITCH 16kHz sv-se jakob prompts
Group: Applications/Communications
BuildArch: noarch
Requires: %{fsname}
%description -n freeswitch-sounds-sv-se-jakob-16000
FreeSWITCH 16kHz sv-se jakob prompts
%package -n freeswitch-sounds-sv-se-jakob-32000
Summary: FreeSWITCH 32kHz sv-se jakob prompts
Group: Applications/Communications
BuildArch: noarch
Requires: %{fsname}
%description -n freeswitch-sounds-sv-se-jakob-32000
FreeSWITCH 32kHz sv-se jakob prompts
%package -n freeswitch-sounds-sv-se-jakob-48000
Summary: FreeSWITCH 48kHz sv-se jakob prompts
Group: Applications/Communications
BuildArch: noarch
Requires: %{fsname}
%description -n freeswitch-sounds-sv-se-jakob-48000
FreeSWITCH 48kHz sv-se jakob prompts
%package -n freeswitch-sounds-sv-se-jakob-all
Summary: FreeSWITCH sv-se jakob prompts
Group: Applications/Communications
BuildArch: noarch
Requires: %{fsname}
Requires: freeswitch-sounds-sv-se-jakob-8000 = %{version}
Requires: freeswitch-sounds-sv-se-jakob-16000 = %{version}
Requires: freeswitch-sounds-sv-se-jakob-32000 = %{version}
Requires: freeswitch-sounds-sv-se-jakob-48000 = %{version}
%description -n freeswitch-sounds-sv-se-jakob-all
FreeSWITCH jakob prompts package that pulls in the 8KHz, 16KHz,
32KHz and 48KHz RPMs
##############################################################################
# Prep
##############################################################################
%prep
%setup -b0 -q -n en
mkdir -p ./usr/jakob
# create buildsounds-jakob.sh script in working dir
echo '#!/bin/bash
sounds_location=$1
for rate in 32000 16000 8000
do
for i in ascii base256 conference currency digits directory ivr misc phonetic-ascii time voicemail zrtp
do
mkdir -p $sounds_location/$i/$rate
for f in `find $sounds_location/$i/48000 -name \*.wav`
do
echo "generating" $sounds_location/$i/$rate/`basename $f`
sox $f -r $rate $sounds_location/$i/$rate/`basename $f`
done
done
done' > ./sv/jakob/buildsounds-jakob.sh
%{__chmod} 0750 ./sv/jakob/buildsounds-jakob.sh
##############################################################################
# Build
##############################################################################
%build
# nothing to do here
##############################################################################
# Install
##############################################################################
%install
[ "%{buildroot}" != '/' ] && rm -rf %{buildroot}
# create the sounds directories
%{__install} -d -m 0750 %{buildroot}%{SOUNDSDIR}/sv/se/jakob
pushd sv/jakob
# first install the 48KHz sounds
%{__cp} -prv ./* %{buildroot}%{SOUNDSDIR}/sv/se/jakob
# now resample the 48KHz ones to 8KHz, 16KHz and 32KHz
./buildsounds-jakob.sh %{buildroot}%{SOUNDSDIR}/sv/se/jakob
popd
##############################################################################
# Clean
##############################################################################
%clean
[ "%{buildroot}" != '/' ] && rm -rf %{buildroot}
##############################################################################
# Post
##############################################################################
%post
# generate the 8KHz, 16KHz and 32KHz prompts from the 48KHz ones
cd %{SOUNDSDIR}/sv/se/jakob
./buildsounds-jakob.sh %{SOUNDSDIR}/sv/se/jakob
##############################################################################
# Postun
##############################################################################
%postun
# you could check if there are sound files in 8000/ or
# 16000/ or 32000/ and remove them *only* if the files
# do not belong to an rpm
##############################################################################
# Files
##############################################################################
%files
%defattr(-,root,root)
%attr(0750,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/buildsounds-jakob.sh
%files -n freeswitch-sounds-sv-se-jakob-8000
%defattr(-,root,root,-)
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/ascii/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/base256/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/conference/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/currency/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/digits/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/directory/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/ivr/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/misc/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/phonetic-ascii/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/time/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/voicemail/8000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/zrtp/8000
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/ascii/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/base256/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/conference/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/currency/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/digits/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/directory/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/ivr/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/misc/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/phonetic-ascii/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/time/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/voicemail/8000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/zrtp/8000/*.wav
%files -n freeswitch-sounds-sv-se-jakob-16000
%defattr(-,root,root,-)
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/ascii/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/base256/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/conference/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/currency/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/digits/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/directory/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/ivr/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/misc/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/phonetic-ascii/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/time/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/voicemail/16000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/zrtp/16000
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/ascii/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/base256/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/conference/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/currency/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/digits/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/directory/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/ivr/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/misc/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/phonetic-ascii/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/time/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/voicemail/16000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/zrtp/16000/*.wav
%files -n freeswitch-sounds-sv-se-jakob-32000
%defattr(-,root,root,-)
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/ascii/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/base256/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/conference/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/currency/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/digits/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/directory/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/ivr/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/misc/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/phonetic-ascii/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/time/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/voicemail/32000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/zrtp/32000
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/ascii/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/base256/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/conference/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/currency/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/digits/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/directory/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/ivr/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/misc/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/phonetic-ascii/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/time/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/voicemail/32000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/zrtp/32000/*.wav
%files -n freeswitch-sounds-sv-se-jakob-48000
%defattr(-,root,root,-)
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/ascii/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/base256/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/conference/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/currency/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/digits/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/directory/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/ivr/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/misc/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/phonetic-ascii/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/time/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/voicemail/48000
%attr(0750,freeswitch,daemon) %dir %{SOUNDSDIR}/sv/se/jakob/zrtp/48000
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/ascii/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/base256/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/conference/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/currency/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/digits/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/directory/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/ivr/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/misc/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/phonetic-ascii/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/time/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/voicemail/48000/*.wav
%attr(0640,freeswitch,daemon) %{SOUNDSDIR}/sv/se/jakob/zrtp/48000/*.wav
%files -n freeswitch-sounds-sv-se-jakob-all
##############################################################################
# Changelog
##############################################################################
%changelog
* Sun Mar 05 2012 Ken Rice <krice@freeswitch.org> - 1.0.18-1
- update to FHS Layout for FreeSWITCH
- bump up version
* Sun May 22 2011 Michal Bielicki <michal.bielicki@seventhsignal.de> - 1.0.16-1
- bump up version
* Tue Jan 18 2011 Michal Bielicki <michal.bielicki@seventhsignal.de> - 1.0.14-1
- bump up version
- include script into freeswitch core
- include specfile into freeswitch core
- runtime does not require sox, only building
* Thu Dec 17 2009 Patrick Laimbock <vc-rpms@voipconsulting.nl> - 1.0.12-8
- update perms and user/group to sync with the old situation
* Wed Dec 16 2009 Patrick Laimbock <vc-rpms@voipconsulting.nl> - 1.0.12-7
- make main package require freeswitch-sounds-sv-se-jakob-48000 and
- generate the 8KHz, 16KHz and 32KHz sounds from there
- add license to spec file
* Wed Dec 16 2009 Patrick Laimbock <vc-rpms@voipconsulting.nl> - 1.0.12-5
- put 48KHz in a separate package and let the main package Require 48KHz
- and then use the script to generate the 8KHz, 16KHz and 32KHz sounds
* Wed Dec 16 2009 Patrick Laimbock <vc-rpms@voipconsulting.nl> - 1.0.12-4
- add freeswitch-sounds-sv-se-jakob-all package that pulls in the 8KHz,
- 16KHz, 32KHz and 48KHz RPM packages
* Tue Dec 15 2009 Patrick Laimbock <vc-rpms@voipconsulting.nl> - 1.0.12-3
- override subpackage name with -n so it no longer builds an empty main RPM
- rework spec file
- add sox as a requirement
- run buildsounds-jakob.sh in post to generate 8KHz, 16KHz and 32KHz prompts
* Tue Dec 15 2009 Patrick Laimbock <vc-rpms@voipconsulting.nl> - 1.0.12-2
- can't override Name in subpackage so put all versions in RPM subpackages
- with an empty main RPM package
* Tue Dec 15 2009 Patrick Laimbock <vc-rpms@voipconsulting.nl> - 1.0.12-1
- create spec file with the following requirement:
- source only contains the 48KHz sound prompts
- during build the 48KHz sound prompts are resampled to 8KHz, 16KHz and 32KHz
- the 8KHz, 16KHz, 32KHz and 48KHz sound prompts are packaged separately

View File

@ -3,14 +3,14 @@
# spec file for package freeswitch
#
# includes module(s): freeswitch-devel freeswitch-codec-passthru-amr freeswitch-codec-passthru-amrwb freeswitch-codec-passthru-g729
# freeswitch-codec-passthru-g7231 freeswitch-lua freeswitch-perl freeswitch-python freeswitch-spidermonkey
# freeswitch-codec-passthru-g7231 freeswitch-lua freeswitch-perl freeswitch-python freeswitch-spidermonkey freeswitch-v8
# freeswitch-lan-de freeswitch-lang-en freeswitch-lang-fr freeswitch-lang-hu freeswitch-lang-ru freeswitch-freetdm
#
# Initial Version Copyright (C) 2007 Peter Nixon and Michal Bielicki, All Rights Reserved.
#
# This file is part of:
# FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
# Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
# Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
#
# This file and all modifications and additions to the pristine package are under the same license as the package itself.
#
@ -22,6 +22,7 @@
# Marc Olivier Chouinard
# Raymond Chandler
# Ken Rice <krice@freeswitch.org>
# Chris Rienzo <crienzo@grasshopper.com>
#
# Maintainer(s): Ken Rice <krice@freeswitch.org>
#
@ -33,6 +34,8 @@
%define build_py26_esl 0
%define build_timerfd 0
%define build_mod_esl 0
%define build_mod_rayo 1
%define build_mod_ssml 1
%{?with_sang_tc:%define build_sng_tc 1 }
%{?with_sang_isdn:%define build_sng_isdn 1 }
@ -112,18 +115,19 @@ Vendor: http://www.freeswitch.org/
######################################################################################################################
Source0: http://files.freeswitch.org/%{name}-%{version}.tar.bz2
Source1: http://files.freeswitch.org/downloads/libs/celt-0.10.0.tar.gz
Source2: http://files.freeswitch.org/downloads/libs/flite-1.5.1-current.tar.bz2
Source3: http://files.freeswitch.org/downloads/libs/lame-3.97.tar.gz
Source2: http://files.freeswitch.org/downloads/libs/flite-1.5.4-current.tar.bz2
Source3: http://files.freeswitch.org/downloads/libs/lame-3.98.4.tar.gz
Source4: http://files.freeswitch.org/downloads/libs/libshout-2.2.2.tar.gz
Source5: http://files.freeswitch.org/downloads/libs/mpg123-1.13.2.tar.gz
#Source6: http://files.freeswitch.org/downloads/libs/openldap-2.4.11.tar.gz
Source6: http://files.freeswitch.org/downloads/libs/pocketsphinx-0.7.tar.gz
Source7: http://files.freeswitch.org/downloads/libs/soundtouch-1.6.0.tar.gz
Source7: http://files.freeswitch.org/downloads/libs/soundtouch-1.7.1.tar.gz
Source8: http://files.freeswitch.org/downloads/libs/sphinxbase-0.7.tar.gz
Source9: http://files.freeswitch.org/downloads/libs/communicator_semi_6000_20080321.tar.gz
Source10: http://files.freeswitch.org/downloads/libs/libmemcached-0.32.tar.gz
Source11: http://files.freeswitch.org/downloads/libs/json-c-0.9.tar.gz
Source12: http://files.freeswitch.org/downloads/libs/opus-0.9.0.tar.gz
Source12: http://files.freeswitch.org/downloads/libs/opus-1.1.tar.gz
Source13: http://files.freeswitch.org/downloads/libs/v8-3.24.14.tar.bz2
Prefix: %{prefix}
@ -758,14 +762,6 @@ see http://www.polycom.com/usa/en/company/about_us/technology/siren_g7221/siren_
and http://www.polycom.com/usa/en/company/about_us/technology/siren14_g7221c/siren14_g7221c.html
At the time of this packaging, Polycom does not charge for licensing.
%package codec-speex
Summary: Speex Codec support for FreeSWITCH open source telephony platform
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
%description codec-speex
Speex Codec support for FreeSWITCH open source telephony platform.
%package codec-theora
Summary: Theora Video Codec support for FreeSWITCH open source telephony platform
Group: System/Libraries
@ -977,6 +973,17 @@ Requires: %{name} = %{version}-%{release}
%description event-json-cdr
JSON CDR Logger for FreeSWITCH.
%if %{build_mod_rayo}
%package event-rayo
Summary: Rayo (XMPP 3PCC) server for the FreeSWITCH open source telephony platform
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
%description event-rayo
Rayo 3PCC for FreeSWITCH. http://rayo.org http://xmpp.org/extensions/xep-0327.html
Rayo is an XMPP protocol extension for third-party control of telephone calls.
%endif
%package event-snmp
Summary: SNMP stats reporter for the FreeSWITCH open source telephony platform
Group: System/Libraries
@ -1040,6 +1047,16 @@ Requires: %{name} = %{version}-%{release}
Mod Shout is a FreeSWITCH module to allow you to stream audio from MP3s or a i
shoutcast stream.
%if %{build_mod_ssml}
%package format-ssml
Summary: Adds Speech Synthesis Markup Language (SSML) parser format for the FreeSWITCH open source telephony platform
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
%description format-ssml
mod_ssml is a FreeSWITCH module that renders SSML into audio. This module requires a text-to-speech module for speech synthesis.
%endif
%package format-tone-stream
Summary: Implements TGML Tone Generation for the FreeSWITCH open source telephony platform
Group: System/Libraries
@ -1078,10 +1095,17 @@ Requires: python
%package spidermonkey
Summary: JavaScript support for the FreeSWITCH open source telephony platform
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
%description spidermonkey
%package v8
Summary: JavaScript support for the FreeSWITCH open source telephony platform, using Google V8 JavaScript engine
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
%description v8
######################################################################################################################
# FreeSWITCH Say Modules
######################################################################################################################
@ -1140,7 +1164,15 @@ Group: System/Libraries
Requires: %{name} = %{version}-%{release}
%description lang-pt
Hebrew language phrases module and directory structure for say module and voicemail
Portugese language phrases module and directory structure for say module and voicemail
%package lang-sv
Summary: Provides Swedish language dependend modules and speech config for the FreeSWITCH Open Source telephone platform.
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
%description lang-sv
Swedish language phrases module and directory structure for say module and voicemail
######################################################################################################################
# FreeSWITCH Timer Modules
@ -1244,7 +1276,6 @@ Requires: freeswitch-codec-passthru-g729
Requires: freeswitch-codec-h26x
Requires: freeswitch-codec-ilbc
Requires: freeswitch-codec-siren
Requires: freeswitch-codec-speex
Requires: freeswitch-format-local-stream
Requires: freeswitch-format-native-file
Requires: freeswitch-format-portaudio-stream
@ -1336,7 +1367,7 @@ ASR_TTS_MODULES="asr_tts/mod_flite asr_tts/mod_pocketsphinx asr_tts/mod_tts_comm
######################################################################################################################
CODECS_MODULES="codecs/mod_amr codecs/mod_amrwb codecs/mod_bv codecs/mod_celt codecs/mod_codec2 codecs/mod_g723_1 \
codecs/mod_g729 codecs/mod_h26x codecs/mod_ilbc codecs/mod_isac codecs/mod_mp4v codecs/mod_opus codecs/mod_silk \
codecs/mod_siren codecs/mod_speex codecs/mod_theora codecs/mod_vp8"
codecs/mod_siren codecs/mod_theora codecs/mod_vp8"
#
%if %{build_sng_tc}
CODECS_MODULES+="codecs/mod_sangoma_codec"
@ -1376,6 +1407,9 @@ EVENT_HANDLERS_MODULES="event_handlers/mod_cdr_csv event_handlers/mod_cdr_pg_csv
event_handlers/mod_cdr_mongodb event_handlers/mod_erlang_event event_handlers/mod_event_multicast \
event_handlers/mod_event_socket event_handlers/mod_json_cdr \
event_handlers/mod_snmp"
%if %{build_mod_rayo}
EVENT_HANDLERS_MODULES+=" event_handlers/mod_rayo"
%endif
#### BUILD ISSUES NET RESOLVED FOR RELEASE event_handlers/mod_event_zmq
######################################################################################################################
@ -1385,13 +1419,17 @@ EVENT_HANDLERS_MODULES="event_handlers/mod_cdr_csv event_handlers/mod_cdr_pg_csv
######################################################################################################################
FORMATS_MODULES="formats/mod_local_stream formats/mod_native_file formats/mod_portaudio_stream \
formats/mod_shell_stream formats/mod_shout formats/mod_sndfile formats/mod_tone_stream"
%if %{build_mod_ssml}
FORMATS_MODULES+=" formats/mod_ssml"
%endif
######################################################################################################################
#
# Embedded Languages
#
######################################################################################################################
LANGUAGES_MODULES="languages/mod_lua languages/mod_perl languages/mod_python languages/mod_spidermonkey"
LANGUAGES_MODULES="languages/mod_lua languages/mod_perl languages/mod_python languages/mod_spidermonkey "
#LANGUAGES_MODULES+="languages/mod_v8"
######################################################################################################################
#
@ -1405,7 +1443,7 @@ LOGGERS_MODULES="loggers/mod_console loggers/mod_logfile loggers/mod_syslog"
# Phrase engine language modules
#
######################################################################################################################
SAY_MODULES="say/mod_say_de say/mod_say_en say/mod_say_fr say/mod_say_he say/mod_say_ru"
SAY_MODULES="say/mod_say_de say/mod_say_en say/mod_say_fr say/mod_say_he say/mod_say_ru say/mod_say_sv"
######################################################################################################################
#
@ -1606,7 +1644,8 @@ fi
# What to install where ... first set default permissions
#
######################################################################################################################
%defattr(-,freeswitch,daemon)
%defattr(-,root,root)
######################################################################################################################
#
# Directories
@ -1618,11 +1657,11 @@ fi
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}
%dir %attr(0750, freeswitch, daemon) %{LOCALSTATEDIR}
%dir %attr(0750, freeswitch, daemon) %{DBDIR}
%dir %attr(0750, freeswitch, daemon) %{GRAMMARDIR}
%dir %attr(0750, freeswitch, daemon) %{HTDOCSDIR}
%dir %attr(0755, -, -) %{GRAMMARDIR}
%dir %attr(0755, -, -) %{HTDOCSDIR}
%dir %attr(0750, freeswitch, daemon) %{logfiledir}
%dir %attr(0750, freeswitch, daemon) %{runtimedir}
%dir %attr(0750, freeswitch, daemon) %{SCRIPTDIR}
%dir %attr(0755, -, -) %{SCRIPTDIR}
#
#################################### Config Directory Structure #######################################################
#
@ -1643,19 +1682,15 @@ fi
#
#################################### Grammar Directory Structure #####################################################
#
%dir %attr(0750, freeswitch, daemon) %{GRAMMARDIR}/model
%dir %attr(0750, freeswitch, daemon) %{GRAMMARDIR}/model/communicator
%ifos linux
%config(noreplace) %attr(0644, freeswitch, daemon) /etc/monit.d/freeswitch.monitrc
%endif
%dir %attr(0755, -, -) %{GRAMMARDIR}/model
%dir %attr(0755, -, -) %{GRAMMARDIR}/model/communicator
######################################################################################################################
#
# Other Fíles
# Other Files
#
######################################################################################################################
%config(noreplace) %attr(0640, freeswitch, daemon) %{HTDOCSDIR}/*
%config(noreplace) %attr(0644,-,-) %{HTDOCSDIR}/*
%ifos linux
/etc/rc.d/init.d/freeswitch
/etc/sysconfig/freeswitch
@ -1664,14 +1699,16 @@ fi
%endif
%endif
%ifos linux
%dir %attr(0750, root, root) /etc/monit.d
%dir %attr(0750,-,-) /etc/monit.d
%config(noreplace) %attr(0644,-,-) /etc/monit.d/freeswitch.monitrc
%endif
######################################################################################################################
#
# Binaries
#
######################################################################################################################
%attr(0755, freeswitch, daemon) %{prefix}/bin/*
%attr(0755,-,-) %{prefix}/bin/*
%{LIBDIR}/libfreeswitch*.so*
######################################################################################################################
#
@ -1700,12 +1737,10 @@ fi
#
######################################################################################################################
%files devel
%defattr(-, freeswitch, daemon)
%{LIBDIR}/*.a
%{LIBDIR}/*.la
%{PKGCONFIGDIR}/*
%{MODINSTDIR}/*.a
%{MODINSTDIR}/*.la
%{MODINSTDIR}/*.*a
%{INCLUDEDIR}/*.h
@ -1743,6 +1778,7 @@ fi
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/event_socket.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/fax.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/fifo.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/format_cdr.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/hash.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/httapi.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/http_cache.conf.xml
@ -1819,8 +1855,8 @@ fi
######################################################################################################################
# Grammar Files
######################################################################################################################
%config(noreplace) %attr(0640, freeswitch, daemon) %{GRAMMARDIR}/default.dic
%config(noreplace) %attr(0640, freeswitch, daemon) %{GRAMMARDIR}/model/communicator/*
%config(noreplace) %attr(0644, -, -) %{GRAMMARDIR}/default.dic
%config(noreplace) %attr(0644, -, -) %{GRAMMARDIR}/model/communicator/*
### END OF config-vanilla
@ -1830,170 +1866,130 @@ fi
#
######################################################################################################################
%files application-abstraction
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_abstraction.so*
%files application-avmd
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_avmd.so*
%files application-blacklist
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_blacklist.so*
%files application-callcenter
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_callcenter.so*
%files application-cidlookup
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_cidlookup.so*
%files application-conference
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_conference.so*
%files application-curl
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_curl.so*
%files application-db
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_db.so*
%files application-directory
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_directory.so*
%files application-distributor
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_distributor.so*
%files application-easyroute
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_easyroute.so*
%files application-enum
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_enum.so*
%files application-esf
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_esf.so*
%if %{build_mod_esl}
%files application-esl
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_esl.so*
%endif
%files application-expr
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_expr.so*
%files application-fifo
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_fifo.so*
%files application-fsk
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_fsk.so*
%files application-fsv
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_fsv.so*
%files application-hash
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_hash.so*
%files application-httapi
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_httapi.so*
%files application-http-cache
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_http_cache.so*
%files application-lcr
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_lcr.so*
%files application-limit
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_limit.so*
%files application-memcache
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_memcache.so*
%files application-nibblebill
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_nibblebill.so*
%files application-redis
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_redis.so*
%files application-rss
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_rss.so*
%files application-sms
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_sms.so*
%files application-snapshot
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_snapshot.so*
%files application-snom
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_snom.so*
%files application-soundtouch
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_soundtouch.so*
%files application-spy
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_spy.so*
%files application-stress
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_stress.so*
%files application-valet_parking
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_valet_parking.so*
%files application-voicemail
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_voicemail.so*
%files application-voicemail-ivr
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_voicemail_ivr.so*
######################################################################################################################
#
# ASR RRS Packages
# ASR TTS Packages
#
######################################################################################################################
%files asrtts-flite
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_flite.so*
%files asrtts-pocketsphinx
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_pocketsphinx.so*
%files asrtts-tts-commandline
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_tts_commandline.so*
%files asrtts-unimrcp
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_unimrcp.so*
######################################################################################################################
@ -2003,78 +1999,58 @@ fi
######################################################################################################################
%files codec-passthru-amr
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_amr.so*
%files codec-passthru-amrwb
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_amrwb.so*
%files codec-bv
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_bv.so*
%files codec-celt
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_celt.so*
%files codec-codec2
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_codec2.so*
%files codec-passthru-g723_1
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_g723_1.so*
%files codec-passthru-g729
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_g729.so*
%files codec-h26x
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_h26x.so*
%files codec-ilbc
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_ilbc.so*
%files codec-isac
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_isac.so*
%files codec-mp4v
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_mp4v.so*
%files codec-vp8
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_vp8.so*
%files codec-opus
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_opus.so*
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/opus.conf.xml
%if %{build_sng_tc}
%files sangoma-codec
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_sangoma_codec.so*
%endif
%files codec-silk
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_silk.so*
%files codec-siren
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_siren.so*
%files codec-speex
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_speex.so*
%files codec-theora
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_theora.so*
######################################################################################################################
@ -2084,8 +2060,7 @@ fi
######################################################################################################################
#%files directory-ldap
#%defattr(-,freeswitch,daemon)
#%{MODINSTDIR}/mod_theora.so*
#%{MODINSTDIR}/mod_ldap.so*
######################################################################################################################
#
@ -2094,35 +2069,27 @@ fi
######################################################################################################################
%files endpoint-dingaling
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_dingaling.so*
#%files endpoint-gsmopen
#%defattr(-,freeswitch,daemon)
#%{MODINSTDIR}/mod_gsmopen.so*
#%files endpoint-h323
#%defattr(-,freeswitch,daemon)
#%{MODINSTDIR}/mod_h323.so*
#%files endpoint-khomp
#%defattr(-,freeswitch,daemon)
#%{MODINSTDIR}/mod_khomp.so*
%files endpoint-portaudio
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_portaudio.so*
%files endpoint-rtmp
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_rtmp.so*
%files endpoint-skinny
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_skinny.so*
%files endpoint-skypopen
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_skypopen.so*
######################################################################################################################
@ -2131,7 +2098,6 @@ fi
#
######################################################################################################################
%files freetdm
%defattr(-, freeswitch, daemon)
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/tones.conf
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/freetdm.conf.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/pika.conf
@ -2145,13 +2111,11 @@ fi
%if %{build_sng_ss7}
%files freetdm-sng-ss7
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/ftmod_sangoma_ss7.so*
%endif
%if %{build_sng_isdn}
%files freetdm-sng-isdn
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/ftmod_sangoma_isdn.so*
%endif
@ -2162,35 +2126,32 @@ fi
######################################################################################################################
%files event-cdr-mongodb
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_cdr_mongodb.so*
%files event-cdr-pg-csv
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_cdr_pg_csv.so*
%files event-cdr-sqlite
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_cdr_sqlite.so*
%files event-erlang-event
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_erlang_event.so*
%files event-multicast
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_event_multicast.so*
#%files event-zmq
#%defattr(-, freeswitch, daemon)
#%{MODINSTDIR}/mod_xmq.so*
%files event-json-cdr
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_json_cdr.so*
%if %{build_mod_rayo}
%files event-rayo
%{MODINSTDIR}/mod_rayo.so*
%endif
%files event-snmp
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_snmp.so*
######################################################################################################################
@ -2200,27 +2161,26 @@ fi
######################################################################################################################
%files format-local-stream
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_local_stream.so*
%files format-native-file
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_native_file.so*
%files format-portaudio-stream
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_portaudio_stream.so*
%files format-shell-stream
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_shell_stream.so*
%files format-mod-shout
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_shout.so*
%if %{build_mod_ssml}
%files format-ssml
%{MODINSTDIR}/mod_ssml.so*
%endif
%files format-tone-stream
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_tone_stream.so*
######################################################################################################################
@ -2229,20 +2189,17 @@ fi
#
######################################################################################################################
%files lua
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_lua*.so*
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/autoload_configs
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/lua.conf.xml
%files perl
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_perl*.so*
%{prefix}/perl/*
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/autoload_configs
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/perl.conf.xml
%files python
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_python*.so*
%attr(0644, root, bin) /usr/lib/python*/site-packages/freeswitch.py*
%attr(0755, root, bin) /usr/lib/python*/site-packages/_ESL.so*
@ -2251,7 +2208,6 @@ fi
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/python.conf.xml
%files spidermonkey
%defattr(-,freeswitch,daemon)
%{MODINSTDIR}/mod_spidermonkey*.so*
%{LIBDIR}/libjs.so*
%{LIBDIR}/libnspr4.so
@ -2260,13 +2216,20 @@ fi
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/autoload_configs
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/spidermonkey.conf.xml
%files v8
#%{MODINSTDIR}/mod_v8*.so*
#%{LIBDIR}/libv8.so
#%{LIBDIR}/libicui18n.so
#%{LIBDIR}/libicuuc.so
#%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/autoload_configs
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/v8.conf.xml
######################################################################################################################
#
# Language Modules
#
######################################################################################################################
%files lang-en
%defattr(-, freeswitch, daemon)
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/en
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/en/demo
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/en/vm
@ -2280,7 +2243,6 @@ fi
%{MODINSTDIR}/mod_say_en.so*
%files lang-de
%defattr(-, freeswitch, daemon)
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/de
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/de/demo
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/de/vm
@ -2290,7 +2252,6 @@ fi
%{MODINSTDIR}/mod_say_de.so*
%files lang-fr
%defattr(-, freeswitch, daemon)
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/fr
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/fr/demo
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/fr/vm
@ -2302,7 +2263,6 @@ fi
%{MODINSTDIR}/mod_say_fr.so*
%files lang-ru
%defattr(-, freeswitch, daemon)
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/ru
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/ru/demo
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/ru/vm
@ -2314,7 +2274,6 @@ fi
%{MODINSTDIR}/mod_say_ru.so*
%files lang-he
%defattr(-, freeswitch, daemon)
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/he/
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/he/demo
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/he/vm
@ -2326,7 +2285,6 @@ fi
%{MODINSTDIR}/mod_say_he.so*
%files lang-es
%defattr(-, freeswitch, daemon)
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/es
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/es/demo
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/es/vm
@ -2338,7 +2296,6 @@ fi
%{MODINSTDIR}/mod_say_en.so*
%files lang-pt
%defattr(-, freeswitch, daemon)
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/pt
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/pt/demo
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/pt/vm
@ -2349,6 +2306,13 @@ fi
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/lang/pt/dir/*.xml
%{MODINSTDIR}/mod_say_en.so*
%files lang-sv
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/sv
%dir %attr(0750, freeswitch, daemon) %{sysconfdir}/lang/sv/vm
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/lang/sv/*.xml
%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/lang/sv/vm/*.xml
%{MODINSTDIR}/mod_say_sv.so*
######################################################################################################################
#
# Timer Modules
@ -2356,12 +2320,10 @@ fi
######################################################################################################################
%files timer-posix
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_posix_timer.so*
%if %{build_timerfd}
%files timer-timerfd
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_timerfd.so*
%endif
@ -2372,11 +2334,9 @@ fi
######################################################################################################################
%files xml-cdr
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_xml_cdr.so*
%files xml-curl
%defattr(-, freeswitch, daemon)
%{MODINSTDIR}/mod_xml_curl.so*
######################################################################################################################
@ -2385,6 +2345,17 @@ fi
#
######################################################################################################################
%changelog
* Fri Feb 21 2014 - crienzo@grasshopper.com
- change file owner to root
* Wed Feb 19 2014 - crienzo@grasshopper.com
- remove mod_speex
* Sun Feb 02 2014 - jakob@mress.se
- add support for building Swedish say language module
* Mon Jan 13 2014 - peter@olssononline.se
- Add mod_v8
* Mon Dec 09 2013 - crienzo@grasshopper.com
- Add mod_ssml, mod_rayo
- Fix build on master
* Thu Jun 28 2013 - krice@freeswitch.org
- Add module for VP8
* Thu Jun 19 2013 - krice@freeswitch.org

View File

@ -1,6 +1,6 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
* Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
*
* Version: MPL 1.1
*

View File

@ -1,6 +1,6 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
* Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
*
* Version: MPL 1.1
*

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2007-2012, Anthony Minessale II
* Copyright (c) 2007-2014, Anthony Minessale II
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without

View File

@ -1,6 +1,6 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
* Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
*
* Version: MPL 1.1
*

View File

@ -1,6 +1,6 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
* Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
*
* Version: MPL 1.1
*

View File

@ -1,6 +1,6 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
* Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
*
* Version: MPL 1.1
*

View File

@ -1,6 +1,6 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
* Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
*
* Version: MPL 1.1
*

View File

@ -1,6 +1,6 @@
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005-2012, Anthony Minessale II <anthm@freeswitch.org>
* Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
*
* Version: MPL 1.1
*

1
libs/.gitignore vendored
View File

@ -980,6 +980,7 @@ opal
/zeromq-*/
/jpeg-8d/
/v8-*/
# build products we should remove
!/apr-util/xml/expat/conftools/config.guess

View File

@ -27,6 +27,7 @@ APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
* Remapping function pointer type to accept apr_uint32_t's type-safely
* as the arguments for as our apr_atomic_foo32 Functions
*/
#if (_MSC_VER < 1800)
typedef WINBASEAPI apr_uint32_t (WINAPI * apr_atomic_win32_ptr_fn)
(apr_uint32_t volatile *);
typedef WINBASEAPI apr_uint32_t (WINAPI * apr_atomic_win32_ptr_val_fn)
@ -38,11 +39,14 @@ typedef WINBASEAPI apr_uint32_t (WINAPI * apr_atomic_win32_ptr_val_val_fn)
typedef WINBASEAPI void * (WINAPI * apr_atomic_win32_ptr_ptr_ptr_fn)
(volatile void **,
void *, const void *);
#endif
APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
{
#if (defined(_M_IA64) || defined(_M_AMD64))
return InterlockedExchangeAdd(mem, val);
#elif (_MSC_VER >= 1800)
return InterlockedExchangeAdd(mem, val);
#else
return ((apr_atomic_win32_ptr_val_fn)InterlockedExchangeAdd)(mem, val);
#endif
@ -55,6 +59,8 @@ APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
{
#if (defined(_M_IA64) || defined(_M_AMD64))
InterlockedExchangeAdd(mem, -val);
#elif (_MSC_VER >= 1800)
InterlockedExchangeAdd(mem, -val);
#else
((apr_atomic_win32_ptr_val_fn)InterlockedExchangeAdd)(mem, -val);
#endif
@ -65,6 +71,8 @@ APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
/* we return old value, win32 returns new value :( */
#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
return InterlockedIncrement(mem) - 1;
#elif (_MSC_VER >= 1800)
return InterlockedIncrement(mem) - 1;
#else
return ((apr_atomic_win32_ptr_fn)InterlockedIncrement)(mem) - 1;
#endif
@ -74,6 +82,8 @@ APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
{
#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
return InterlockedDecrement(mem);
#elif (_MSC_VER >= 1800)
return InterlockedDecrement(mem);
#else
return ((apr_atomic_win32_ptr_fn)InterlockedDecrement)(mem);
#endif
@ -83,6 +93,8 @@ APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
{
#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
InterlockedExchange(mem, val);
#elif (_MSC_VER >= 1800)
InterlockedExchange(mem, val);
#else
((apr_atomic_win32_ptr_val_fn)InterlockedExchange)(mem, val);
#endif
@ -98,6 +110,8 @@ APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint3
{
#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
return InterlockedCompareExchange(mem, with, cmp);
#elif (_MSC_VER >= 1800)
return InterlockedCompareExchange(mem, with, cmp);
#else
return ((apr_atomic_win32_ptr_val_val_fn)InterlockedCompareExchange)(mem, with, cmp);
#endif
@ -107,6 +121,8 @@ APR_DECLARE(void *) apr_atomic_casptr(volatile void **mem, void *with, const voi
{
#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
return InterlockedCompareExchangePointer(mem, with, cmp);
#elif (_MSC_VER >= 1800)
return InterlockedCompareExchangePointer(mem, with, cmp);
#else
/* Too many VC6 users have stale win32 API files, stub this */
return ((apr_atomic_win32_ptr_ptr_ptr_fn)InterlockedCompareExchange)(mem, with, cmp);
@ -117,6 +133,8 @@ APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint
{
#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
return InterlockedExchange(mem, val);
#elif (_MSC_VER >= 1800)
return InterlockedExchange(mem, val);
#else
return ((apr_atomic_win32_ptr_val_fn)InterlockedExchange)(mem, val);
#endif

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
@ -84,6 +84,7 @@
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<CompileAs>CompileAsC</CompileAs>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -98,6 +99,7 @@
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -120,6 +122,7 @@
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<CompileAs>CompileAsC</CompileAs>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -137,6 +140,7 @@
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>

View File

@ -296,7 +296,7 @@
/* Define to 'int' if ssize_t is not an available 'typedefed' type */
#if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || defined(__POCC__)
#else
#define ssize_t int
#define ssize_t intptr_t
#endif
/* Define to 'int' if socklen_t is not an available 'typedefed' type */

View File

@ -38,6 +38,6 @@ char *Curl_strcasestr(const char *haystack, const char *needle);
#ifndef HAVE_STRLCAT
#define strlcat(x,y,z) Curl_strlcat(x,y,z)
#endif
size_t strlcat(char *dst, const char *src, size_t siz);
//size_t strlcat(char *dst, const char *src, size_t siz);
#endif

3
libs/esl/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
eslmake.rules
testserver_fork

View File

@ -17,7 +17,7 @@ SOLINK=-shared -Xlinker -x
# comment the next line to disable c++ (no swig mods for you then)
OBJS += src/esl_oop.o
all: $(MYLIB) fs_cli testclient testserver ivrd
all: $(MYLIB) fs_cli testclient testserver testserver_fork ivrd
$(MYLIB): $(OBJS) $(HEADERS) $(SRC)
ar rcs $(MYLIB) $(OBJS)
@ -26,6 +26,9 @@ $(MYLIB): $(OBJS) $(HEADERS) $(SRC)
testserver: $(MYLIB) testserver.c
$(CC) $(CC_CFLAGS) $(CFLAGS) testserver.c -o testserver $(LDFLAGS) $(LIBS)
testserver_fork: $(MYLIB) testserver_fork.c
$(CC) $(CC_CFLAGS) $(CFLAGS) testserver_fork.c -o testserver_fork $(LDFLAGS) $(LIBS)
ivrd: $(MYLIB) ivrd.c
$(CC) $(CC_CFLAGS) $(CFLAGS) ivrd.c -o ivrd $(LDFLAGS) $(LIBS)
@ -42,7 +45,7 @@ fs_cli: $(MYLIB) fs_cli.c
$(CXX) $(CXX_CFLAGS) $(CXXFLAGS) -c $< -o $@
clean:
rm -f *.o src/*.o testclient testserver ivrd fs_cli libesl.a *~ src/*~ src/include/*~
rm -f *.o src/*.o testclient testserver testserver_fork ivrd fs_cli libesl.a *~ src/*~ src/include/*~
$(MAKE) -C perl clean
$(MAKE) -C php clean
$(MAKE) -C lua clean

View File

@ -1,2 +1,3 @@
TINFO_LIBS=@TINFO_LIBS@
CXX=@CXX@

View File

@ -85,7 +85,9 @@ static int running = 1;
static int thread_running = 0;
static char *filter_uuid;
static char *logfilter;
#ifndef WIN32
static int timeout = 0;
static int connect_timeout = 0;
#ifdef HAVE_EDITLINE
static EditLine *el;
static History *myhistory;
static HistEvent ev;
@ -112,6 +114,7 @@ static void sleep_s(int secs) { _sleep_ns(secs, 0); }
static int process_command(esl_handle_t *handle, const char *cmd);
#if defined(HAVE_EDITLINE) || defined(WIN32)
static void clear_cli(void) {
if (global_profile->batch_mode) return;
putchar('\r');
@ -119,6 +122,7 @@ static void clear_cli(void) {
printf("\033[K");
fflush(stdout);
}
#endif
static void screen_size(int *x, int *y)
{
@ -145,6 +149,7 @@ static void screen_size(int *x, int *y)
}
#if defined(HAVE_EDITLINE) || defined(WIN32)
/* If a fnkey is configured then process the command */
static unsigned char console_fnkey_pressed(int i)
{
@ -162,6 +167,7 @@ static unsigned char console_fnkey_pressed(int i)
}
return CC_REDISPLAY;
}
#endif
#ifdef HAVE_EDITLINE
static char *prompt(EditLine *e) { return prompt_str; }
@ -603,6 +609,7 @@ static const char *usage_str =
" -d, --debug=level Debug Level (0 - 7)\n"
" -b, --batchmode Batch mode\n"
" -t, --timeout Timeout for API commands (in miliseconds)\n"
" -T, --connect-timeout Timeout for socket connection (in miliseconds)\n"
" -n, --no-color Disable color\n\n";
static int usage(char *name){
@ -671,7 +678,7 @@ static void clear_line(void)
static void redisplay(void)
{
#ifndef WIN32
#ifdef HAVE_EDITLINE
const LineInfo *lf = el_line(el);
const char *c = lf->buffer;
if (global_profile->batch_mode) return;
@ -807,7 +814,7 @@ static void *msg_thread_run(esl_thread_t *me, void *obj)
}
warn_stop = 0;
}
sleep_ms(1);
//sleep_ms(1);
}
thread_running = 0;
esl_log(ESL_LOG_DEBUG, "Thread Done\n");
@ -1063,6 +1070,7 @@ static void set_fn_keys(cli_profile_t *profile)
profile->console_fnkeys[11] = "version";
}
#if defined(HAVE_EDITLINE) || defined(WIN32)
static char* end_of_str(char *s) { return (*s == '\0' ? s : s + strlen(s) - 1); }
static char* _strndup(const char *s, int n)
@ -1151,6 +1159,7 @@ static unsigned char esl_console_complete(const char *buffer, const char *cursor
esl_safe_free(dup);
return ret;
}
#endif /* if defined(HAVE_EDITLINE) || defined(WIN32) */
#ifdef HAVE_EDITLINE
static unsigned char complete(EditLine *el, int ch)
@ -1249,6 +1258,10 @@ static void read_config(const char *dft_cfile, const char *cfile) {
profiles[pcount-1].console_fnkeys[i - 1] = strdup(val);
}
}
} else if (!strcasecmp(var, "timeout")) {
timeout = atoi(val);
} else if (!strcasecmp(var, "connect-timeout")) {
connect_timeout = atoi(val);
}
}
esl_config_close_file(&cfg);
@ -1301,6 +1314,7 @@ int main(int argc, char *argv[])
{"interrupt", 0, 0, 'i'},
{"reconnect", 0, 0, 'R'},
{"timeout", 1, 0, 't'},
{"connect-timeout", 1, 0, 'T'},
{0, 0, 0, 0}
};
char temp_host[128];
@ -1319,7 +1333,7 @@ int main(int argc, char *argv[])
int argv_log_uuid = 0;
int argv_quiet = 0;
int argv_batch = 0;
int loops = 2, reconnect = 0, timeout = 0;
int loops = 2, reconnect = 0;
char *ccheck;
#ifdef WIN32
@ -1354,7 +1368,7 @@ int main(int argc, char *argv[])
esl_global_set_default_logger(6); /* default debug level to 6 (info) */
for(;;) {
int option_index = 0;
opt = getopt_long(argc, argv, "H:P:S:u:p:d:x:l:Ut:qrRhib?n", options, &option_index);
opt = getopt_long(argc, argv, "H:P:S:u:p:d:x:l:Ut:T:qrRhib?n", options, &option_index);
if (opt == -1) break;
switch (opt) {
case 'H':
@ -1418,6 +1432,9 @@ int main(int argc, char *argv[])
case 't':
timeout = atoi(optarg);
break;
case 'T':
connect_timeout = atoi(optarg);
break;
case 'h':
case '?':
print_banner(stdout, is_color);
@ -1488,7 +1505,7 @@ int main(int argc, char *argv[])
connected = 0;
while (--loops > 0) {
memset(&handle, 0, sizeof(handle));
if (esl_connect(&handle, profile->host, profile->port, profile->user, profile->pass)) {
if (esl_connect_timeout(&handle, profile->host, profile->port, profile->user, profile->pass, connect_timeout)) {
esl_global_set_default_logger(7);
esl_log(ESL_LOG_ERROR, "Error Connecting [%s]\n", handle.err);
if (loops == 1) {

View File

@ -45,7 +45,7 @@ static void handle_SIGCHLD(int sig)
return;
}
static void my_forking_callback(esl_socket_t server_sock, esl_socket_t client_sock, struct sockaddr_in *addr)
static void my_forking_callback(esl_socket_t server_sock, esl_socket_t client_sock, struct sockaddr_in *addr, void *user_data)
{
esl_handle_t handle = {{0}};
char path_buffer[1024] = { 0 };
@ -91,7 +91,7 @@ static void my_forking_callback(esl_socket_t server_sock, esl_socket_t client_so
exit(0);
}
static void mycallback(esl_socket_t server_sock, esl_socket_t client_sock, struct sockaddr_in *addr)
static void mycallback(esl_socket_t server_sock, esl_socket_t client_sock, struct sockaddr_in *addr, void *user_data)
{
esl_handle_t handle = {{0}};
const char *path;
@ -162,11 +162,11 @@ int main(int argc, char *argv[])
if (thread) {
printf("Starting threaded listener.\n");
fflush(stdout);
esl_listen_threaded(ip, port, mycallback, 100000);
esl_listen_threaded(ip, port, mycallback, NULL, 100000);
} else {
printf("Starting forking listener.\n");
fflush(stdout);
esl_listen(ip, port, my_forking_callback);
esl_listen(ip, port, my_forking_callback, NULL, NULL);
}
return 0;

View File

@ -15,7 +15,7 @@ libesljni.so: esl_wrap.o
esl.jar: libesljni.so
mkdir -p classes
javac -sourcepath org -d classes $(CLASSES)
javac -sourcepath org -d classes -source 6 -target 6 $(CLASSES)
jar cf esl.jar -C classes org
clean:

View File

@ -184,7 +184,7 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\esl_oop.cpp" />
<ClCompile Include="esl_wrap.cpp" />
<ClCompile Include="esl_wrap.2010.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\include\esl_oop.h" />

View File

@ -18,7 +18,7 @@
<ClCompile Include="..\src\esl_oop.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="esl_wrap.cpp">
<ClCompile Include="esl_wrap.2010.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>

View File

@ -188,7 +188,7 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\esl_oop.cpp" />
<ClCompile Include="esl_wrap.cpp" />
<ClCompile Include="esl_wrap.2010.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\include\esl_oop.h" />

View File

@ -18,7 +18,7 @@
<ClCompile Include="..\src\esl_oop.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="esl_wrap.cpp">
<ClCompile Include="esl_wrap.2010.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>

View File

@ -0,0 +1,331 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.1
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
class ESLPINVOKE {
protected class SWIGExceptionHelper {
public delegate void ExceptionDelegate(string message);
public delegate void ExceptionArgumentDelegate(string message, string paramName);
static ExceptionDelegate applicationDelegate = new ExceptionDelegate(SetPendingApplicationException);
static ExceptionDelegate arithmeticDelegate = new ExceptionDelegate(SetPendingArithmeticException);
static ExceptionDelegate divideByZeroDelegate = new ExceptionDelegate(SetPendingDivideByZeroException);
static ExceptionDelegate indexOutOfRangeDelegate = new ExceptionDelegate(SetPendingIndexOutOfRangeException);
static ExceptionDelegate invalidCastDelegate = new ExceptionDelegate(SetPendingInvalidCastException);
static ExceptionDelegate invalidOperationDelegate = new ExceptionDelegate(SetPendingInvalidOperationException);
static ExceptionDelegate ioDelegate = new ExceptionDelegate(SetPendingIOException);
static ExceptionDelegate nullReferenceDelegate = new ExceptionDelegate(SetPendingNullReferenceException);
static ExceptionDelegate outOfMemoryDelegate = new ExceptionDelegate(SetPendingOutOfMemoryException);
static ExceptionDelegate overflowDelegate = new ExceptionDelegate(SetPendingOverflowException);
static ExceptionDelegate systemDelegate = new ExceptionDelegate(SetPendingSystemException);
static ExceptionArgumentDelegate argumentDelegate = new ExceptionArgumentDelegate(SetPendingArgumentException);
static ExceptionArgumentDelegate argumentNullDelegate = new ExceptionArgumentDelegate(SetPendingArgumentNullException);
static ExceptionArgumentDelegate argumentOutOfRangeDelegate = new ExceptionArgumentDelegate(SetPendingArgumentOutOfRangeException);
[DllImport("ESL", EntryPoint="SWIGRegisterExceptionCallbacks_ESL")]
public static extern void SWIGRegisterExceptionCallbacks_ESL(
ExceptionDelegate applicationDelegate,
ExceptionDelegate arithmeticDelegate,
ExceptionDelegate divideByZeroDelegate,
ExceptionDelegate indexOutOfRangeDelegate,
ExceptionDelegate invalidCastDelegate,
ExceptionDelegate invalidOperationDelegate,
ExceptionDelegate ioDelegate,
ExceptionDelegate nullReferenceDelegate,
ExceptionDelegate outOfMemoryDelegate,
ExceptionDelegate overflowDelegate,
ExceptionDelegate systemExceptionDelegate);
[DllImport("ESL", EntryPoint="SWIGRegisterExceptionArgumentCallbacks_ESL")]
public static extern void SWIGRegisterExceptionCallbacksArgument_ESL(
ExceptionArgumentDelegate argumentDelegate,
ExceptionArgumentDelegate argumentNullDelegate,
ExceptionArgumentDelegate argumentOutOfRangeDelegate);
static void SetPendingApplicationException(string message) {
SWIGPendingException.Set(new System.ApplicationException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingArithmeticException(string message) {
SWIGPendingException.Set(new System.ArithmeticException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingDivideByZeroException(string message) {
SWIGPendingException.Set(new System.DivideByZeroException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingIndexOutOfRangeException(string message) {
SWIGPendingException.Set(new System.IndexOutOfRangeException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingInvalidCastException(string message) {
SWIGPendingException.Set(new System.InvalidCastException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingInvalidOperationException(string message) {
SWIGPendingException.Set(new System.InvalidOperationException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingIOException(string message) {
SWIGPendingException.Set(new System.IO.IOException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingNullReferenceException(string message) {
SWIGPendingException.Set(new System.NullReferenceException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingOutOfMemoryException(string message) {
SWIGPendingException.Set(new System.OutOfMemoryException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingOverflowException(string message) {
SWIGPendingException.Set(new System.OverflowException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingSystemException(string message) {
SWIGPendingException.Set(new System.SystemException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingArgumentException(string message, string paramName) {
SWIGPendingException.Set(new System.ArgumentException(message, paramName, SWIGPendingException.Retrieve()));
}
static void SetPendingArgumentNullException(string message, string paramName) {
Exception e = SWIGPendingException.Retrieve();
if (e != null) message = message + " Inner Exception: " + e.Message;
SWIGPendingException.Set(new System.ArgumentNullException(paramName, message));
}
static void SetPendingArgumentOutOfRangeException(string message, string paramName) {
Exception e = SWIGPendingException.Retrieve();
if (e != null) message = message + " Inner Exception: " + e.Message;
SWIGPendingException.Set(new System.ArgumentOutOfRangeException(paramName, message));
}
static SWIGExceptionHelper() {
SWIGRegisterExceptionCallbacks_ESL(
applicationDelegate,
arithmeticDelegate,
divideByZeroDelegate,
indexOutOfRangeDelegate,
invalidCastDelegate,
invalidOperationDelegate,
ioDelegate,
nullReferenceDelegate,
outOfMemoryDelegate,
overflowDelegate,
systemDelegate);
SWIGRegisterExceptionCallbacksArgument_ESL(
argumentDelegate,
argumentNullDelegate,
argumentOutOfRangeDelegate);
}
}
protected static SWIGExceptionHelper swigExceptionHelper = new SWIGExceptionHelper();
public class SWIGPendingException {
[ThreadStatic]
private static Exception pendingException = null;
private static int numExceptionsPending = 0;
public static bool Pending {
get {
bool pending = false;
if (numExceptionsPending > 0)
if (pendingException != null)
pending = true;
return pending;
}
}
public static void Set(Exception e) {
if (pendingException != null)
throw new ApplicationException("FATAL: An earlier pending exception from unmanaged code was missed and thus not thrown (" + pendingException.ToString() + ")", e);
pendingException = e;
lock(typeof(ESLPINVOKE)) {
numExceptionsPending++;
}
}
public static Exception Retrieve() {
Exception e = null;
if (numExceptionsPending > 0) {
if (pendingException != null) {
e = pendingException;
pendingException = null;
lock(typeof(ESLPINVOKE)) {
numExceptionsPending--;
}
}
}
return e;
}
}
protected class SWIGStringHelper {
public delegate string SWIGStringDelegate(string message);
static SWIGStringDelegate stringDelegate = new SWIGStringDelegate(CreateString);
[DllImport("ESL", EntryPoint="SWIGRegisterStringCallback_ESL")]
public static extern void SWIGRegisterStringCallback_ESL(SWIGStringDelegate stringDelegate);
static string CreateString(string cString) {
return cString;
}
static SWIGStringHelper() {
SWIGRegisterStringCallback_ESL(stringDelegate);
}
}
static protected SWIGStringHelper swigStringHelper = new SWIGStringHelper();
static ESLPINVOKE() {
}
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Event_set")]
public static extern void ESLevent_Event_set(HandleRef jarg1, HandleRef jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Event_get")]
public static extern IntPtr ESLevent_Event_get(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_SerializedString_set")]
public static extern void ESLevent_SerializedString_set(HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_SerializedString_get")]
public static extern string ESLevent_SerializedString_get(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Mine_set")]
public static extern void ESLevent_Mine_set(HandleRef jarg1, int jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Mine_get")]
public static extern int ESLevent_Mine_get(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_0")]
public static extern IntPtr new_ESLevent__SWIG_0(string jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_1")]
public static extern IntPtr new_ESLevent__SWIG_1(HandleRef jarg1, int jarg2);
[DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_2")]
public static extern IntPtr new_ESLevent__SWIG_2(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_delete_ESLevent")]
public static extern void delete_ESLevent(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Serialize")]
public static extern string ESLevent_Serialize(HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_SetPriority")]
public static extern bool ESLevent_SetPriority(HandleRef jarg1, HandleRef jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_GetHeader")]
public static extern string ESLevent_GetHeader(HandleRef jarg1, string jarg2, int jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_GetBody")]
public static extern string ESLevent_GetBody(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_getType")]
public static extern string ESLevent_getType(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_AddBody")]
public static extern bool ESLevent_AddBody(HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_AddHeader")]
public static extern bool ESLevent_AddHeader(HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_pushHeader")]
public static extern bool ESLevent_pushHeader(HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_unshiftHeader")]
public static extern bool ESLevent_unshiftHeader(HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_DelHeader")]
public static extern bool ESLevent_DelHeader(HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_FirstHeader")]
public static extern string ESLevent_FirstHeader(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_NextHeader")]
public static extern string ESLevent_NextHeader(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_0")]
public static extern IntPtr new_ESLconnection__SWIG_0(string jarg1, int jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_1")]
public static extern IntPtr new_ESLconnection__SWIG_1(string jarg1, int jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_2")]
public static extern IntPtr new_ESLconnection__SWIG_2(string jarg1, string jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_3")]
public static extern IntPtr new_ESLconnection__SWIG_3(string jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_4")]
public static extern IntPtr new_ESLconnection__SWIG_4(int jarg1);
[DllImport("ESL", EntryPoint="CSharp_delete_ESLconnection")]
public static extern void delete_ESLconnection(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SocketDescriptor")]
public static extern int ESLconnection_SocketDescriptor(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Connected")]
public static extern int ESLconnection_Connected(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_GetInfo")]
public static extern IntPtr ESLconnection_GetInfo(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Send")]
public static extern int ESLconnection_Send(HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SendRecv")]
public static extern IntPtr ESLconnection_SendRecv(HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Api")]
public static extern IntPtr ESLconnection_Api(HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Bgapi")]
public static extern IntPtr ESLconnection_Bgapi(HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SendEvent")]
public static extern IntPtr ESLconnection_SendEvent(HandleRef jarg1, HandleRef jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_sendMSG")]
public static extern int ESLconnection_sendMSG(HandleRef jarg1, HandleRef jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_RecvEvent")]
public static extern IntPtr ESLconnection_RecvEvent(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_RecvEventTimed")]
public static extern IntPtr ESLconnection_RecvEventTimed(HandleRef jarg1, int jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Filter")]
public static extern IntPtr ESLconnection_Filter(HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Events")]
public static extern int ESLconnection_Events(HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Execute")]
public static extern IntPtr ESLconnection_Execute(HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_ExecuteAsync")]
public static extern IntPtr ESLconnection_ExecuteAsync(HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SetAsyncExecute")]
public static extern int ESLconnection_SetAsyncExecute(HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SetEventLock")]
public static extern int ESLconnection_SetEventLock(HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Disconnect")]
public static extern int ESLconnection_Disconnect(HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_eslSetLogLevel")]
public static extern void eslSetLogLevel(int jarg1);
}

View File

@ -0,0 +1,144 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.1
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class ESLevent : IDisposable {
private HandleRef swigCPtr;
protected bool swigCMemOwn;
internal ESLevent(IntPtr cPtr, bool cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
swigCPtr = new HandleRef(this, cPtr);
}
internal static HandleRef getCPtr(ESLevent obj) {
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
}
~ESLevent() {
Dispose();
}
public virtual void Dispose() {
lock(this) {
if (swigCPtr.Handle != IntPtr.Zero) {
if (swigCMemOwn) {
swigCMemOwn = false;
ESLPINVOKE.delete_ESLevent(swigCPtr);
}
swigCPtr = new HandleRef(null, IntPtr.Zero);
}
GC.SuppressFinalize(this);
}
}
public SWIGTYPE_p_esl_event_t Event {
set {
ESLPINVOKE.ESLevent_Event_set(swigCPtr, SWIGTYPE_p_esl_event_t.getCPtr(value));
}
get {
IntPtr cPtr = ESLPINVOKE.ESLevent_Event_get(swigCPtr);
SWIGTYPE_p_esl_event_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_esl_event_t(cPtr, false);
return ret;
}
}
public string SerializedString {
set {
ESLPINVOKE.ESLevent_SerializedString_set(swigCPtr, value);
}
get {
string ret = ESLPINVOKE.ESLevent_SerializedString_get(swigCPtr);
return ret;
}
}
public int Mine {
set {
ESLPINVOKE.ESLevent_Mine_set(swigCPtr, value);
}
get {
int ret = ESLPINVOKE.ESLevent_Mine_get(swigCPtr);
return ret;
}
}
public ESLevent(string type, string subclass_name) : this(ESLPINVOKE.new_ESLevent__SWIG_0(type, subclass_name), true) {
}
public ESLevent(SWIGTYPE_p_esl_event_t wrap_me, int free_me) : this(ESLPINVOKE.new_ESLevent__SWIG_1(SWIGTYPE_p_esl_event_t.getCPtr(wrap_me), free_me), true) {
}
public ESLevent(ESLevent me) : this(ESLPINVOKE.new_ESLevent__SWIG_2(ESLevent.getCPtr(me)), true) {
}
public string Serialize(string format) {
string ret = ESLPINVOKE.ESLevent_Serialize(swigCPtr, format);
return ret;
}
public bool SetPriority(SWIGTYPE_p_esl_priority_t priority) {
bool ret = ESLPINVOKE.ESLevent_SetPriority(swigCPtr, SWIGTYPE_p_esl_priority_t.getCPtr(priority));
if (ESLPINVOKE.SWIGPendingException.Pending) throw ESLPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
public string GetHeader(string header_name, int idx) {
string ret = ESLPINVOKE.ESLevent_GetHeader(swigCPtr, header_name, idx);
return ret;
}
public string GetBody() {
string ret = ESLPINVOKE.ESLevent_GetBody(swigCPtr);
return ret;
}
public string getType() {
string ret = ESLPINVOKE.ESLevent_getType(swigCPtr);
return ret;
}
public bool AddBody(string value) {
bool ret = ESLPINVOKE.ESLevent_AddBody(swigCPtr, value);
return ret;
}
public bool AddHeader(string header_name, string value) {
bool ret = ESLPINVOKE.ESLevent_AddHeader(swigCPtr, header_name, value);
return ret;
}
public bool pushHeader(string header_name, string value) {
bool ret = ESLPINVOKE.ESLevent_pushHeader(swigCPtr, header_name, value);
return ret;
}
public bool unshiftHeader(string header_name, string value) {
bool ret = ESLPINVOKE.ESLevent_unshiftHeader(swigCPtr, header_name, value);
return ret;
}
public bool DelHeader(string header_name) {
bool ret = ESLPINVOKE.ESLevent_DelHeader(swigCPtr, header_name);
return ret;
}
public string FirstHeader() {
string ret = ESLPINVOKE.ESLevent_FirstHeader(swigCPtr);
return ret;
}
public string NextHeader() {
string ret = ESLPINVOKE.ESLevent_NextHeader(swigCPtr);
return ret;
}
}

View File

@ -57,13 +57,13 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ESL.cs" />
<Compile Include="ESLconnection.cs" />
<Compile Include="ESLevent.cs" />
<Compile Include="ESLPINVOKE.cs" />
<Compile Include="ESL.2010.cs" />
<Compile Include="ESLconnection.2010.cs" />
<Compile Include="ESLevent.2010.cs" />
<Compile Include="ESLPINVOKE.2010.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SWIGTYPE_p_esl_event_t.cs" />
<Compile Include="SWIGTYPE_p_esl_priority_t.cs" />
<Compile Include="SWIGTYPE_p_esl_event_t.2010.cs" />
<Compile Include="SWIGTYPE_p_esl_priority_t.2010.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">

View File

@ -57,13 +57,13 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ESL.cs" />
<Compile Include="ESLconnection.cs" />
<Compile Include="ESLevent.cs" />
<Compile Include="ESLPINVOKE.cs" />
<Compile Include="ESL.2010.cs" />
<Compile Include="ESLconnection.2010.cs" />
<Compile Include="ESLevent.2010.cs" />
<Compile Include="ESLPINVOKE.2010.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SWIGTYPE_p_esl_event_t.cs" />
<Compile Include="SWIGTYPE_p_esl_priority_t.cs" />
<Compile Include="SWIGTYPE_p_esl_event_t.2010.cs" />
<Compile Include="SWIGTYPE_p_esl_priority_t.2010.cs" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">

View File

@ -0,0 +1,27 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.1
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class SWIGTYPE_p_esl_event_t {
private HandleRef swigCPtr;
internal SWIGTYPE_p_esl_event_t(IntPtr cPtr, bool futureUse) {
swigCPtr = new HandleRef(this, cPtr);
}
protected SWIGTYPE_p_esl_event_t() {
swigCPtr = new HandleRef(null, IntPtr.Zero);
}
internal static HandleRef getCPtr(SWIGTYPE_p_esl_event_t obj) {
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
}
}

View File

@ -0,0 +1,27 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.1
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class SWIGTYPE_p_esl_priority_t {
private HandleRef swigCPtr;
internal SWIGTYPE_p_esl_priority_t(IntPtr cPtr, bool futureUse) {
swigCPtr = new HandleRef(this, cPtr);
}
protected SWIGTYPE_p_esl_priority_t() {
swigCPtr = new HandleRef(null, IntPtr.Zero);
}
internal static HandleRef getCPtr(SWIGTYPE_p_esl_priority_t obj) {
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
}
}

View File

@ -0,0 +1,18 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.1
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class ESL {
public static void eslSetLogLevel(int level) {
ESLPINVOKE.eslSetLogLevel(level);
}
}

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