diff --git a/.gitignore b/.gitignore index 766adfb371..514e756904 100644 --- a/.gitignore +++ b/.gitignore @@ -36,13 +36,16 @@ *.xz *.bz2 *.tbz2 +*.deb *.swp +*.serial aclocal.m4 autom4te.cache config.cache configure.lineno config.log config.status +test-driver core.* TAGS *.2010.log @@ -151,7 +154,8 @@ Release/ /src/mod/applications/mod_osp/Makefile.in /src/mod/applications/mod_rss/Makefile /src/mod/applications/mod_snipe_hunt/Makefile -/src/mod/codecs/mod_com_g729/ +/src/mod/codecs/mod_com_g729/Makefile +/src/mod/codecs/mod_com_g729/Makefile.in /src/mod/codecs/mod_dahdi_codec/Makefile /src/mod/dialplans/mod_dialplan_directory/Makefile /src/mod/formats/mod_shell_stream/Makefile @@ -168,8 +172,6 @@ Release/ BuildLog.htm -Win32/ -win32/ !/libs/win32/ !/libs/speex/win32/ !/src/mod/endpoints/mod_gsmopen/gsmlib/gsmlib-1.10-patched-13ubuntu/win32/ diff --git a/Freeswitch.2010.express.sln b/Freeswitch.2010.express.sln index 4749470674..6b7c5fde3b 100644 --- a/Freeswitch.2010.express.sln +++ b/Freeswitch.2010.express.sln @@ -38,6 +38,11 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_console", "src\mod\loggers\mod_console\mod_console.2010.vcxproj", "{1C453396-D912-4213-89FD-9B489162B7B5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_int\mod_xml_rpc\mod_xml_rpc.2010.vcxproj", "{CBEC7225-0C21-4DA8-978E-1F158F8AD950}" + ProjectSection(ProjectDependencies) = postProject + {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6} = {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6} + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} = {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} + {329A6FA0-0FCC-4435-A950-E670AEFA9838} = {329A6FA0-0FCC-4435-A950-E670AEFA9838} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.2010.vcxproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}" EndProject @@ -221,6 +226,7 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2010.vcxproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}" ProjectSection(ProjectDependencies) = postProject {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} = {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\speex\win32\VS2008\libspeex\libspeex.vcxproj", "{E972C52F-9E85-4D65-B19C-031E511E9DB4}" @@ -338,6 +344,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennmtab", "libs\win32\xmlr EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_math_fixed_tables", "libs\spandsp\src\msvc\make_math_fixed_tables.2010.vcxproj", "{9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}" 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 Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All|Win32 = All|Win32 @@ -2067,6 +2075,15 @@ Global {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release|Win32.Build.0 = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release|x64.ActiveCfg = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release|x64.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64.ActiveCfg = All|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Freeswitch.2010.sln b/Freeswitch.2010.sln index d620087405..65ade0314f 100644 --- a/Freeswitch.2010.sln +++ b/Freeswitch.2010.sln @@ -570,6 +570,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_math_fixed_tables", "l EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcbt", "libs\win32\libcbt\libcbt.2010.vcxproj", "{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}" 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 Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All|Win32 = All|Win32 @@ -3791,6 +3793,21 @@ Global {77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x64.Build.0 = Release|x64 {77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x64 Setup.ActiveCfg = Release|Win32 {77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x86 Setup.ActiveCfg = Release|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x64 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x86 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x64 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x86 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x86 Setup.ActiveCfg = All|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3907,6 +3924,7 @@ Global {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} {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} {EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC} {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000} {ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000} diff --git a/Freeswitch.2012.sln b/Freeswitch.2012.sln index 7e2d13e128..242ebc85b6 100644 --- a/Freeswitch.2012.sln +++ b/Freeswitch.2012.sln @@ -575,6 +575,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_math_fixed_tables", "l EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcbt", "libs\win32\libcbt\libcbt.2012.vcxproj", "{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}" 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 Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All|Win32 = All|Win32 @@ -3801,6 +3803,21 @@ Global {77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x64.Build.0 = Release|x64 {77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x64 Setup.ActiveCfg = Release|Win32 {77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x86 Setup.ActiveCfg = Release|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x64 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x86 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x64 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x86 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x64 Setup.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release|x86 Setup.ActiveCfg = All|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3915,8 +3932,9 @@ Global {26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} {C13CC324-0032-4492-9A30-310A6BD64FF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} - {77BC1DD2-C9A1-44D7-BFFA-1320370CACB9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} {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} {EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC} {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000} {ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000} diff --git a/acinclude.m4 b/acinclude.m4 index aeba17b5c3..58b5500a80 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -6,6 +6,7 @@ m4_include([build/config/ac_gcc_archflag.m4]) m4_include([build/config/ac_gcc_x86_cpuid.m4]) m4_include([build/config/ax_lib_mysql.m4]) m4_include([build/config/ax_check_java.m4]) +m4_include([build/config/uuid.m4]) m4_include([build/config/erlang.m4]) m4_include([build/config/odbc.m4]) m4_include([build/config/sched_setaffinity.m4]) diff --git a/build/config/uuid.m4 b/build/config/uuid.m4 new file mode 100644 index 0000000000..7f37c23c66 --- /dev/null +++ b/build/config/uuid.m4 @@ -0,0 +1,17 @@ +AC_DEFUN([CHECK_LIBUUID], + [ + PKG_CHECK_MODULES([LIBUUID], [uuid >= 1.41.2], + [LIBUUID_FOUND=yes], [LIBUUID_FOUND=no]) + if test "$LIBUUID_FOUND" = "no" ; then + PKG_CHECK_MODULES([LIBUUID], [uuid], + [LIBUUID_FOUND=yes], [LIBUUID_FOUND=no]) + if test "$LIBUUID_FOUND" = "no" ; then + AC_MSG_WARN([libuuid development package highly recommended!]) + else + LIBUUID_INCLUDEDIR=$(pkg-config --variable=includedir uuid) + LIBUUID_CFLAGS+=" -I$LIBUUID_INCLUDEDIR/uuid " + fi + fi + AC_SUBST([LIBUUID_CFLAGS]) + AC_SUBST([LIBUUID_LIBS]) + ]) diff --git a/build/modules.conf.in b/build/modules.conf.in index 81ae32f4c2..d60b1211ef 100644 --- a/build/modules.conf.in +++ b/build/modules.conf.in @@ -26,10 +26,14 @@ applications/mod_httapi #applications/mod_lcr #applications/mod_memcache #applications/mod_mongo +#applications/mod_mp4 #applications/mod_nibblebill +#applications/mod_oreka #applications/mod_osp +#applications/mod_rad_auth #applications/mod_redis #applications/mod_rss +#applications/mod_sonar applications/mod_sms #applications/mod_snapshot #applications/mod_snipe_hunt @@ -63,17 +67,20 @@ codecs/mod_h26x codecs/mod_vp8 #codecs/mod_ilbc #codecs/mod_isac +#codecs/mod_mp4v #codecs/mod_opus #codecs/mod_sangoma_codec #codecs/mod_silk #codecs/mod_siren codecs/mod_speex +#codecs/mod_theora dialplans/mod_dialplan_asterisk #dialplans/mod_dialplan_directory dialplans/mod_dialplan_xml #directories/mod_ldap #endpoints/mod_alsa #endpoints/mod_dingaling +#endpoints/mod_gsmopen #endpoints/mod_h323 #endpoints/mod_html5 #endpoints/mod_khomp @@ -81,9 +88,10 @@ endpoints/mod_loopback #endpoints/mod_opal #endpoints/mod_portaudio #endpoints/mod_rtmp -#endpoints/mod_skinny +endpoints/mod_skinny #endpoints/mod_skypopen endpoints/mod_sofia +#endpoints/mod_unicall event_handlers/mod_cdr_csv #event_handlers/mod_cdr_mongodb #event_handlers/mod_cdr_pg_csv @@ -92,6 +100,7 @@ event_handlers/mod_cdr_sqlite #event_handlers/mod_event_multicast event_handlers/mod_event_socket #event_handlers/mod_event_zmq +#event_handlers/mod_json_cdr #event_handlers/mod_radius_cdr #event_handlers/mod_rayo #event_handlers/mod_snmp @@ -117,10 +126,13 @@ loggers/mod_syslog #say/mod_say_de say/mod_say_en #say/mod_say_es +#say/mod_say_fa #say/mod_say_fr #say/mod_say_he +#say/mod_say_hr #say/mod_say_hu #say/mod_say_it +#say/mod_say_ja #say/mod_say_nl #say/mod_say_pl #say/mod_say_pt @@ -140,4 +152,4 @@ xml_int/mod_xml_scgi #../../libs/openzap/mod_openzap ## Experimental Modules (don't cry if they're broken) -#../../contrib/mod/xml_int/mod_xml_odbc +#../../contrib/mod/xml_int/mod_xml_odbc \ No newline at end of file diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/acl.conf.xml b/conf/rayo/autoload_configs/acl.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/acl.conf.xml rename to conf/rayo/autoload_configs/acl.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/cdr_csv.conf.xml b/conf/rayo/autoload_configs/cdr_csv.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/cdr_csv.conf.xml rename to conf/rayo/autoload_configs/cdr_csv.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/conference.conf.xml b/conf/rayo/autoload_configs/conference.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/conference.conf.xml rename to conf/rayo/autoload_configs/conference.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/console.conf.xml b/conf/rayo/autoload_configs/console.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/console.conf.xml rename to conf/rayo/autoload_configs/console.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/distributor.conf.xml b/conf/rayo/autoload_configs/distributor.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/distributor.conf.xml rename to conf/rayo/autoload_configs/distributor.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/event_socket.conf.xml b/conf/rayo/autoload_configs/event_socket.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/event_socket.conf.xml rename to conf/rayo/autoload_configs/event_socket.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/hash.conf.xml b/conf/rayo/autoload_configs/hash.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/hash.conf.xml rename to conf/rayo/autoload_configs/hash.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/http_cache.conf.xml b/conf/rayo/autoload_configs/http_cache.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/http_cache.conf.xml rename to conf/rayo/autoload_configs/http_cache.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/local_stream.conf.xml b/conf/rayo/autoload_configs/local_stream.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/local_stream.conf.xml rename to conf/rayo/autoload_configs/local_stream.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/logfile.conf.xml b/conf/rayo/autoload_configs/logfile.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/logfile.conf.xml rename to conf/rayo/autoload_configs/logfile.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/lua.conf.xml b/conf/rayo/autoload_configs/lua.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/lua.conf.xml rename to conf/rayo/autoload_configs/lua.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/memcache.conf.xml b/conf/rayo/autoload_configs/memcache.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/memcache.conf.xml rename to conf/rayo/autoload_configs/memcache.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/modules.conf.xml b/conf/rayo/autoload_configs/modules.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/modules.conf.xml rename to conf/rayo/autoload_configs/modules.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/pocketsphinx.conf.xml b/conf/rayo/autoload_configs/pocketsphinx.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/pocketsphinx.conf.xml rename to conf/rayo/autoload_configs/pocketsphinx.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/post_load_modules.conf.xml b/conf/rayo/autoload_configs/post_load_modules.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/post_load_modules.conf.xml rename to conf/rayo/autoload_configs/post_load_modules.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/presence_map.conf.xml b/conf/rayo/autoload_configs/presence_map.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/presence_map.conf.xml rename to conf/rayo/autoload_configs/presence_map.conf.xml diff --git a/conf/rayo/autoload_configs/rayo.conf.xml b/conf/rayo/autoload_configs/rayo.conf.xml new file mode 100644 index 0000000000..248fd47ccf --- /dev/null +++ b/conf/rayo/autoload_configs/rayo.conf.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/shout.conf.xml b/conf/rayo/autoload_configs/shout.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/shout.conf.xml rename to conf/rayo/autoload_configs/shout.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/sofia.conf.xml b/conf/rayo/autoload_configs/sofia.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/sofia.conf.xml rename to conf/rayo/autoload_configs/sofia.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/spandsp.conf.xml b/conf/rayo/autoload_configs/spandsp.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/spandsp.conf.xml rename to conf/rayo/autoload_configs/spandsp.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/ssml.conf.xml b/conf/rayo/autoload_configs/ssml.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/ssml.conf.xml rename to conf/rayo/autoload_configs/ssml.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/switch.conf.xml b/conf/rayo/autoload_configs/switch.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/switch.conf.xml rename to conf/rayo/autoload_configs/switch.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/autoload_configs/timezones.conf.xml b/conf/rayo/autoload_configs/timezones.conf.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/autoload_configs/timezones.conf.xml rename to conf/rayo/autoload_configs/timezones.conf.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/cacert.pem b/conf/rayo/cacert.pem similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/cacert.pem rename to conf/rayo/cacert.pem diff --git a/src/mod/event_handlers/mod_rayo/conf/dialplan/public.xml b/conf/rayo/dialplan/public.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/dialplan/public.xml rename to conf/rayo/dialplan/public.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/directory/default.xml b/conf/rayo/directory/default.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/directory/default.xml rename to conf/rayo/directory/default.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/directory/default/usera.xml b/conf/rayo/directory/default/usera.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/directory/default/usera.xml rename to conf/rayo/directory/default/usera.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/directory/default/userb.xml b/conf/rayo/directory/default/userb.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/directory/default/userb.xml rename to conf/rayo/directory/default/userb.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/directory/default/userc.xml b/conf/rayo/directory/default/userc.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/directory/default/userc.xml rename to conf/rayo/directory/default/userc.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/directory/default/userd.xml b/conf/rayo/directory/default/userd.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/directory/default/userd.xml rename to conf/rayo/directory/default/userd.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/freeswitch.xml b/conf/rayo/freeswitch.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/freeswitch.xml rename to conf/rayo/freeswitch.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/de/de.xml b/conf/rayo/lang/de/de.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/de/de.xml rename to conf/rayo/lang/de/de.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/de/demo/demo.xml b/conf/rayo/lang/de/demo/demo.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/de/demo/demo.xml rename to conf/rayo/lang/de/demo/demo.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/de/vm/sounds.xml b/conf/rayo/lang/de/vm/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/de/vm/sounds.xml rename to conf/rayo/lang/de/vm/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/de/vm/tts.xml b/conf/rayo/lang/de/vm/tts.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/de/vm/tts.xml rename to conf/rayo/lang/de/vm/tts.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/demo/demo-ivr.xml b/conf/rayo/lang/en/demo/demo-ivr.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/demo/demo-ivr.xml rename to conf/rayo/lang/en/demo/demo-ivr.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/demo/demo.xml b/conf/rayo/lang/en/demo/demo.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/demo/demo.xml rename to conf/rayo/lang/en/demo/demo.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/demo/funnies.xml b/conf/rayo/lang/en/demo/funnies.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/demo/funnies.xml rename to conf/rayo/lang/en/demo/funnies.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/demo/new-demo-ivr.xml b/conf/rayo/lang/en/demo/new-demo-ivr.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/demo/new-demo-ivr.xml rename to conf/rayo/lang/en/demo/new-demo-ivr.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/dir/sounds.xml b/conf/rayo/lang/en/dir/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/dir/sounds.xml rename to conf/rayo/lang/en/dir/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/dir/tts.xml b/conf/rayo/lang/en/dir/tts.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/dir/tts.xml rename to conf/rayo/lang/en/dir/tts.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/en.xml b/conf/rayo/lang/en/en.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/en.xml rename to conf/rayo/lang/en/en.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/ivr/sounds.xml b/conf/rayo/lang/en/ivr/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/ivr/sounds.xml rename to conf/rayo/lang/en/ivr/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/vm/sounds.xml b/conf/rayo/lang/en/vm/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/vm/sounds.xml rename to conf/rayo/lang/en/vm/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/vm/tts.xml b/conf/rayo/lang/en/vm/tts.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/vm/tts.xml rename to conf/rayo/lang/en/vm/tts.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/en/vm/voicemail_ivr.xml b/conf/rayo/lang/en/vm/voicemail_ivr.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/en/vm/voicemail_ivr.xml rename to conf/rayo/lang/en/vm/voicemail_ivr.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/demo/demo-es-ES.xml b/conf/rayo/lang/es/demo/demo-es-ES.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/demo/demo-es-ES.xml rename to conf/rayo/lang/es/demo/demo-es-ES.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/demo/demo-es-MX.xml b/conf/rayo/lang/es/demo/demo-es-MX.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/demo/demo-es-MX.xml rename to conf/rayo/lang/es/demo/demo-es-MX.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/demo/demo-ivr-es-ES.xml b/conf/rayo/lang/es/demo/demo-ivr-es-ES.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/demo/demo-ivr-es-ES.xml rename to conf/rayo/lang/es/demo/demo-ivr-es-ES.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/demo/demo-ivr-es-MX.xml b/conf/rayo/lang/es/demo/demo-ivr-es-MX.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/demo/demo-ivr-es-MX.xml rename to conf/rayo/lang/es/demo/demo-ivr-es-MX.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/dir/sounds-es-ES.xml b/conf/rayo/lang/es/dir/sounds-es-ES.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/dir/sounds-es-ES.xml rename to conf/rayo/lang/es/dir/sounds-es-ES.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/dir/sounds-es-MX.xml b/conf/rayo/lang/es/dir/sounds-es-MX.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/dir/sounds-es-MX.xml rename to conf/rayo/lang/es/dir/sounds-es-MX.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/dir/tts-es-ES.xml b/conf/rayo/lang/es/dir/tts-es-ES.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/dir/tts-es-ES.xml rename to conf/rayo/lang/es/dir/tts-es-ES.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/dir/tts-es-MX.xml b/conf/rayo/lang/es/dir/tts-es-MX.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/dir/tts-es-MX.xml rename to conf/rayo/lang/es/dir/tts-es-MX.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/es_ES.xml b/conf/rayo/lang/es/es_ES.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/es_ES.xml rename to conf/rayo/lang/es/es_ES.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/es_MX.xml b/conf/rayo/lang/es/es_MX.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/es_MX.xml rename to conf/rayo/lang/es/es_MX.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/vm/sounds-es-ES.xml b/conf/rayo/lang/es/vm/sounds-es-ES.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/vm/sounds-es-ES.xml rename to conf/rayo/lang/es/vm/sounds-es-ES.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/vm/sounds-es-MX.xml b/conf/rayo/lang/es/vm/sounds-es-MX.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/vm/sounds-es-MX.xml rename to conf/rayo/lang/es/vm/sounds-es-MX.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/vm/tts-es-ES.xml b/conf/rayo/lang/es/vm/tts-es-ES.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/vm/tts-es-ES.xml rename to conf/rayo/lang/es/vm/tts-es-ES.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/es/vm/tts-es-MX.xml b/conf/rayo/lang/es/vm/tts-es-MX.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/es/vm/tts-es-MX.xml rename to conf/rayo/lang/es/vm/tts-es-MX.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/fr/demo/demo.xml b/conf/rayo/lang/fr/demo/demo.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/fr/demo/demo.xml rename to conf/rayo/lang/fr/demo/demo.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/fr/dir/sounds.xml b/conf/rayo/lang/fr/dir/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/fr/dir/sounds.xml rename to conf/rayo/lang/fr/dir/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/fr/dir/tts.xml b/conf/rayo/lang/fr/dir/tts.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/fr/dir/tts.xml rename to conf/rayo/lang/fr/dir/tts.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/fr/fr.xml b/conf/rayo/lang/fr/fr.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/fr/fr.xml rename to conf/rayo/lang/fr/fr.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/fr/vm/sounds.xml b/conf/rayo/lang/fr/vm/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/fr/vm/sounds.xml rename to conf/rayo/lang/fr/vm/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/he/demo/demo-ivr.xml b/conf/rayo/lang/he/demo/demo-ivr.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/he/demo/demo-ivr.xml rename to conf/rayo/lang/he/demo/demo-ivr.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/he/demo/demo.xml b/conf/rayo/lang/he/demo/demo.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/he/demo/demo.xml rename to conf/rayo/lang/he/demo/demo.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/he/dir/sounds.xml b/conf/rayo/lang/he/dir/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/he/dir/sounds.xml rename to conf/rayo/lang/he/dir/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/he/he.xml b/conf/rayo/lang/he/he.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/he/he.xml rename to conf/rayo/lang/he/he.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/he/vm/sounds.xml b/conf/rayo/lang/he/vm/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/he/vm/sounds.xml rename to conf/rayo/lang/he/vm/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/demo/demo-ivr-pt-BR.xml b/conf/rayo/lang/pt/demo/demo-ivr-pt-BR.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/demo/demo-ivr-pt-BR.xml rename to conf/rayo/lang/pt/demo/demo-ivr-pt-BR.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/demo/demo-ivr-pt-PT.xml b/conf/rayo/lang/pt/demo/demo-ivr-pt-PT.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/demo/demo-ivr-pt-PT.xml rename to conf/rayo/lang/pt/demo/demo-ivr-pt-PT.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/demo/demo-pt-BR.xml b/conf/rayo/lang/pt/demo/demo-pt-BR.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/demo/demo-pt-BR.xml rename to conf/rayo/lang/pt/demo/demo-pt-BR.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/demo/demo-pt-PT.xml b/conf/rayo/lang/pt/demo/demo-pt-PT.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/demo/demo-pt-PT.xml rename to conf/rayo/lang/pt/demo/demo-pt-PT.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/dir/sounds-pt-BR.xml b/conf/rayo/lang/pt/dir/sounds-pt-BR.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/dir/sounds-pt-BR.xml rename to conf/rayo/lang/pt/dir/sounds-pt-BR.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/dir/sounds-pt-PT.xml b/conf/rayo/lang/pt/dir/sounds-pt-PT.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/dir/sounds-pt-PT.xml rename to conf/rayo/lang/pt/dir/sounds-pt-PT.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/dir/tts-pt-BR.xml b/conf/rayo/lang/pt/dir/tts-pt-BR.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/dir/tts-pt-BR.xml rename to conf/rayo/lang/pt/dir/tts-pt-BR.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/dir/tts-pt-PT.xml b/conf/rayo/lang/pt/dir/tts-pt-PT.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/dir/tts-pt-PT.xml rename to conf/rayo/lang/pt/dir/tts-pt-PT.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/pt_BR.xml b/conf/rayo/lang/pt/pt_BR.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/pt_BR.xml rename to conf/rayo/lang/pt/pt_BR.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/pt_PT.xml b/conf/rayo/lang/pt/pt_PT.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/pt_PT.xml rename to conf/rayo/lang/pt/pt_PT.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/vm/sounds-pt-BR.xml b/conf/rayo/lang/pt/vm/sounds-pt-BR.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/vm/sounds-pt-BR.xml rename to conf/rayo/lang/pt/vm/sounds-pt-BR.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/vm/sounds-pt-PT.xml b/conf/rayo/lang/pt/vm/sounds-pt-PT.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/vm/sounds-pt-PT.xml rename to conf/rayo/lang/pt/vm/sounds-pt-PT.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/vm/tts-pt-BR.xml b/conf/rayo/lang/pt/vm/tts-pt-BR.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/vm/tts-pt-BR.xml rename to conf/rayo/lang/pt/vm/tts-pt-BR.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/pt/vm/tts-pt-PT.xml b/conf/rayo/lang/pt/vm/tts-pt-PT.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/pt/vm/tts-pt-PT.xml rename to conf/rayo/lang/pt/vm/tts-pt-PT.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/ru/demo/demo-ivr.xml b/conf/rayo/lang/ru/demo/demo-ivr.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/ru/demo/demo-ivr.xml rename to conf/rayo/lang/ru/demo/demo-ivr.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/ru/demo/demo.xml b/conf/rayo/lang/ru/demo/demo.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/ru/demo/demo.xml rename to conf/rayo/lang/ru/demo/demo.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/ru/dir/sounds.xml b/conf/rayo/lang/ru/dir/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/ru/dir/sounds.xml rename to conf/rayo/lang/ru/dir/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/ru/dir/tts.xml b/conf/rayo/lang/ru/dir/tts.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/ru/dir/tts.xml rename to conf/rayo/lang/ru/dir/tts.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/ru/ru.xml b/conf/rayo/lang/ru/ru.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/ru/ru.xml rename to conf/rayo/lang/ru/ru.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/ru/vm/sounds.xml b/conf/rayo/lang/ru/vm/sounds.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/ru/vm/sounds.xml rename to conf/rayo/lang/ru/vm/sounds.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/lang/ru/vm/tts.xml b/conf/rayo/lang/ru/vm/tts.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/lang/ru/vm/tts.xml rename to conf/rayo/lang/ru/vm/tts.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/mime.types b/conf/rayo/mime.types similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/mime.types rename to conf/rayo/mime.types diff --git a/src/mod/event_handlers/mod_rayo/conf/sip_profiles/external.xml b/conf/rayo/sip_profiles/external.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/sip_profiles/external.xml rename to conf/rayo/sip_profiles/external.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/sip_profiles/external/example.xml b/conf/rayo/sip_profiles/external/example.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/sip_profiles/external/example.xml rename to conf/rayo/sip_profiles/external/example.xml diff --git a/src/mod/event_handlers/mod_rayo/conf/vars.xml b/conf/rayo/vars.xml similarity index 100% rename from src/mod/event_handlers/mod_rayo/conf/vars.xml rename to conf/rayo/vars.xml diff --git a/conf/vanilla/autoload_configs/lua.conf.xml b/conf/vanilla/autoload_configs/lua.conf.xml index 1eb594f0b5..f50307ea89 100644 --- a/conf/vanilla/autoload_configs/lua.conf.xml +++ b/conf/vanilla/autoload_configs/lua.conf.xml @@ -26,5 +26,7 @@ --> + + diff --git a/conf/vanilla/autoload_configs/modules.conf.xml b/conf/vanilla/autoload_configs/modules.conf.xml index 9f4168f803..0ca6bc5b34 100644 --- a/conf/vanilla/autoload_configs/modules.conf.xml +++ b/conf/vanilla/autoload_configs/modules.conf.xml @@ -48,7 +48,7 @@ - + diff --git a/conf/vanilla/lang/en/vm/sounds.xml b/conf/vanilla/lang/en/vm/sounds.xml index fdef472a5b..fae8acefaa 100644 --- a/conf/vanilla/lang/en/vm/sounds.xml +++ b/conf/vanilla/lang/en/vm/sounds.xml @@ -334,12 +334,15 @@ - + + + + - + diff --git a/conf/vanilla/mrcp_profiles/vestec-mrcp-v1.xml b/conf/vanilla/mrcp_profiles/vestec-mrcp-v1.xml new file mode 100644 index 0000000000..cbde87ca5a --- /dev/null +++ b/conf/vanilla/mrcp_profiles/vestec-mrcp-v1.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/conf/vanilla/sip_profiles/internal.xml b/conf/vanilla/sip_profiles/internal.xml index 7beecbfeab..3a5f0eb4ce 100644 --- a/conf/vanilla/sip_profiles/internal.xml +++ b/conf/vanilla/sip_profiles/internal.xml @@ -178,6 +178,10 @@ + + + + @@ -302,6 +306,10 @@ + + + + diff --git a/configure.in b/configure.in index 09714c971c..ea3694671c 100644 --- a/configure.in +++ b/configure.in @@ -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.2.10], bugs@freeswitch.org) +AC_INIT([freeswitch], [1.2.12], bugs@freeswitch.org) AC_SUBST(SWITCH_VERSION_MAJOR, [1]) AC_SUBST(SWITCH_VERSION_MINOR, [2]) -AC_SUBST(SWITCH_VERSION_MICRO, [10]) +AC_SUBST(SWITCH_VERSION_MICRO, [12]) AC_SUBST(SWITCH_VERSION_REVISION, []) AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, []) @@ -400,6 +400,10 @@ if test "x$enable_core_odbc_support" != "xno"; then AC_CHECK_LIB([odbc], [SQLDisconnect],, AC_MSG_ERROR([no usable libodbc; please install unixodbc devel package or equivalent])) fi +CHECK_LIBUUID +SWITCH_AM_LDFLAGS="$LIBUUID_LIBS $SWITCH_AM_LDFLAGS" +SWITCH_AM_CFLAGS="$LIBUUID_CFLAGS $SWITCH_AM_CFLAGS" + AC_ARG_ENABLE(core-pgsql-support, [AS_HELP_STRING([--enable-core-pgsql-support], [Compile with PGSQL Support])],,[enable_core_pgsql_support="no"]) @@ -409,7 +413,7 @@ AC_PATH_PROG([PG_CONFIG], [pg_config], [no]) if test "$PG_CONFIG" != "no"; then AC_MSG_CHECKING([for PostgreSQL libraries]) POSTGRESQL_CXXFLAGS="`$PG_CONFIG --cppflags` -I`$PG_CONFIG --includedir`" - POSTGRESQL_LDFLAGS="`$PG_CONFIG --ldflags` -L`$PG_CONFIG --libdir` -lpq" + 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 -re 's#PostgreSQL ([0-9]+).[0-9]+.[0-9]+#\1#'` POSTGRESQL_MINOR_VERSION=`$PG_CONFIG --version | sed -re 's#PostgreSQL [0-9]+.([0-9]+).[0-9]+#\1#'` diff --git a/debian/bootstrap.sh b/debian/bootstrap.sh index 473bae5539..5843872904 100755 --- a/debian/bootstrap.sh +++ b/debian/bootstrap.sh @@ -179,7 +179,7 @@ Build-Depends: # bootstrapping automake (>= 1.9), autoconf, libtool, # core build - dpkg-dev (>= 1.15.8.12), gcc (>= 4:4.4.5) , g++ (>= 4:4.4.5), + dpkg-dev (>= 1.15.8.12), gcc (>= 4:4.4.5), g++ (>= 4:4.4.5), libc6-dev (>= 2.11.3), make (>= 3.81), wget, pkg-config, # configure options diff --git a/debian/control-modules b/debian/control-modules index 188f17ff96..ec291c71b6 100644 --- a/debian/control-modules +++ b/debian/control-modules @@ -227,9 +227,9 @@ Description: Voicemail detection This module detects voicemail beeps at any frequency in O(1) time. Module: applications/mod_voicemail -Depends: mail-transport-agent Description: Voicemail This module provides a voicemail system. +Depends: mail-transport-agent Module: applications/mod_voicemail_ivr Description: Voicemail IVR @@ -490,6 +490,10 @@ Module: event_handlers/mod_radius_cdr Description: mod_radius_cdr Adds mod_radius_cdr. +Module: event_handlers/mod_rayo +Description: mod_rayo + Adds mod_rayo. + Module: event_handlers/mod_snmp Description: mod_snmp Adds mod_snmp. @@ -523,6 +527,10 @@ Description: mod_sndfile Adds mod_sndfile. Build-Depends: libflac-dev, libogg-dev, libvorbis-dev +Module: formats/mod_ssml +Description: mod_ssml + Adds mod_ssml. + Module: formats/mod_tone_stream Description: mod_tone_stream Adds mod_tone_stream. diff --git a/debian/freeswitch-mod-managed.install.tmpl b/debian/freeswitch-mod-managed.install.tmpl new file mode 100644 index 0000000000..fb30d673f8 --- /dev/null +++ b/debian/freeswitch-mod-managed.install.tmpl @@ -0,0 +1 @@ +/usr/lib/freeswitch/mod/FreeSWITCH.Managed.dll diff --git a/debian/freeswitch-mod-spidermonkey.install.tmpl b/debian/freeswitch-mod-spidermonkey.install.tmpl new file mode 100644 index 0000000000..cb98d43c5d --- /dev/null +++ b/debian/freeswitch-mod-spidermonkey.install.tmpl @@ -0,0 +1,5 @@ +/usr/lib/freeswitch/mod/mod_spidermonkey_core_db.so +/usr/lib/freeswitch/mod/mod_spidermonkey_curl.so +/usr/lib/freeswitch/mod/mod_spidermonkey_odbc.so +/usr/lib/freeswitch/mod/mod_spidermonkey_socket.so +/usr/lib/freeswitch/mod/mod_spidermonkey_teletone.so diff --git a/docs/SubmittingPatches b/docs/SubmittingPatches new file mode 100644 index 0000000000..e839ff128d --- /dev/null +++ b/docs/SubmittingPatches @@ -0,0 +1,117 @@ +How to Contribute Patches to FreeSWITCH +======================================= + +Download the Source Code +------------------------ + + git clone git://git.freeswitch.org/freeswitch.git + cd freeswitch + +Create Your Patch +----------------- + + # create a topic/feature branch in your local repository + git checkout -b myfeature + + # make your change + emacs . + + # commit the results locally; see below for how to write a good + # commit message + git commit -va + + # create more commits as needed such that each commit represents a + # logically separate change + #while true; do emacs .; git commit -va; done + + # create patch files + git format-patch origin/master..HEAD + + # you'll now have a number of *.patch files in your current + # directory + + # navigate to the FreeSWITCH JIRA + chromium http://jira.freeswitch.org/ + + # create an account in JIRA and create a new issue; + # attach the patch file(s) you created to the issue + +Writing a Good Commit Message +----------------------------- + +Your commit message consists of two parts: the subject and the body. + +The subject is like the subject in an email message. It should be +short -- typically less than 50 characters -- and it should concisely +describe the purpose or effect of your change. + +If you're having a difficult time writing a short subject for your +commit, perhaps your commit should be broken into smaller separate +commits. + +The commit body can be longer and can consist of multiple paragraphs. +The text of the body should be hard wrapped to 68-72 characters. + +When writing the commit body, describe in detail the problem that your +commit aims to solve, how your commit solves the problem, and any +changes in behavior that result from your change, such as new +variables, command flags, or breaks in backward compatibility. + +Your commit message should be written in the present tense in +imperative style. Your message should talk about what the patch +*does*, not what you *did* to write it. + +The commit subject is the first line of your commit message, then +there is an empty line, then your commit body starts. A good commit +message might look like this: + +> Add frobinator support to mod_sofia +> +> Without proper frobinator support users had to make multiple calls +> to shell scripts to do the sort of frobbing needed in high call +> volume environments. +> +> With this change, we now link to libfrob and support the IETF +> draft-cross-voip-frobbing API. +> +> After appropriate amounts of frobbing have been done, a new variable +> `frobbing_done` is set in the caller's channel. +> +> FS-XXXX --resolve + +Patches Related to JIRA Issues +------------------------------ + +When your patch is related to an issue logged in JIRA, add the +identifier for the issue (e.g. FS-XXXX) to the body of your commit +message at the beginning of a line, typically the last line or just +before "Signed-off-by:" and "Thanks-to:" lines. This helps our JIRA +bot do useful things by relating the commit to the issue. + +If you believe your patch resolves the issue in question, follow the +issue number with a space and the "--resolve" directive as in the +example above. + +Where to Go for Help +-------------------- + +If you have any questions or run into any roadblocks please reach out +to us. You can send an email to our development mailing list: + +> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev + +Note that while you're free to send a patch to that list for questions +or for review, patches sent to the mailing list will not be considered +for inclusion. Patches that you want included in FreeSWITCH must be +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 + diff --git a/freeswitch.spec b/freeswitch.spec index 4e77fc5e4a..fce5618e8a 100644 --- a/freeswitch.spec +++ b/freeswitch.spec @@ -116,14 +116,14 @@ 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 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 -Source7: http://files.freeswitch.org/downloads/libs/pocketsphinx-0.7.tar.gz -Source8: http://files.freeswitch.org/downloads/libs/soundtouch-1.6.0.tar.gz -Source9: http://files.freeswitch.org/downloads/libs/sphinxbase-0.7.tar.gz -Source10: http://files.freeswitch.org/downloads/libs/communicator_semi_6000_20080321.tar.gz -Source11: http://files.freeswitch.org/downloads/libs/libmemcached-0.32.tar.gz -Source12: http://files.freeswitch.org/downloads/libs/json-c-0.9.tar.gz -Source13: http://files.freeswitch.org/downloads/libs/opus-0.9.0.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 +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 Prefix: %{prefix} @@ -137,7 +137,7 @@ Prefix: %{prefix} #BuildRequires: openldap2-devel BuildRequires: lzo-devel %else -BuildRequires: openldap-devel +#BuildRequires: openldap-devel %endif BuildRequires: autoconf BuildRequires: automake @@ -182,7 +182,7 @@ Requires: ncurses Requires: openssl Requires: unixODBC Requires: libjpeg -Requires: openldap +#Requires: openldap Requires: db4 Requires: gdbm Requires: zlib @@ -770,13 +770,13 @@ Theora Video Codec support for FreeSWITCH open source telephony platform. # FreeSWITCH Directory Modules ###################################################################################################################### -%package directory-ldap -Summary: LDAP Directory support for FreeSWITCH open source telephony platform -Group: System/Libraries -Requires: %{name} = %{version}-%{release} +#%package directory-ldap +#Summary: LDAP Directory support for FreeSWITCH open source telephony platform +#Group: System/Libraries +#Requires: %{name} = %{version}-%{release} -%description directory-ldap -LDAP Directory support for FreeSWITCH open source telephony platform. +#%description directory-ldap +#LDAP Directory support for FreeSWITCH open source telephony platform. ###################################################################################################################### # FreeSWITCH Endpoint Modules @@ -1266,7 +1266,6 @@ cp %{SOURCE9} libs/ cp %{SOURCE10} libs/ cp %{SOURCE11} libs/ cp %{SOURCE12} libs/ -cp %{SOURCE13} libs/ ###################################################################################################################### # @@ -1766,6 +1765,7 @@ fi %config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/switch.conf.xml %config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/syslog.conf.xml %config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/timezones.conf.xml +%config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/translate.conf.xml %config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/tts_commandline.conf.xml %config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/unicall.conf.xml %config(noreplace) %attr(0640, freeswitch, daemon) %{sysconfdir}/autoload_configs/unimrcp.conf.xml @@ -2071,9 +2071,9 @@ fi # ###################################################################################################################### -%files directory-ldap -%defattr(-,freeswitch,daemon) -%{MODINSTDIR}/mod_theora.so* +#%files directory-ldap +#%defattr(-,freeswitch,daemon) +#%{MODINSTDIR}/mod_theora.so* ###################################################################################################################### # diff --git a/fscomm/conf/freeswitch.serial b/fscomm/conf/freeswitch.serial deleted file mode 100644 index 1ed5449607..0000000000 Binary files a/fscomm/conf/freeswitch.serial and /dev/null differ diff --git a/htdocs/portal/assets/js/fsportal.js b/htdocs/portal/assets/js/fsportal.js index 32c3b24703..d002cac4d1 100644 --- a/htdocs/portal/assets/js/fsportal.js +++ b/htdocs/portal/assets/js/fsportal.js @@ -154,6 +154,12 @@ App.ShowSaysRoute = Ember.Route.extend({ } }); +App.ShowNatMapsRoute = Ember.Route.extend({ + setupController: function(controller) { + App.showNatMapsController.load(); + } +}); + App.ShowChatsRoute = Ember.Route.extend({ setupController: function(controller) { App.showChatsController.load(); @@ -203,6 +209,7 @@ App.Router.map(function(){ this.route("showAliases"); this.route("showCompletes"); this.route("showManagements"); + this.route("showNatMaps"); this.route("showSays"); this.route("showChats"); this.route("showInterfaces"); @@ -256,6 +263,10 @@ App.callsController = Ember.ArrayController.create({ }); }, + delete: function(uuid) { + var obj = this.content.findProperty("uuid", uuid); + if (obj) this.content.removeObject(obj);// else alert(uuid); + }, dump: function(uuid) { var obj = this.content.findProperty("uuid", uuid); console.log(obj.getProperties(["uuid", "cid_num"])); @@ -550,6 +561,23 @@ App.showManagementsController = Ember.ArrayController.create({ } }); +App.showNatMapsController = Ember.ArrayController.create({ + content: [], + init: function(){ + }, + load: function() { + var me = this; + $.getJSON("/txtapi/show?nat_map%20as%20json", function(data){ + me.set('total', data.row_count); + me.content.clear(); + if (data.row_count == 0) return; + + me.pushObjects(data.rows); + + }); + } +}); + App.showSaysController = Ember.ArrayController.create({ content: [], init: function(){ @@ -687,10 +715,17 @@ App.usersController = Ember.ArrayController.create({ }); App.initialize(); - +var global_debug_event = false; +var global_background_job = false; function eventCallback(data) { console.log(data["Event-Name"]); + + if (global_debug_event || + (global_background_job && data["Event-Name"] == "BACKGROUND_JOB")) { + console.log(data); + } + if (data["Event-Name"] == "CHANNEL_CREATE") { var channel = { uuid: data["Unique-ID"], @@ -700,8 +735,47 @@ function eventCallback(data) { direction: data["Call-Direction"] } App.channelsController.pushObject(App.Channel.create(channel)); + + var x = $('#auto_update_calls')[0]; + if (typeof x != "undefined" && x.checked) { + return; + } + + App.callsController.pushObject(App.Call.create(channel)); } else if (data["Event-Name"] == "CHANNEL_HANGUP_COMPLETE") { App.channelsController.delete(data["Unique-ID"]); + + var x = $('#auto_update_calls')[0]; + if (typeof x != "undefined" && x.checked) { + return; + } + + App.callsController.delete(data["Unique-ID"]); + } else if (data["Event-Name"] == "CHANNEL_BRIDGE") { + var x = $('#auto_update_calls')[0]; + if (typeof x != "undefined" && x.checked) { + return; + } + + App.callsController.delete(data["Unique-ID"]); + App.callsController.delete(data["Other-Leg-Unique-ID"]); + + var call = { + uuid: data["Unique-ID"], + b_uuid: data["Other-Leg-Unique-ID"], + cid_num: data["Caller-Caller-ID-Number"], + b_cid_num: data["Other-Leg-Caller-ID-Number"], + dest: data["Caller-Destination-Number"], + b_dest: data["Other-Leg-Destination-Number"], + callstate: data["Channel-Call-State"], + b_callstate: data["Channel-Call-State"], + direction: data["Call-Direction"], + b_direction: data["Other-Leg-Direction"], + created: data["Caller-Channel-Created-Time"] + }; + + App.callsController.pushObject(App.Call.create(call)); + } else if (data["Event-Name"] == "CHANNEL_CALLSTATE") { var obj = App.channelsController.content.findProperty("uuid", data["Unique-ID"]); if (obj) { @@ -711,3 +785,34 @@ function eventCallback(data) { } } +// execute api +function api(cmdstr) +{ + cmdarr = cmdstr.split(" "); + cmd = cmdarr.shift(); + arg = escape(cmdarr.join(" ")); + arg = arg ? "?" + arg : ""; + url = "/txtapi/" + cmd + arg; + $.get(url, function(data){ + console.log(data); + }); + return url; +} + +//execute bgapi +function bgapi(cmd) +{ + if (!global_background_job) { + socket.send("event json BACKGROUND_JOB"); + global_background_job = true; + } + api("bgapi " + cmd); +} + +// subscribe event +function event(e) +{ + cmd = "event json " + e; + socket.send(cmd); + return cmd; +} diff --git a/htdocs/portal/assets/js/ie-console.js b/htdocs/portal/assets/js/ie-console.js new file mode 100644 index 0000000000..60f73cceec --- /dev/null +++ b/htdocs/portal/assets/js/ie-console.js @@ -0,0 +1,19 @@ +// var ie_console_alertFallback = true; +// var ie_console_divFallback = true; + +if (typeof console === "undefined" || typeof console.log === "undefined") { + console = {}; + + if (typeof ie_console_divFallback != "undefined") { + console.log = function(msg) { + $('#ie_console_debug_div').append(msg); + $('#ie_console_debug_div').append("
"); + } + } else if (typeof ie_console_alertFallback != "undefined" ) { + console.log = function(msg) { + alert(msg); + }; + } else { + console.log = function() {}; + } +} diff --git a/htdocs/portal/index.html b/htdocs/portal/index.html index 47270e6814..351b09590e 100644 --- a/htdocs/portal/index.html +++ b/htdocs/portal/index.html @@ -357,6 +357,28 @@ + + @@ -687,6 +770,7 @@ $('#ws-status').html('Socket Connected').css("color", "green"); // socket.send("event json all"); socket.send("event json CHANNEL_CREATE"); + socket.send("event json CHANNEL_BRIDGE"); socket.send("event json CHANNEL_HANGUP_COMPLETE"); socket.send("event json CHANNEL_CALLSTATE"); } @@ -694,7 +778,6 @@ socket.onmessage =function(msg) { // console.log(msg.data); var data = JSON.parse(msg.data); - console.log(data["Event-Name"]); eventCallback(data); } diff --git a/libs/.gitignore b/libs/.gitignore index 093c5bdf10..8fca0c8c42 100644 --- a/libs/.gitignore +++ b/libs/.gitignore @@ -238,16 +238,48 @@ opal /ldns/Makefile /ldns/packaging/ldns-config /libcodec2/src/c2dec +/libcodec2/src/c2demo /libcodec2/src/c2enc /libcodec2/src/c2sim +/libcodec2/src/codebook.c +/libcodec2/src/codebookd.c +/libcodec2/src/codebookdt.c +/libcodec2/src/codebookge.c +/libcodec2/src/codebookjnd.c +/libcodec2/src/codebookjvm.c +/libcodec2/src/codebookvqanssi.c +/libcodec2/src/fdmdv_demod +/libcodec2/src/fdmdv_get_test_bits +/libcodec2/src/fdmdv_interleave +/libcodec2/src/fdmdv_mod +/libcodec2/src/fdmdv_put_test_bits +/libcodec2/src/generate_codebook +/libcodec2/src/genlspdtcb +/libcodec2/unittest/create_interleaver +/libcodec2/unittest/de /libcodec2/unittest/extract +/libcodec2/unittest/genampdata /libcodec2/unittest/genlsp +/libcodec2/unittest/genphdata /libcodec2/unittest/genres +/libcodec2/unittest/lspsync +/libcodec2/unittest/polar2rect +/libcodec2/unittest/pre +/libcodec2/unittest/scalarlsptest +/libcodec2/unittest/t48_8 /libcodec2/unittest/tcodec2 +/libcodec2/unittest/tfdmdv +/libcodec2/unittest/tfifo /libcodec2/unittest/tinterp +/libcodec2/unittest/tlspsens /libcodec2/unittest/tnlp +/libcodec2/unittest/tprede /libcodec2/unittest/tquant +/libcodec2/unittest/vq_train_jvm /libcodec2/unittest/vqtrain +/libcodec2/unittest/vqtrainjnd +/libcodec2/unittest/vqtrainph +/libcodec2/unittest/vqtrainsp /libdingaling/build/compile /libdingaling/Makefile /libdingaling/Makefile.in @@ -355,6 +387,11 @@ opal /libwebsockets/compile /libwebsockets/test-server/Makefile /libwebsockets/test-server/Makefile.in +/libwebsockets/test-server/libwebsockets-test-client +/libwebsockets/test-server/libwebsockets-test-fraggle +/libwebsockets/test-server/libwebsockets-test-ping +/libwebsockets/test-server/libwebsockets-test-server +/libwebsockets/test-server/libwebsockets-test-server-extpoll /mongo-cxx-driver-v*/ /mpg123/ /libmpg123/ @@ -558,11 +595,13 @@ opal /spandsp/src/Makefile.in /spandsp/src/make_math_fixed_tables /spandsp/src/make_modem_filter +/spandsp/src/make_t43_gray_code_tables /spandsp/src/math_fixed_tables.h /spandsp/src/msvc/All/BuildLog make_at_dictionary.htm /spandsp/src/msvc/All/BuildLog make_modem_filter.htm /spandsp/src/spandsp.h /spandsp/src/stamp-h1 +/spandsp/src/t43_gray_code_tables.h /spandsp/src/v17_v32bis_rx_fixed_rrc.h /spandsp/src/v17_v32bis_rx_floating_rrc.h /spandsp/src/v17_v32bis_tx_fixed_rrc.h @@ -923,9 +962,12 @@ opal /sipcc/Makefile /sipcc/Makefile.in -/yaml/ +/yaml/Makefile /yaml/config.h +/yaml/include/Makefile +/yaml/src/Makefile /yaml/stamp-h1 +/yaml/tests/Makefile /yaml/tests/example-deconstructor /yaml/tests/example-deconstructor-alt /yaml/tests/example-reformatter @@ -935,6 +977,7 @@ opal /yaml/tests/run-loader /yaml/tests/run-parser /yaml/tests/run-scanner + /zeromq-*/ /jpeg-8d/ diff --git a/libs/esl/fs_cli.c b/libs/esl/fs_cli.c index 0e6521908c..05286ecc49 100644 --- a/libs/esl/fs_cli.c +++ b/libs/esl/fs_cli.c @@ -57,6 +57,7 @@ typedef struct { int debug; const char *console_fnkeys[12]; char loglevel[128]; + int log_uuid; int quiet; int batch_mode; char prompt_color[12]; @@ -595,6 +596,7 @@ static const char *usage_str = " -i, --interrupt Allow Control-c to interrupt\n" " -x, --execute=command Execute Command and Exit\n" " -l, --loglevel=command Log Level\n" + " -U, --log-uuid Include UUID in log output\n" " -q, --quiet Disable logging\n" " -r, --retry Retry connection on failure\n" " -R, --reconnect Reconnect if disconnected\n" @@ -745,10 +747,14 @@ static void *msg_thread_run(esl_thread_t *me, void *obj) if (aok) { if (feature_level) clear_line(); if(!(global_profile->batch_mode)) { - printf("%s%s", colors[level], handle->last_event->body); + printf("%s", colors[level]); + } + if (global_profile->log_uuid && !esl_strlen_zero(userdata)) { + printf("%s ", userdata); + } + printf("%s", handle->last_event->body); + if(!(global_profile->batch_mode)) { if (!feature_level) printf("%s", ESL_SEQ_DEFAULT_COLOR); - } else { - printf("%s", handle->last_event->body); } if (feature_level) redisplay(); } @@ -757,6 +763,10 @@ static void *msg_thread_run(esl_thread_t *me, void *obj) if(!(global_profile->batch_mode)) { SetConsoleTextAttribute(hStdout, colors[level]); } + if (global_profile->log_uuid && !esl_strlen_zero(userdata)) { + WriteFile(hStdout, userdata, (DWORD)strlen(userdata), &outbytes, NULL); + WriteFile(hStdout, " ", (DWORD)strlen(" "), &outbytes, NULL); + } WriteFile(hStdout, handle->last_event->body, len, &outbytes, NULL); if(!(global_profile->batch_mode)) { SetConsoleTextAttribute(hStdout, wOldColorAttrs); @@ -1191,7 +1201,7 @@ static void read_config(const char *dft_cfile, const char *cfile) { if (strcmp(cur_cat, cfg.category)) { esl_set_string(cur_cat, cfg.category); esl_set_string(profiles[pcount].name, cur_cat); - esl_set_string(profiles[pcount].host, "localhost"); + esl_set_string(profiles[pcount].host, "127.0.0.1"); esl_set_string(profiles[pcount].pass, "ClueCon"); profiles[pcount].port = 8021; set_fn_keys(&profiles[pcount]); @@ -1221,6 +1231,8 @@ static void read_config(const char *dft_cfile, const char *cfile) { } } else if(!strcasecmp(var, "loglevel")) { esl_set_string(profiles[pcount-1].loglevel, val); + } else if(!strcasecmp(var, "log-uuid")) { + profiles[pcount-1].log_uuid = esl_true(val); } else if(!strcasecmp(var, "quiet")) { profiles[pcount-1].quiet = esl_true(val); } else if(!strcasecmp(var, "prompt-color")) { @@ -1282,6 +1294,7 @@ int main(int argc, char *argv[]) {"debug", 1, 0, 'd'}, {"execute", 1, 0, 'x'}, {"loglevel", 1, 0, 'l'}, + {"log-uuid", 0, 0, 'U'}, {"quiet", 0, 0, 'q'}, {"batchmode", 0, 0, 'b'}, {"retry", 0, 0, 'r'}, @@ -1303,6 +1316,7 @@ int main(int argc, char *argv[]) int argv_exec = 0; char argv_command[1024] = ""; char argv_loglevel[128] = ""; + int argv_log_uuid = 0; int argv_quiet = 0; int argv_batch = 0; int loops = 2, reconnect = 0, timeout = 0; @@ -1340,7 +1354,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:U:P:S:u:p:d:x:l:t:qrRhib?n", options, &option_index); + opt = getopt_long(argc, argv, "H:P:S:u:p:d:x:l:Ut:qrRhib?n", options, &option_index); if (opt == -1) break; switch (opt) { case 'H': @@ -1383,6 +1397,9 @@ int main(int argc, char *argv[]) case 'l': esl_set_string(argv_loglevel, optarg); break; + case 'U': + argv_log_uuid = 1; + break; case 'q': argv_quiet = 1; break; @@ -1445,6 +1462,9 @@ int main(int argc, char *argv[]) esl_set_string(profile->loglevel, argv_loglevel); profile->quiet = 0; } + if (argv_log_uuid) { + profile->log_uuid = 1; + } esl_log(ESL_LOG_DEBUG, "Using profile %s [%s]\n", profile->name, profile->host); esl_set_string(prompt_color, profile->prompt_color); esl_set_string(input_text_color, profile->input_text_color); diff --git a/libs/esl/java/esl_wrap.cpp b/libs/esl/java/esl_wrap.cpp index 0550231dde..c5c4fa60c2 100644 --- a/libs/esl/java/esl_wrap.cpp +++ b/libs/esl/java/esl_wrap.cpp @@ -634,7 +634,70 @@ SWIGEXPORT jstring JNICALL Java_org_freeswitch_esl_eslJNI_ESLevent_1nextHeader(J } -SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jstring jarg3, jstring jarg4) { +SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3, jstring jarg4) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + ESLconnection *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (int)jarg2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + arg4 = 0; + if (jarg4) { + arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0); + if (!arg4) return 0; + } + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4); + *(ESLconnection **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jstring jarg3) { + jlong jresult = 0 ; + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + ESLconnection *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = 0; + if (jarg1) { + arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0); + if (!arg1) return 0; + } + arg2 = (int)jarg2; + arg3 = 0; + if (jarg3) { + arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); + if (!arg3) return 0; + } + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3); + *(ESLconnection **)&jresult = result; + if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1); + if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jstring jarg3, jstring jarg4) { jlong jresult = 0 ; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -674,7 +737,7 @@ SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SW } -SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jstring jarg3) { +SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2, jstring jarg3) { jlong jresult = 0 ; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -707,7 +770,7 @@ SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SW } -SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jint jarg1) { +SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_new_1ESLconnection_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jint jarg1) { jlong jresult = 0 ; int arg1 ; ESLconnection *result = 0 ; diff --git a/libs/esl/java/org/freeswitch/esl/ESLconnection.java b/libs/esl/java/org/freeswitch/esl/ESLconnection.java index 588cefcc99..a45613473d 100644 --- a/libs/esl/java/org/freeswitch/esl/ESLconnection.java +++ b/libs/esl/java/org/freeswitch/esl/ESLconnection.java @@ -33,16 +33,24 @@ public class ESLconnection { swigCPtr = 0; } - public ESLconnection(String host, String port, String user, String password) { + public ESLconnection(String host, int port, String user, String password) { this(eslJNI.new_ESLconnection__SWIG_0(host, port, user, password), true); } - public ESLconnection(String host, String port, String password) { + public ESLconnection(String host, int port, String password) { this(eslJNI.new_ESLconnection__SWIG_1(host, port, password), true); } + public ESLconnection(String host, String port, String user, String password) { + this(eslJNI.new_ESLconnection__SWIG_2(host, port, user, password), true); + } + + public ESLconnection(String host, String port, String password) { + this(eslJNI.new_ESLconnection__SWIG_3(host, port, password), true); + } + public ESLconnection(int socket) { - this(eslJNI.new_ESLconnection__SWIG_2(socket), true); + this(eslJNI.new_ESLconnection__SWIG_4(socket), true); } public int socketDescriptor() { diff --git a/libs/esl/java/org/freeswitch/esl/eslJNI.java b/libs/esl/java/org/freeswitch/esl/eslJNI.java index ff3744e9df..e7da6f5fdf 100644 --- a/libs/esl/java/org/freeswitch/esl/eslJNI.java +++ b/libs/esl/java/org/freeswitch/esl/eslJNI.java @@ -31,9 +31,11 @@ class eslJNI { public final static native boolean ESLevent_delHeader(long jarg1, ESLevent jarg1_, String jarg2); public final static native String ESLevent_firstHeader(long jarg1, ESLevent jarg1_); public final static native String ESLevent_nextHeader(long jarg1, ESLevent jarg1_); - public final static native long new_ESLconnection__SWIG_0(String jarg1, String jarg2, String jarg3, String jarg4); - public final static native long new_ESLconnection__SWIG_1(String jarg1, String jarg2, String jarg3); - public final static native long new_ESLconnection__SWIG_2(int jarg1); + public final static native long new_ESLconnection__SWIG_0(String jarg1, int jarg2, String jarg3, String jarg4); + public final static native long new_ESLconnection__SWIG_1(String jarg1, int jarg2, String jarg3); + public final static native long new_ESLconnection__SWIG_2(String jarg1, String jarg2, String jarg3, String jarg4); + public final static native long new_ESLconnection__SWIG_3(String jarg1, String jarg2, String jarg3); + public final static native long new_ESLconnection__SWIG_4(int jarg1); public final static native void delete_ESLconnection(long jarg1); public final static native int ESLconnection_socketDescriptor(long jarg1, ESLconnection jarg1_); public final static native int ESLconnection_connected(long jarg1, ESLconnection jarg1_); diff --git a/libs/esl/lua/esl_wrap.cpp b/libs/esl/lua/esl_wrap.cpp index 9420f853bb..9dac86544d 100644 --- a/libs/esl/lua/esl_wrap.cpp +++ b/libs/esl/lua/esl_wrap.cpp @@ -2231,6 +2231,63 @@ static const char *swig_ESLevent_base_names[] = {0}; static swig_lua_class _wrap_class_ESLevent = { "ESLevent", &SWIGTYPE_p_ESLevent,_wrap_new_ESLevent, swig_delete_ESLevent, swig_ESLevent_methods, swig_ESLevent_attributes, swig_ESLevent_bases, swig_ESLevent_base_names }; static int _wrap_new_ESLconnection__SWIG_0(lua_State* L) { + int SWIG_arg = -1; + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + ESLconnection *result = 0 ; + + SWIG_check_num_args("ESLconnection",4,4) + if(!lua_isstring(L,1)) SWIG_fail_arg("ESLconnection",1,"char const *"); + if(!lua_isnumber(L,2)) SWIG_fail_arg("ESLconnection",2,"int const"); + if(!lua_isstring(L,3)) SWIG_fail_arg("ESLconnection",3,"char const *"); + if(!lua_isstring(L,4)) SWIG_fail_arg("ESLconnection",4,"char const *"); + arg1 = (char *)lua_tostring(L, 1); + arg2 = (int const)lua_tonumber(L, 2); + arg3 = (char *)lua_tostring(L, 3); + arg4 = (char *)lua_tostring(L, 4); + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4); + SWIG_arg=0; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLconnection,1); SWIG_arg++; + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static int _wrap_new_ESLconnection__SWIG_1(lua_State* L) { + int SWIG_arg = -1; + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + ESLconnection *result = 0 ; + + SWIG_check_num_args("ESLconnection",3,3) + if(!lua_isstring(L,1)) SWIG_fail_arg("ESLconnection",1,"char const *"); + if(!lua_isnumber(L,2)) SWIG_fail_arg("ESLconnection",2,"int const"); + if(!lua_isstring(L,3)) SWIG_fail_arg("ESLconnection",3,"char const *"); + arg1 = (char *)lua_tostring(L, 1); + arg2 = (int const)lua_tonumber(L, 2); + arg3 = (char *)lua_tostring(L, 3); + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3); + SWIG_arg=0; + SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLconnection,1); SWIG_arg++; + return SWIG_arg; + + if(0) SWIG_fail; + +fail: + lua_error(L); + return SWIG_arg; +} + + +static int _wrap_new_ESLconnection__SWIG_2(lua_State* L) { int SWIG_arg = -1; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -2260,7 +2317,7 @@ fail: } -static int _wrap_new_ESLconnection__SWIG_1(lua_State* L) { +static int _wrap_new_ESLconnection__SWIG_3(lua_State* L) { int SWIG_arg = -1; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -2287,7 +2344,7 @@ fail: } -static int _wrap_new_ESLconnection__SWIG_2(lua_State* L) { +static int _wrap_new_ESLconnection__SWIG_4(lua_State* L) { int SWIG_arg = -1; int arg1 ; ESLconnection *result = 0 ; @@ -2321,7 +2378,26 @@ static int _wrap_new_ESLconnection(lua_State* L) { _v = lua_isnumber(L,argv[0]); } if (_v) { - return _wrap_new_ESLconnection__SWIG_2(L); + return _wrap_new_ESLconnection__SWIG_4(L); + } + } + if (argc == 3) { + int _v; + { + _v = lua_isstring(L,argv[0]); + } + if (_v) { + { + _v = lua_isnumber(L,argv[1]); + } + if (_v) { + { + _v = lua_isstring(L,argv[2]); + } + if (_v) { + return _wrap_new_ESLconnection__SWIG_1(L); + } + } } } if (argc == 3) { @@ -2338,7 +2414,31 @@ static int _wrap_new_ESLconnection(lua_State* L) { _v = lua_isstring(L,argv[2]); } if (_v) { - return _wrap_new_ESLconnection__SWIG_1(L); + return _wrap_new_ESLconnection__SWIG_3(L); + } + } + } + } + if (argc == 4) { + int _v; + { + _v = lua_isstring(L,argv[0]); + } + if (_v) { + { + _v = lua_isnumber(L,argv[1]); + } + if (_v) { + { + _v = lua_isstring(L,argv[2]); + } + if (_v) { + { + _v = lua_isstring(L,argv[3]); + } + if (_v) { + return _wrap_new_ESLconnection__SWIG_0(L); + } } } } @@ -2361,7 +2461,7 @@ static int _wrap_new_ESLconnection(lua_State* L) { _v = lua_isstring(L,argv[3]); } if (_v) { - return _wrap_new_ESLconnection__SWIG_0(L); + return _wrap_new_ESLconnection__SWIG_2(L); } } } diff --git a/libs/esl/managed/ESLPINVOKE.cs b/libs/esl/managed/ESLPINVOKE.cs index 5ada2c148d..749ebeabfe 100644 --- a/libs/esl/managed/ESLPINVOKE.cs +++ b/libs/esl/managed/ESLPINVOKE.cs @@ -251,13 +251,19 @@ class ESLPINVOKE { 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, string jarg2, string jarg3, string jarg4); + 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, string jarg2, string jarg3); + 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(int jarg1); + 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); diff --git a/libs/esl/managed/ESLconnection.cs b/libs/esl/managed/ESLconnection.cs index 2d1e6d4dc3..82efb907ed 100644 --- a/libs/esl/managed/ESLconnection.cs +++ b/libs/esl/managed/ESLconnection.cs @@ -38,13 +38,19 @@ public class ESLconnection : IDisposable { } } - public ESLconnection(string host, string port, string user, string password) : this(ESLPINVOKE.new_ESLconnection__SWIG_0(host, port, user, password), true) { + public ESLconnection(string host, int port, string user, string password) : this(ESLPINVOKE.new_ESLconnection__SWIG_0(host, port, user, password), true) { } - public ESLconnection(string host, string port, string password) : this(ESLPINVOKE.new_ESLconnection__SWIG_1(host, port, password), true) { + public ESLconnection(string host, int port, string password) : this(ESLPINVOKE.new_ESLconnection__SWIG_1(host, port, password), true) { } - public ESLconnection(int socket) : this(ESLPINVOKE.new_ESLconnection__SWIG_2(socket), true) { + public ESLconnection(string host, string port, string user, string password) : this(ESLPINVOKE.new_ESLconnection__SWIG_2(host, port, user, password), true) { + } + + public ESLconnection(string host, string port, string password) : this(ESLPINVOKE.new_ESLconnection__SWIG_3(host, port, password), true) { + } + + public ESLconnection(int socket) : this(ESLPINVOKE.new_ESLconnection__SWIG_4(socket), true) { } public int SocketDescriptor() { diff --git a/libs/esl/managed/esl_wrap.cpp b/libs/esl/managed/esl_wrap.cpp index 65da98a15a..010ece83e2 100644 --- a/libs/esl/managed/esl_wrap.cpp +++ b/libs/esl/managed/esl_wrap.cpp @@ -576,7 +576,41 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_ESLevent_NextHeader(void * jarg1) { } -SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_0(char * jarg1, char * jarg2, char * jarg3, char * jarg4) { +SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_0(char * jarg1, int jarg2, char * jarg3, char * jarg4) { + void * jresult ; + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + ESLconnection *result = 0 ; + + arg1 = (char *)jarg1; + arg2 = (int)jarg2; + arg3 = (char *)jarg3; + arg4 = (char *)jarg4; + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4); + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_1(char * jarg1, int jarg2, char * jarg3) { + void * jresult ; + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + ESLconnection *result = 0 ; + + arg1 = (char *)jarg1; + arg2 = (int)jarg2; + arg3 = (char *)jarg3; + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3); + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_2(char * jarg1, char * jarg2, char * jarg3, char * jarg4) { void * jresult ; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -594,7 +628,7 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_0(char * jarg1, cha } -SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_1(char * jarg1, char * jarg2, char * jarg3) { +SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_3(char * jarg1, char * jarg2, char * jarg3) { void * jresult ; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -610,7 +644,7 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_1(char * jarg1, cha } -SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_2(int jarg1) { +SWIGEXPORT void * SWIGSTDCALL CSharp_new_ESLconnection__SWIG_4(int jarg1) { void * jresult ; int arg1 ; ESLconnection *result = 0 ; diff --git a/libs/esl/perl/esl_wrap.cpp b/libs/esl/perl/esl_wrap.cpp index 832289f156..e2b7eec88c 100644 --- a/libs/esl/perl/esl_wrap.cpp +++ b/libs/esl/perl/esl_wrap.cpp @@ -2673,6 +2673,117 @@ XS(_wrap_ESLevent_nextHeader) { XS(_wrap_new_ESLconnection__SWIG_0) { + { + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + ESLconnection *result = 0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int res3 ; + char *buf3 = 0 ; + int alloc3 = 0 ; + int res4 ; + char *buf4 = 0 ; + int alloc4 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 4) || (items > 4)) { + SWIG_croak("Usage: new_ESLconnection(host,port,user,password);"); + } + res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ESLconnection" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = reinterpret_cast< char * >(buf1); + ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ESLconnection" "', argument " "2"" of type '" "int""'"); + } + arg2 = static_cast< int >(val2); + res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ESLconnection" "', argument " "3"" of type '" "char const *""'"); + } + arg3 = reinterpret_cast< char * >(buf3); + res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4); + if (!SWIG_IsOK(res4)) { + SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ESLconnection" "', argument " "4"" of type '" "char const *""'"); + } + arg4 = reinterpret_cast< char * >(buf4); + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4); + ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLconnection, SWIG_OWNER | SWIG_SHADOW); argvi++ ; + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + if (alloc4 == SWIG_NEWOBJ) delete[] buf4; + XSRETURN(argvi); + fail: + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + if (alloc4 == SWIG_NEWOBJ) delete[] buf4; + SWIG_croak_null(); + } +} + + +XS(_wrap_new_ESLconnection__SWIG_1) { + { + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + ESLconnection *result = 0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int res3 ; + char *buf3 = 0 ; + int alloc3 = 0 ; + int argvi = 0; + dXSARGS; + + if ((items < 3) || (items > 3)) { + SWIG_croak("Usage: new_ESLconnection(host,port,password);"); + } + res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ESLconnection" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = reinterpret_cast< char * >(buf1); + ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ESLconnection" "', argument " "2"" of type '" "int""'"); + } + arg2 = static_cast< int >(val2); + res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ESLconnection" "', argument " "3"" of type '" "char const *""'"); + } + arg3 = reinterpret_cast< char * >(buf3); + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3); + ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLconnection, SWIG_OWNER | SWIG_SHADOW); argvi++ ; + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + XSRETURN(argvi); + fail: + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + SWIG_croak_null(); + } +} + + +XS(_wrap_new_ESLconnection__SWIG_2) { { char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -2734,7 +2845,7 @@ XS(_wrap_new_ESLconnection__SWIG_0) { } -XS(_wrap_new_ESLconnection__SWIG_1) { +XS(_wrap_new_ESLconnection__SWIG_3) { { char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -2785,7 +2896,7 @@ XS(_wrap_new_ESLconnection__SWIG_1) { } -XS(_wrap_new_ESLconnection__SWIG_2) { +XS(_wrap_new_ESLconnection__SWIG_4) { { int arg1 ; ESLconnection *result = 0 ; @@ -2855,8 +2966,10 @@ XS(_wrap_new_ESLconnection) { _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { - int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); - _v = SWIG_CheckState(res); + { + int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); + _v = SWIG_CheckState(res); + } } if (!_v) goto check_2; _ranki += _v*_pi; @@ -2877,7 +2990,7 @@ XS(_wrap_new_ESLconnection) { } check_2: - if (items == 4) { + if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; @@ -2906,14 +3019,6 @@ XS(_wrap_new_ESLconnection) { _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; - { - int res = SWIG_AsCharPtrAndSize(ST(3), 0, NULL, 0); - _v = SWIG_CheckState(res); - } - if (!_v) goto check_3; - _ranki += _v*_pi; - _rankm += _pi; - _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; @@ -2921,14 +3026,108 @@ XS(_wrap_new_ESLconnection) { } check_3: + if (items == 4) { + SWIG_TypeRank _ranki = 0; + SWIG_TypeRank _rankm = 0; + SWIG_TypeRank _pi = 1; + int _v = 0; + { + int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); + _v = SWIG_CheckState(res); + } + if (!_v) goto check_4; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + { + { + int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); + _v = SWIG_CheckState(res); + } + } + if (!_v) goto check_4; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + { + int res = SWIG_AsCharPtrAndSize(ST(2), 0, NULL, 0); + _v = SWIG_CheckState(res); + } + if (!_v) goto check_4; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + { + int res = SWIG_AsCharPtrAndSize(ST(3), 0, NULL, 0); + _v = SWIG_CheckState(res); + } + if (!_v) goto check_4; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + if (!_index || (_ranki < _rank)) { + _rank = _ranki; _index = 4; + if (_rank == _rankm) goto dispatch; + } + } + check_4: + + if (items == 4) { + SWIG_TypeRank _ranki = 0; + SWIG_TypeRank _rankm = 0; + SWIG_TypeRank _pi = 1; + int _v = 0; + { + int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); + _v = SWIG_CheckState(res); + } + if (!_v) goto check_5; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + { + int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); + _v = SWIG_CheckState(res); + } + if (!_v) goto check_5; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + { + int res = SWIG_AsCharPtrAndSize(ST(2), 0, NULL, 0); + _v = SWIG_CheckState(res); + } + if (!_v) goto check_5; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + { + int res = SWIG_AsCharPtrAndSize(ST(3), 0, NULL, 0); + _v = SWIG_CheckState(res); + } + if (!_v) goto check_5; + _ranki += _v*_pi; + _rankm += _pi; + _pi *= SWIG_MAXCASTRANK; + if (!_index || (_ranki < _rank)) { + _rank = _ranki; _index = 5; + if (_rank == _rankm) goto dispatch; + } + } + check_5: + dispatch: switch(_index) { case 1: - ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ESLconnection__SWIG_2); return; + ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ESLconnection__SWIG_4); return; case 2: ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ESLconnection__SWIG_1); return; case 3: + ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ESLconnection__SWIG_3); return; + case 4: ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ESLconnection__SWIG_0); return; + case 5: + ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ESLconnection__SWIG_2); return; } } diff --git a/libs/esl/php/esl_wrap.cpp b/libs/esl/php/esl_wrap.cpp index b5fd7a7d52..8c91f25452 100644 --- a/libs/esl/php/esl_wrap.cpp +++ b/libs/esl/php/esl_wrap.cpp @@ -1796,6 +1796,93 @@ fail: ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection__SWIG_0) { + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + ESLconnection *result = 0 ; + zval **args[4]; + + SWIG_ResetError(); + if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_array_ex(4, args) != SUCCESS) { + WRONG_PARAM_COUNT; + } + + + /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/ + convert_to_string_ex(args[0]); + arg1 = (char *) Z_STRVAL_PP(args[0]); + /*@SWIG@*/; + + + /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/ + convert_to_long_ex(args[1]); + arg2 = (int) Z_LVAL_PP(args[1]); + /*@SWIG@*/; + + + /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/ + convert_to_string_ex(args[2]); + arg3 = (char *) Z_STRVAL_PP(args[2]); + /*@SWIG@*/; + + + /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/ + convert_to_string_ex(args[3]); + arg4 = (char *) Z_STRVAL_PP(args[3]); + /*@SWIG@*/; + + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4); + { + SWIG_SetPointerZval(return_value, (void *)result, SWIGTYPE_p_ESLconnection, 1); + } + return; +fail: + zend_error(SWIG_ErrorCode(),SWIG_ErrorMsg()); +} + + +ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection__SWIG_1) { + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + ESLconnection *result = 0 ; + zval **args[3]; + + SWIG_ResetError(); + if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_array_ex(3, args) != SUCCESS) { + WRONG_PARAM_COUNT; + } + + + /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/ + convert_to_string_ex(args[0]); + arg1 = (char *) Z_STRVAL_PP(args[0]); + /*@SWIG@*/; + + + /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/ + convert_to_long_ex(args[1]); + arg2 = (int) Z_LVAL_PP(args[1]); + /*@SWIG@*/; + + + /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/ + convert_to_string_ex(args[2]); + arg3 = (char *) Z_STRVAL_PP(args[2]); + /*@SWIG@*/; + + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3); + { + SWIG_SetPointerZval(return_value, (void *)result, SWIGTYPE_p_ESLconnection, 1); + } + return; +fail: + zend_error(SWIG_ErrorCode(),SWIG_ErrorMsg()); +} + + +ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection__SWIG_2) { char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; @@ -1842,7 +1929,7 @@ fail: } -ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection__SWIG_1) { +ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection__SWIG_3) { char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; @@ -1882,7 +1969,7 @@ fail: } -ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection__SWIG_2) { +ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection__SWIG_4) { int arg1 ; ESLconnection *result = 0 ; zval **args[1]; @@ -1918,7 +2005,20 @@ ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection) { int _v; _v = (Z_TYPE_PP(argv[0]) == IS_LONG); if (_v) { - return _wrap_new_ESLconnection__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); + return _wrap_new_ESLconnection__SWIG_4(INTERNAL_FUNCTION_PARAM_PASSTHRU); + } + } + if (argc == 3) { + int _v; + _v = (Z_TYPE_PP(argv[0]) == IS_STRING); + if (_v) { + _v = (Z_TYPE_PP(argv[1]) == IS_LONG); + if (_v) { + _v = (Z_TYPE_PP(argv[2]) == IS_STRING); + if (_v) { + return _wrap_new_ESLconnection__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); + } + } } } if (argc == 3) { @@ -1929,7 +2029,23 @@ ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection) { if (_v) { _v = (Z_TYPE_PP(argv[2]) == IS_STRING); if (_v) { - return _wrap_new_ESLconnection__SWIG_1(INTERNAL_FUNCTION_PARAM_PASSTHRU); + return _wrap_new_ESLconnection__SWIG_3(INTERNAL_FUNCTION_PARAM_PASSTHRU); + } + } + } + } + if (argc == 4) { + int _v; + _v = (Z_TYPE_PP(argv[0]) == IS_STRING); + if (_v) { + _v = (Z_TYPE_PP(argv[1]) == IS_LONG); + if (_v) { + _v = (Z_TYPE_PP(argv[2]) == IS_STRING); + if (_v) { + _v = (Z_TYPE_PP(argv[3]) == IS_STRING); + if (_v) { + return _wrap_new_ESLconnection__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); + } } } } @@ -1944,7 +2060,7 @@ ZEND_NAMED_FUNCTION(_wrap_new_ESLconnection) { if (_v) { _v = (Z_TYPE_PP(argv[3]) == IS_STRING); if (_v) { - return _wrap_new_ESLconnection__SWIG_0(INTERNAL_FUNCTION_PARAM_PASSTHRU); + return _wrap_new_ESLconnection__SWIG_2(INTERNAL_FUNCTION_PARAM_PASSTHRU); } } } diff --git a/libs/esl/python/esl_wrap.cpp b/libs/esl/python/esl_wrap.cpp index 35d600e0b0..b12f21cab0 100644 --- a/libs/esl/python/esl_wrap.cpp +++ b/libs/esl/python/esl_wrap.cpp @@ -3786,6 +3786,124 @@ SWIGINTERN PyObject *ESLevent_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObj } SWIGINTERN PyObject *_wrap_new_ESLconnection__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + ESLconnection *result = 0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int res3 ; + char *buf3 = 0 ; + int alloc3 = 0 ; + int res4 ; + char *buf4 = 0 ; + int alloc4 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + PyObject * obj3 = 0 ; + + SWIG_PYTHON_THREAD_BEGIN_BLOCK; + if (!PyArg_ParseTuple(args,(char *)"OOOO:new_ESLconnection",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ESLconnection" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = reinterpret_cast< char * >(buf1); + ecode2 = SWIG_AsVal_int(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ESLconnection" "', argument " "2"" of type '" "int""'"); + } + arg2 = static_cast< int >(val2); + res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ESLconnection" "', argument " "3"" of type '" "char const *""'"); + } + arg3 = reinterpret_cast< char * >(buf3); + res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); + if (!SWIG_IsOK(res4)) { + SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ESLconnection" "', argument " "4"" of type '" "char const *""'"); + } + arg4 = reinterpret_cast< char * >(buf4); + { + SWIG_PYTHON_THREAD_BEGIN_ALLOW; + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4); + SWIG_PYTHON_THREAD_END_ALLOW; + } + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLconnection, SWIG_POINTER_NEW | 0 ); + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + if (alloc4 == SWIG_NEWOBJ) delete[] buf4; + SWIG_PYTHON_THREAD_END_BLOCK; + return resultobj; +fail: + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + if (alloc4 == SWIG_NEWOBJ) delete[] buf4; + SWIG_PYTHON_THREAD_END_BLOCK; + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_ESLconnection__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + ESLconnection *result = 0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int res3 ; + char *buf3 = 0 ; + int alloc3 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + + SWIG_PYTHON_THREAD_BEGIN_BLOCK; + if (!PyArg_ParseTuple(args,(char *)"OOO:new_ESLconnection",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ESLconnection" "', argument " "1"" of type '" "char const *""'"); + } + arg1 = reinterpret_cast< char * >(buf1); + ecode2 = SWIG_AsVal_int(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ESLconnection" "', argument " "2"" of type '" "int""'"); + } + arg2 = static_cast< int >(val2); + res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ESLconnection" "', argument " "3"" of type '" "char const *""'"); + } + arg3 = reinterpret_cast< char * >(buf3); + { + SWIG_PYTHON_THREAD_BEGIN_ALLOW; + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3); + SWIG_PYTHON_THREAD_END_ALLOW; + } + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLconnection, SWIG_POINTER_NEW | 0 ); + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + SWIG_PYTHON_THREAD_END_BLOCK; + return resultobj; +fail: + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + SWIG_PYTHON_THREAD_END_BLOCK; + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_ESLconnection__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -3853,7 +3971,7 @@ fail: } -SWIGINTERN PyObject *_wrap_new_ESLconnection__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_ESLconnection__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; @@ -3909,7 +4027,7 @@ fail: } -SWIGINTERN PyObject *_wrap_new_ESLconnection__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_ESLconnection__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; ESLconnection *result = 0 ; @@ -3957,7 +4075,26 @@ SWIGINTERN PyObject *_wrap_new_ESLconnection(PyObject *self, PyObject *args) { } if (_v) { SWIG_PYTHON_THREAD_END_BLOCK; - return _wrap_new_ESLconnection__SWIG_2(self, args); + return _wrap_new_ESLconnection__SWIG_4(self, args); + } + } + if (argc == 3) { + int _v; + int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + { + int res = SWIG_AsVal_int(argv[1], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + SWIG_PYTHON_THREAD_END_BLOCK; + return _wrap_new_ESLconnection__SWIG_1(self, args); + } + } } } if (argc == 3) { @@ -3972,7 +4109,30 @@ SWIGINTERN PyObject *_wrap_new_ESLconnection(PyObject *self, PyObject *args) { _v = SWIG_CheckState(res); if (_v) { SWIG_PYTHON_THREAD_END_BLOCK; - return _wrap_new_ESLconnection__SWIG_1(self, args); + return _wrap_new_ESLconnection__SWIG_3(self, args); + } + } + } + } + if (argc == 4) { + int _v; + int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + { + int res = SWIG_AsVal_int(argv[1], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + SWIG_PYTHON_THREAD_END_BLOCK; + return _wrap_new_ESLconnection__SWIG_0(self, args); + } } } } @@ -3992,7 +4152,7 @@ SWIGINTERN PyObject *_wrap_new_ESLconnection(PyObject *self, PyObject *args) { _v = SWIG_CheckState(res); if (_v) { SWIG_PYTHON_THREAD_END_BLOCK; - return _wrap_new_ESLconnection__SWIG_0(self, args); + return _wrap_new_ESLconnection__SWIG_2(self, args); } } } @@ -4003,6 +4163,8 @@ SWIGINTERN PyObject *_wrap_new_ESLconnection(PyObject *self, PyObject *args) { fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ESLconnection'.\n" " Possible C/C++ prototypes are:\n" + " ESLconnection(char const *,int const,char const *,char const *)\n" + " ESLconnection(char const *,int const,char const *)\n" " ESLconnection(char const *,char const *,char const *,char const *)\n" " ESLconnection(char const *,char const *,char const *)\n" " ESLconnection(int)\n"); diff --git a/libs/esl/ruby/esl_wrap.cpp b/libs/esl/ruby/esl_wrap.cpp index 223ba3ea34..2d7e906402 100644 --- a/libs/esl/ruby/esl_wrap.cpp +++ b/libs/esl/ruby/esl_wrap.cpp @@ -2745,6 +2745,107 @@ swig_class cESLconnection; SWIGINTERN VALUE _wrap_new_ESLconnection__SWIG_0(int argc, VALUE *argv, VALUE self) { + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + char *arg4 = (char *) 0 ; + ESLconnection *result = 0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int res3 ; + char *buf3 = 0 ; + int alloc3 = 0 ; + int res4 ; + char *buf4 = 0 ; + int alloc4 = 0 ; + + if ((argc < 4) || (argc > 4)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","ESLconnection", 1, argv[0] )); + } + arg1 = reinterpret_cast< char * >(buf1); + ecode2 = SWIG_AsVal_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","ESLconnection", 2, argv[1] )); + } + arg2 = static_cast< int >(val2); + res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","ESLconnection", 3, argv[2] )); + } + arg3 = reinterpret_cast< char * >(buf3); + res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4); + if (!SWIG_IsOK(res4)) { + SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char const *","ESLconnection", 4, argv[3] )); + } + arg4 = reinterpret_cast< char * >(buf4); + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4);DATA_PTR(self) = result; + + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + if (alloc4 == SWIG_NEWOBJ) delete[] buf4; + return self; +fail: + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + if (alloc4 == SWIG_NEWOBJ) delete[] buf4; + return Qnil; +} + + +SWIGINTERN VALUE +_wrap_new_ESLconnection__SWIG_1(int argc, VALUE *argv, VALUE self) { + char *arg1 = (char *) 0 ; + int arg2 ; + char *arg3 = (char *) 0 ; + ESLconnection *result = 0 ; + int res1 ; + char *buf1 = 0 ; + int alloc1 = 0 ; + int val2 ; + int ecode2 = 0 ; + int res3 ; + char *buf3 = 0 ; + int alloc3 = 0 ; + + if ((argc < 3) || (argc > 3)) { + rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail; + } + res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","ESLconnection", 1, argv[0] )); + } + arg1 = reinterpret_cast< char * >(buf1); + ecode2 = SWIG_AsVal_int(argv[1], &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","ESLconnection", 2, argv[1] )); + } + arg2 = static_cast< int >(val2); + res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","ESLconnection", 3, argv[2] )); + } + arg3 = reinterpret_cast< char * >(buf3); + result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3);DATA_PTR(self) = result; + + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + return self; +fail: + if (alloc1 == SWIG_NEWOBJ) delete[] buf1; + if (alloc3 == SWIG_NEWOBJ) delete[] buf3; + return Qnil; +} + + +SWIGINTERN VALUE +_wrap_new_ESLconnection__SWIG_2(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; @@ -2803,7 +2904,7 @@ fail: SWIGINTERN VALUE -_wrap_new_ESLconnection__SWIG_1(int argc, VALUE *argv, VALUE self) { +_wrap_new_ESLconnection__SWIG_3(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; @@ -2868,7 +2969,7 @@ _wrap_ESLconnection_allocate(VALUE self) { SWIGINTERN VALUE -_wrap_new_ESLconnection__SWIG_2(int argc, VALUE *argv, VALUE self) { +_wrap_new_ESLconnection__SWIG_4(int argc, VALUE *argv, VALUE self) { int arg1 ; ESLconnection *result = 0 ; int val1 ; @@ -2907,7 +3008,25 @@ SWIGINTERN VALUE _wrap_new_ESLconnection(int nargs, VALUE *args, VALUE self) { _v = SWIG_CheckState(res); } if (_v) { - return _wrap_new_ESLconnection__SWIG_2(nargs, args, self); + return _wrap_new_ESLconnection__SWIG_4(nargs, args, self); + } + } + if (argc == 3) { + int _v; + int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + { + int res = SWIG_AsVal_int(argv[1], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_ESLconnection__SWIG_1(nargs, args, self); + } + } } } if (argc == 3) { @@ -2921,7 +3040,29 @@ SWIGINTERN VALUE _wrap_new_ESLconnection(int nargs, VALUE *args, VALUE self) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_ESLconnection__SWIG_1(nargs, args, self); + return _wrap_new_ESLconnection__SWIG_3(nargs, args, self); + } + } + } + } + if (argc == 4) { + int _v; + int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + { + int res = SWIG_AsVal_int(argv[1], NULL); + _v = SWIG_CheckState(res); + } + if (_v) { + int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0); + _v = SWIG_CheckState(res); + if (_v) { + return _wrap_new_ESLconnection__SWIG_0(nargs, args, self); + } } } } @@ -2940,7 +3081,7 @@ SWIGINTERN VALUE _wrap_new_ESLconnection(int nargs, VALUE *args, VALUE self) { int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_new_ESLconnection__SWIG_0(nargs, args, self); + return _wrap_new_ESLconnection__SWIG_2(nargs, args, self); } } } @@ -2949,6 +3090,8 @@ SWIGINTERN VALUE _wrap_new_ESLconnection(int nargs, VALUE *args, VALUE self) { fail: Ruby_Format_OverloadedError( argc, 4, "ESLconnection.new", + " ESLconnection.new(char const *host, int const port, char const *user, char const *password)\n" + " ESLconnection.new(char const *host, int const port, char const *password)\n" " ESLconnection.new(char const *host, char const *port, char const *user, char const *password)\n" " ESLconnection.new(char const *host, char const *port, char const *password)\n" " ESLconnection.new(int socket)\n"); diff --git a/libs/esl/src/esl_oop.cpp b/libs/esl/src/esl_oop.cpp index 3fa4dcce56..9c202f2160 100644 --- a/libs/esl/src/esl_oop.cpp +++ b/libs/esl/src/esl_oop.cpp @@ -9,6 +9,20 @@ void eslSetLogLevel(int level) esl_global_set_default_logger(level); } +ESLconnection::ESLconnection(const char *host, const int port, const char *password) +{ + connection_construct_common(); + + esl_connect(&handle, host, port, NULL, password); +} + +ESLconnection::ESLconnection(const char *host, const int port, const char *user, const char *password) +{ + connection_construct_common(); + + esl_connect(&handle, host, port, user, password); +} + ESLconnection::ESLconnection(const char *host, const char *port, const char *password) { connection_construct_common(); diff --git a/libs/esl/src/include/esl_oop.h b/libs/esl/src/include/esl_oop.h index 450b047afc..93ce487965 100644 --- a/libs/esl/src/include/esl_oop.h +++ b/libs/esl/src/include/esl_oop.h @@ -74,6 +74,8 @@ class ESLconnection { private: esl_handle_t handle; public: + ESLconnection(const char *host, const int port, const char *user, const char *password); + ESLconnection(const char *host, const int port, const char *password); ESLconnection(const char *host, const char *port, const char *user, const char *password); ESLconnection(const char *host, const char *port, const char *password); ESLconnection(int socket); diff --git a/libs/freetdm/.gitignore b/libs/freetdm/.gitignore index ff2a46a071..da2caa7d87 100644 --- a/libs/freetdm/.gitignore +++ b/libs/freetdm/.gitignore @@ -26,6 +26,9 @@ testr2 testsangomaboost testtones +!/msvc/testanalog/ +!/msvc/testboost/ + !/sample/boost/Makefile !/sample/dso/Makefile diff --git a/libs/freetdm/src/libteletone_generate.c b/libs/freetdm/src/libteletone_generate.c index 3654d1ec34..ef7a7e03ec 100644 --- a/libs/freetdm/src/libteletone_generate.c +++ b/libs/freetdm/src/libteletone_generate.c @@ -382,9 +382,12 @@ TELETONE_API(int) teletone_run(teletone_generation_session_t *ts, const char *cm break; case 'L': if (!LOOPING) { - ts->LOOPS = atoi(cur + 2); + int L; + if ((L = atoi(cur + 2)) > 0) { + ts->LOOPS = L; + LOOPING++; + } } - LOOPING++; break; } } else { @@ -480,6 +483,7 @@ TELETONE_API(int) teletone_run(teletone_generation_session_t *ts, const char *cm bottom: free(data); data = NULL; + if (ts->LOOPS > 0) { ts->LOOPS--; } diff --git a/libs/iksemel/.update b/libs/iksemel/.update index b391edc878..a3a56a0ec9 100644 --- a/libs/iksemel/.update +++ b/libs/iksemel/.update @@ -1 +1 @@ -Tue May 14 07:44:21 CDT 2013 +Mon Jul 15 16:57:11 CDT 2013 diff --git a/libs/iksemel/include/iksemel.h b/libs/iksemel/include/iksemel.h index 9ef479a9ee..2b11070671 100644 --- a/libs/iksemel/include/iksemel.h +++ b/libs/iksemel/include/iksemel.h @@ -226,6 +226,7 @@ void iks_disconnect (iksparser *prs); int iks_has_tls (void); int iks_is_secure (iksparser *prs); int iks_start_tls (iksparser *prs); +int iks_proceed_tls (iksparser *prs, const char *cert_file, const char *key_file, int use_ssl); int iks_start_sasl (iksparser *prs, enum ikssasltype type, char *username, char *pass); /***** jabber *****/ diff --git a/libs/iksemel/src/stream.c b/libs/iksemel/src/stream.c index 559335b16e..658c40207c 100644 --- a/libs/iksemel/src/stream.c +++ b/libs/iksemel/src/stream.c @@ -35,6 +35,8 @@ typedef unsigned __int32 uint32_t; #define SF_FOREIGN 1 #define SF_TRY_SECURE 2 #define SF_SECURE 4 +#define SF_SERVER 8 +#define SF_SSLv23 16 struct stream_data { iksparser *prs; @@ -51,6 +53,8 @@ struct stream_data { unsigned int flags; char *auth_username; char *auth_pass; + char *cert_file; + char *key_file; #ifdef HAVE_GNUTLS gnutls_session sess; gnutls_certificate_credentials cred; @@ -201,6 +205,7 @@ handshake (struct stream_data *data) gnutls_certificate_free_credentials (data->cred); return IKS_NOMEM; } + gnutls_protocol_set_priority (data->sess, protocol_priority); gnutls_cipher_set_priority(data->sess, cipher_priority); gnutls_compression_set_priority(data->sess, comp_priority); @@ -224,7 +229,9 @@ handshake (struct stream_data *data) data->flags &= (~SF_TRY_SECURE); data->flags |= SF_SECURE; - iks_send_header (data->prs, data->server); + if (!(data->flags & SF_SERVER)) { + iks_send_header (data->prs, data->server); + } return IKS_OK; } // HAVE_GNUTLS @@ -311,8 +318,25 @@ handshake (struct stream_data *data) SSL_library_init(); SSL_load_error_strings(); - data->ssl_ctx = SSL_CTX_new(TLSv1_method()); - if(!data->ssl_ctx) return IKS_NOMEM; + if (data->flags & SF_SERVER) { + if (data->flags & SF_SSLv23) { + data->ssl_ctx = SSL_CTX_new(SSLv23_server_method()); + } else { + data->ssl_ctx = SSL_CTX_new(TLSv1_server_method()); + } + if(!data->ssl_ctx) return IKS_NOMEM; + + if (SSL_CTX_use_certificate_file(data->ssl_ctx, data->cert_file, SSL_FILETYPE_PEM) <= 0) { + return IKS_NET_TLSFAIL; + } + if (SSL_CTX_use_PrivateKey_file(data->ssl_ctx, data->key_file, SSL_FILETYPE_PEM) <= 0) { + return IKS_NET_TLSFAIL; + } + SSL_CTX_set_verify(data->ssl_ctx, SSL_VERIFY_NONE, NULL); + } else { + data->ssl_ctx = SSL_CTX_new(TLSv1_method()); + if(!data->ssl_ctx) return IKS_NOMEM; + } data->ssl = SSL_new(data->ssl_ctx); if(!data->ssl) return IKS_NOMEM; @@ -329,7 +353,11 @@ handshake (struct stream_data *data) do { - ret = SSL_connect(data->ssl); + if (data->flags & SF_SERVER) { + ret = SSL_accept(data->ssl); + } else { + ret = SSL_connect(data->ssl); + } if( ret != 1 ) { @@ -346,7 +374,9 @@ handshake (struct stream_data *data) data->flags &= (~SF_TRY_SECURE); data->flags |= SF_SECURE; - iks_send_header (data->prs, data->server); + if (!(data->flags & SF_SERVER)) { + iks_send_header (data->prs, data->server); + } } return ret == 1 ? IKS_OK : IKS_NET_TLSFAIL; @@ -954,6 +984,40 @@ iks_start_tls (iksparser *prs) #endif } +int +iks_proceed_tls (iksparser *prs, const char *cert_file, const char *key_file, int use_ssl) +{ +#ifdef HAVE_GNUTLS + int ret; + struct stream_data *data = iks_user_data (prs); + + ret = iks_send_raw (prs, ""); + if (ret) return ret; + data->cert_file = iks_stack_strdup(data->s, cert_file, 0); + data->key_file = iks_stack_strdup(data->s, key_file, 0); + data->flags |= SF_TRY_SECURE | SF_SERVER; + if (use_ssl) { + data->flags |= SF_SSLv23; + } + return handshake (data); +#elif HAVE_SSL + int ret; + struct stream_data *data = iks_user_data (prs); + + ret = iks_send_raw (prs, ""); + if (ret) return ret; + data->cert_file = iks_stack_strdup(data->s, cert_file, 0); + data->key_file = iks_stack_strdup(data->s, key_file, 0); + data->flags |= SF_TRY_SECURE | SF_SERVER; + if (use_ssl) { + data->flags |= SF_SSLv23; + } + return handshake (data); +#else + return IKS_NET_NOTSUPP; +#endif +} + /***** sasl *****/ int diff --git a/libs/libteletone/src/libteletone_generate.c b/libs/libteletone/src/libteletone_generate.c index 3654d1ec34..ef7a7e03ec 100644 --- a/libs/libteletone/src/libteletone_generate.c +++ b/libs/libteletone/src/libteletone_generate.c @@ -382,9 +382,12 @@ TELETONE_API(int) teletone_run(teletone_generation_session_t *ts, const char *cm break; case 'L': if (!LOOPING) { - ts->LOOPS = atoi(cur + 2); + int L; + if ((L = atoi(cur + 2)) > 0) { + ts->LOOPS = L; + LOOPING++; + } } - LOOPING++; break; } } else { @@ -480,6 +483,7 @@ TELETONE_API(int) teletone_run(teletone_generation_session_t *ts, const char *cm bottom: free(data); data = NULL; + if (ts->LOOPS > 0) { ts->LOOPS--; } diff --git a/libs/openzap/.gitignore b/libs/openzap/.gitignore index b0dc177c9a..48d9684d18 100644 --- a/libs/openzap/.gitignore +++ b/libs/openzap/.gitignore @@ -22,3 +22,6 @@ testisdn testpri testr2 testtones + +!/msvc/testanalog/ +!/msvc/testisdn/ diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index 3cdde5d830..8e53986f94 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Thu Jun 20 10:51:51 CDT 2013 +Mon Jul 29 16:07:46 CDT 2013 diff --git a/libs/sofia-sip/libsofia-sip-ua/nta/nta.c b/libs/sofia-sip/libsofia-sip-ua/nta/nta.c index 3fe081f429..86355a5f45 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nta/nta.c +++ b/libs/sofia-sip/libsofia-sip-ua/nta/nta.c @@ -149,9 +149,7 @@ struct nta_agent_s nta_update_magic_t *sa_update_magic; nta_update_tport_f *sa_update_tport; - su_time_t sa_now; /**< Timestamp in microsecond resolution. */ uint32_t sa_next; /**< Timestamp for next agent_timer. */ - uint32_t sa_millisec; /**< Timestamp in milliseconds. */ msg_mclass_t const *sa_mclass; uint32_t sa_flags; /**< SIP message flags */ @@ -1237,15 +1235,12 @@ void agent_timer(su_root_magic_t *rm, su_timer_t *timer, nta_agent_t *agent) agent->sa_next = 0; - agent->sa_now = stamp; - agent->sa_millisec = now; agent->sa_in_timer = 1; + _nta_outgoing_timer(agent); _nta_incoming_timer(agent); - /* agent->sa_now is used only if sa_millisec != 0 */ - agent->sa_millisec = 0; agent->sa_in_timer = 0; /* Calculate next timeout */ @@ -1330,12 +1325,12 @@ uint32_t set_timeout(nta_agent_t *agent, uint32_t offset) if (offset == 0) return 0; - if (agent->sa_millisec) /* Avoid expensive call to su_now() */ - now = agent->sa_now, ms = agent->sa_millisec; - else - now = su_now(), ms = su_time_ms(now); + now = su_now(); + ms = su_time_ms(now); - next = ms + offset; if (next == 0) next = 1; + next = ms + offset; + + if (next == 0) next = 1; if (agent->sa_in_timer) /* Currently executing timer */ return next; @@ -1360,9 +1355,6 @@ uint32_t set_timeout(nta_agent_t *agent, uint32_t offset) static su_time_t agent_now(nta_agent_t const *agent) { - if (agent && agent->sa_millisec != 0) - return agent->sa_now; - else return su_now(); } @@ -2764,8 +2756,6 @@ void agent_recv_message(nta_agent_t *agent, { sip_t *sip = sip_object(msg); - agent->sa_millisec = su_time_ms(agent->sa_now = now); - if (sip && sip->sip_request) { agent_recv_request(agent, msg, sip, tport); } @@ -2775,8 +2765,6 @@ void agent_recv_message(nta_agent_t *agent, else { agent_recv_garbage(agent, msg, tport); } - - agent->sa_millisec = 0; } /** @internal Handle incoming requests. */ @@ -6849,7 +6837,7 @@ enum { static void _nta_incoming_timer(nta_agent_t *sa) { - uint32_t now = sa->sa_millisec; + uint32_t now = su_time_ms(su_now()); nta_incoming_t *irq, *irq_next; size_t retransmitted = 0, timeout = 0, terminated = 0, destroyed = 0; size_t unconfirmed = @@ -6866,6 +6854,9 @@ _nta_incoming_timer(nta_agent_t *sa) /* Handle retry queue */ while ((irq = sa->sa_in.re_list)) { + + now = su_time_ms(su_now()); + if ((int32_t)(irq->irq_retry - now) > 0) break; if (retransmitted >= timer_max_retransmit) @@ -6923,6 +6914,8 @@ _nta_incoming_timer(nta_agent_t *sa) } while ((irq = sa->sa_in.final_failed->q_head)) { + + incoming_remove(irq); irq->irq_final_failed = 0; @@ -6954,6 +6947,8 @@ _nta_incoming_timer(nta_agent_t *sa) assert(irq->irq_status < 200); assert(irq->irq_timeout); + now = su_time_ms(su_now()); + if ((int32_t)(irq->irq_timeout - now) > 0) break; if (timeout >= timer_max_timeout) @@ -6974,6 +6969,8 @@ _nta_incoming_timer(nta_agent_t *sa) assert(irq->irq_timeout); assert(irq->irq_method == sip_method_invite); + now = su_time_ms(su_now()); + if ((int32_t)(irq->irq_timeout - now) > 0 || timeout >= timer_max_timeout || terminated >= timer_max_terminate) @@ -7002,6 +6999,8 @@ _nta_incoming_timer(nta_agent_t *sa) assert(irq->irq_status >= 200); assert(irq->irq_method == sip_method_invite); + now = su_time_ms(su_now()); + if ((int32_t)(irq->irq_timeout - now) > 0 || terminated >= timer_max_terminate) break; @@ -7024,6 +7023,8 @@ _nta_incoming_timer(nta_agent_t *sa) assert(irq->irq_timeout); assert(irq->irq_method != sip_method_invite); + now = su_time_ms(su_now()); + if ((int32_t)(irq->irq_timeout - now) > 0 || terminated >= timer_max_terminate) break; @@ -7043,6 +7044,7 @@ _nta_incoming_timer(nta_agent_t *sa) } for (irq = sa->sa_in.terminated->q_head; irq; irq = irq_next) { + irq_next = irq->irq_next; if (irq->irq_destroyed) incoming_free_queue(rq, irq); @@ -8699,7 +8701,7 @@ void outgoing_destroy(nta_outgoing_t *orq) static void _nta_outgoing_timer(nta_agent_t *sa) { - uint32_t now = sa->sa_millisec; + uint32_t now = su_time_ms(su_now()); nta_outgoing_t *orq; outgoing_queue_t rq[1]; size_t retransmitted = 0, terminated = 0, timeout = 0, destroyed; @@ -8713,6 +8715,9 @@ _nta_outgoing_timer(nta_agent_t *sa) outgoing_queue_init(sa->sa_out.free = rq, 0); while ((orq = sa->sa_out.re_list)) { + + now = su_time_ms(su_now()); + if ((int32_t)(orq->orq_retry - now) > 0) break; if (retransmitted >= timer_max_retransmit) diff --git a/libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c b/libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c index a9fed48ffe..c5400dd4ca 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c +++ b/libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c @@ -1062,11 +1062,15 @@ int nua_client_response(nua_client_request_t *cr, sip_method_t method = cr->cr_method; int terminated, graceful = 1; - if (status < 700) - terminated = sip_response_terminates_dialog(status, method, &graceful); - else - /* XXX - terminate usage by all internal error responses */ - terminated = 0, graceful = 1; + if (status < 700) { + terminated = sip_response_terminates_dialog(status, method, &graceful); + if (terminated && !cr->cr_initial) { + terminated = 0, graceful = 1; + } + } else { + /* XXX - terminate usage by all internal error responses */ + terminated = 0, graceful = 1; + } if (terminated < 0) cr->cr_terminated = terminated; diff --git a/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_time.h b/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_time.h index b4acba6a7d..ea347e80a0 100644 --- a/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_time.h +++ b/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_time.h @@ -85,6 +85,11 @@ typedef uint64_t su_nanotime_t; #define SU_E9 (1000000000U) +typedef void (*su_time_func_t)(su_time_t *tv); + + +SOFIAPUBFUN void su_set_time_func(su_time_func_t func); + SOFIAPUBFUN su_nanotime_t su_nanotime(su_nanotime_t *return_time); SOFIAPUBFUN su_nanotime_t su_monotime(su_nanotime_t *return_time); @@ -138,7 +143,7 @@ su_inline uint32_t su_ntp_fraq(su_time_t t) /** Time as milliseconds. */ su_inline uint32_t su_time_ms(su_time_t t) { - return t.tv_sec * 1000 + (t.tv_usec + 500) / 1000; + return (t.tv_sec * 1000) + ((t.tv_usec + 500) / 1000); } #endif diff --git a/libs/sofia-sip/libsofia-sip-ua/su/su_time0.c b/libs/sofia-sip/libsofia-sip-ua/su/su_time0.c index 0543e45aa0..cae14a35a8 100644 --- a/libs/sofia-sip/libsofia-sip-ua/su/su_time0.c +++ b/libs/sofia-sip/libsofia-sip-ua/su/su_time0.c @@ -69,6 +69,13 @@ void (*_su_time)(su_time_t *tv); uint64_t (*_su_nanotime)(uint64_t *); +static su_time_func_t custom_time_func = NULL; + +void su_set_time_func(su_time_func_t func) { + custom_time_func = func; +} + + /** Get current time. * * The function @c su_time() fills its argument with the current NTP @@ -78,7 +85,20 @@ uint64_t (*_su_nanotime)(uint64_t *); */ void su_time(su_time_t *tv) { +#if HAVE_FILETIME + union { + FILETIME ft[1]; + ULARGE_INTEGER ull[1]; + } date; +#endif su_time_t ltv = {0,0}; + + if (custom_time_func) { + custom_time_func(<v); + if (tv) *tv = ltv; + return; + } + #if HAVE_CLOCK_GETTIME struct timespec ctv = {0}; if (clock_gettime(CLOCK_REALTIME, &ctv) == 0) { @@ -91,10 +111,6 @@ void su_time(su_time_t *tv) ltv.tv_sec += NTP_EPOCH; #elif HAVE_FILETIME - union { - FILETIME ft[1]; - ULARGE_INTEGER ull[1]; - } date; GetSystemTimeAsFileTime(date.ft); diff --git a/libs/spandsp/src/cielab_luts.h b/libs/spandsp/src/cielab_luts.h deleted file mode 100644 index 0a3c697915..0000000000 --- a/libs/spandsp/src/cielab_luts.h +++ /dev/null @@ -1,4358 +0,0 @@ -static const float srgb_to_linear[256] = -{ - 0.000000, - 0.000302, - 0.000605, - 0.000907, - 0.001209, - 0.001512, - 0.001814, - 0.002116, - 0.002419, - 0.002721, - 0.003023, - 0.003333, - 0.003661, - 0.004007, - 0.004371, - 0.004754, - 0.005156, - 0.005577, - 0.006017, - 0.006477, - 0.006957, - 0.007457, - 0.007977, - 0.008518, - 0.009080, - 0.009663, - 0.010267, - 0.010893, - 0.011540, - 0.012209, - 0.012900, - 0.013614, - 0.014350, - 0.015109, - 0.015890, - 0.016695, - 0.017523, - 0.018375, - 0.019250, - 0.020149, - 0.021072, - 0.022019, - 0.022991, - 0.023987, - 0.025008, - 0.026054, - 0.027125, - 0.028221, - 0.029343, - 0.030490, - 0.031663, - 0.032862, - 0.034087, - 0.035338, - 0.036616, - 0.037920, - 0.039250, - 0.040608, - 0.041993, - 0.043404, - 0.044844, - 0.046310, - 0.047804, - 0.049326, - 0.050876, - 0.052454, - 0.054060, - 0.055694, - 0.057357, - 0.059049, - 0.060769, - 0.062518, - 0.064296, - 0.066103, - 0.067940, - 0.069806, - 0.071701, - 0.073626, - 0.075581, - 0.077566, - 0.079581, - 0.081627, - 0.083702, - 0.085808, - 0.087945, - 0.090112, - 0.092311, - 0.094540, - 0.096800, - 0.099092, - 0.101414, - 0.103769, - 0.106155, - 0.108572, - 0.111021, - 0.113503, - 0.116016, - 0.118562, - 0.121139, - 0.123750, - 0.126392, - 0.129068, - 0.131776, - 0.134517, - 0.137291, - 0.140098, - 0.142938, - 0.145812, - 0.148719, - 0.151659, - 0.154633, - 0.157641, - 0.160683, - 0.163758, - 0.166868, - 0.170012, - 0.173190, - 0.176403, - 0.179650, - 0.182932, - 0.186248, - 0.189599, - 0.192985, - 0.196407, - 0.199863, - 0.203354, - 0.206881, - 0.210443, - 0.214041, - 0.217675, - 0.221344, - 0.225049, - 0.228789, - 0.232566, - 0.236379, - 0.240229, - 0.244114, - 0.248036, - 0.251995, - 0.255990, - 0.260022, - 0.264090, - 0.268196, - 0.272338, - 0.276518, - 0.280734, - 0.284988, - 0.289280, - 0.293609, - 0.297975, - 0.302379, - 0.306821, - 0.311301, - 0.315818, - 0.320374, - 0.324967, - 0.329599, - 0.334269, - 0.338978, - 0.343725, - 0.348510, - 0.353334, - 0.358197, - 0.363099, - 0.368040, - 0.373019, - 0.378038, - 0.383096, - 0.388193, - 0.393329, - 0.398505, - 0.403721, - 0.408976, - 0.414270, - 0.419605, - 0.424979, - 0.430393, - 0.435848, - 0.441342, - 0.446877, - 0.452452, - 0.458067, - 0.463722, - 0.469419, - 0.475156, - 0.480933, - 0.486751, - 0.492610, - 0.498510, - 0.504452, - 0.510434, - 0.516457, - 0.522522, - 0.528628, - 0.534775, - 0.540964, - 0.547194, - 0.553466, - 0.559780, - 0.566136, - 0.572533, - 0.578973, - 0.585455, - 0.591978, - 0.598544, - 0.605152, - 0.611803, - 0.618496, - 0.625232, - 0.632010, - 0.638831, - 0.645694, - 0.652600, - 0.659550, - 0.666542, - 0.673577, - 0.680656, - 0.687777, - 0.694942, - 0.702151, - 0.709402, - 0.716698, - 0.724036, - 0.731419, - 0.738845, - 0.746315, - 0.753829, - 0.761386, - 0.768988, - 0.776634, - 0.784324, - 0.792058, - 0.799837, - 0.807660, - 0.815527, - 0.823439, - 0.831396, - 0.839397, - 0.847443, - 0.855534, - 0.863669, - 0.871850, - 0.880075, - 0.888346, - 0.896662, - 0.905023, - 0.913429, - 0.921881, - 0.930378, - 0.938921, - 0.947509, - 0.956143, - 0.964823, - 0.973548, - 0.982319, - 0.991137 -}; -static const uint8_t linear_to_srgb[4096] = -{ - 0, - 0, - 1, - 2, - 3, - 4, - 4, - 5, - 6, - 7, - 8, - 8, - 9, - 10, - 11, - 12, - 12, - 13, - 14, - 14, - 15, - 15, - 16, - 17, - 17, - 18, - 18, - 19, - 19, - 20, - 20, - 21, - 21, - 22, - 22, - 23, - 23, - 23, - 24, - 24, - 25, - 25, - 25, - 26, - 26, - 27, - 27, - 27, - 28, - 28, - 28, - 29, - 29, - 30, - 30, - 30, - 31, - 31, - 31, - 32, - 32, - 32, - 33, - 33, - 33, - 33, - 34, - 34, - 34, - 35, - 35, - 35, - 36, - 36, - 36, - 36, - 37, - 37, - 37, - 38, - 38, - 38, - 38, - 39, - 39, - 39, - 39, - 40, - 40, - 40, - 40, - 41, - 41, - 41, - 41, - 42, - 42, - 42, - 42, - 43, - 43, - 43, - 43, - 44, - 44, - 44, - 44, - 45, - 45, - 45, - 45, - 45, - 46, - 46, - 46, - 46, - 47, - 47, - 47, - 47, - 47, - 48, - 48, - 48, - 48, - 49, - 49, - 49, - 49, - 49, - 50, - 50, - 50, - 50, - 50, - 51, - 51, - 51, - 51, - 51, - 52, - 52, - 52, - 52, - 52, - 53, - 53, - 53, - 53, - 53, - 54, - 54, - 54, - 54, - 54, - 54, - 55, - 55, - 55, - 55, - 55, - 56, - 56, - 56, - 56, - 56, - 56, - 57, - 57, - 57, - 57, - 57, - 57, - 58, - 58, - 58, - 58, - 58, - 59, - 59, - 59, - 59, - 59, - 59, - 60, - 60, - 60, - 60, - 60, - 60, - 61, - 61, - 61, - 61, - 61, - 61, - 62, - 62, - 62, - 62, - 62, - 62, - 62, - 63, - 63, - 63, - 63, - 63, - 63, - 64, - 64, - 64, - 64, - 64, - 64, - 65, - 65, - 65, - 65, - 65, - 65, - 65, - 66, - 66, - 66, - 66, - 66, - 66, - 66, - 67, - 67, - 67, - 67, - 67, - 67, - 68, - 68, - 68, - 68, - 68, - 68, - 68, - 69, - 69, - 69, - 69, - 69, - 69, - 69, - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 70, - 71, - 71, - 71, - 71, - 71, - 71, - 71, - 72, - 72, - 72, - 72, - 72, - 72, - 72, - 73, - 73, - 73, - 73, - 73, - 73, - 73, - 73, - 74, - 74, - 74, - 74, - 74, - 74, - 74, - 75, - 75, - 75, - 75, - 75, - 75, - 75, - 75, - 76, - 76, - 76, - 76, - 76, - 76, - 76, - 76, - 77, - 77, - 77, - 77, - 77, - 77, - 77, - 77, - 78, - 78, - 78, - 78, - 78, - 78, - 78, - 78, - 79, - 79, - 79, - 79, - 79, - 79, - 79, - 79, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 80, - 81, - 81, - 81, - 81, - 81, - 81, - 81, - 81, - 82, - 82, - 82, - 82, - 82, - 82, - 82, - 82, - 82, - 83, - 83, - 83, - 83, - 83, - 83, - 83, - 83, - 83, - 84, - 84, - 84, - 84, - 84, - 84, - 84, - 84, - 84, - 85, - 85, - 85, - 85, - 85, - 85, - 85, - 85, - 85, - 86, - 86, - 86, - 86, - 86, - 86, - 86, - 86, - 86, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 88, - 88, - 88, - 88, - 88, - 88, - 88, - 88, - 88, - 89, - 89, - 89, - 89, - 89, - 89, - 89, - 89, - 89, - 89, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 90, - 91, - 91, - 91, - 91, - 91, - 91, - 91, - 91, - 91, - 92, - 92, - 92, - 92, - 92, - 92, - 92, - 92, - 92, - 92, - 93, - 93, - 93, - 93, - 93, - 93, - 93, - 93, - 93, - 93, - 94, - 94, - 94, - 94, - 94, - 94, - 94, - 94, - 94, - 94, - 95, - 95, - 95, - 95, - 95, - 95, - 95, - 95, - 95, - 95, - 95, - 96, - 96, - 96, - 96, - 96, - 96, - 96, - 96, - 96, - 96, - 97, - 97, - 97, - 97, - 97, - 97, - 97, - 97, - 97, - 97, - 97, - 98, - 98, - 98, - 98, - 98, - 98, - 98, - 98, - 98, - 98, - 99, - 99, - 99, - 99, - 99, - 99, - 99, - 99, - 99, - 99, - 99, - 100, - 100, - 100, - 100, - 100, - 100, - 100, - 100, - 100, - 100, - 100, - 101, - 101, - 101, - 101, - 101, - 101, - 101, - 101, - 101, - 101, - 101, - 102, - 102, - 102, - 102, - 102, - 102, - 102, - 102, - 102, - 102, - 102, - 103, - 103, - 103, - 103, - 103, - 103, - 103, - 103, - 103, - 103, - 103, - 103, - 104, - 104, - 104, - 104, - 104, - 104, - 104, - 104, - 104, - 104, - 104, - 105, - 105, - 105, - 105, - 105, - 105, - 105, - 105, - 105, - 105, - 105, - 105, - 106, - 106, - 106, - 106, - 106, - 106, - 106, - 106, - 106, - 106, - 106, - 106, - 107, - 107, - 107, - 107, - 107, - 107, - 107, - 107, - 107, - 107, - 107, - 107, - 108, - 108, - 108, - 108, - 108, - 108, - 108, - 108, - 108, - 108, - 108, - 108, - 109, - 109, - 109, - 109, - 109, - 109, - 109, - 109, - 109, - 109, - 109, - 109, - 110, - 110, - 110, - 110, - 110, - 110, - 110, - 110, - 110, - 110, - 110, - 110, - 111, - 111, - 111, - 111, - 111, - 111, - 111, - 111, - 111, - 111, - 111, - 111, - 111, - 112, - 112, - 112, - 112, - 112, - 112, - 112, - 112, - 112, - 112, - 112, - 112, - 113, - 113, - 113, - 113, - 113, - 113, - 113, - 113, - 113, - 113, - 113, - 113, - 113, - 114, - 114, - 114, - 114, - 114, - 114, - 114, - 114, - 114, - 114, - 114, - 114, - 114, - 115, - 115, - 115, - 115, - 115, - 115, - 115, - 115, - 115, - 115, - 115, - 115, - 115, - 116, - 116, - 116, - 116, - 116, - 116, - 116, - 116, - 116, - 116, - 116, - 116, - 116, - 117, - 117, - 117, - 117, - 117, - 117, - 117, - 117, - 117, - 117, - 117, - 117, - 117, - 118, - 118, - 118, - 118, - 118, - 118, - 118, - 118, - 118, - 118, - 118, - 118, - 118, - 118, - 119, - 119, - 119, - 119, - 119, - 119, - 119, - 119, - 119, - 119, - 119, - 119, - 119, - 120, - 120, - 120, - 120, - 120, - 120, - 120, - 120, - 120, - 120, - 120, - 120, - 120, - 120, - 121, - 121, - 121, - 121, - 121, - 121, - 121, - 121, - 121, - 121, - 121, - 121, - 121, - 121, - 122, - 122, - 122, - 122, - 122, - 122, - 122, - 122, - 122, - 122, - 122, - 122, - 122, - 122, - 123, - 123, - 123, - 123, - 123, - 123, - 123, - 123, - 123, - 123, - 123, - 123, - 123, - 123, - 124, - 124, - 124, - 124, - 124, - 124, - 124, - 124, - 124, - 124, - 124, - 124, - 124, - 124, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 125, - 126, - 126, - 126, - 126, - 126, - 126, - 126, - 126, - 126, - 126, - 126, - 126, - 126, - 126, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 127, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 128, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 129, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 130, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 131, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 132, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 133, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 134, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 135, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 136, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 137, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 138, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 139, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 140, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 141, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 142, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 143, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 144, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 145, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 146, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 147, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 148, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 149, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 150, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 151, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 152, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 153, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 154, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 155, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 156, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 157, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 158, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 159, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 160, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 161, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 162, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 163, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 164, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 165, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 166, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 167, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 168, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 169, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 170, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 171, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 172, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 173, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 174, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 175, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 176, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 177, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 178, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 179, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 180, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 181, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 182, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 183, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 184, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 185, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 186, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 187, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 188, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 189, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 190, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 191, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 192, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 193, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 194, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 195, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 196, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 197, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 198, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 199, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 200, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 201, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 202, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 203, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 204, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 205, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 206, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 207, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 208, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 209, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 210, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 211, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 212, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 213, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 214, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 215, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 216, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 217, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 218, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 219, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 220, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 221, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 222, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 223, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 224, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 225, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 226, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 227, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 228, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 229, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 230, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 231, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 232, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 233, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 234, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 235, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 236, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 237, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 238, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 239, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 240, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 241, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 242, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 243, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 244, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 245, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 246, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 247, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 248, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 249, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 250, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 251, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 252, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 253, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 254, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255 -}; diff --git a/libs/spandsp/src/libspandsp.2010.vcxproj b/libs/spandsp/src/libspandsp.2010.vcxproj index d3793f5b18..1697ba19a5 100644 --- a/libs/spandsp/src/libspandsp.2010.vcxproj +++ b/libs/spandsp/src/libspandsp.2010.vcxproj @@ -427,6 +427,9 @@ {dee932ab-5911-4700-9eeb-8c7090a0a330} false + + {85f0cf8c-c7ab-48f6-ba19-cc94cf87f981} + {9d04a840-ce18-4ff5-a6d3-0a2bb92ff2e6} diff --git a/libs/spandsp/src/libspandsp.2012.vcxproj b/libs/spandsp/src/libspandsp.2012.vcxproj index 1c5ce3c257..92ddbbe0c9 100644 --- a/libs/spandsp/src/libspandsp.2012.vcxproj +++ b/libs/spandsp/src/libspandsp.2012.vcxproj @@ -431,6 +431,9 @@ {dee932ab-5911-4700-9eeb-8c7090a0a330} false + + {85f0cf8c-c7ab-48f6-ba19-cc94cf87f981} + {2386b892-35f5-46cf-a0f0-10394d2fbf9b} diff --git a/libs/spandsp/src/msvc/make_cielab_luts.2010.vcxproj b/libs/spandsp/src/msvc/make_cielab_luts.2010.vcxproj new file mode 100644 index 0000000000..de83ac7306 --- /dev/null +++ b/libs/spandsp/src/msvc/make_cielab_luts.2010.vcxproj @@ -0,0 +1,65 @@ + + + + + All + Win32 + + + + make_cielab_luts + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} + make_cielab_luts + Win32Proj + + + + Application + Unicode + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\$(Configuration)\ + $(PlatformName)\make_cielab_luts\$(Configuration)\ + false + + + + $(IntDir)BuildLog $(ProjectName).htm + + + Disabled + .;.\spandsp;.\msvc;..\..\tiff-4.0.2\libtiff;.\generated;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + $(IntDir)$(TargetName).pdb + Level3 + ProgramDatabase + + + true + Console + MachineX86 + + + "$(TargetPath)" >"$(ProjectDir)..\cielab_luts.h" + + + + + + + + + \ No newline at end of file diff --git a/libs/spandsp/src/msvc/make_cielab_luts.2012.vcxproj b/libs/spandsp/src/msvc/make_cielab_luts.2012.vcxproj new file mode 100644 index 0000000000..d7c54ca97f --- /dev/null +++ b/libs/spandsp/src/msvc/make_cielab_luts.2012.vcxproj @@ -0,0 +1,66 @@ + + + + + All + Win32 + + + + make_cielab_luts + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} + make_cielab_luts + Win32Proj + + + + Application + Unicode + v110 + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\$(Configuration)\ + $(PlatformName)\make_cielab_luts\$(Configuration)\ + false + + + + $(IntDir)BuildLog $(ProjectName).htm + + + Disabled + .;.\spandsp;.\msvc;..\..\tiff-4.0.2\libtiff;.\generated;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + $(IntDir)$(TargetName).pdb + Level3 + ProgramDatabase + + + true + Console + MachineX86 + + + "$(TargetPath)" >"$(ProjectDir)..\cielab_luts.h" + + + + + + + + + \ No newline at end of file diff --git a/libs/spandsp/src/msvc/make_math_fixed_tables.2010.vcxproj b/libs/spandsp/src/msvc/make_math_fixed_tables.2010.vcxproj index a71f70e556..61465917f1 100644 --- a/libs/spandsp/src/msvc/make_math_fixed_tables.2010.vcxproj +++ b/libs/spandsp/src/msvc/make_math_fixed_tables.2010.vcxproj @@ -27,7 +27,7 @@ <_ProjectFileVersion>10.0.30319.1 $(PlatformName)\$(Configuration)\ - $(PlatformName)\make_at_dictionary\$(Configuration)\ + $(PlatformName)\make_math_fixed_tables\$(Configuration)\ false diff --git a/libs/spandsp/src/msvc/make_math_fixed_tables.2012.vcxproj b/libs/spandsp/src/msvc/make_math_fixed_tables.2012.vcxproj index 610bb28625..ab6b648bcb 100644 --- a/libs/spandsp/src/msvc/make_math_fixed_tables.2012.vcxproj +++ b/libs/spandsp/src/msvc/make_math_fixed_tables.2012.vcxproj @@ -28,7 +28,7 @@ <_ProjectFileVersion>10.0.30319.1 $(PlatformName)\$(Configuration)\ - $(PlatformName)\make_at_dictionary\$(Configuration)\ + $(PlatformName)\make_math_fixed_tables\$(Configuration)\ false diff --git a/libs/win32/apr/libapr.2010.vcxproj b/libs/win32/apr/libapr.2010.vcxproj index 5c6b686ee0..1bce164a1d 100644 --- a/libs/win32/apr/libapr.2010.vcxproj +++ b/libs/win32/apr/libapr.2010.vcxproj @@ -112,7 +112,7 @@ xcopy "$(ProjectDir)..\..\apr\include\*.h" "$(ProjectDir)..\..\include\" /C /D / /EHsc %(AdditionalOptions) Disabled ..\..\apr\include;..\..\apr\include/arch;..\..\apr\include/arch/win32;..\..\apr\include/arch/unix;%(AdditionalIncludeDirectories) - _DEBUG;APR_DECLARE_EXPORT;WIN32;_WINDOWS;%(PreprocessorDefinitions) + _DEBUG;APR_DECLARE_EXPORT;APR_VOID_P_IS_QUAD;WIN32;_WINDOWS;%(PreprocessorDefinitions) MultiThreadedDebugDLL Level3 true @@ -181,7 +181,7 @@ xcopy "$(ProjectDir)..\..\apr\include\*.h" "$(ProjectDir)..\..\include\" /C /D / MaxSpeed OnlyExplicitInline ..\..\apr\include;..\..\apr\include/arch;..\..\apr\include/arch/win32;..\..\apr\include/arch/unix;%(AdditionalIncludeDirectories) - NDEBUG;APR_DECLARE_EXPORT;WIN32;_WINDOWS;%(PreprocessorDefinitions) + NDEBUG;APR_DECLARE_EXPORT;APR_VOID_P_IS_QUAD;WIN32;_WINDOWS;%(PreprocessorDefinitions) true MultiThreadedDLL true diff --git a/libs/win32/apr/libapr.2012.vcxproj b/libs/win32/apr/libapr.2012.vcxproj index c491751b00..39cc98d863 100644 --- a/libs/win32/apr/libapr.2012.vcxproj +++ b/libs/win32/apr/libapr.2012.vcxproj @@ -116,7 +116,7 @@ xcopy "$(ProjectDir)..\..\apr\include\*.h" "$(ProjectDir)..\..\include\" /C /D / /EHsc %(AdditionalOptions) Disabled ..\..\apr\include;..\..\apr\include/arch;..\..\apr\include/arch/win32;..\..\apr\include/arch/unix;%(AdditionalIncludeDirectories) - _DEBUG;APR_DECLARE_EXPORT;WIN32;_WINDOWS;%(PreprocessorDefinitions) + _DEBUG;APR_DECLARE_EXPORT;APR_VOID_P_IS_QUAD;WIN32;_WINDOWS;%(PreprocessorDefinitions) MultiThreadedDebugDLL Level3 true @@ -185,7 +185,7 @@ xcopy "$(ProjectDir)..\..\apr\include\*.h" "$(ProjectDir)..\..\include\" /C /D / MaxSpeed OnlyExplicitInline ..\..\apr\include;..\..\apr\include/arch;..\..\apr\include/arch/win32;..\..\apr\include/arch/unix;%(AdditionalIncludeDirectories) - NDEBUG;APR_DECLARE_EXPORT;WIN32;_WINDOWS;%(PreprocessorDefinitions) + NDEBUG;APR_DECLARE_EXPORT;APR_VOID_P_IS_QUAD;WIN32;_WINDOWS;%(PreprocessorDefinitions) true MultiThreadedDLL true diff --git a/scripts/lua/zrtp_sas_proxy.lua b/scripts/lua/zrtp_sas_proxy.lua new file mode 100644 index 0000000000..503b8d8c72 --- /dev/null +++ b/scripts/lua/zrtp_sas_proxy.lua @@ -0,0 +1,103 @@ +-- zrtp_sas_proxy.lua +-- +-- Copyright (c) 2011-2013 Travis Cross +-- +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: +-- +-- The above copyright notice and this permission notice shall be included in +-- all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +-- THE SOFTWARE. +-- +-- +-- When we're acting as a ZRTP man-in-the-middle, proxy the SAS (Short +-- Authentication String) from one leg of the call to the other. +-- +-- This script should be called asynchonously with luarun. e.g.: +-- +-- +-- +aleg=argv[1] +api=freeswitch.API() + +function log(level,msg) return freeswitch.consoleLog(level,"zrtp_sas: "..msg.."\n") end +function sleep(sec) return freeswitch.msleep(sec*1000) end +function ready() return api:execute("uuid_exists",aleg)=="true" end +function getvar(uuid,var) + local x=api:execute("uuid_getvar",uuid.." "..var) + if x=="_undef_" then return nil end + return x +end +function getvarp(uuid,var) return getvar(uuid,var)=="true" end +function display(uuid,msg) + local cidn=getvar(uuid,"caller_id_name") + return api:execute("uuid_display",uuid.." "..msg.." "..cidn) +end + +function mk_sas(sas1,sas2) + if sas1 and sas2 then return sas1.." "..sas2 + else return sas1 or sas2 or "" end +end + +function get_sas(uuid) + return mk_sas(getvar(uuid,"zrtp_sas1_string_audio"), + getvar(uuid,"zrtp_sas2_string")) +end + +function log_sas(leg,uuid) + return log("notice",leg..": "..uuid.." sas: "..get_sas(uuid)) +end + +function display_sas(to,from) + return display(to," ("..get_sas(from)..")") +end + +function get_bleg(aleg) + local retries=15 bleg=nil + while ready() do + if retries<1 then return nil end + local bleg=getvar(aleg,"signal_bond") + if bleg then return bleg end + log("debug","waiting for bleg uuid...") + sleep(1) + retries=retries-1 + end +end + +function handle_sas(aleg,bleg) + local retries=45 af=false bf=false + while ready() do + if retries<1 then return nil end + if not af and getvarp(aleg,"zrtp_secure_media_confirmed_audio") then + af=true + log_sas("aleg",aleg) + display_sas(bleg,aleg) + end + if not bf and getvarp(bleg,"zrtp_secure_media_confirmed_audio") then + bf=true + log_sas("bleg",bleg) + display_sas(aleg,bleg) + end + if (af and bf) then break + elseif af then log("debug","waiting on bleg zrtp...") + elseif bf then log("debug","waiting on aleg zrtp...") + else log("debug","waiting for zrtp...") end + sleep(1) + retries=retries-1 + end +end + +if not (getvarp(aleg,"zrtp_passthru") or getvarp(aleg,"proxy_media")) then + handle_sas(aleg,get_bleg(aleg)) +end diff --git a/src/include/private/switch_core_pvt.h b/src/include/private/switch_core_pvt.h index 5dba69cb7d..0acd41c3fb 100644 --- a/src/include/private/switch_core_pvt.h +++ b/src/include/private/switch_core_pvt.h @@ -238,6 +238,10 @@ struct switch_runtime { uint32_t sps_total; int32_t sps; int32_t sps_last; + int32_t sps_peak; + int32_t sps_peak_fivemin; + int32_t sessions_peak; + int32_t sessions_peak_fivemin; switch_log_level_t hard_log_level; char *mailer_app; char *mailer_app_args; diff --git a/src/include/switch_caller.h b/src/include/switch_caller.h index f21265e581..f0dc1c76fe 100644 --- a/src/include/switch_caller.h +++ b/src/include/switch_caller.h @@ -57,6 +57,9 @@ SWITCH_BEGIN_EXTERN_C +#define profile_dup(a,b,p) if (!zstr(a)) { b = switch_core_strdup(p, a); } else { b = SWITCH_BLANK_STRING; } +#define profile_dup_clean(a,b,p) if (!zstr(a)) { b = switch_var_clean_string(switch_clean_string(switch_core_strdup(p, a)));} else { b = SWITCH_BLANK_STRING; } + typedef struct profile_node_s { char *var; char *val; diff --git a/src/include/switch_core.h b/src/include/switch_core.h index e169c1d8e6..cf4cced79a 100644 --- a/src/include/switch_core.h +++ b/src/include/switch_core.h @@ -1936,6 +1936,15 @@ SWITCH_DECLARE(switch_status_t) switch_core_asr_check_results(switch_asr_handle_ */ SWITCH_DECLARE(switch_status_t) switch_core_asr_get_results(switch_asr_handle_t *ah, char **xmlstr, switch_asr_flag_t *flags); +/*! + \brief Get result headers from an asr handle + \param ah the handle to get results from + \param headers a pointer to dynamically allocate an switch_event_t result to + \param flags flags to influence behaviour + \return SWITCH_STATUS_SUCCESS +*/ +SWITCH_DECLARE(switch_status_t) switch_core_asr_get_result_headers(switch_asr_handle_t *ah, switch_event_t **headers, switch_asr_flag_t *flags); + /*! \brief Load a grammar to an asr handle \param ah the handle to load to @@ -2520,6 +2529,10 @@ SWITCH_DECLARE(void) switch_sql_queue_manger_execute_sql_event_callback(switch_s SWITCH_DECLARE(pid_t) switch_fork(void); +SWITCH_DECLARE(int) switch_system(const char *cmd, switch_bool_t wait); +SWITCH_DECLARE(int) switch_stream_system_fork(const char *cmd, switch_stream_handle_t *stream); +SWITCH_DECLARE(int) switch_stream_system(const char *cmd, switch_stream_handle_t *stream); + SWITCH_END_EXTERN_C #endif /* For Emacs: diff --git a/src/include/switch_cpp.h b/src/include/switch_cpp.h index 43aa6c0bef..bccf71a3a1 100644 --- a/src/include/switch_cpp.h +++ b/src/include/switch_cpp.h @@ -90,6 +90,7 @@ SWITCH_DECLARE(bool) email(char *to, char *from, char *headers = NULL, char *bod const char *short_greeting_sound, const char *invalid_sound, const char *exit_sound, + const char *transfer_sound, const char *confirm_macro, const char *confirm_key, const char *tts_engine, diff --git a/src/include/switch_ivr.h b/src/include/switch_ivr.h index ba5ad7011b..c0ba440c99 100644 --- a/src/include/switch_ivr.h +++ b/src/include/switch_ivr.h @@ -184,6 +184,18 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_and_detect_speech(switch_core_se switch_input_args_t *args); +/*! + \brief Initialize background Speech detection on a session, so that parameters can be set, and grammars loaded. + After calling this function, it is possible to call switch_ivr_set_param_detect_speech() to set recognition parameters. + Calling switch_ivr_detect_speech_load_grammar() starts the speech recognition. + \param session the session to attach + \param mod_name the module name of the ASR library + \param dest the destination address + \param ah an ASR handle to use (NULL to create one) + \return SWITCH_STATUS_SUCCESS if all is well +*/ +SWITCH_DECLARE(switch_status_t) switch_ivr_detect_speech_init(switch_core_session_t *session, const char *mod_name, + const char *dest, switch_asr_handle_t *ah); /*! \brief Engage background Speech detection on a session \param session the session to attach @@ -775,6 +787,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_digit_stream_parser_set_terminator(sw *\param short_greeting_sound Optional pointer to a shorter main sound for subsequent loops. *\param invalid_sound Optional pointer to a sound to play after invalid input. *\param exit_sound Optional pointer to a sound to play upon exiting the menu. + *\param transfer_sound Optional pointer to a sound to play upon transfer away from the menu. *\param confirm_macro phrase macro name to confirm input *\param confirm_key the dtmf key required for positive confirmation *\param tts_engine the tts engine to use for this menu @@ -795,6 +808,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_menu_init(switch_ivr_menu_t ** new_me const char *short_greeting_sound, const char *invalid_sound, const char *exit_sound, + const char *transfer_sound, const char *confirm_macro, const char *confirm_key, const char *tts_engine, @@ -934,6 +948,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_say_ip(switch_core_session_t *session switch_input_args_t *args); SWITCH_DECLARE(switch_status_t) switch_ivr_set_user(switch_core_session_t *session, const char *data); +SWITCH_DECLARE(switch_status_t) switch_ivr_set_user_xml(switch_core_session_t *session, const char *prefix, + const char *user, const char *domain, switch_xml_t x_user); + SWITCH_DECLARE(switch_status_t) switch_ivr_sound_test(switch_core_session_t *session); SWITCH_DECLARE(void) switch_process_import(switch_core_session_t *session, switch_channel_t *peer_channel, const char *varname, const char *prefix); SWITCH_DECLARE(switch_bool_t) switch_ivr_uuid_exists(const char *uuid); diff --git a/src/include/switch_module_interfaces.h b/src/include/switch_module_interfaces.h index cdfb9eb2e9..b4ea5a4bc8 100644 --- a/src/include/switch_module_interfaces.h +++ b/src/include/switch_module_interfaces.h @@ -377,6 +377,8 @@ struct switch_asr_interface { switch_status_t (*asr_check_results) (switch_asr_handle_t *ah, switch_asr_flag_t *flags); /*! function to read results from the ASR */ switch_status_t (*asr_get_results) (switch_asr_handle_t *ah, char **xmlstr, switch_asr_flag_t *flags); + /*! function to read result headers from the ASR */ + switch_status_t (*asr_get_result_headers) (switch_asr_handle_t *ah, switch_event_t **headers, switch_asr_flag_t *flags); /*! function to start ASR input timers */ switch_status_t (*asr_start_input_timers) (switch_asr_handle_t *ah); void (*asr_text_param) (switch_asr_handle_t *ah, char *param, const char *val); diff --git a/src/include/switch_scheduler.h b/src/include/switch_scheduler.h index 8d9bd9ca1a..59997a006d 100644 --- a/src/include/switch_scheduler.h +++ b/src/include/switch_scheduler.h @@ -43,6 +43,7 @@ SWITCH_BEGIN_EXTERN_C int64_t created; int64_t runtime; uint32_t cmd_id; + uint32_t repeat; char *group; void *cmd_arg; uint32_t task_id; diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 9e17785645..e386dc277f 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1861,7 +1861,11 @@ typedef enum { SCSC_DEBUG_SQL, SCSC_SQL, SCSC_API_EXPANSION, - SCSC_RECOVER + SCSC_RECOVER, + SCSC_SPS_PEAK, + SCSC_SPS_PEAK_FIVEMIN, + SCSC_SESSIONS_PEAK, + SCSC_SESSIONS_PEAK_FIVEMIN } switch_session_ctl_t; typedef enum { diff --git a/src/include/switch_utils.h b/src/include/switch_utils.h index 99ff664868..5deb8ee313 100644 --- a/src/include/switch_utils.h +++ b/src/include/switch_utils.h @@ -610,7 +610,7 @@ static inline char *switch_sanitize_number(char *number) while ((q = strrchr(p, '@'))) *q = '\0'; - + for (i = 0; i < (int) strlen(warp); i++) { while (p && (q = strchr(p, warp[i]))) p = q + 1; diff --git a/src/mod/.gitignore b/src/mod/.gitignore index 1aa253520e..bfcc02ab70 100644 --- a/src/mod/.gitignore +++ b/src/mod/.gitignore @@ -24,16 +24,19 @@ /applications/mod_stress/Makefile /applications/mod_stress/Makefile.in /applications/mod_stress/mod_stress.log +/applications/mod_translate/Makefile /applications/mod_valet_parking/Makefile /applications/mod_voicemail/Makefile /asr_tts/mod_unimrcp/Makefile /asr_tts/mod_unimrcp/Makefile.in /asr_tts/mod_unimrcp/mod_unimrcp.log /asr_tts/mod_flite/*/*/mod_flite_manifest.rc +/codecs/mod_b64/Makefile /codecs/mod_skel_codec/Makefile /codecs/mod_vp8/Makefile /dialplans/mod_dialplan_asterisk/Makefile /dialplans/mod_dialplan_xml/Makefile +/endpoints/mod_html5/mod_html5.log /endpoints/mod_portaudio/Makefile /endpoints/mod_portaudio/Makefile.in /endpoints/mod_portaudio/mod_portaudio.log @@ -55,8 +58,9 @@ /formats/mod_portaudio_stream/Makefile.in /formats/mod_portaudio_stream/mod_portaudio_stream.log /formats/mod_tone_stream/Makefile -/languages/mod_java/freeswitch.jar /languages/mod_java/Makefile +/languages/mod_java/classes/ +/languages/mod_java/freeswitch.jar /languages/mod_lua/Makefile /languages/mod_lua/Makefile.in /languages/mod_lua/mod_lua.log diff --git a/src/mod/applications/mod_callcenter/mod_callcenter.c b/src/mod/applications/mod_callcenter/mod_callcenter.c index c758147078..9f74d2f9cc 100644 --- a/src/mod/applications/mod_callcenter/mod_callcenter.c +++ b/src/mod/applications/mod_callcenter/mod_callcenter.c @@ -562,27 +562,28 @@ char *cc_execute_sql2str(cc_queue_t *queue, switch_mutex_t *mutex, char *sql, ch switch_cache_db_handle_t *dbh = NULL; - if (!(dbh = cc_get_db_handle())) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Opening DB\n"); - return NULL; - } - if (mutex) { switch_mutex_lock(mutex); } else { switch_mutex_lock(globals.mutex); } + if (!(dbh = cc_get_db_handle())) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Opening DB\n"); + goto end; + } + ret = switch_cache_db_execute_sql2str(dbh, sql, resbuf, len, NULL); +end: + switch_cache_db_release_db_handle(&dbh); + if (mutex) { switch_mutex_unlock(mutex); } else { switch_mutex_unlock(globals.mutex); } - switch_cache_db_release_db_handle(&dbh); - return ret; } diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index ef34a985f7..fc74c3dd65 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -2012,7 +2012,8 @@ SWITCH_STANDARD_API(lan_addr_function) SWITCH_STANDARD_API(status_function) { switch_core_time_duration_t duration = { 0 }; - int sps = 0, last_sps = 0; + int sps = 0, last_sps = 0, max_sps = 0, max_sps_fivemin = 0; + int sessions_peak = 0, sessions_peak_fivemin = 0; /* Max Concurrent Sessions buffers */ switch_bool_t html = SWITCH_FALSE; /* shortcut to format.html */ char * nl = "\n"; /* shortcut to format.nl */ stream_format format = { 0 }; @@ -2056,9 +2057,14 @@ SWITCH_STANDARD_API(status_function) switch_core_ready() ? "ready" : "not ready", nl); stream->write_function(stream, "%" SWITCH_SIZE_T_FMT " session(s) since startup%s", switch_core_session_id() - 1, nl); + switch_core_session_ctl(SCSC_SESSIONS_PEAK, &sessions_peak); + switch_core_session_ctl(SCSC_SESSIONS_PEAK_FIVEMIN, &sessions_peak_fivemin); + stream->write_function(stream, "%d session(s) - peak %d, last 5min %d %s", switch_core_session_count(), sessions_peak, sessions_peak_fivemin, nl); switch_core_session_ctl(SCSC_LAST_SPS, &last_sps); switch_core_session_ctl(SCSC_SPS, &sps); - stream->write_function(stream, "%d session(s) - %d out of max %d per sec %s", switch_core_session_count(), last_sps, sps, nl); + switch_core_session_ctl(SCSC_SPS_PEAK, &max_sps); + switch_core_session_ctl(SCSC_SPS_PEAK_FIVEMIN, &max_sps_fivemin); + stream->write_function(stream, "%d session(s) per Sec out of max %d, peak %d, last 5min %d %s", last_sps, sps, max_sps, max_sps_fivemin, nl); stream->write_function(stream, "%d session(s) max%s", switch_core_session_limit(0), nl); stream->write_function(stream, "min idle cpu %0.2f/%0.2f%s", switch_core_min_idle_cpu(-1.0), switch_core_idle_cpu(), nl); @@ -2067,7 +2073,7 @@ SWITCH_STANDARD_API(status_function) return SWITCH_STATUS_SUCCESS; } -#define CTL_SYNTAX "[recover|send_sighup|hupall|pause [inbound|outbound]|resume [inbound|outbound]|shutdown [cancel|elegant|asap|now|restart]|sps|sync_clock|sync_clock_when_idle|reclaim_mem|max_sessions|min_dtmf_duration [num]|max_dtmf_duration [num]|default_dtmf_duration [num]|min_idle_cpu|loglevel [level]|debug_level [level]]" +#define CTL_SYNTAX "[recover|send_sighup|hupall|pause [inbound|outbound]|resume [inbound|outbound]|shutdown [cancel|elegant|asap|now|restart]|sps|sps_peak_reset|sync_clock|sync_clock_when_idle|reclaim_mem|max_sessions|min_dtmf_duration [num]|max_dtmf_duration [num]|default_dtmf_duration [num]|min_idle_cpu|loglevel [level]|debug_level [level]]" SWITCH_STANDARD_API(ctl_function) { int argc; @@ -2289,6 +2295,10 @@ SWITCH_STANDARD_API(ctl_function) switch_core_session_ctl(SCSC_DEBUG_LEVEL, &arg); stream->write_function(stream, "+OK DEBUG level: %d\n", arg); + } else if (!strcasecmp(argv[0], "sps_peak_reset")) { + arg = -1; + switch_core_session_ctl(SCSC_SPS_PEAK, &arg); + stream->write_function(stream, "+OK max sessions per second counter reset\n"); } else if (!strcasecmp(argv[0], "last_sps")) { switch_core_session_ctl(SCSC_LAST_SPS, &arg); stream->write_function(stream, "+OK last sessions per second: %d\n", arg); @@ -3154,7 +3164,7 @@ SWITCH_STANDARD_API(uuid_broadcast_function) return SWITCH_STATUS_SUCCESS; } -#define SCHED_BROADCAST_SYNTAX "[+]