diff --git a/platform/vsnet/Freeswitch.sln b/platform/vsnet/Freeswitch.sln index 1915492312..1ed99e3185 100644 --- a/platform/vsnet/Freeswitch.sln +++ b/platform/vsnet/Freeswitch.sln @@ -1,3 +1,4 @@ + Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "FreeSwitchCore.vcproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}" @@ -12,53 +13,54 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchConsole", "FreeSw EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bridgecall", "mod_bridgecall.vcproj", "{E1794405-29D4-466D-9BE3-DD2344C2A663}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {13860EB7-038A-438F-898F-1032E42A5574} = {13860EB7-038A-438F-898F-1032E42A5574} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_softtimer", "mod_softtimer.vcproj", "{DCC13474-28DF-47CA-A8EB-72F8CE9A78C5}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {13860EB7-038A-438F-898F-1032E42A5574} = {13860EB7-038A-438F-898F-1032E42A5574} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_demo", "mod_dialplan_demo.vcproj", "{2988EB83-785F-45D4-8731-8E1E4345177E}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {13860EB7-038A-438F-898F-1032E42A5574} = {13860EB7-038A-438F-898F-1032E42A5574} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_exosip", "mod_exosip.vcproj", "{45DF84ED-D24A-4FF6-B5B0-0A9A5FDB9552}" ProjectSection(ProjectDependencies) = postProject {85255507-5D16-4218-85E2-F683BB2F04DA} = {85255507-5D16-4218-85E2-F683BB2F04DA} - {4EA67539-9EE9-4065-BD39-87E517FD8262} = {4EA67539-9EE9-4065-BD39-87E517FD8262} - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} - {44F46B7E-0E51-4304-9735-330DFBAB41E5} = {44F46B7E-0E51-4304-9735-330DFBAB41E5} + {E85B3E1F-B671-4E84-9F09-90F61A27D783} = {E85B3E1F-B671-4E84-9F09-90F61A27D783} {13860EB7-038A-438F-898F-1032E42A5574} = {13860EB7-038A-438F-898F-1032E42A5574} + {44F46B7E-0E51-4304-9735-330DFBAB41E5} = {44F46B7E-0E51-4304-9735-330DFBAB41E5} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + {4EA67539-9EE9-4065-BD39-87E517FD8262} = {4EA67539-9EE9-4065-BD39-87E517FD8262} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g711codec", "mod_g711codec.vcproj", "{B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {13860EB7-038A-438F-898F-1032E42A5574} = {13860EB7-038A-438F-898F-1032E42A5574} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_playback", "mod_playback.vcproj", "{78100236-7CEA-4948-96CC-E8ED3160329C}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {13860EB7-038A-438F-898F-1032E42A5574} = {13860EB7-038A-438F-898F-1032E42A5574} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rawaudio", "mod_rawaudio.vcproj", "{5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {13860EB7-038A-438F-898F-1032E42A5574} = {13860EB7-038A-438F-898F-1032E42A5574} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_woomerachan", "mod_woomerachan.vcproj", "{FE3540C5-3303-46E0-A69E-D92F775687F1}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {13860EB7-038A-438F-898F-1032E42A5574} = {13860EB7-038A-438F-898F-1032E42A5574} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "..\..\..\apr\libapr.vcproj", "{13860EB7-038A-438F-898F-1032E42A5574}" @@ -72,7 +74,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "osipparser2", "..\..\..\osi EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eXosip", "..\..\..\eXosip\platform\vsnet\eXosip.vcproj", "{4EA67539-9EE9-4065-BD39-87E517FD8262}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ccrtp4c", "..\..\..\ccrtp4c\w32\msvc\ccrtp4c.vcproj", "{9ACCBFFD-390A-42F9-BD50-FF84A17A093A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jrtp4c", "..\..\..\jrtp4c\w32\jrtp4c\jrtp4c.vcproj", "{E85B3E1F-B671-4E84-9F09-90F61A27D783}" + ProjectSection(ProjectDependencies) = postProject + {4009F58A-E333-424B-A868-7E82804DD055} = {4009F58A-E333-424B-A868-7E82804DD055} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jthread", "..\..\..\jthread\jthread.vcproj", "{96A714AE-BE53-4EFF-8569-C3809AD4F3B6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jrtplib", "..\..\..\jrtplib\jrtplib.vcproj", "{4009F58A-E333-424B-A868-7E82804DD055}" + ProjectSection(ProjectDependencies) = postProject + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6} = {96A714AE-BE53-4EFF-8569-C3809AD4F3B6} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -281,20 +293,48 @@ Global {4EA67539-9EE9-4065-BD39-87E517FD8262}.Release IPv6 XP|Win32.Build.0 = Release|Win32 {4EA67539-9EE9-4065-BD39-87E517FD8262}.Release|Win32.ActiveCfg = Release|Win32 {4EA67539-9EE9-4065-BD39-87E517FD8262}.Release|Win32.Build.0 = Release|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Debug IPv6 MSR|Win32.ActiveCfg = Debug|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Debug IPv6 MSR|Win32.Build.0 = Debug|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Debug IPv6 Musica|Win32.ActiveCfg = Debug|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Debug IPv6 Musica|Win32.Build.0 = Debug|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Debug IPv6 Win2000|Win32.ActiveCfg = Debug|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Debug IPv6 Win2000|Win32.Build.0 = Debug|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Debug|Win32.ActiveCfg = Debug|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Debug|Win32.Build.0 = Debug|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Release IPv6 Win2000|Win32.ActiveCfg = Release|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Release IPv6 Win2000|Win32.Build.0 = Release|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Release IPv6 XP|Win32.ActiveCfg = Release|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Release IPv6 XP|Win32.Build.0 = Release|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Release|Win32.ActiveCfg = Release|Win32 - {9ACCBFFD-390A-42F9-BD50-FF84A17A093A}.Release|Win32.Build.0 = Release|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Debug IPv6 MSR|Win32.ActiveCfg = Debug|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Debug IPv6 MSR|Win32.Build.0 = Debug|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Debug IPv6 Musica|Win32.ActiveCfg = Debug|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Debug IPv6 Musica|Win32.Build.0 = Debug|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Debug IPv6 Win2000|Win32.ActiveCfg = Debug|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Debug IPv6 Win2000|Win32.Build.0 = Debug|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Debug|Win32.ActiveCfg = Debug|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Debug|Win32.Build.0 = Debug|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Release IPv6 Win2000|Win32.ActiveCfg = Release|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Release IPv6 Win2000|Win32.Build.0 = Release|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Release IPv6 XP|Win32.ActiveCfg = Release|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Release IPv6 XP|Win32.Build.0 = Release|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Release|Win32.ActiveCfg = Release|Win32 + {E85B3E1F-B671-4E84-9F09-90F61A27D783}.Release|Win32.Build.0 = Release|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Debug IPv6 MSR|Win32.ActiveCfg = Debug|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Debug IPv6 MSR|Win32.Build.0 = Debug|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Debug IPv6 Musica|Win32.ActiveCfg = Debug|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Debug IPv6 Musica|Win32.Build.0 = Debug|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Debug IPv6 Win2000|Win32.ActiveCfg = Debug|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Debug IPv6 Win2000|Win32.Build.0 = Debug|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Debug|Win32.ActiveCfg = Debug|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Debug|Win32.Build.0 = Debug|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Release IPv6 Win2000|Win32.ActiveCfg = Release|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Release IPv6 Win2000|Win32.Build.0 = Release|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Release IPv6 XP|Win32.ActiveCfg = Release|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Release IPv6 XP|Win32.Build.0 = Release|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Release|Win32.ActiveCfg = Release|Win32 + {96A714AE-BE53-4EFF-8569-C3809AD4F3B6}.Release|Win32.Build.0 = Release|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Debug IPv6 MSR|Win32.ActiveCfg = Debug|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Debug IPv6 MSR|Win32.Build.0 = Debug|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Debug IPv6 Musica|Win32.ActiveCfg = Debug|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Debug IPv6 Musica|Win32.Build.0 = Debug|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Debug IPv6 Win2000|Win32.ActiveCfg = Debug|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Debug IPv6 Win2000|Win32.Build.0 = Debug|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Debug|Win32.ActiveCfg = Debug|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Debug|Win32.Build.0 = Debug|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Release IPv6 Win2000|Win32.ActiveCfg = Release|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Release IPv6 Win2000|Win32.Build.0 = Release|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Release IPv6 XP|Win32.ActiveCfg = Release|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Release IPv6 XP|Win32.Build.0 = Release|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Release|Win32.ActiveCfg = Release|Win32 + {4009F58A-E333-424B-A868-7E82804DD055}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/platform/vsnet/mod_exosip.vcproj b/platform/vsnet/mod_exosip.vcproj index 9c7fc0fb81..55fdcdd926 100644 --- a/platform/vsnet/mod_exosip.vcproj +++ b/platform/vsnet/mod_exosip.vcproj @@ -42,7 +42,7 @@ Name="VCCLCompilerTool" AdditionalOptions="/D _CRT_SECURE_NO_DEPRECATE" Optimization="0" - AdditionalIncludeDirectories="..\..\src\include;"$(InputDir)..\..\..\libs\apr-1.2.2\include";..\..\..\eXosip\include;..\..\..\osip\include" + AdditionalIncludeDirectories="..\..\src\include;"$(InputDir)..\..\..\libs\apr-1.2.2\include";..\..\..\eXosip\include;..\..\..\osip\include;..\..\..\jrtp4c\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS" GeneratePreprocessedFile="0" MinimalRebuild="true" @@ -64,7 +64,8 @@ /> //#include -#define SWITCH_GLOBAL_VERSION "001" +#define SWITCH_GLOBAL_VERSION "1.5" typedef enum { SWITCH_STATUS_SUCCESS, @@ -190,13 +190,13 @@ typedef apr_thread_cond_t switch_thread_cond_t; #define SWITCH_READ APR_READ #define SWITCH_FPROT_UREAD APR_FPROT_UREAD #define SWITCH_FPROT_GREAD APR_FPROT_GREAD - -#define switch_thread_cond_create apr_thread_cond_create -#define switch_thread_cond_wait apr_thread_cond_wait -#define switch_thread_cond_timedwait apr_thread_cond_timedwait -#define switch_thread_cond_signal apr_thread_cond_signal -#define switch_thread_cond_broadcast apr_thread_cond_broadcast -#define switch_thread_cond_destroy apr_thread_cond_destroy + +#define switch_thread_cond_create apr_thread_cond_create +#define switch_thread_cond_wait apr_thread_cond_wait +#define switch_thread_cond_timedwait apr_thread_cond_timedwait +#define switch_thread_cond_signal apr_thread_cond_signal +#define switch_thread_cond_broadcast apr_thread_cond_broadcast +#define switch_thread_cond_destroy apr_thread_cond_destroy #define switch_poll_setup apr_poll_setup #define switch_pollset_create apr_pollset_create diff --git a/src/switch_channel.c b/src/switch_channel.c index f7028c0cc4..a53afb4036 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -344,14 +344,19 @@ SWITCH_DECLARE(switch_channel_state) switch_channel_set_state(switch_channel *ch } + if (ok) { switch_console_printf(SWITCH_CHANNEL_CONSOLE, "%s State Change %s -> %s\n", channel->name, state_names[last_state], state_names[state]); channel->state = state; pbx_core_session_signal_state_change(channel->session); } else { switch_console_printf(SWITCH_CHANNEL_CONSOLE, "%s Invalid State Change %s -> %s\n", channel->name, state_names[last_state], state_names[state]); + //we won't tolerate an invalid state change so we can make sure we are as robust as a nice cup of dark coffee! - assert(0); + if (channel->state < CS_HANGUP) { + // not cool lets crash this bad boy and figure out wtf is going on + assert(0); + } } return channel->state; } diff --git a/src/switch_loadable_module.c b/src/switch_loadable_module.c index ec208d65d0..c7b603f627 100644 --- a/src/switch_loadable_module.c +++ b/src/switch_loadable_module.c @@ -96,7 +96,6 @@ static switch_status switch_loadable_module_load_file(char *filename, switch_mem assert(filename != NULL); *new_module = NULL; - status = apr_dso_load(&dso, filename, pool); while (loading) { @@ -185,6 +184,13 @@ SWITCH_DECLARE(switch_status) switch_loadable_module_init() apr_dir_t *module_dir_handle; apr_int32_t finfo_flags = APR_FINFO_DIRENT|APR_FINFO_TYPE|APR_FINFO_NAME; switch_loadable_module *new_module; +#ifdef WIN32 + const char *ext = ".dll"; + const char *EXT = ".DLL"; +#else + const char *ext = ".so"; + const char *EXT = ".SO"; +#endif memset(&loadable_modules, 0, sizeof(loadable_modules)); switch_core_new_memory_pool(&loadable_modules.pool); @@ -215,6 +221,11 @@ SWITCH_DECLARE(switch_status) switch_loadable_module_init() if (!(ptr = (char *) fname)) { continue; } + + if (!strstr(fname, ext) && !strstr(fname, EXT)) { + continue; + } + len = strlen(SWITCH_MOD_DIR) + strlen(fname) + 3; file = (char *) switch_core_alloc(loadable_modules.pool, len);