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 "[+]