From babeca40dd2a157b9852f56faaf57f85a894779f Mon Sep 17 00:00:00 2001 From: Ken Rice Date: Tue, 26 Feb 2013 10:44:32 -0600 Subject: [PATCH 01/26] FS-5128 --resolve --- src/mod/applications/mod_avmd/mod_avmd.c | 6 ++---- src/mod/applications/mod_vmd/mod_vmd.c | 2 ++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index f94dc69151..ac52c5968d 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -187,13 +187,11 @@ static switch_bool_t avmd_callback(switch_media_bug_t * bug, void *user_data, sw break; case SWITCH_ABC_TYPE_READ_PING: - break; case SWITCH_ABC_TYPE_CLOSE: - - break; case SWITCH_ABC_TYPE_READ: - break; case SWITCH_ABC_TYPE_WRITE: + case SWITCH_ABC_TYPE_TAP_NATIVE_READ: + case SWITCH_ABC_TYPE_TAP_NATIVE_WRITE: break; case SWITCH_ABC_TYPE_READ_REPLACE: diff --git a/src/mod/applications/mod_vmd/mod_vmd.c b/src/mod/applications/mod_vmd/mod_vmd.c index 3bb1e6b16e..6305e98b77 100644 --- a/src/mod/applications/mod_vmd/mod_vmd.c +++ b/src/mod/applications/mod_vmd/mod_vmd.c @@ -210,6 +210,8 @@ static switch_bool_t vmd_callback(switch_media_bug_t *bug, void *user_data, swit case SWITCH_ABC_TYPE_CLOSE: case SWITCH_ABC_TYPE_READ: case SWITCH_ABC_TYPE_WRITE: + case SWITCH_ABC_TYPE_TAP_NATIVE_READ: + case SWITCH_ABC_TYPE_TAP_NATIVE_WRITE: break; case SWITCH_ABC_TYPE_READ_REPLACE: From 9c00466dae0f9eb804e486ef91806b76dbf1095d Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 26 Feb 2013 11:05:44 -0600 Subject: [PATCH 02/26] FS-5127 --resolve --- src/include/switch_types.h | 18 ++++++++++-------- src/switch_core_io.c | 14 ++++++++++++++ src/switch_ivr_async.c | 4 ++++ 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 2c8b9503cf..f3a15cbe27 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1480,7 +1480,8 @@ SMBF_WRITE_STREAM - Include the Write Stream SMBF_WRITE_REPLACE - Replace the Write Stream SMBF_READ_REPLACE - Replace the Read Stream SMBF_STEREO - Record in stereo -SMBF_ANSWER_RECORD_REQ - Don't record until the channel is answered +SMBF_ANSWER_REQ - Don't record until the channel is answered +SMBF_BRIDGE_REQ - Don't record until the channel is bridged SMBF_THREAD_LOCK - Only let the same thread who created the bug remove it. SMBF_PRUNE - SMBF_NO_PAUSE - @@ -1496,13 +1497,14 @@ typedef enum { SMBF_READ_PING = (1 << 4), SMBF_STEREO = (1 << 5), SMBF_ANSWER_REQ = (1 << 6), - SMBF_THREAD_LOCK = (1 << 7), - SMBF_PRUNE = (1 << 8), - SMBF_NO_PAUSE = (1 << 9), - SMBF_STEREO_SWAP = (1 << 10), - SMBF_LOCK = (1 << 11), - SMBF_TAP_NATIVE_READ = (1 << 12), - SMBF_TAP_NATIVE_WRITE = (1 << 13) + SMBF_BRIDGE_REQ = (1 << 7), + SMBF_THREAD_LOCK = (1 << 8), + SMBF_PRUNE = (1 << 9), + SMBF_NO_PAUSE = (1 << 10), + SMBF_STEREO_SWAP = (1 << 11), + SMBF_LOCK = (1 << 12), + SMBF_TAP_NATIVE_READ = (1 << 13), + SMBF_TAP_NATIVE_WRITE = (1 << 14) } switch_media_bug_flag_enum_t; typedef uint32_t switch_media_bug_flag_t; diff --git a/src/switch_core_io.c b/src/switch_core_io.c index 22e0cc811d..cfac3bf629 100644 --- a/src/switch_core_io.c +++ b/src/switch_core_io.c @@ -551,6 +551,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi if (!switch_channel_test_flag(session->channel, CF_ANSWERED) && switch_core_media_bug_test_flag(bp, SMBF_ANSWER_REQ)) { continue; } + + if (!switch_channel_test_flag(session->channel, CF_BRIDGED) && switch_core_media_bug_test_flag(bp, SMBF_BRIDGE_REQ)) { + continue; + } + if (switch_test_flag(bp, SMBF_PRUNE)) { prune++; continue; @@ -595,6 +600,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi if (!switch_channel_test_flag(session->channel, CF_ANSWERED) && switch_core_media_bug_test_flag(bp, SMBF_ANSWER_REQ)) { continue; } + + if (!switch_channel_test_flag(session->channel, CF_BRIDGED) && switch_core_media_bug_test_flag(bp, SMBF_BRIDGE_REQ)) { + continue; + } + if (switch_test_flag(bp, SMBF_PRUNE)) { prune++; continue; @@ -757,6 +767,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi continue; } + if (!switch_channel_test_flag(session->channel, CF_BRIDGED) && switch_core_media_bug_test_flag(bp, SMBF_BRIDGE_REQ)) { + continue; + } + if (switch_test_flag(bp, SMBF_PRUNE)) { prune++; continue; diff --git a/src/switch_ivr_async.c b/src/switch_ivr_async.c index 8b1ce552d4..d6b8c172c5 100644 --- a/src/switch_ivr_async.c +++ b/src/switch_ivr_async.c @@ -1845,6 +1845,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_session(switch_core_session_t flags |= SMBF_ANSWER_REQ; } + if ((p = switch_channel_get_variable(channel, "RECORD_BRIDGE_REQ")) && switch_true(p)) { + flags |= SMBF_BRIDGE_REQ; + } + if ((p = switch_channel_get_variable(channel, "RECORD_APPEND")) && switch_true(p)) { file_flags |= SWITCH_FILE_WRITE_APPEND; } From aa89eab58f6e97698c8f40211ceabd64fa5b48c0 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 26 Feb 2013 11:49:17 -0600 Subject: [PATCH 03/26] FS-4709 --resolve, not adding the change to switch_rtp I want to have that log line there, don't make vanity changes mixed in with code changes --- src/include/switch_channel.h | 2 +- src/include/switch_types.h | 4 +++- src/switch_channel.c | 30 +++++++++++++++++++----------- src/switch_core_io.c | 8 ++++++++ src/switch_ivr_play_say.c | 2 +- 5 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/include/switch_channel.h b/src/include/switch_channel.h index 73eb7f1026..0f9d0f9b4c 100644 --- a/src/include/switch_channel.h +++ b/src/include/switch_channel.h @@ -552,7 +552,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_dtmf_unlock(switch_channel_t *cha \param dtmf digit \return SWITCH_STATUS_SUCCESS if successful */ -SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(_In_ switch_channel_t *channel, _In_ const switch_dtmf_t *dtmf); +SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(_In_ switch_channel_t *channel, _In_ switch_dtmf_t *dtmf); SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf_string(_In_ switch_channel_t *channel, _In_ const char *dtmf_string); /*! diff --git a/src/include/switch_types.h b/src/include/switch_types.h index f3a15cbe27..6c75ff4b3d 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -138,6 +138,7 @@ SWITCH_BEGIN_EXTERN_C #define SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE "proto_specific_hangup_cause" #define SWITCH_TRANSFER_HISTORY_VARIABLE "transfer_history" #define SWITCH_TRANSFER_SOURCE_VARIABLE "transfer_source" +#define SWITCH_SENSITIVE_DTMF_VARIABLE "sensitive_dtmf" #define SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE "execute_on_answer" #define SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE "execute_on_pre_answer" @@ -246,7 +247,8 @@ typedef enum { typedef enum { - DTMF_FLAG_SKIP_PROCESS = (1 << 0) + DTMF_FLAG_SKIP_PROCESS = (1 << 0), + DTMF_FLAG_SENSITIVE = (1 << 1) } dtmf_flag_t; typedef struct { diff --git a/src/switch_channel.c b/src/switch_channel.c index c00498ce17..68aea4f409 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -389,14 +389,19 @@ SWITCH_DECLARE(switch_size_t) switch_channel_has_dtmf(switch_channel_t *channel) return has; } -SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(switch_channel_t *channel, const switch_dtmf_t *dtmf) +SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(switch_channel_t *channel, switch_dtmf_t *dtmf) { switch_status_t status; void *pop; switch_dtmf_t new_dtmf = { 0 }; + switch_bool_t sensitive = switch_true(switch_channel_get_variable_dup(channel, SWITCH_SENSITIVE_DTMF_VARIABLE, SWITCH_FALSE, -1)); switch_assert(dtmf); + if (sensitive) { + switch_set_flag(dtmf, DTMF_FLAG_SENSITIVE); + } + switch_mutex_lock(channel->dtmf_mutex); new_dtmf = *dtmf; @@ -407,18 +412,19 @@ SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(switch_channel_t *chan if (is_dtmf(new_dtmf.digit)) { switch_dtmf_t *dt; int x = 0; - char str[2] = ""; - str[0] = new_dtmf.digit; + if (!sensitive) { + switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_DEBUG, "RECV DTMF %c:%d\n", new_dtmf.digit, new_dtmf.duration); + } if (new_dtmf.digit != 'w' && new_dtmf.digit != 'W') { if (new_dtmf.duration > switch_core_max_dtmf_duration(0)) { - switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_DEBUG1, "%s EXCESSIVE DTMF DIGIT [%s] LEN [%d]\n", - switch_channel_get_name(channel), str, new_dtmf.duration); + switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_DEBUG, "%s EXCESSIVE DTMF DIGIT LEN [%d]\n", + switch_channel_get_name(channel), new_dtmf.duration); new_dtmf.duration = switch_core_max_dtmf_duration(0); } else if (new_dtmf.duration < switch_core_min_dtmf_duration(0)) { - switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_DEBUG1, "%s SHORT DTMF DIGIT [%s] LEN [%d]\n", - switch_channel_get_name(channel), str, new_dtmf.duration); + switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_DEBUG, "%s SHORT DTMF DIGIT LEN [%d]\n", + switch_channel_get_name(channel), new_dtmf.duration); new_dtmf.duration = switch_core_min_dtmf_duration(0); } } @@ -519,14 +525,16 @@ SWITCH_DECLARE(switch_status_t) switch_channel_dequeue_dtmf(switch_channel_t *ch void *pop; switch_dtmf_t *dt; switch_status_t status = SWITCH_STATUS_FALSE; + int sensitive = 0; switch_mutex_lock(channel->dtmf_mutex); if (switch_queue_trypop(channel->dtmf_queue, &pop) == SWITCH_STATUS_SUCCESS) { dt = (switch_dtmf_t *) pop; *dtmf = *dt; + sensitive = switch_test_flag(dtmf, DTMF_FLAG_SENSITIVE); - if (switch_queue_trypush(channel->dtmf_log_queue, dt) != SWITCH_STATUS_SUCCESS) { + if (!sensitive && switch_queue_trypush(channel->dtmf_log_queue, dt) != SWITCH_STATUS_SUCCESS) { free(dt); } @@ -534,11 +542,11 @@ SWITCH_DECLARE(switch_status_t) switch_channel_dequeue_dtmf(switch_channel_t *ch if (dtmf->duration > switch_core_max_dtmf_duration(0)) { switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_WARNING, "%s EXCESSIVE DTMF DIGIT [%c] LEN [%d]\n", - switch_channel_get_name(channel), dtmf->digit, dtmf->duration); + switch_channel_get_name(channel), sensitive ? 'S' : dtmf->digit, dtmf->duration); dtmf->duration = switch_core_max_dtmf_duration(0); } else if (dtmf->duration < switch_core_min_dtmf_duration(0)) { switch_log_printf(SWITCH_CHANNEL_CHANNEL_LOG(channel), SWITCH_LOG_WARNING, "%s SHORT DTMF DIGIT [%c] LEN [%d]\n", - switch_channel_get_name(channel), dtmf->digit, dtmf->duration); + switch_channel_get_name(channel), sensitive ? 'S' : dtmf->digit, dtmf->duration); dtmf->duration = switch_core_min_dtmf_duration(0); } else if (!dtmf->duration) { dtmf->duration = switch_core_default_dtmf_duration(0); @@ -548,7 +556,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_dequeue_dtmf(switch_channel_t *ch } switch_mutex_unlock(channel->dtmf_mutex); - if (status == SWITCH_STATUS_SUCCESS && switch_event_create(&event, SWITCH_EVENT_DTMF) == SWITCH_STATUS_SUCCESS) { + if (!sensitive && status == SWITCH_STATUS_SUCCESS && switch_event_create(&event, SWITCH_EVENT_DTMF) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(channel, event); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "DTMF-Digit", "%c", dtmf->digit); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "DTMF-Duration", "%u", dtmf->duration); diff --git a/src/switch_core_io.c b/src/switch_core_io.c index cfac3bf629..dfecf692fb 100644 --- a/src/switch_core_io.c +++ b/src/switch_core_io.c @@ -1477,6 +1477,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_recv_dtmf(switch_core_sessio return SWITCH_STATUS_FALSE; } + if (switch_test_flag(dtmf, DTMF_FLAG_SENSITIVE)) { + return SWITCH_STATUS_SUCCESS; + } + switch_assert(dtmf); new_dtmf = *dtmf; @@ -1520,6 +1524,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_send_dtmf(switch_core_sessio return SWITCH_STATUS_FALSE; } + if (switch_test_flag(dtmf, DTMF_FLAG_SENSITIVE)) { + return SWITCH_STATUS_SUCCESS; + } + switch_assert(dtmf); new_dtmf = *dtmf; diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index 3ff6893e44..82907832f5 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -2040,7 +2040,7 @@ SWITCH_DECLARE(switch_status_t) switch_play_and_get_digits(switch_core_session_t if (zstr(digits_regex)) { return SWITCH_STATUS_SUCCESS; } - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Test Regex [%s][%s]\n", digit_buffer, digits_regex); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG1, "Test Regex [%s][%s]\n", digit_buffer, digits_regex); if (switch_regex_match(digit_buffer, digits_regex) == SWITCH_STATUS_SUCCESS) { return SWITCH_STATUS_SUCCESS; } else { From 32806de57c0a59f7f1a8267d53f63b3643ebfb10 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 26 Feb 2013 14:03:37 -0600 Subject: [PATCH 04/26] add presence_disable_early var to disable early on per call basis --- src/mod/endpoints/mod_sofia/sofia_presence.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c index 6ac946adf4..3547130446 100644 --- a/src/mod/endpoints/mod_sofia/sofia_presence.c +++ b/src/mod/endpoints/mod_sofia/sofia_presence.c @@ -2700,6 +2700,7 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char * const char *from_id = NULL, *from_name = NULL; const char *to_user = switch_str_nil(switch_event_get_header(helper->event, "variable_sip_to_user")); const char *from_user = switch_str_nil(switch_event_get_header(helper->event, "variable_sip_from_user")); + const char *disable_early = switch_str_nil(switch_event_get_header(helper->event, "variable_presence_disable_early")); char *clean_to_user = NULL; char *clean_from_user = NULL; int force_status = 0; @@ -2844,7 +2845,7 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char * } - if (sofia_test_pflag(profile, PFLAG_PRESENCE_DISABLE_EARLY) && + if ((sofia_test_pflag(profile, PFLAG_PRESENCE_DISABLE_EARLY) || switch_true(disable_early)) && (!zstr(call_info_state) && (!strcasecmp(call_info_state, "alterting") || !strcasecmp(call_info_state, "progressing")))) { goto end; } From 50e7a09eca520341e3d1336465ff0a49bdd2674d Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 26 Feb 2013 15:32:19 -0600 Subject: [PATCH 05/26] FS-4709 this is the right way to do this part --- src/include/switch_channel.h | 2 +- src/switch_channel.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/include/switch_channel.h b/src/include/switch_channel.h index 0f9d0f9b4c..73eb7f1026 100644 --- a/src/include/switch_channel.h +++ b/src/include/switch_channel.h @@ -552,7 +552,7 @@ SWITCH_DECLARE(switch_status_t) switch_channel_dtmf_unlock(switch_channel_t *cha \param dtmf digit \return SWITCH_STATUS_SUCCESS if successful */ -SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(_In_ switch_channel_t *channel, _In_ switch_dtmf_t *dtmf); +SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(_In_ switch_channel_t *channel, _In_ const switch_dtmf_t *dtmf); SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf_string(_In_ switch_channel_t *channel, _In_ const char *dtmf_string); /*! diff --git a/src/switch_channel.c b/src/switch_channel.c index 68aea4f409..aa31df0ad3 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -389,7 +389,7 @@ SWITCH_DECLARE(switch_size_t) switch_channel_has_dtmf(switch_channel_t *channel) return has; } -SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(switch_channel_t *channel, switch_dtmf_t *dtmf) +SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(switch_channel_t *channel, const switch_dtmf_t *dtmf) { switch_status_t status; void *pop; @@ -398,13 +398,13 @@ SWITCH_DECLARE(switch_status_t) switch_channel_queue_dtmf(switch_channel_t *chan switch_assert(dtmf); - if (sensitive) { - switch_set_flag(dtmf, DTMF_FLAG_SENSITIVE); - } - switch_mutex_lock(channel->dtmf_mutex); new_dtmf = *dtmf; + if (sensitive) { + switch_set_flag((&new_dtmf), DTMF_FLAG_SENSITIVE); + } + if ((status = switch_core_session_recv_dtmf(channel->session, dtmf) != SWITCH_STATUS_SUCCESS)) { goto done; } From 48e9a476c98eb5a83585440299f36b9d42022e28 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 26 Feb 2013 15:36:24 -0600 Subject: [PATCH 06/26] detect extension based on content-type when one is not specified for wav and mp3 --- src/mod/applications/mod_httapi/mod_httapi.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index 5b205d4e60..8734cde3e0 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -166,6 +166,7 @@ struct http_file_context { int samples; switch_file_handle_t fh; char *cache_file; + char *cache_file_base; char *meta_file; char *lock_file; char *metadata; @@ -2308,6 +2309,7 @@ static char *load_cache_data(http_file_context_t *context, const char *url) } } + context->cache_file_base = switch_core_sprintf(context->pool, "%s%s%s", globals.cache_path, SWITCH_PATH_SEPARATOR, digest); context->cache_file = switch_core_sprintf(context->pool, "%s%s%s.%s", globals.cache_path, SWITCH_PATH_SEPARATOR, digest, ext); context->meta_file = switch_core_sprintf(context->pool, "%s.meta", context->cache_file); context->lock_file = switch_core_sprintf(context->pool, "%s.lock", context->cache_file); @@ -2573,6 +2575,9 @@ static switch_status_t locate_url_file(http_file_context_t *context, const char lock_file(context, SWITCH_TRUE); if (!context->url_params || !switch_true(switch_event_get_header(context->url_params, "nohead"))) { + const char *ct = NULL; + const char *newext = NULL; + if ((status = fetch_cache_data(context, url, &headers, NULL)) != SWITCH_STATUS_SUCCESS) { if (status == SWITCH_STATUS_NOTFOUND) { unreachable = 2; @@ -2584,6 +2589,21 @@ static switch_status_t locate_url_file(http_file_context_t *context, const char } } + if ((!context->url_params || !switch_event_get_header(context->url_params, "ext")) + && headers && (ct = switch_event_get_header(headers, "content-type"))) { + if (!strcasecmp(ct, "audio/mpeg")) { + newext = "mp3"; + } else if (!strcasecmp(ct, "audio/wav")) { + newext = "wav"; + } + } + + + if (newext) { + context->cache_file = switch_core_sprintf(context->pool, "%s.%s", context->cache_file, newext); + } + + if (switch_file_exists(context->cache_file, context->pool) != SWITCH_STATUS_SUCCESS && unreachable) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "File at url [%s] is unreachable!\n", url); goto end; From be3df1b1c29283ac59d207058b4150ac5aefba21 Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Tue, 26 Feb 2013 17:11:08 -0600 Subject: [PATCH 07/26] vs2010 reswig --- .../mod_managed/freeswitch_wrap.2010.cxx | 130 ++++++++++++++++++ .../mod_managed/managed/swig.2010.cs | 105 +++++++++++++- 2 files changed, 228 insertions(+), 7 deletions(-) diff --git a/src/mod/languages/mod_managed/freeswitch_wrap.2010.cxx b/src/mod/languages/mod_managed/freeswitch_wrap.2010.cxx index ce2806c533..bf0b7ba491 100644 --- a/src/mod/languages/mod_managed/freeswitch_wrap.2010.cxx +++ b/src/mod/languages/mod_managed/freeswitch_wrap.2010.cxx @@ -1120,6 +1120,16 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_TRANSFER_SOURCE_VARIABLE_get() { } +SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_SENSITIVE_DTMF_VARIABLE_get() { + char * jresult ; + char *result = 0 ; + + result = (char *)("sensitive_dtmf"); + jresult = SWIG_csharp_string_callback((const char *)result); + return jresult; +} + + SWIGEXPORT char * SWIGSTDCALL CSharp_SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get() { char * jresult ; char *result = 0 ; @@ -7103,6 +7113,30 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_media_bug_get_write_replace_fra } +SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_media_bug_get_native_read_frame(void * jarg1) { + void * jresult ; + switch_media_bug_t *arg1 = (switch_media_bug_t *) 0 ; + switch_frame_t *result = 0 ; + + arg1 = (switch_media_bug_t *)jarg1; + result = (switch_frame_t *)switch_core_media_bug_get_native_read_frame(arg1); + jresult = (void *)result; + return jresult; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_switch_core_media_bug_get_native_write_frame(void * jarg1) { + void * jresult ; + switch_media_bug_t *arg1 = (switch_media_bug_t *) 0 ; + switch_frame_t *result = 0 ; + + arg1 = (switch_media_bug_t *)jarg1; + result = (switch_frame_t *)switch_core_media_bug_get_native_write_frame(arg1); + jresult = (void *)result; + return jresult; +} + + SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_media_bug_set_write_replace_frame(void * jarg1, void * jarg2) { switch_media_bug_t *arg1 = (switch_media_bug_t *) 0 ; switch_frame_t *arg2 = (switch_frame_t *) 0 ; @@ -12344,6 +12378,34 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_cache_db_execute_sql_event_callback(voi } +SWIGEXPORT void SWIGSTDCALL CSharp_switch_sql_queue_manger_execute_sql_callback(void * jarg1, char * jarg2, void * jarg3, void * jarg4) { + switch_sql_queue_manager_t *arg1 = (switch_sql_queue_manager_t *) 0 ; + char *arg2 = (char *) 0 ; + switch_core_db_callback_func_t arg3 = (switch_core_db_callback_func_t) 0 ; + void *arg4 = (void *) 0 ; + + arg1 = (switch_sql_queue_manager_t *)jarg1; + arg2 = (char *)jarg2; + arg3 = (switch_core_db_callback_func_t)jarg3; + arg4 = (void *)jarg4; + switch_sql_queue_manger_execute_sql_callback(arg1,(char const *)arg2,arg3,arg4); +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_switch_sql_queue_manger_execute_sql_event_callback(void * jarg1, char * jarg2, void * jarg3, void * jarg4) { + switch_sql_queue_manager_t *arg1 = (switch_sql_queue_manager_t *) 0 ; + char *arg2 = (char *) 0 ; + switch_core_db_event_callback_func_t arg3 = (switch_core_db_event_callback_func_t) 0 ; + void *arg4 = (void *) 0 ; + + arg1 = (switch_sql_queue_manager_t *)jarg1; + arg2 = (char *)jarg2; + arg3 = (switch_core_db_event_callback_func_t)jarg3; + arg4 = (void *)jarg4; + switch_sql_queue_manger_execute_sql_event_callback(arg1,(char const *)arg2,arg3,arg4); +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_switch_fork() { void * jresult ; pid_t result; @@ -20270,6 +20332,50 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_switch_file_handle_prefix_get(void * jarg1) } +SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_handle_max_samples_set(void * jarg1, int jarg2) { + switch_file_handle *arg1 = (switch_file_handle *) 0 ; + int arg2 ; + + arg1 = (switch_file_handle *)jarg1; + arg2 = (int)jarg2; + if (arg1) (arg1)->max_samples = arg2; +} + + +SWIGEXPORT int SWIGSTDCALL CSharp_switch_file_handle_max_samples_get(void * jarg1) { + int jresult ; + switch_file_handle *arg1 = (switch_file_handle *) 0 ; + int result; + + arg1 = (switch_file_handle *)jarg1; + result = (int) ((arg1)->max_samples); + jresult = result; + return jresult; +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_handle__params_set(void * jarg1, void * jarg2) { + switch_file_handle *arg1 = (switch_file_handle *) 0 ; + switch_event_t *arg2 = (switch_event_t *) 0 ; + + arg1 = (switch_file_handle *)jarg1; + arg2 = (switch_event_t *)jarg2; + if (arg1) (arg1)->params = arg2; +} + + +SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_handle__params_get(void * jarg1) { + void * jresult ; + switch_file_handle *arg1 = (switch_file_handle *) 0 ; + switch_event_t *result = 0 ; + + arg1 = (switch_file_handle *)jarg1; + result = (switch_event_t *) ((arg1)->params); + jresult = (void *)result; + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_file_handle() { void * jresult ; switch_file_handle *result = 0 ; @@ -27316,6 +27422,18 @@ SWIGEXPORT void SWIGSTDCALL CSharp_switch_channel_state_thread_unlock(void * jar } +SWIGEXPORT int SWIGSTDCALL CSharp_switch_channel_state_thread_trylock(void * jarg1) { + int jresult ; + switch_channel_t *arg1 = (switch_channel_t *) 0 ; + switch_status_t result; + + arg1 = (switch_channel_t *)jarg1; + result = (switch_status_t)switch_channel_state_thread_trylock(arg1); + jresult = result; + return jresult; +} + + SWIGEXPORT int SWIGSTDCALL CSharp_switch_buffer_create(void * jarg1, void * jarg2, void * jarg3) { int jresult ; switch_memory_pool_t *arg1 = (switch_memory_pool_t *) 0 ; @@ -38054,6 +38172,18 @@ SWIGEXPORT void SWIGSTDCALL CSharp_CoreSession_SetTtsParameters(void * jarg1, ch } +SWIGEXPORT void SWIGSTDCALL CSharp_CoreSession_set_tts_params(void * jarg1, char * jarg2, char * jarg3) { + CoreSession *arg1 = (CoreSession *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + + arg1 = (CoreSession *)jarg1; + arg2 = (char *)jarg2; + arg3 = (char *)jarg3; + (arg1)->set_tts_params(arg2,arg3); +} + + SWIGEXPORT int SWIGSTDCALL CSharp_CoreSession_CollectDigits__SWIG_0(void * jarg1, int jarg2) { int jresult ; CoreSession *arg1 = (CoreSession *) 0 ; diff --git a/src/mod/languages/mod_managed/managed/swig.2010.cs b/src/mod/languages/mod_managed/managed/swig.2010.cs index 363b4c8581..8b889f5777 100644 --- a/src/mod/languages/mod_managed/managed/swig.2010.cs +++ b/src/mod/languages/mod_managed/managed/swig.2010.cs @@ -376,6 +376,10 @@ public class CoreSession : IDisposable { freeswitchPINVOKE.CoreSession_SetTtsParameters(swigCPtr, tts_name, voice_name); } + public void set_tts_params(string tts_name, string voice_name) { + freeswitchPINVOKE.CoreSession_set_tts_params(swigCPtr, tts_name, voice_name); + } + public int CollectDigits(int abs_timeout) { int ret = freeswitchPINVOKE.CoreSession_CollectDigits__SWIG_0(swigCPtr, abs_timeout); return ret; @@ -600,7 +604,8 @@ public class DTMF : IDisposable { namespace FreeSWITCH.Native { public enum dtmf_flag_t { - DTMF_FLAG_SKIP_PROCESS = (1 << 0) + DTMF_FLAG_SKIP_PROCESS = (1 << 0), + DTMF_FLAG_SENSITIVE = (1 << 1) } } @@ -1124,6 +1129,18 @@ public class freeswitch { return ret; } + public static switch_frame switch_core_media_bug_get_native_read_frame(SWIGTYPE_p_switch_media_bug bug) { + IntPtr cPtr = freeswitchPINVOKE.switch_core_media_bug_get_native_read_frame(SWIGTYPE_p_switch_media_bug.getCPtr(bug)); + switch_frame ret = (cPtr == IntPtr.Zero) ? null : new switch_frame(cPtr, false); + return ret; + } + + public static switch_frame switch_core_media_bug_get_native_write_frame(SWIGTYPE_p_switch_media_bug bug) { + IntPtr cPtr = freeswitchPINVOKE.switch_core_media_bug_get_native_write_frame(SWIGTYPE_p_switch_media_bug.getCPtr(bug)); + switch_frame ret = (cPtr == IntPtr.Zero) ? null : new switch_frame(cPtr, false); + return ret; + } + public static void switch_core_media_bug_set_write_replace_frame(SWIGTYPE_p_switch_media_bug bug, switch_frame frame) { freeswitchPINVOKE.switch_core_media_bug_set_write_replace_frame(SWIGTYPE_p_switch_media_bug.getCPtr(bug), switch_frame.getCPtr(frame)); } @@ -2913,6 +2930,14 @@ public class freeswitch { return ret; } + public static void switch_sql_queue_manger_execute_sql_callback(SWIGTYPE_p_switch_sql_queue_manager qm, string sql, SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int callback, SWIGTYPE_p_void pdata) { + freeswitchPINVOKE.switch_sql_queue_manger_execute_sql_callback(SWIGTYPE_p_switch_sql_queue_manager.getCPtr(qm), sql, SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int.getCPtr(callback), SWIGTYPE_p_void.getCPtr(pdata)); + } + + public static void switch_sql_queue_manger_execute_sql_event_callback(SWIGTYPE_p_switch_sql_queue_manager qm, string sql, SWIGTYPE_p_f_p_void_p_switch_event__int callback, SWIGTYPE_p_void pdata) { + freeswitchPINVOKE.switch_sql_queue_manger_execute_sql_event_callback(SWIGTYPE_p_switch_sql_queue_manager.getCPtr(qm), sql, SWIGTYPE_p_f_p_void_p_switch_event__int.getCPtr(callback), SWIGTYPE_p_void.getCPtr(pdata)); + } + public static SWIGTYPE_p_pid_t switch_fork() { SWIGTYPE_p_pid_t ret = new SWIGTYPE_p_pid_t(freeswitchPINVOKE.switch_fork(), true); return ret; @@ -4372,6 +4397,11 @@ public class freeswitch { freeswitchPINVOKE.switch_channel_state_thread_unlock(SWIGTYPE_p_switch_channel.getCPtr(channel)); } + public static switch_status_t switch_channel_state_thread_trylock(SWIGTYPE_p_switch_channel channel) { + switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_channel_state_thread_trylock(SWIGTYPE_p_switch_channel.getCPtr(channel)); + return ret; + } + public static switch_status_t switch_buffer_create(SWIGTYPE_p_apr_pool_t pool, SWIGTYPE_p_p_switch_buffer buffer, SWIGTYPE_p_switch_size_t max_len) { switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_buffer_create(SWIGTYPE_p_apr_pool_t.getCPtr(pool), SWIGTYPE_p_p_switch_buffer.getCPtr(buffer), SWIGTYPE_p_switch_size_t.getCPtr(max_len)); if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve(); @@ -6382,6 +6412,7 @@ public class freeswitch { public static readonly string SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE = freeswitchPINVOKE.SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE_get(); public static readonly string SWITCH_TRANSFER_HISTORY_VARIABLE = freeswitchPINVOKE.SWITCH_TRANSFER_HISTORY_VARIABLE_get(); public static readonly string SWITCH_TRANSFER_SOURCE_VARIABLE = freeswitchPINVOKE.SWITCH_TRANSFER_SOURCE_VARIABLE_get(); + public static readonly string SWITCH_SENSITIVE_DTMF_VARIABLE = freeswitchPINVOKE.SWITCH_SENSITIVE_DTMF_VARIABLE_get(); public static readonly string SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get(); public static readonly string SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE_get(); public static readonly string SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE = freeswitchPINVOKE.SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE_get(); @@ -6956,6 +6987,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_TRANSFER_SOURCE_VARIABLE_get")] public static extern string SWITCH_TRANSFER_SOURCE_VARIABLE_get(); + [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_SENSITIVE_DTMF_VARIABLE_get")] + public static extern string SWITCH_SENSITIVE_DTMF_VARIABLE_get(); + [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get")] public static extern string SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE_get(); @@ -8507,6 +8541,12 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_get_write_replace_frame")] public static extern IntPtr switch_core_media_bug_get_write_replace_frame(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_get_native_read_frame")] + public static extern IntPtr switch_core_media_bug_get_native_read_frame(HandleRef jarg1); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_get_native_write_frame")] + public static extern IntPtr switch_core_media_bug_get_native_write_frame(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_core_media_bug_set_write_replace_frame")] public static extern void switch_core_media_bug_set_write_replace_frame(HandleRef jarg1, HandleRef jarg2); @@ -9698,6 +9738,12 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_cache_db_execute_sql_event_callback")] public static extern int switch_cache_db_execute_sql_event_callback(HandleRef jarg1, string jarg2, HandleRef jarg3, HandleRef jarg4, ref string jarg5); + [DllImport("mod_managed", EntryPoint="CSharp_switch_sql_queue_manger_execute_sql_callback")] + public static extern void switch_sql_queue_manger_execute_sql_callback(HandleRef jarg1, string jarg2, HandleRef jarg3, HandleRef jarg4); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_sql_queue_manger_execute_sql_event_callback")] + public static extern void switch_sql_queue_manger_execute_sql_event_callback(HandleRef jarg1, string jarg2, HandleRef jarg3, HandleRef jarg4); + [DllImport("mod_managed", EntryPoint="CSharp_switch_fork")] public static extern IntPtr switch_fork(); @@ -11612,6 +11658,18 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_prefix_get")] public static extern string switch_file_handle_prefix_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_max_samples_set")] + public static extern void switch_file_handle_max_samples_set(HandleRef jarg1, int jarg2); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_max_samples_get")] + public static extern int switch_file_handle_max_samples_get(HandleRef jarg1); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle__params_set")] + public static extern void switch_file_handle__params_set(HandleRef jarg1, HandleRef jarg2); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle__params_get")] + public static extern IntPtr switch_file_handle__params_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_new_switch_file_handle")] public static extern IntPtr new_switch_file_handle(); @@ -13394,6 +13452,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_state_thread_unlock")] public static extern void switch_channel_state_thread_unlock(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_state_thread_trylock")] + public static extern int switch_channel_state_thread_trylock(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_buffer_create")] public static extern int switch_buffer_create(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3); @@ -15809,6 +15870,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_CoreSession_SetTtsParameters")] public static extern void CoreSession_SetTtsParameters(HandleRef jarg1, string jarg2, string jarg3); + [DllImport("mod_managed", EntryPoint="CSharp_CoreSession_set_tts_params")] + public static extern void CoreSession_set_tts_params(HandleRef jarg1, string jarg2, string jarg3); + [DllImport("mod_managed", EntryPoint="CSharp_CoreSession_CollectDigits__SWIG_0")] public static extern int CoreSession_CollectDigits__SWIG_0(HandleRef jarg1, int jarg2); @@ -21801,6 +21865,8 @@ public enum switch_abc_type_t { SWITCH_ABC_TYPE_WRITE_REPLACE, SWITCH_ABC_TYPE_READ_REPLACE, SWITCH_ABC_TYPE_READ_PING, + SWITCH_ABC_TYPE_TAP_NATIVE_READ, + SWITCH_ABC_TYPE_TAP_NATIVE_WRITE, SWITCH_ABC_TYPE_CLOSE } @@ -27959,7 +28025,8 @@ namespace FreeSWITCH.Native { SWITCH_FILE_DONE = (1 << 13), SWITCH_FILE_BUFFER_DONE = (1 << 14), SWITCH_FILE_WRITE_APPEND = (1 << 15), - SWITCH_FILE_WRITE_OVER = (1 << 16) + SWITCH_FILE_WRITE_OVER = (1 << 16), + SWITCH_FILE_NOMUX = (1 << 17) } } @@ -28417,6 +28484,27 @@ public class switch_file_handle : IDisposable { } } + public int max_samples { + set { + freeswitchPINVOKE.switch_file_handle_max_samples_set(swigCPtr, value); + } + get { + int ret = freeswitchPINVOKE.switch_file_handle_max_samples_get(swigCPtr); + return ret; + } + } + + public switch_event _params { + set { + freeswitchPINVOKE.switch_file_handle__params_set(swigCPtr, switch_event.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_file_handle__params_get(swigCPtr); + switch_event ret = (cPtr == IntPtr.Zero) ? null : new switch_event(cPtr, false); + return ret; + } + } + public switch_file_handle() : this(freeswitchPINVOKE.new_switch_file_handle(), true) { } @@ -31462,11 +31550,14 @@ namespace FreeSWITCH.Native { SMBF_READ_PING = (1 << 4), SMBF_STEREO = (1 << 5), SMBF_ANSWER_REQ = (1 << 6), - SMBF_THREAD_LOCK = (1 << 7), - SMBF_PRUNE = (1 << 8), - SMBF_NO_PAUSE = (1 << 9), - SMBF_STEREO_SWAP = (1 << 10), - SMBF_LOCK = (1 << 11) + SMBF_BRIDGE_REQ = (1 << 7), + SMBF_THREAD_LOCK = (1 << 8), + SMBF_PRUNE = (1 << 9), + SMBF_NO_PAUSE = (1 << 10), + SMBF_STEREO_SWAP = (1 << 11), + SMBF_LOCK = (1 << 12), + SMBF_TAP_NATIVE_READ = (1 << 13), + SMBF_TAP_NATIVE_WRITE = (1 << 14) } } From cf7c9428fbed0c65f1487eeaad7cd92c2da8070d Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 26 Feb 2013 16:37:29 -0600 Subject: [PATCH 08/26] FS-5118 --resolve --- src/mod/endpoints/mod_sofia/mod_sofia.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 3a5162c398..9fecaceacf 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -4685,10 +4685,12 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session * Handle params, strip them off the destination and add them to the * invite contact. * - * TODO: - * - Add parameters back to destination url? */ - if ((params = strchr(dest, ';'))) { + + if ((params = strchr(dest, '+'))) { + *params = ';'; + params = NULL; + } else if ((params = strchr(dest, ';'))) { char *tp_param; *params++ = '\0'; From e76e6b20f6d013c0a0a947858d287aec45a26546 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 26 Feb 2013 20:48:39 -0600 Subject: [PATCH 09/26] FS-5129 --resolve --- src/mod/applications/mod_httapi/mod_httapi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index 8734cde3e0..4b53b87fe5 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -2513,7 +2513,7 @@ static switch_status_t write_meta_file(http_file_context_t *context, const char } switch_snprintf(write_data, sizeof(write_data), - "%" SWITCH_TIME_T_FMT ":%s", + "%" TIME_T_FMT ":%s", switch_epoch_time_now(NULL) + ttl, data); From a3786d528fbaddc793e845181dee6d6455c013f5 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Wed, 27 Feb 2013 05:48:01 +0000 Subject: [PATCH 10/26] Add mod_sndfile to debian freeswitch-meta-default FS-5109 --resolve --- debian/bootstrap.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/bootstrap.sh b/debian/bootstrap.sh index adc003b097..055802cadc 100755 --- a/debian/bootstrap.sh +++ b/debian/bootstrap.sh @@ -256,6 +256,7 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), freeswitch-mod-sofia (= \${binary:Version}), freeswitch-mod-local-stream (= \${binary:Version}), freeswitch-mod-native-file (= \${binary:Version}), + freeswitch-mod-sndfile (= \${binary:Version}), freeswitch-mod-tone-stream (= \${binary:Version}), freeswitch-mod-lua (= \${binary:Version}), freeswitch-mod-console (= \${binary:Version}), From fc1316601b7169b6ff1a8b88c71e8f4ee0c53572 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 27 Feb 2013 09:04:51 -0600 Subject: [PATCH 11/26] FS-5118 take 2 --- src/mod/endpoints/mod_sofia/mod_sofia.c | 5 +---- src/mod/endpoints/mod_sofia/mod_sofia.h | 2 +- src/mod/endpoints/mod_sofia/sofia.c | 2 +- src/mod/endpoints/mod_sofia/sofia_glue.c | 27 ++++++++++++++++++------ 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 9fecaceacf..f0d0ab280b 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -4687,10 +4687,7 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session * */ - if ((params = strchr(dest, '+'))) { - *params = ';'; - params = NULL; - } else if ((params = strchr(dest, ';'))) { + if ((params = strchr(dest, ';'))) { char *tp_param; *params++ = '\0'; diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index ee4776de51..de32b2c7c3 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -1046,7 +1046,7 @@ void sofia_presence_set_hash_key(char *hash_key, int32_t len, sip_t const *sip); void sofia_glue_sql_close(sofia_profile_t *profile, time_t prune); int sofia_glue_init_sql(sofia_profile_t *profile); char *sofia_overcome_sip_uri_weakness(switch_core_session_t *session, const char *uri, const sofia_transport_t transport, switch_bool_t uri_only, - const char *params); + const char *params, const char *invite_tel_params); switch_bool_t sofia_glue_execute_sql_callback(sofia_profile_t *profile, switch_mutex_t *mutex, char *sql, switch_core_db_callback_func_t callback, void *pdata); char *sofia_glue_execute_sql2str(sofia_profile_t *profile, switch_mutex_t *mutex, char *sql, char *resbuf, size_t len); diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 69d6fd7269..b8eaff50dd 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -8060,7 +8060,7 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); } - tmp = sofia_overcome_sip_uri_weakness(session, url, transport, SWITCH_TRUE, NULL); + tmp = sofia_overcome_sip_uri_weakness(session, url, transport, SWITCH_TRUE, NULL, NULL); if ((at = strchr(tmp, '@'))) { url = switch_core_session_sprintf(session, "sip:%s%s", user, at); diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 15f6d529f2..78ba3c2132 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -1447,12 +1447,13 @@ void sofia_glue_get_addr(msg_t *msg, char *buf, size_t buflen, int *port) } char *sofia_overcome_sip_uri_weakness(switch_core_session_t *session, const char *uri, const sofia_transport_t transport, switch_bool_t uri_only, - const char *params) + const char *params, const char *invite_tel_params) { char *stripped = switch_core_session_strdup(session, uri); char *new_uri = NULL; char *p; + stripped = sofia_glue_get_url_from_contact(stripped, 0); /* remove our params so we don't make any whiny moronic device piss it's pants and forget who it is for a half-hour */ @@ -1496,6 +1497,18 @@ char *sofia_overcome_sip_uri_weakness(switch_core_session_t *session, const char } } + + + if (!zstr(invite_tel_params)) { + char *lhs, *rhs = strchr(new_uri, '@'); + + if (!zstr(rhs)) { + *rhs++ = '\0'; + lhs = new_uri; + new_uri = switch_core_session_sprintf(session, "%s;%s@%s", lhs, invite_tel_params, rhs); + } + } + return new_uri; } @@ -2191,6 +2204,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) const char *screen = "no"; const char *invite_params = switch_channel_get_variable(tech_pvt->channel, "sip_invite_params"); const char *invite_to_params = switch_channel_get_variable(tech_pvt->channel, "sip_invite_to_params"); + const char *invite_tel_params = switch_channel_get_variable(switch_core_session_get_channel(session), "sip_invite_tel_params"); const char *invite_to_uri = switch_channel_get_variable(tech_pvt->channel, "sip_invite_to_uri"); const char *invite_from_uri = switch_channel_get_variable(tech_pvt->channel, "sip_invite_from_uri"); const char *invite_contact_params = switch_channel_get_variable(tech_pvt->channel, "sip_invite_contact_params"); @@ -2199,6 +2213,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) const char *from_display = switch_channel_get_variable(tech_pvt->channel, "sip_from_display"); const char *invite_req_uri = switch_channel_get_variable(tech_pvt->channel, "sip_invite_req_uri"); const char *invite_domain = switch_channel_get_variable(tech_pvt->channel, "sip_invite_domain"); + const char *use_name, *use_number; if (zstr(tech_pvt->dest)) { @@ -2335,10 +2350,10 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) } } - url_str = sofia_overcome_sip_uri_weakness(session, url, tech_pvt->transport, SWITCH_TRUE, invite_params); - invite_contact = sofia_overcome_sip_uri_weakness(session, tech_pvt->invite_contact, tech_pvt->transport, SWITCH_FALSE, invite_contact_params); - from_str = sofia_overcome_sip_uri_weakness(session, invite_from_uri ? invite_from_uri : use_from_str, 0, SWITCH_TRUE, invite_from_params); - to_str = sofia_overcome_sip_uri_weakness(session, invite_to_uri ? invite_to_uri : tech_pvt->dest_to, 0, SWITCH_FALSE, invite_to_params); + url_str = sofia_overcome_sip_uri_weakness(session, url, tech_pvt->transport, SWITCH_TRUE, invite_params, invite_tel_params); + invite_contact = sofia_overcome_sip_uri_weakness(session, tech_pvt->invite_contact, tech_pvt->transport, SWITCH_FALSE, invite_contact_params, NULL); + from_str = sofia_overcome_sip_uri_weakness(session, invite_from_uri ? invite_from_uri : use_from_str, 0, SWITCH_TRUE, invite_from_params, NULL); + to_str = sofia_overcome_sip_uri_weakness(session, invite_to_uri ? invite_to_uri : tech_pvt->dest_to, 0, SWITCH_FALSE, invite_to_params, NULL); switch_channel_set_variable(channel, "sip_outgoing_contact_uri", invite_contact); @@ -2603,7 +2618,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) dst = sofia_glue_get_destination(tech_pvt->dest); if (dst->route_uri) { - route_uri = sofia_overcome_sip_uri_weakness(tech_pvt->session, dst->route_uri, tech_pvt->transport, SWITCH_TRUE, NULL); + route_uri = sofia_overcome_sip_uri_weakness(tech_pvt->session, dst->route_uri, tech_pvt->transport, SWITCH_TRUE, NULL, NULL); } if (dst->route) { From 0b9ed0c7ca78a65454f087060534a3a8d2536b75 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 27 Feb 2013 12:11:55 -0600 Subject: [PATCH 12/26] FS-5132 --resolve --- src/switch_core_io.c | 10 ++++++++++ src/switch_ivr_async.c | 2 -- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/switch_core_io.c b/src/switch_core_io.c index dfecf692fb..696de1cab0 100644 --- a/src/switch_core_io.c +++ b/src/switch_core_io.c @@ -299,6 +299,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi do_resample = 1; } + if (session->bugs && !need_codec) { + do_bugs = 1; + need_codec = 1; + } + if (switch_test_flag(*frame, SFF_CNG)) { if (!session->bugs && !session->plc) { /* Check if other session has bugs */ @@ -967,6 +972,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess need_codec = TRUE; } + if (session->bugs && !need_codec) { + do_bugs = TRUE; + need_codec = TRUE; + } + if (frame->codec->implementation->actual_samples_per_second != session->write_impl.actual_samples_per_second) { need_codec = TRUE; do_resample = TRUE; diff --git a/src/switch_ivr_async.c b/src/switch_ivr_async.c index d6b8c172c5..65b1775a49 100644 --- a/src/switch_ivr_async.c +++ b/src/switch_ivr_async.c @@ -1108,14 +1108,12 @@ static switch_bool_t record_callback(switch_media_bug_t *bug, void *user_data, s { nframe = switch_core_media_bug_get_native_read_frame(bug); len = nframe->datalen; - printf("WRITE IN %d\n", nframe->datalen); switch_core_file_write(&rh->in_fh, nframe->data, &len); } break; case SWITCH_ABC_TYPE_TAP_NATIVE_WRITE: { nframe = switch_core_media_bug_get_native_write_frame(bug); - printf("WRITE OUT %d\n", nframe->datalen); len = nframe->datalen; switch_core_file_write(&rh->out_fh, nframe->data, &len); } From 8258e782d47f4b01c4684b68ecce417298fbbebe Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 27 Feb 2013 14:15:44 -0600 Subject: [PATCH 13/26] add processing of codec event to pick up on codec changes properly in channels table --- src/switch_core_sqldb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index c2a1f5cbcf..cdea61ab25 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -2037,7 +2037,7 @@ static void core_event_handler(switch_event_t *event) break; case SWITCH_EVENT_CHANNEL_ANSWER: case SWITCH_EVENT_CHANNEL_PROGRESS_MEDIA: - + case SWITCH_EVENT_CODEC: new_sql() = switch_mprintf ("update channels set read_codec='%q',read_rate='%q',read_bit_rate='%q',write_codec='%q',write_rate='%q',write_bit_rate='%q' where uuid='%q'", @@ -3280,6 +3280,7 @@ switch_status_t switch_core_sqldb_start(switch_memory_pool_t *pool, switch_bool_ switch_event_bind("core_db", SWITCH_EVENT_MODULE_UNLOAD, SWITCH_EVENT_SUBCLASS_ANY, core_event_handler, NULL); switch_event_bind("core_db", SWITCH_EVENT_CALL_SECURE, SWITCH_EVENT_SUBCLASS_ANY, core_event_handler, NULL); switch_event_bind("core_db", SWITCH_EVENT_NAT, SWITCH_EVENT_SUBCLASS_ANY, core_event_handler, NULL); + switch_event_bind("core_db", SWITCH_EVENT_CODEC, SWITCH_EVENT_SUBCLASS_ANY, core_event_handler, NULL); #endif switch_threadattr_create(&thd_attr, sql_manager.memory_pool); From 16a7014284a65cceb2fbe4945d808ee0f0d1c20c Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Wed, 27 Feb 2013 22:34:16 -0600 Subject: [PATCH 14/26] add more missing vs2012 project filters --- .../src/libbroadvoice.2012.vcxproj.filters | 167 ++ libs/esl/fs_cli.2012.vcxproj.filters | 30 + libs/esl/lua/esl_lua.2012.vcxproj.filters | 25 + libs/ilbc/libilbc.2012.vcxproj.filters | 162 ++ .../libdingaling.2012.vcxproj.filters | 38 + .../libteletone.2012.vcxproj.filters | 36 + .../build/msvc/portaudio.2012.vcxproj.filters | 132 ++ .../src/libspandsp.2012.vcxproj.filters | 726 ++++++ .../make_at_dictionary.2012.vcxproj.filters | 14 + .../make_modem_filter.2012.vcxproj.filters | 29 + .../mrcpsignaling.2012.vcxproj.filters | 35 + .../mrcpv2transport.2012.vcxproj.filters | 44 + .../uni-rtsp/unirtsp.2012.vcxproj.filters | 56 + .../mrcpsofiasip.2012.vcxproj.filters | 35 + .../mrcpunirtsp.2012.vcxproj.filters | 35 + .../apr-util/libaprutil.2012.vcxproj.filters | 307 +++ libs/win32/apr/libapr.2012.vcxproj.filters | 406 ++++ libs/win32/celt/libcelt.2012.vcxproj.filters | 76 + libs/win32/curl/curllib.2012.vcxproj.filters | 358 +++ libs/win32/flite/flite.2012.vcxproj.filters | 677 ++++++ .../iksemel/iksemel.2012.vcxproj.filters | 69 + libs/win32/js/js.2012.vcxproj.filters | 464 ++++ libs/win32/json/libjson.2012.vcxproj.filters | 45 + .../ldns-lib/ldns-lib.2012.vcxproj.filters | 258 ++ .../libg722_1/libg722_1.2012.vcxproj.filters | 102 + .../libjpeg/libjpeg.2012.vcxproj.filters | 186 ++ libs/win32/libogg/libogg.2012.vcxproj.filters | 29 + .../libshout/libshout.2012.vcxproj.filters | 80 + .../libsndfile.2012.vcxproj.filters | 234 ++ .../mpg123/libmpg123.2012.vcxproj.filters | 82 + .../openssl/libeay32.2012.vcxproj.filters | 2093 +++++++++++++++++ .../openssl/openssl.2012.vcxproj.filters | 179 ++ .../openssl/ssleay32.2012.vcxproj.filters | 167 ++ libs/win32/pcre/libpcre.2012.vcxproj.filters | 95 + .../pcre_chartables.c.2012.vcxproj.filters | 22 + .../pocketsphinx.2012.vcxproj.filters | 202 ++ .../pthread/pthread.2012.vcxproj.filters | 41 + ...ibsofia_sip_ua_static.2012.vcxproj.filters | 1019 ++++++++ .../sphinxbase.2012.vcxproj.filters | 354 +++ libs/win32/sqlite/sqlite.2012.vcxproj.filters | 182 ++ libs/win32/udns/libudns.2012.vcxproj.filters | 66 + .../win32/xmlrpc-c/abyss.2012.vcxproj.filters | 69 + .../xmlrpc-c/xmlrpc.2012.vcxproj.filters | 125 + .../xmlrpc-c/xmltok.2012.vcxproj.filters | 45 + 44 files changed, 9596 insertions(+) create mode 100644 libs/broadvoice/src/libbroadvoice.2012.vcxproj.filters create mode 100644 libs/esl/fs_cli.2012.vcxproj.filters create mode 100644 libs/esl/lua/esl_lua.2012.vcxproj.filters create mode 100644 libs/ilbc/libilbc.2012.vcxproj.filters create mode 100644 libs/libdingaling/libdingaling.2012.vcxproj.filters create mode 100644 libs/libteletone/libteletone.2012.vcxproj.filters create mode 100644 libs/portaudio/build/msvc/portaudio.2012.vcxproj.filters create mode 100644 libs/spandsp/src/libspandsp.2012.vcxproj.filters create mode 100644 libs/spandsp/src/msvc/make_at_dictionary.2012.vcxproj.filters create mode 100644 libs/spandsp/src/msvc/make_modem_filter.2012.vcxproj.filters create mode 100644 libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2012.vcxproj.filters create mode 100644 libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2012.vcxproj.filters create mode 100644 libs/unimrcp/libs/uni-rtsp/unirtsp.2012.vcxproj.filters create mode 100644 libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2012.vcxproj.filters create mode 100644 libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2012.vcxproj.filters create mode 100644 libs/win32/apr-util/libaprutil.2012.vcxproj.filters create mode 100644 libs/win32/apr/libapr.2012.vcxproj.filters create mode 100644 libs/win32/celt/libcelt.2012.vcxproj.filters create mode 100644 libs/win32/curl/curllib.2012.vcxproj.filters create mode 100644 libs/win32/flite/flite.2012.vcxproj.filters create mode 100644 libs/win32/iksemel/iksemel.2012.vcxproj.filters create mode 100644 libs/win32/js/js.2012.vcxproj.filters create mode 100644 libs/win32/json/libjson.2012.vcxproj.filters create mode 100644 libs/win32/ldns/ldns-lib/ldns-lib.2012.vcxproj.filters create mode 100644 libs/win32/libg722_1/libg722_1.2012.vcxproj.filters create mode 100644 libs/win32/libjpeg/libjpeg.2012.vcxproj.filters create mode 100644 libs/win32/libogg/libogg.2012.vcxproj.filters create mode 100644 libs/win32/libshout/libshout.2012.vcxproj.filters create mode 100644 libs/win32/libsndfile/libsndfile.2012.vcxproj.filters create mode 100644 libs/win32/mpg123/libmpg123.2012.vcxproj.filters create mode 100644 libs/win32/openssl/libeay32.2012.vcxproj.filters create mode 100644 libs/win32/openssl/openssl.2012.vcxproj.filters create mode 100644 libs/win32/openssl/ssleay32.2012.vcxproj.filters create mode 100644 libs/win32/pcre/libpcre.2012.vcxproj.filters create mode 100644 libs/win32/pcre/pcre_chartables.c.2012.vcxproj.filters create mode 100644 libs/win32/pocketsphinx/pocketsphinx.2012.vcxproj.filters create mode 100644 libs/win32/pthread/pthread.2012.vcxproj.filters create mode 100644 libs/win32/sofia/libsofia_sip_ua_static.2012.vcxproj.filters create mode 100644 libs/win32/sphinxbase/sphinxbase.2012.vcxproj.filters create mode 100644 libs/win32/sqlite/sqlite.2012.vcxproj.filters create mode 100644 libs/win32/udns/libudns.2012.vcxproj.filters create mode 100644 libs/win32/xmlrpc-c/abyss.2012.vcxproj.filters create mode 100644 libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj.filters create mode 100644 libs/win32/xmlrpc-c/xmltok.2012.vcxproj.filters diff --git a/libs/broadvoice/src/libbroadvoice.2012.vcxproj.filters b/libs/broadvoice/src/libbroadvoice.2012.vcxproj.filters new file mode 100644 index 0000000000..263ac94b51 --- /dev/null +++ b/libs/broadvoice/src/libbroadvoice.2012.vcxproj.filters @@ -0,0 +1,167 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {f5d987d2-ff66-4c4f-9d5d-38f05fedf46a} + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/esl/fs_cli.2012.vcxproj.filters b/libs/esl/fs_cli.2012.vcxproj.filters new file mode 100644 index 0000000000..dfc1faab80 --- /dev/null +++ b/libs/esl/fs_cli.2012.vcxproj.filters @@ -0,0 +1,30 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/libs/esl/lua/esl_lua.2012.vcxproj.filters b/libs/esl/lua/esl_lua.2012.vcxproj.filters new file mode 100644 index 0000000000..51644e4cdf --- /dev/null +++ b/libs/esl/lua/esl_lua.2012.vcxproj.filters @@ -0,0 +1,25 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/libs/ilbc/libilbc.2012.vcxproj.filters b/libs/ilbc/libilbc.2012.vcxproj.filters new file mode 100644 index 0000000000..adc872f47a --- /dev/null +++ b/libs/ilbc/libilbc.2012.vcxproj.filters @@ -0,0 +1,162 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/libdingaling/libdingaling.2012.vcxproj.filters b/libs/libdingaling/libdingaling.2012.vcxproj.filters new file mode 100644 index 0000000000..18ef8e8b1a --- /dev/null +++ b/libs/libdingaling/libdingaling.2012.vcxproj.filters @@ -0,0 +1,38 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + + + Source Files + + + \ No newline at end of file diff --git a/libs/libteletone/libteletone.2012.vcxproj.filters b/libs/libteletone/libteletone.2012.vcxproj.filters new file mode 100644 index 0000000000..720e152623 --- /dev/null +++ b/libs/libteletone/libteletone.2012.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/portaudio/build/msvc/portaudio.2012.vcxproj.filters b/libs/portaudio/build/msvc/portaudio.2012.vcxproj.filters new file mode 100644 index 0000000000..8fc7695006 --- /dev/null +++ b/libs/portaudio/build/msvc/portaudio.2012.vcxproj.filters @@ -0,0 +1,132 @@ + + + + + {27479ed0-78ba-43cc-8fb5-31de44bbc8da} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {8f150320-dccc-4b5c-b43c-b3b91378f721} + + + {ac26acd3-797a-4668-a607-9694e9f10a16} + + + {03878aa4-e6a3-4d56-81fe-f93794a1e3a1} + + + {99774f7f-59c1-48cb-b72a-09d78537e6e4} + + + {f47fabee-145b-4c98-9423-3d1bb7c1f3b3} + + + {4ea57aa2-5b6b-4022-86b9-f3a02dd2284b} + + + {9c44aff3-3f53-4117-8097-ee8b810caba2} + + + {a20f633f-4213-4f4b-bd65-a8e49cf9f842} + + + {ce9a362c-b700-4ea4-88b4-51c222789754} + + + {6e72bafa-42f5-450a-90f4-0206faddcf3d} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + {5060bc7a-2362-400f-bda0-ae74643cea86} + h;hpp;hxx;hm;inl + + + + + Source Files\common + + + Source Files\common + + + Source Files\common + + + Source Files\common + + + Source Files\common + + + Source Files\common + + + Source Files\common + + + Source Files\common + + + Source Files\common + + + Source Files\common + + + Source Files\hostapi\ASIO + + + Source Files\hostapi\ASIO\ASIOSDK + + + Source Files\hostapi\ASIO\ASIOSDK + + + Source Files\hostapi\ASIO\ASIOSDK + + + Source Files\hostapi\ASIO\ASIOSDK + + + Source Files\hostapi\ASIO\ASIOSDK + + + Source Files\hostapi\ASIO\ASIOSDK + + + Source Files\hostapi\ASIO\ASIOSDK + + + Source Files\hostapi\dsound + + + Source Files\hostapi\dsound + + + Source Files\hostapi\wmme + + + Source Files\hostapi\wasapi + + + Source Files\os\win + + + Source Files\os\win + + + Source Files\os\win + + + Source Files\os\win + + + Source Files\os\win + + + + + Resource Files + + + \ No newline at end of file diff --git a/libs/spandsp/src/libspandsp.2012.vcxproj.filters b/libs/spandsp/src/libspandsp.2012.vcxproj.filters new file mode 100644 index 0000000000..c7d1210235 --- /dev/null +++ b/libs/spandsp/src/libspandsp.2012.vcxproj.filters @@ -0,0 +1,726 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {23b008e2-8d2d-475f-bdb4-f3f067ff16e3} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + + \ No newline at end of file diff --git a/libs/spandsp/src/msvc/make_at_dictionary.2012.vcxproj.filters b/libs/spandsp/src/msvc/make_at_dictionary.2012.vcxproj.filters new file mode 100644 index 0000000000..708d52292d --- /dev/null +++ b/libs/spandsp/src/msvc/make_at_dictionary.2012.vcxproj.filters @@ -0,0 +1,14 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Source Files + + + \ No newline at end of file diff --git a/libs/spandsp/src/msvc/make_modem_filter.2012.vcxproj.filters b/libs/spandsp/src/msvc/make_modem_filter.2012.vcxproj.filters new file mode 100644 index 0000000000..122497994c --- /dev/null +++ b/libs/spandsp/src/msvc/make_modem_filter.2012.vcxproj.filters @@ -0,0 +1,29 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2012.vcxproj.filters b/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2012.vcxproj.filters new file mode 100644 index 0000000000..4e5d30c3da --- /dev/null +++ b/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2012.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {f3dc550f-1a0f-4b9e-b077-3b6940dc5531} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + include + + + include + + + include + + + include + + + + + src + + + src + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2012.vcxproj.filters b/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2012.vcxproj.filters new file mode 100644 index 0000000000..452f77e19d --- /dev/null +++ b/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2012.vcxproj.filters @@ -0,0 +1,44 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {a92d3b8c-d54d-416c-b458-dc57ac24d2e9} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + include + + + include + + + include + + + include + + + include + + + + + src + + + src + + + src + + + src + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/uni-rtsp/unirtsp.2012.vcxproj.filters b/libs/unimrcp/libs/uni-rtsp/unirtsp.2012.vcxproj.filters new file mode 100644 index 0000000000..5a1581a2c3 --- /dev/null +++ b/libs/unimrcp/libs/uni-rtsp/unirtsp.2012.vcxproj.filters @@ -0,0 +1,56 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {fd4564ef-9f34-4f23-992d-37f127e289a2} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + + + src + + + src + + + src + + + src + + + src + + + src + + + \ No newline at end of file diff --git a/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2012.vcxproj.filters b/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2012.vcxproj.filters new file mode 100644 index 0000000000..d2157eea88 --- /dev/null +++ b/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2012.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {6e92b598-880e-4fe5-88fb-f69df8e06a57} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + include + + + include + + + include + + + + + src + + + src + + + src + + + \ No newline at end of file diff --git a/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2012.vcxproj.filters b/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2012.vcxproj.filters new file mode 100644 index 0000000000..a990550f29 --- /dev/null +++ b/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2012.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {f87f8ada-12d1-412b-bd14-7e62df3f92a0} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + include + + + include + + + include + + + + + src + + + src + + + src + + + \ No newline at end of file diff --git a/libs/win32/apr-util/libaprutil.2012.vcxproj.filters b/libs/win32/apr-util/libaprutil.2012.vcxproj.filters new file mode 100644 index 0000000000..66ad7f99e0 --- /dev/null +++ b/libs/win32/apr-util/libaprutil.2012.vcxproj.filters @@ -0,0 +1,307 @@ + + + + + {fefe4b16-83a4-46b0-ab4b-858531a32218} + + + {66bee6b2-6ba2-4e7d-9c04-5e52ea75b8ee} + + + {ec602915-b144-4258-81ce-f8931434e1eb} + + + {47b5e91f-ec43-4b87-8d11-cc109d0f0733} + + + {12d41721-8bc3-476e-bffa-6bab3ebbcfef} + + + {aafe340f-5f94-4402-a3f4-977c302848c1} + + + {627c064a-54af-49ae-b154-01343f2be90e} + + + {3791a803-8653-410b-905e-934728270db6} + + + {5133e514-d14d-46b5-9e37-3ab909e4ef28} + + + {62959b64-29f8-483f-830f-91e3005c15b9} + + + {ec299ad2-8fa6-4923-95f4-b8c7f6184dcf} + + + {ef13505a-0a7a-4fdc-a55a-b47e92957a85} + + + {80fa8ffc-4776-4a21-bd8b-bfa055f9f46d} + + + {fdb27306-6946-4cf2-bdb6-39e03cdeeae6} + + + {ee62af10-73ee-4af5-85d1-442efcd33aa2} + + + {0ea472ce-22be-43c7-b06d-a50dd027a9fe} + + + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\buckets + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\dbd + + + Source Files\dbd + + + Source Files\dbd + + + Source Files\dbd + + + Source Files\dbm + + + Source Files\dbm + + + Source Files\dbm + + + Source Files\dbm + + + Source Files\encoding + + + Source Files\hooks + + + Source Files\ldap + + + Source Files\ldap + + + Source Files\ldap + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\sdbm + + + Source Files\sdbm + + + Source Files\sdbm + + + Source Files\sdbm + + + Source Files\strmatch + + + Source Files\uri + + + Source Files\xlate + + + + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + + + + + + Source Files\sdbm + + + Source Files\sdbm + + + Source Files\sdbm + + + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + \ No newline at end of file diff --git a/libs/win32/apr/libapr.2012.vcxproj.filters b/libs/win32/apr/libapr.2012.vcxproj.filters new file mode 100644 index 0000000000..d8f55dc5f7 --- /dev/null +++ b/libs/win32/apr/libapr.2012.vcxproj.filters @@ -0,0 +1,406 @@ + + + + + {4fc8eb14-6896-4c69-bd8c-bddb16455565} + .c + + + {c89ee98b-64d0-48dd-b568-2ff6b59fc5c5} + + + {78b00836-5d44-4387-8462-4bb5e76ae5da} + + + {0fa9b52a-8504-44e2-8c0e-12b4aad8d27b} + + + {a4bc2b15-7e22-4e76-a2bc-bcd8fd793d09} + + + {07e65061-0cc8-4f41-879e-0c4f5a1b4592} + + + {2bb687cd-88a4-4477-8ee8-c0036b0b061c} + + + {8931e7d2-2589-4697-8eab-cbfdd7b78102} + + + {13d0cf3c-5d76-4e93-9dc9-20fc256f342e} + + + {c8b09a9b-d7a9-493c-af76-2f774f1ae867} + + + {8021a134-d200-4419-a9af-79c9330f7a50} + + + {5b36b756-ba67-41b3-82e8-19bf529b98e7} + + + {4792d1b4-2348-4cdc-9ac0-eced0c1e658e} + + + {bb1839cf-8ea0-43fd-a025-fe01e7ddd29e} + + + {f9664d77-a9cb-4eb7-9f86-b81860e8eac8} + + + {5d888443-39c7-4937-aed7-f100b0efc8bc} + + + {01c1e6ed-56bc-4d03-a1fd-1671ca1c2d90} + + + {243e3b60-6f34-46d7-8ffb-18936f283239} + + + {77829670-aaa9-4ff9-af8e-62ba7f507e32} + + + + + Source Files\atomic + + + Source Files\dso + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\file_io + + + Source Files\locks + + + Source Files\locks + + + Source Files\locks + + + Source Files\locks + + + Source Files\memory + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\misc + + + Source Files\mmap + + + Source Files\mmap + + + Source Files\network_io + + + Source Files\network_io + + + Source Files\network_io + + + Source Files\network_io + + + Source Files\network_io + + + Source Files\network_io + + + Source Files\network_io + + + Source Files\network_io + + + Source Files\passwd + + + Source Files\random + + + Source Files\random + + + Source Files\random + + + Source Files\shmem + + + Source Files\strings + + + Source Files\strings + + + Source Files\strings + + + Source Files\strings + + + Source Files\strings + + + Source Files\strings + + + Source Files\tables + + + Source Files\tables + + + Source Files\threadproc + + + Source Files\threadproc + + + Source Files\threadproc + + + Source Files\threadproc + + + Source Files\time + + + Source Files\time + + + Source Files\time + + + Source Files\user + + + Source Files\user + + + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Private Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + Public Header Files + + + + + + \ No newline at end of file diff --git a/libs/win32/celt/libcelt.2012.vcxproj.filters b/libs/win32/celt/libcelt.2012.vcxproj.filters new file mode 100644 index 0000000000..22236564f3 --- /dev/null +++ b/libs/win32/celt/libcelt.2012.vcxproj.filters @@ -0,0 +1,76 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/libs/win32/curl/curllib.2012.vcxproj.filters b/libs/win32/curl/curllib.2012.vcxproj.filters new file mode 100644 index 0000000000..5b35d44edf --- /dev/null +++ b/libs/win32/curl/curllib.2012.vcxproj.filters @@ -0,0 +1,358 @@ + + + + + {6b959500-cd81-4335-bdf2-c430b2f07328} + + + {ee1686be-f512-40e0-8f5e-76480b95aafc} + + + {fd722a55-89b7-4153-9226-3eec445000d1} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/flite/flite.2012.vcxproj.filters b/libs/win32/flite/flite.2012.vcxproj.filters new file mode 100644 index 0000000000..979f772242 --- /dev/null +++ b/libs/win32/flite/flite.2012.vcxproj.filters @@ -0,0 +1,677 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {8a9db04d-0a7b-47f2-97ed-73acecd51688} + + + {f4b8438d-32d6-4e75-926b-b3950baf2282} + + + {58f041f5-13f9-4986-aa26-ab41db21c3b1} + + + {f4db3d58-e9d3-415a-ae41-cc3dd1012fc2} + + + {2e2fca2e-fc24-48cd-bfa0-42ceb5aa5331} + + + {29f922d5-330d-49c3-9f8d-5aaada042fe0} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + voices\slt + + + voices\slt + + + voices\slt + + + voices\slt + + + voices\slt + + + voices\slt + + + voices\slt + + + voices\rms + + + voices\rms + + + voices\rms + + + voices\rms + + + voices\rms + + + voices\rms + + + voices\rms + + + voices\rms + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + voices\awb + + + voices\awb + + + voices\awb + + + voices\awb + + + voices\awb + + + voices\awb + + + voices\awb + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + voices\awb + + + voices\awb + + + voices\awb + + + voices\rms + + + voices\rms + + + voices\rms + + + voices\slt + + + voices\slt + + + voices\slt + + + voices\kal + + + voices\kal + + + voices\kal + + + voices\kal + + + voices\kal + + + voices\kal + + + voices\kal16 + + + voices\kal16 + + + voices\kal16 + + + voices\kal16 + + + voices\kal16 + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + voices\slt + + + voices\slt + + + voices\slt + + + voices\slt + + + voices\rms + + + voices\rms + + + voices\rms + + + voices\rms + + + voices\rms + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + voices\awb + + + voices\awb + + + voices\awb + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + voices\awb + + + voices\awb + + + voices\awb + + + voices\rms + + + voices\rms + + + voices\slt + + + voices\slt + + + voices\kal + + + voices\kal16 + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/iksemel/iksemel.2012.vcxproj.filters b/libs/win32/iksemel/iksemel.2012.vcxproj.filters new file mode 100644 index 0000000000..27382de28b --- /dev/null +++ b/libs/win32/iksemel/iksemel.2012.vcxproj.filters @@ -0,0 +1,69 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/js/js.2012.vcxproj.filters b/libs/win32/js/js.2012.vcxproj.filters new file mode 100644 index 0000000000..11d8e7697c --- /dev/null +++ b/libs/win32/js/js.2012.vcxproj.filters @@ -0,0 +1,464 @@ + + + + + {4f5946e3-6061-45f6-aabc-3cfadc4ad060} + cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90 + + + {90b839f0-4610-43e4-9fb3-0aa74394976d} + + + {c637d4b7-47bc-497a-b85e-becc3e2eb4ae} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + NSPR Source + + + \ No newline at end of file diff --git a/libs/win32/json/libjson.2012.vcxproj.filters b/libs/win32/json/libjson.2012.vcxproj.filters new file mode 100644 index 0000000000..9de2aac08f --- /dev/null +++ b/libs/win32/json/libjson.2012.vcxproj.filters @@ -0,0 +1,45 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/ldns/ldns-lib/ldns-lib.2012.vcxproj.filters b/libs/win32/ldns/ldns-lib/ldns-lib.2012.vcxproj.filters new file mode 100644 index 0000000000..c76a57ea6f --- /dev/null +++ b/libs/win32/ldns/ldns-lib/ldns-lib.2012.vcxproj.filters @@ -0,0 +1,258 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Header Files + + + + \ No newline at end of file diff --git a/libs/win32/libg722_1/libg722_1.2012.vcxproj.filters b/libs/win32/libg722_1/libg722_1.2012.vcxproj.filters new file mode 100644 index 0000000000..d54ad6e890 --- /dev/null +++ b/libs/win32/libg722_1/libg722_1.2012.vcxproj.filters @@ -0,0 +1,102 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/libjpeg/libjpeg.2012.vcxproj.filters b/libs/win32/libjpeg/libjpeg.2012.vcxproj.filters new file mode 100644 index 0000000000..6a63450cb4 --- /dev/null +++ b/libs/win32/libjpeg/libjpeg.2012.vcxproj.filters @@ -0,0 +1,186 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/libs/win32/libogg/libogg.2012.vcxproj.filters b/libs/win32/libogg/libogg.2012.vcxproj.filters new file mode 100644 index 0000000000..e769aa60a3 --- /dev/null +++ b/libs/win32/libogg/libogg.2012.vcxproj.filters @@ -0,0 +1,29 @@ + + + + + {34e81afc-61be-40dc-b978-f4e20b9b1236} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {acd20529-ba9d-4ef9-8dc6-0c785bf72394} + h;hpp;hxx;hm;inl + + + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/libshout/libshout.2012.vcxproj.filters b/libs/win32/libshout/libshout.2012.vcxproj.filters new file mode 100644 index 0000000000..f1af2b80a0 --- /dev/null +++ b/libs/win32/libshout/libshout.2012.vcxproj.filters @@ -0,0 +1,80 @@ + + + + + {c5227c05-bf9f-4a66-ae51-1e89ddd05771} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {ad7c320d-bfd2-4415-9e03-bb2000ab2c7c} + h;hpp;hxx;hm;inl + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/libsndfile/libsndfile.2012.vcxproj.filters b/libs/win32/libsndfile/libsndfile.2012.vcxproj.filters new file mode 100644 index 0000000000..f16a39b0c7 --- /dev/null +++ b/libs/win32/libsndfile/libsndfile.2012.vcxproj.filters @@ -0,0 +1,234 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {b116d731-aba1-4ebd-928f-51113eb4c45b} + + + {e24785ab-1f78-4bb6-98f3-6c4586e85648} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\GSM Sources + + + Source Files\G72X Sources + + + Source Files\G72X Sources + + + Source Files\G72X Sources + + + Source Files\G72X Sources + + + Source Files\G72X Sources + + + + + Source Files + + + \ No newline at end of file diff --git a/libs/win32/mpg123/libmpg123.2012.vcxproj.filters b/libs/win32/mpg123/libmpg123.2012.vcxproj.filters new file mode 100644 index 0000000000..c2b9a2adca --- /dev/null +++ b/libs/win32/mpg123/libmpg123.2012.vcxproj.filters @@ -0,0 +1,82 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/libs/win32/openssl/libeay32.2012.vcxproj.filters b/libs/win32/openssl/libeay32.2012.vcxproj.filters new file mode 100644 index 0000000000..6a3215241e --- /dev/null +++ b/libs/win32/openssl/libeay32.2012.vcxproj.filters @@ -0,0 +1,2093 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {2850971f-3d57-4ec1-ba4e-4eeeca46de09} + + + {6b648b8e-8ebf-4f48-8c17-1f6b2d9477ce} + + + {05ec904a-2b0d-4d2b-87ce-fcbaf9bc53ef} + + + {919079e4-52ba-479b-9d7e-673ad9bf6958} + + + {644aa6c7-8c73-4e8d-ae63-869bc189980a} + + + {636f4aed-2ca1-40a7-ac6b-92b541500300} + + + {bc509ff7-3aaa-468b-80fa-7354cb810c13} + + + {96559708-7eee-4deb-a2b2-667298a4ef01} + + + {1c09035a-c83f-40d7-920a-744cd59ef2f4} + + + {61e88564-1f38-4f1d-9e30-8e9d9506c71d} + + + {3ec0ae46-a65d-4fdf-828c-44a3c79a6513} + + + {616027a2-c98f-4445-9af0-0c50bb044818} + + + {6c98fe40-7652-4cd9-846a-554b31f968e6} + + + {b5ba2166-4005-4e4d-ba09-41746fd2c870} + + + {26f25748-94ef-4153-9724-719403f62835} + + + {daa6ffca-0173-41bf-8783-5ab2946155e5} + + + {dbfd9437-8e08-49de-a1e7-938b600a08cf} + + + {01bf1b62-b5be-47f7-8d41-e1bcfaad2aca} + + + {c47b5411-3d09-4382-b89f-a4108640aa92} + + + {ce0f14aa-10a0-4127-a466-3df1411abd2e} + + + {3e96a0c0-5174-442b-9340-fbfe40c6240b} + + + {aae1c437-51fa-4235-a078-145f1ce455cf} + + + {89511946-5b9a-46b2-9d0e-97899bcaf018} + + + {b0206185-99ef-40cc-aa8d-49e0034f98d4} + + + {fba7f92a-93a9-448d-a552-5491255db0ac} + + + {224fad84-0750-4fee-addb-83a53b3b761d} + + + {c754b49b-c6b8-4b49-802f-8eedfa4dbef4} + + + {78d696b8-88c1-4190-8a68-032e09b6d29d} + + + {ead8484b-aeec-45cf-a491-6eb06779ede7} + + + {9edce7d9-19e3-4272-aad1-c5602e2b2104} + + + {c76dbab1-9425-4178-9328-e680a21cb7f9} + + + {e796b6ee-d0c0-46ff-b949-556db483591e} + + + {e2f6b450-d8b6-4e3b-aa18-3af97ff00386} + + + {dabdf468-70c7-4047-a321-4257eddfd30e} + + + {b193f02f-4d4f-42df-bde9-29d40f5ab39b} + + + {8c36cfee-583f-4e0e-bd3c-a518d31d4eb2} + + + {f2d3a7a0-acdb-4e85-85ed-d74e176e5bea} + + + {0581d1b8-2fe1-4bfd-841f-78ae4af03566} + + + {90017bfa-d91a-430a-bba6-fde2d6a53129} + + + {fbe18987-9cdd-4d25-a173-865867f652b6} + + + {9a9acc90-e65f-4655-9fe5-644a9166663f} + + + {99a1ece1-fa73-4505-b850-a331cb41c53e} + + + {5b9dd7d9-bb80-40c4-87e3-6cd084d94034} + + + {b3c6fe14-7ab4-42ad-b73a-998cd8b071bd} + + + {cc048924-f80a-4a77-8113-cad552f4f420} + + + {87b53a26-4389-42b6-bd9a-559c5f8f6a47} + + + {673da9b9-025a-4a23-b7d7-834804ad564c} + + + {1531b88a-1a6c-43cd-be72-1059d1ac32a8} + + + {834fc5df-340b-41b0-b9d6-d9c77bdaa848} + + + {0a0643bb-ea56-4e8e-936b-95c56933441d} + + + {2f1cce25-c551-43c1-9ec3-478bea639d9e} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {c42c3a40-6d53-49e8-bad0-bd02521f475d} + + + {12a7c0f3-1955-4c42-ab0d-5dfeb8e97f30} + + + {3a939d2d-882a-49cf-9b39-d6e29932ba2f} + + + {4e1235aa-5f4b-44f0-8cd2-db2bc40052c3} + + + {c4935409-609f-4bac-8306-8f480f529596} + + + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto\rc2 + + + Source Files\crypto\rc2 + + + Source Files\crypto\rc2 + + + Source Files\crypto\rc2 + + + Source Files\crypto\rc2 + + + Source Files\crypto\rc4 + + + Source Files\crypto\rc4 + + + Source Files\crypto\idea + + + Source Files\crypto\idea + + + Source Files\crypto\idea + + + Source Files\crypto\idea + + + Source Files\crypto\idea + + + Source Files\crypto\bf + + + Source Files\crypto\bf + + + Source Files\crypto\bf + + + Source Files\crypto\bf + + + Source Files\crypto\bf + + + Source Files\crypto\cast + + + Source Files\crypto\cast + + + Source Files\crypto\cast + + + Source Files\crypto\cast + + + Source Files\crypto\cast + + + Source Files\crypto\ripemd + + + Source Files\crypto\ripemd + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\des + + + Source Files\crypto\aes + + + Source Files\crypto\aes + + + Source Files\crypto\aes + + + Source Files\crypto\aes + + + Source Files\crypto\aes + + + Source Files\crypto\aes + + + Source Files\crypto\aes + + + Source Files\crypto\aes + + + Source Files\crypto\aes + + + Source Files\crypto\camellia + + + Source Files\crypto\camellia + + + Source Files\crypto\camellia + + + Source Files\crypto\camellia + + + Source Files\crypto\camellia + + + Source Files\crypto\camellia + + + Source Files\crypto\camellia + + + Source Files\crypto\seed + + + Source Files\crypto\seed + + + Source Files\crypto\seed + + + Source Files\crypto\seed + + + Source Files\crypto\seed + + + Source Files\crypto\modes + + + Source Files\crypto\modes + + + Source Files\crypto\modes + + + Source Files\crypto\modes + + + Source Files\crypto\modes + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\bn + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\rsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\dsa + + + Source Files\crypto\rand + + + Source Files\crypto\rand + + + Source Files\crypto\rand + + + Source Files\crypto\rand + + + Source Files\crypto\rand + + + Source Files\crypto\rand + + + Source Files\crypto\rand + + + Source Files\crypto\rand + + + Source Files\crypto\rand + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\bio + + + Source Files\crypto\err + + + Source Files\crypto\err + + + Source Files\crypto\err + + + Source Files\crypto\ui + + + Source Files\crypto\ui + + + Source Files\crypto\ui + + + Source Files\crypto\ui + + + Source Files\crypto\ui + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\x509 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\asn1 + + + Source Files\crypto\objects + + + Source Files\crypto\objects + + + Source Files\crypto\objects + + + Source Files\crypto\objects + + + Source Files\crypto\objects + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\evp + + + Source Files\crypto\buffer + + + Source Files\crypto\buffer + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\cms + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\engine + + + Source Files\crypto\stack + + + Source Files\crypto\pkcs7 + + + Source Files\crypto\pkcs7 + + + Source Files\crypto\pkcs7 + + + Source Files\crypto\pkcs7 + + + Source Files\crypto\pkcs7 + + + Source Files\crypto\pkcs7 + + + Source Files\crypto\pkcs7 + + + Source Files\crypto\pkcs7 + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\dh + + + Source Files\crypto\ocsp + + + Source Files\crypto\ocsp + + + Source Files\crypto\ocsp + + + Source Files\crypto\ocsp + + + Source Files\crypto\ocsp + + + Source Files\crypto\ocsp + + + Source Files\crypto\ocsp + + + Source Files\crypto\ocsp + + + Source Files\crypto\ocsp + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\x509v3 + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\ts + + + Source Files\crypto\conf + + + Source Files\crypto\conf + + + Source Files\crypto\conf + + + Source Files\crypto\conf + + + Source Files\crypto\conf + + + Source Files\crypto\conf + + + Source Files\crypto\conf + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ec + + + Source Files\crypto\ecdh + + + Source Files\crypto\ecdh + + + Source Files\crypto\ecdh + + + Source Files\crypto\ecdh + + + Source Files\crypto\ecdsa + + + Source Files\crypto\ecdsa + + + Source Files\crypto\ecdsa + + + Source Files\crypto\ecdsa + + + Source Files\crypto\ecdsa + + + Source Files\crypto\ecdsa + + + Source Files\crypto\md5 + + + Source Files\crypto\md5 + + + Source Files\crypto\md4 + + + Source Files\crypto\md4 + + + Source Files\crypto\lhash + + + Source Files\crypto\lhash + + + Source Files\crypto\dso + + + Source Files\crypto\dso + + + Source Files\crypto\dso + + + Source Files\crypto\dso + + + Source Files\crypto\dso + + + Source Files\crypto\dso + + + Source Files\crypto\dso + + + Source Files\crypto\dso + + + Source Files\crypto\dso + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\pkcs12 + + + Source Files\crypto\hmac + + + Source Files\crypto\hmac + + + Source Files\crypto\hmac + + + Source Files\crypto\sha + + + Source Files\crypto\sha + + + Source Files\crypto\sha + + + Source Files\crypto\sha + + + Source Files\crypto\sha + + + Source Files\crypto\sha + + + Source Files\crypto\sha + + + Source Files\crypto\comp + + + Source Files\crypto\comp + + + Source Files\crypto\comp + + + Source Files\crypto\comp + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\pem + + + Source Files\crypto\whrlpool + + + Source Files\crypto\whrlpool + + + Source Files\crypto\mdc2 + + + Source Files\crypto\mdc2 + + + Source Files\crypto\krb5 + + + Source Files\crypto\txt_db + + + Source Files\crypto\pqueue + + + Source Files\ms + + + + + Header Files + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto\evp + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\openssl + + + Header Files\bf + + + Header Files\bf + + + Header Files\bf + + + Header Files\ms + + + \ No newline at end of file diff --git a/libs/win32/openssl/openssl.2012.vcxproj.filters b/libs/win32/openssl/openssl.2012.vcxproj.filters new file mode 100644 index 0000000000..e568b7ac2f --- /dev/null +++ b/libs/win32/openssl/openssl.2012.vcxproj.filters @@ -0,0 +1,179 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {cf6ed228-8b22-4124-ad73-05c2a9dc3ba9} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {059be3d7-da1e-4270-8f05-a6772ccc5e10} + + + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + Source Files\apps + + + + + Header Files\apps + + + \ No newline at end of file diff --git a/libs/win32/openssl/ssleay32.2012.vcxproj.filters b/libs/win32/openssl/ssleay32.2012.vcxproj.filters new file mode 100644 index 0000000000..4007284d59 --- /dev/null +++ b/libs/win32/openssl/ssleay32.2012.vcxproj.filters @@ -0,0 +1,167 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {f25bde33-475c-4870-aa63-95c0a3bcf356} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {0a4387d1-72f1-4eaf-96bd-d83822dea414} + + + {8364f4d3-cb5e-498a-b5b1-46107d580c6c} + + + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + Source Files\ssl + + + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto\evp + + + \ No newline at end of file diff --git a/libs/win32/pcre/libpcre.2012.vcxproj.filters b/libs/win32/pcre/libpcre.2012.vcxproj.filters new file mode 100644 index 0000000000..60add322d9 --- /dev/null +++ b/libs/win32/pcre/libpcre.2012.vcxproj.filters @@ -0,0 +1,95 @@ + + + + + {427b94c9-e678-4d0c-8c16-37276afbfc94} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {5df91abd-8f03-4e8f-87ca-23fd510a729c} + h;hpp;hxx;hm;inl + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/pcre/pcre_chartables.c.2012.vcxproj.filters b/libs/win32/pcre/pcre_chartables.c.2012.vcxproj.filters new file mode 100644 index 0000000000..1cfff05b54 --- /dev/null +++ b/libs/win32/pcre/pcre_chartables.c.2012.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + \ No newline at end of file diff --git a/libs/win32/pocketsphinx/pocketsphinx.2012.vcxproj.filters b/libs/win32/pocketsphinx/pocketsphinx.2012.vcxproj.filters new file mode 100644 index 0000000000..5d1afe56b6 --- /dev/null +++ b/libs/win32/pocketsphinx/pocketsphinx.2012.vcxproj.filters @@ -0,0 +1,202 @@ + + + + + {30a9f269-d81a-4ee2-adf0-8b402eb80fec} + + + {d54e4410-06e1-4361-b050-7aced67dff22} + + + {ebcc7cb5-8ca2-489c-b0e8-426058856ac8} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/libs/win32/pthread/pthread.2012.vcxproj.filters b/libs/win32/pthread/pthread.2012.vcxproj.filters new file mode 100644 index 0000000000..21e7edf959 --- /dev/null +++ b/libs/win32/pthread/pthread.2012.vcxproj.filters @@ -0,0 +1,41 @@ + + + + + {eea9b312-399b-4998-b90c-92abe8150466} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {4fdd54b4-c31e-45b5-9b1a-09740020ae6f} + h;hpp;hxx;hm;inl + + + {d9df37d7-2c75-4916-bd8d-68f96aca4677} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Resource Files + + + \ No newline at end of file diff --git a/libs/win32/sofia/libsofia_sip_ua_static.2012.vcxproj.filters b/libs/win32/sofia/libsofia_sip_ua_static.2012.vcxproj.filters new file mode 100644 index 0000000000..6fe878541b --- /dev/null +++ b/libs/win32/sofia/libsofia_sip_ua_static.2012.vcxproj.filters @@ -0,0 +1,1019 @@ + + + + + {e2fb9ce3-2e60-4ab8-a3f5-3acc0770c1fb} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {07c4085c-ab49-4d20-b4f4-bcd30b90ce73} + su*.c + + + {f302ae4a-7736-4563-b130-a88f67fb8420} + + + {0bd6f7dc-1416-4eba-a83b-9728b0f5ff09} + url*.c + + + {7d12ef13-6833-4299-a002-4cfa700aab08} + features*.c + + + {503e3513-dc29-4a8d-968f-eb9b85e37831} + bnf*.c + + + {3680f590-87b0-43fc-93d4-2f055947608c} + msg*.c + + + {71b15ca9-401c-4587-8b0e-1cbd01761e4c} + + + {777999e7-603f-4e2a-be29-0933e5d56c0d} + + + {0b33e411-4f7e-4275-9d87-9d674a0a294f} + + + {3e4054e5-d5cf-498d-afe4-feaee3b0df04} + + + {92d282a8-1180-42cf-baea-3b826d7fc6da} + + + {5dfb833d-6d12-41e4-9b84-35faae36eac9} + + + {ce2f9d87-410e-4558-8fb0-564ae88af551} + + + {a631bda8-f647-4fe1-92d1-6929887d822c} + + + {e7f1aa28-e4cd-4563-bb81-46e761435d07} + + + {c608280f-e56c-4f2b-94a8-052eac15f6e5} + + + {00e7d1cc-bb3a-4e76-b6b1-11db89ed6701} + + + {6b3531f0-aab2-44d2-8319-185e40c5c739} + + + {c1b1203d-95fa-41e3-bdea-df2b9915c4b9} + + + {ab318891-9ef3-4e56-baf7-8ce922a73e45} + h;hpp;hxx;hm;inl + + + {af1f4a99-a82d-4e82-b6ce-94a3cf7d1c37} + su*.h + + + {861289c7-2dec-4715-b158-2b3e00ab6040} + + + {ee802dd4-b53b-43d1-bdf2-3d4343d37779} + + + {bb636639-0b7f-41ed-a549-438d02a7d3ac} + url*.h + + + {d294ad27-4906-495b-8be4-5fc8aa291f3a} + features*.h + + + {566a4c1d-8cbb-4570-a8e8-3d1c6a6e3f71} + bnf*.h + + + {32c05478-a038-4b7d-bb4b-d33b82ab576d} + + + {84dbad62-348f-4e67-a48e-d8d22526b4a8} + + + {1441bb2b-94f7-4cbe-a4fc-82e7a88af588} + + + {bce41b99-f79a-45ee-9634-d0859695014f} + + + {ce670254-9dd6-4e3c-99ad-90f78c69d766} + + + {3b978047-99c5-4fd4-99fe-200151c76fd1} + + + {e9eaad41-1195-4c26-b813-d101ff7bf4f2} + + + {9ec1016a-8c36-4a62-bd3f-e226b3a6b479} + + + {4a392d00-3246-42cb-bff9-7b4f7889d8f2} + + + {e8343a7f-eed9-4051-85b0-d02fd78c06f1} + + + {17f68ee6-6245-4c14-8bda-387799431553} + + + {b08ddec7-8118-4a9d-8606-c62ffcbafc97} + + + {de42c0cc-17b9-4768-9981-abf8765ec30b} + + + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\su + + + Source Files\ipt + + + Source Files\ipt + + + Source Files\ipt + + + Source Files\url + + + Source Files\url + + + Source Files\url + + + Source Files\features + + + Source Files\bnf + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\msg + + + Source Files\clib replacement + + + Source Files\clib replacement + + + Source Files\clib replacement + + + Source Files\clib replacement + + + Source Files\clib replacement + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\sip + + + Source Files\http + + + Source Files\http + + + Source Files\http + + + Source Files\http + + + Source Files\http + + + Source Files\http + + + Source Files\http + + + Source Files\http + + + Source Files\http + + + Source Files\nth + + + Source Files\nth + + + Source Files\nth + + + Source Files\nth + + + Source Files\sresolv + + + Source Files\sresolv + + + Source Files\sresolv + + + Source Files\sresolv + + + Source Files\sresolv + + + Source Files\nea + + + Source Files\nea + + + Source Files\nea + + + Source Files\nea + + + Source Files\nea + + + Source Files\nea + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\iptsec + + + Source Files\stun + + + Source Files\stun + + + Source Files\stun + + + Source Files\stun + + + Source Files\stun + + + Source Files\stun + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nta + + + Source Files\nta + + + Source Files\nta + + + Source Files\nta + + + Source Files\nta + + + Source Files\nta + + + Source Files\nta + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\tport + + + Source Files\sdp + + + Source Files\sdp + + + Source Files\sdp + + + Source Files\sdp + + + Source Files\sdp + + + Source Files\soa + + + Source Files\soa + + + Source Files\soa + + + Source Files\soa + + + + + Source Files\stun + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\nua + + + Source Files\tport + + + Source Files\soa + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\su headers + + + Header Files\win32 headers + + + Header Files\win32 headers + + + Header Files\win32 headers + + + Header Files\ipt headers + + + Header Files\ipt headers + + + Header Files\ipt headers + + + Header Files\url headers + + + Header Files\url headers + + + Header Files\url headers + + + Header Files\features headers + + + Header Files\bnf headers + + + Header Files\bnf headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\msg headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\sip headers + + + Header Files\http headers + + + Header Files\http headers + + + Header Files\http headers + + + Header Files\http headers + + + Header Files\http headers + + + Header Files\http headers + + + Header Files\http headers + + + Header Files\http headers + + + Header Files\nth headers + + + Header Files\nth headers + + + Header Files\sresolv headers + + + Header Files\sresolv headers + + + Header Files\sresolv headers + + + Header Files\sresolv headers + + + Header Files\sresolv headers + + + Header Files\sresolv headers + + + Header Files\nea headers + + + Header Files\nea headers + + + Header Files\nea headers + + + Header Files\iptsec headers + + + Header Files\iptsec headers + + + Header Files\iptsec headers + + + Header Files\iptsec headers + + + Header Files\iptsec headers + + + Header Files\iptsec headers + + + Header Files\stun headers + + + Header Files\stun headers + + + Header Files\stun headers + + + Header Files\nua headers + + + Header Files\nua headers + + + Header Files\nta headers + + + Header Files\nta headers + + + Header Files\nta headers + + + Header Files\nta headers + + + Header Files\nta headers + + + Header Files\nta headers + + + Header Files\tport headers + + + Header Files\tport headers + + + Header Files\tport headers + + + Header Files\tport headers + + + Header Files\sdp headers + + + Header Files\sdp headers + + + Header Files\soa headers + + + Header Files\soa headers + + + Header Files\soa headers + + + \ No newline at end of file diff --git a/libs/win32/sphinxbase/sphinxbase.2012.vcxproj.filters b/libs/win32/sphinxbase/sphinxbase.2012.vcxproj.filters new file mode 100644 index 0000000000..510e13f5f3 --- /dev/null +++ b/libs/win32/sphinxbase/sphinxbase.2012.vcxproj.filters @@ -0,0 +1,354 @@ + + + + + {5ce23960-a856-416b-a477-cf2d724bd43e} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {8d90e900-0942-4a25-b48a-b8dcd4382c28} + h;hpp;hxx;hm;inl + + + {cd06b891-4b88-427f-9f62-187bfead9b0f} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/sqlite/sqlite.2012.vcxproj.filters b/libs/win32/sqlite/sqlite.2012.vcxproj.filters new file mode 100644 index 0000000000..1b56bcf5b4 --- /dev/null +++ b/libs/win32/sqlite/sqlite.2012.vcxproj.filters @@ -0,0 +1,182 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/udns/libudns.2012.vcxproj.filters b/libs/win32/udns/libudns.2012.vcxproj.filters new file mode 100644 index 0000000000..f4e9018f39 --- /dev/null +++ b/libs/win32/udns/libudns.2012.vcxproj.filters @@ -0,0 +1,66 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/libs/win32/xmlrpc-c/abyss.2012.vcxproj.filters b/libs/win32/xmlrpc-c/abyss.2012.vcxproj.filters new file mode 100644 index 0000000000..dc60f95547 --- /dev/null +++ b/libs/win32/xmlrpc-c/abyss.2012.vcxproj.filters @@ -0,0 +1,69 @@ + + + + + {8ac4971f-a9ba-4930-a7e3-b291ad24d6ca} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {05489d43-6c6b-4bb8-95db-414e8137ee9e} + h;hpp;hxx;hm;inl + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj.filters b/libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj.filters new file mode 100644 index 0000000000..ac7abdea72 --- /dev/null +++ b/libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj.filters @@ -0,0 +1,125 @@ + + + + + {7ca2b8b9-bf59-4407-aedf-588e548fe34a} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/libs/win32/xmlrpc-c/xmltok.2012.vcxproj.filters b/libs/win32/xmlrpc-c/xmltok.2012.vcxproj.filters new file mode 100644 index 0000000000..edcb1d2353 --- /dev/null +++ b/libs/win32/xmlrpc-c/xmltok.2012.vcxproj.filters @@ -0,0 +1,45 @@ + + + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + {e8ec3017-8580-49f6-b5b5-4ba1c66c9b58} + + + {cf3bec2c-9e12-4a6c-8d1c-495721118adf} + + + \ No newline at end of file From b70ac964a7e0cf64e00a968946f23be03b7a4a01 Mon Sep 17 00:00:00 2001 From: Raymond Chandler Date: Thu, 28 Feb 2013 01:39:41 -0500 Subject: [PATCH 15/26] FS-5101 --resolve add option to dial lcr/[profile/] --- src/mod/applications/mod_lcr/mod_lcr.c | 40 +++++++++++++++++++------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/src/mod/applications/mod_lcr/mod_lcr.c b/src/mod/applications/mod_lcr/mod_lcr.c index 13212e5b86..b60c707868 100644 --- a/src/mod/applications/mod_lcr/mod_lcr.c +++ b/src/mod/applications/mod_lcr/mod_lcr.c @@ -342,9 +342,15 @@ static char *get_bridge_data(switch_memory_pool_t *pool, char *dialed_number, ch static profile_t *locate_profile(const char *profile_name) { profile_t *profile = NULL; - + if (zstr(profile_name)) { - profile = globals.default_profile; + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "profile_name is empty\n"); + if (globals.default_profile) { + profile = globals.default_profile; + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "using default_profile\n"); + } else if ((profile = switch_core_hash_find(globals.profile_hash, "default"))) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "no default set, using profile named \"default\"\n"); + } } else if (!(profile = switch_core_hash_find(globals.profile_hash, profile_name))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error invalid profile %s\n", profile_name); } @@ -1367,18 +1373,31 @@ static switch_call_cause_t lcr_outgoing_channel(switch_core_session_t *session, const char *intralata = NULL; switch_core_session_t *mysession = NULL, *locked_session = NULL; switch_channel_t *channel = NULL; - - dest = strdup(outbound_profile->destination_number); - - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Entering lcr endpoint for %s\n", dest); - - if (!dest) { - goto done; - } + int argc; + char *argv[32] = { 0 }; + char *mydata = NULL; switch_core_new_memory_pool(&pool); routes.pool = pool; + if (!outbound_profile->destination_number) { + goto done; + } + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Entering lcr endpoint for %s\n", outbound_profile->destination_number); + + mydata = switch_core_strdup(pool, outbound_profile->destination_number); + + if ((argc = switch_separate_string(mydata, '/', argv, (sizeof(argv) / sizeof(argv[0]))))) { + if (argc > 1) { + lcr_profile = switch_core_strdup(pool, argv[0]); + dest = switch_core_strdup(pool, argv[1]); + } + } + + if (!dest) { + dest = outbound_profile->destination_number; + } + if (var_event && (skip = switch_event_get_header(var_event, "lcr_recurse_variables")) && switch_false(skip)) { if ((var = switch_event_get_header(var_event, SWITCH_CALL_TIMEOUT_VARIABLE)) || (var = switch_event_get_header(var_event, "leg_timeout"))) { timelimit = atoi(var); @@ -1516,7 +1535,6 @@ static switch_call_cause_t lcr_outgoing_channel(switch_core_session_t *session, } lcr_destroy(routes.head); switch_core_destroy_memory_pool(&pool); - switch_safe_free(dest); if (cause == SWITCH_CAUSE_NONE) { cause = SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER; From 1b8ef1842e46387f10d9590e0ff1fd985887ba56 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 28 Feb 2013 09:17:46 -0600 Subject: [PATCH 16/26] FS-4289 changed to backup the file with epoch time instead of delete it --- src/switch_core_db.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/switch_core_db.c b/src/switch_core_db.c index c507c99368..590301fcc5 100644 --- a/src/switch_core_db.c +++ b/src/switch_core_db.c @@ -233,9 +233,11 @@ SWITCH_DECLARE(switch_core_db_t *) switch_core_db_open_file(const char *filename if (cb_arg.ok && (1 == cb_arg.rows)) { break; } else if (0 == i) { + char *cpath = switch_mprintf("%s.%ld.cdb", path, (long) switch_epoch_time_now(NULL)); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "SQLite integrity_check failed for [%s]. Deleting file and retrying\n", path); switch_core_db_close(db); - remove(path); + rename(path, cpath); + free(cpath); continue; } else { From bf93eb47e92ba6a0780a4ba297838416078f5a37 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 28 Feb 2013 09:28:00 -0600 Subject: [PATCH 17/26] FS-5131 --resolve indeed, nice catch --- src/include/switch_utils.h | 16 ++++++++++++---- src/switch_ivr_play_say.c | 29 +++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/include/switch_utils.h b/src/include/switch_utils.h index 11839ee660..89b60ed82d 100644 --- a/src/include/switch_utils.h +++ b/src/include/switch_utils.h @@ -919,11 +919,19 @@ SWITCH_DECLARE(char *) switch_find_end_paren(const char *s, char open, char clos static inline switch_bool_t switch_is_file_path(const char *file) { const char *e; - int r; + int r, x; - if (*file == '[' && *(file + 1) == *SWITCH_PATH_SEPARATOR) { - if ((e = switch_find_end_paren(file, '[', ']'))) { - file = e + 1; + for (x = 0; x < 2; x++) { + if (*file == '[' && *(file + 1) == *SWITCH_PATH_SEPARATOR) { + if ((e = switch_find_end_paren(file, '[', ']'))) { + file = e + 1; + } + } else if (*file == '{') { + if ((e = switch_find_end_paren(file, '{', '}'))) { + file = e + 1; + } + } else { + break; } } #ifdef WIN32 diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index 82907832f5..b20ce84476 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -1185,20 +1185,33 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess if (!strstr(file, SWITCH_URL_SEPARATOR)) { if (!switch_is_file_path(file)) { - char *tfile = NULL; + char *tfile = NULL, *tfile2 = NULL; char *e; + int x; - if (*file == '[') { - tfile = switch_core_session_strdup(session, file); - if ((e = switch_find_end_paren(tfile, '[', ']'))) { - *e = '\0'; - file = e + 1; + for (x = 0; x < 2; x++) { + if (*file == '[') { + tfile = switch_core_session_strdup(session, file); + if ((e = switch_find_end_paren(tfile, '[', ']'))) { + *e = '\0'; + file = e + 1; + } else { + tfile = NULL; + } + } else if (*file == '{') { + tfile2 = switch_core_session_strdup(session, file); + if ((e = switch_find_end_paren(tfile2, '{', '}'))) { + *e = '\0'; + file = e + 1; + } else { + tfile2 = NULL; + } } else { - tfile = NULL; + break; } } - file = switch_core_session_sprintf(session, "%s%s%s%s%s", switch_str_nil(tfile), tfile ? "]" : "", prefix, SWITCH_PATH_SEPARATOR, file); + file = switch_core_session_sprintf(session, "%s%s%s%s%s%s%s", switch_str_nil(tfile), tfile ? "]" : "", switch_str_nil(tfile2), tfile2 ? "}" : "", prefix, SWITCH_PATH_SEPARATOR, file); } if ((ext = strrchr(file, '.'))) { ext++; From 7ea0f8d41e00d70bf9c663712a6fb21173e86b64 Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Thu, 28 Feb 2013 10:53:16 -0600 Subject: [PATCH 18/26] correct vs 2010-2012 depends for xmlrpc at the project level --- libs/win32/xmlrpc-c/xmlrpc.2010.vcxproj | 483 ++++++++++++------------ libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj | 9 +- 2 files changed, 251 insertions(+), 241 deletions(-) diff --git a/libs/win32/xmlrpc-c/xmlrpc.2010.vcxproj b/libs/win32/xmlrpc-c/xmlrpc.2010.vcxproj index dc5fc4bf2f..1c481f2b22 100644 --- a/libs/win32/xmlrpc-c/xmlrpc.2010.vcxproj +++ b/libs/win32/xmlrpc-c/xmlrpc.2010.vcxproj @@ -1,240 +1,245 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - xmlrpc - {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} - xmlrpc - - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(PlatformName)\xmlrpc\$(Configuration)\ - $(PlatformName)\xmlrpc\$(Configuration)\ - $(PlatformName)\xmlrpc\$(Configuration)\ - $(PlatformName)\xmlrpc\$(Configuration)\ - - - - - - Disabled - $(XMLRPCDir)lib\expat\xmlparse;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - Level3 - true - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - true - - - true - - - - - - - - - X64 - - - Disabled - $(XMLRPCDir)lib\expat\xmlparse;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - Level3 - true - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - true - - - true - .\Debug\xmlrpc/xmlrpc.bsc - - - - - - - - - MaxSpeed - OnlyExplicitInline - $(XMLRPCDir)lib\expat\xmlparse;%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - true - - - true - - - - - - - - - X64 - - - MaxSpeed - OnlyExplicitInline - $(XMLRPCDir)lib\expat\xmlparse;%(AdditionalIncludeDirectories) - NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + xmlrpc + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} + xmlrpc + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\xmlrpc\$(Configuration)\ + $(PlatformName)\xmlrpc\$(Configuration)\ + $(PlatformName)\xmlrpc\$(Configuration)\ + $(PlatformName)\xmlrpc\$(Configuration)\ + + + + + + Disabled + $(XMLRPCDir)lib\expat\xmlparse;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level3 + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + true + + + + + + + + + X64 + + + Disabled + $(XMLRPCDir)lib\expat\xmlparse;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level3 + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + true + .\Debug\xmlrpc/xmlrpc.bsc + + + + + + + + + MaxSpeed + OnlyExplicitInline + $(XMLRPCDir)lib\expat\xmlparse;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + true + + + + + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + $(XMLRPCDir)lib\expat\xmlparse;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {0d108721-eae8-4baf-8102-d8960ec93647} + + + + + \ No newline at end of file diff --git a/libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj b/libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj index 0c26ab2f46..6f4d7a4031 100644 --- a/libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj +++ b/libs/win32/xmlrpc-c/xmlrpc.2012.vcxproj @@ -1,4 +1,4 @@ - + @@ -238,7 +238,12 @@ + + + {0d108721-eae8-4baf-8102-d8960ec93647} + + - + \ No newline at end of file From 864598caeb0c25e8da587f825c7cae5a21760dc0 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 28 Feb 2013 09:58:53 -0600 Subject: [PATCH 19/26] FS-5121 --resolve --- src/switch_ivr_originate.c | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index 9c6e6696ca..4361d8df33 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -2048,6 +2048,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess switch_event_header_t *hi; const char *cdr_total_var; const char *cdr_var; + const char *json_cdr_var; if ((cdr_var = switch_channel_get_variable(caller_channel, "failed_xml_cdr_prefix"))) { char buf[128] = ""; @@ -2060,6 +2061,16 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } } + if ((json_cdr_var = switch_channel_get_variable(caller_channel, "failed_json_cdr_prefix"))) { + char buf[128] = ""; + switch_snprintf(buf, sizeof(buf), "%s_total", json_cdr_var); + if ((cdr_total_var = switch_channel_get_variable(caller_channel, buf))) { + int tmp = atoi(cdr_total_var); + if (tmp > 0) { + cdr_total = tmp; + } + } + } /* Copy all the missing applicable channel variables from A-leg into the event */ if ((hi = switch_channel_variable_first(caller_channel))) { @@ -3438,7 +3449,12 @@ write_frame.samples = (uint32_t) olen; } else { const char *cdr_var = NULL; + const char *json_cdr_var = NULL; + switch_xml_t cdr = NULL; + cJSON *json_cdr = NULL; + + char *json_text; char *xml_text; char buf[128] = "", buf2[128] = ""; @@ -3446,6 +3462,10 @@ write_frame.samples = (uint32_t) olen; cdr_var = switch_channel_get_variable(caller_channel, "failed_xml_cdr_prefix"); } + if (caller_channel) { + json_cdr_var = switch_channel_get_variable(caller_channel, "failed_json_cdr_prefix"); + } + if (peer_channel) { wait_for_cause(peer_channel); *cause = switch_channel_get_cause(peer_channel); @@ -3491,6 +3511,37 @@ write_frame.samples = (uint32_t) olen; switch_channel_set_variable(caller_channel, buf, buf2); } + if (json_cdr_var) { + for (i = 0; i < and_argc; i++) { + switch_channel_t *channel; + + if (!originate_status[i].peer_session) { + continue; + } + + channel = switch_core_session_get_channel(originate_status[i].peer_session); + + switch_channel_wait_for_state_timeout(channel, CS_REPORTING, 5000); + + if (!switch_channel_test_flag(channel, CF_TIMESTAMP_SET)) { + switch_channel_set_timestamps(channel); + } + + if (switch_ivr_generate_json_cdr(originate_status[i].peer_session, &json_cdr, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { + json_text = cJSON_PrintUnformatted(json_cdr); + switch_snprintf(buf, sizeof(buf), "%s_%d", json_cdr_var, ++cdr_total); + switch_channel_set_variable(caller_channel, buf, json_text); + // switch_safe_free(json_text); + cJSON_Delete(json_cdr); + json_cdr = NULL; + } + + } + switch_snprintf(buf, sizeof(buf), "%s_total", json_cdr_var); + switch_snprintf(buf2, sizeof(buf2), "%d", cdr_total ? cdr_total : 0); + switch_channel_set_variable(caller_channel, buf, buf2); + } + if (caller_channel && switch_channel_test_flag(caller_channel, CF_INTERCEPTED)) { *cause = SWITCH_CAUSE_PICKED_OFF; } From 57497c833edcdfa1c391fb4f2d886a77a001ae47 Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Thu, 28 Feb 2013 11:30:05 -0600 Subject: [PATCH 20/26] more vs 2010-2012 xmprpc depends --- libs/win32/xmlrpc-c/xmltok.2010.vcxproj | 401 ++++++++++++------------ libs/win32/xmlrpc-c/xmltok.2012.vcxproj | 9 +- 2 files changed, 210 insertions(+), 200 deletions(-) diff --git a/libs/win32/xmlrpc-c/xmltok.2010.vcxproj b/libs/win32/xmlrpc-c/xmltok.2010.vcxproj index 9685273024..6e5e04b9e6 100644 --- a/libs/win32/xmlrpc-c/xmltok.2010.vcxproj +++ b/libs/win32/xmlrpc-c/xmltok.2010.vcxproj @@ -1,199 +1,204 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - xmltok - {B535402E-38D2-4D54-8360-423ACBD17192} - xmltok - - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(PlatformName)\xmltok\$(Configuration)\ - $(PlatformName)\xmltok\$(Configuration)\ - $(PlatformName)\xmltok\$(Configuration)\ - $(PlatformName)\xmltok\$(Configuration)\ - - - - Disabled - %(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - Level3 - true - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - true - - - true - .\Debug\xmltok/xmltok.bsc - - - - - X64 - - - Disabled - %(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - Level3 - true - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - true - - - true - .\Debug\xmltok/xmltok.bsc - - - - - MaxSpeed - OnlyExplicitInline - %(AdditionalIncludeDirectories) - NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - true - - - true - .\Release\xmltok/xmltok.bsc - - - - - X64 - - - MaxSpeed - OnlyExplicitInline - %(AdditionalIncludeDirectories) - NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) - true - MultiThreaded - true - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - true - - - true - .\Release\xmltok/xmltok.bsc - - - - - - - - - - - - - - - - - - - + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + xmltok + {B535402E-38D2-4D54-8360-423ACBD17192} + xmltok + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\xmltok\$(Configuration)\ + $(PlatformName)\xmltok\$(Configuration)\ + $(PlatformName)\xmltok\$(Configuration)\ + $(PlatformName)\xmltok\$(Configuration)\ + + + + Disabled + %(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level3 + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + true + .\Debug\xmltok/xmltok.bsc + + + + + X64 + + + Disabled + %(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level3 + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + true + .\Debug\xmltok/xmltok.bsc + + + + + MaxSpeed + OnlyExplicitInline + %(AdditionalIncludeDirectories) + NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + true + .\Release\xmltok/xmltok.bsc + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + %(AdditionalIncludeDirectories) + NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + true + .\Release\xmltok/xmltok.bsc + + + + + + + + + + + + + + + + + + + {bed7539c-0099-4a14-ad5d-30828f15a171} + + + + + \ No newline at end of file diff --git a/libs/win32/xmlrpc-c/xmltok.2012.vcxproj b/libs/win32/xmlrpc-c/xmltok.2012.vcxproj index 2594256198..79592f57b4 100644 --- a/libs/win32/xmlrpc-c/xmltok.2012.vcxproj +++ b/libs/win32/xmlrpc-c/xmltok.2012.vcxproj @@ -1,4 +1,4 @@ - + @@ -197,7 +197,12 @@ + + + {bed7539c-0099-4a14-ad5d-30828f15a171} + + - + \ No newline at end of file From 04a2a88c98679a66c1286af8ae6a161e26ac425c Mon Sep 17 00:00:00 2001 From: Raymond Chandler Date: Thu, 28 Feb 2013 14:32:50 -0500 Subject: [PATCH 21/26] FS-5048 --resolve refactored patch applied with author header --- src/mod/applications/mod_curl/mod_curl.c | 459 ++++++++++++++++++++++- 1 file changed, 458 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_curl/mod_curl.c b/src/mod/applications/mod_curl/mod_curl.c index d9bb285522..b1a5cb0393 100644 --- a/src/mod/applications/mod_curl/mod_curl.c +++ b/src/mod/applications/mod_curl/mod_curl.c @@ -24,6 +24,7 @@ * Contributor(s): * * Rupa Schomaker + * Yossi Neiman * * mod_curl.c -- API for performing http queries * @@ -32,6 +33,7 @@ #include #include #include +#include /* Prototypes */ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_curl_shutdown); @@ -45,10 +47,19 @@ SWITCH_MODULE_DEFINITION(mod_curl, mod_curl_load, mod_curl_shutdown, NULL); static char *SYNTAX = "curl url [headers|json|content-type ] [get|head|post [post_data]]"; +#define HTTP_SENDFILE_ACK_EVENT "curl_sendfile::ack" +#define HTTP_SENDFILE_RESPONSE_SIZE 32768 + static struct { switch_memory_pool_t *pool; } globals; +typedef enum { + CSO_NONE = (1 << 0), + CSO_EVENT = (1 << 1), + CSO_STREAM = (1 << 2) +} curlsendfile_output_t; + struct http_data_obj { switch_stream_handle_t stream; switch_size_t bytes; @@ -61,6 +72,29 @@ struct http_data_obj { }; typedef struct http_data_obj http_data_t; +struct http_sendfile_data_obj { + switch_memory_pool_t *pool; + switch_file_t *file_handle; + long http_response_code; + char *http_response; + switch_curl_slist_t *headers; + char *mydata; + char *url; + char *identifier_str; + char *filename_element; + char *filename_element_name; + char *extrapost_elements; + switch_CURL *curl_handle; + struct curl_httppost *formpost; + struct curl_httppost *lastptr; + uint8_t flags; /* This is for where to send output of the curl_sendfile commands */ + switch_stream_handle_t *stream; + char *sendfile_response; + switch_size_t sendfile_response_count; +}; + +typedef struct http_sendfile_data_obj http_sendfile_data_t; + struct callback_obj { switch_memory_pool_t *pool; char *name; @@ -230,6 +264,426 @@ static char *print_json(switch_memory_pool_t *pool, http_data_t *http_data) return data; } +static size_t http_sendfile_response_callback(void *ptr, size_t size, size_t nmemb, void *data) +{ + register unsigned int realsize = (unsigned int) (size * nmemb); + http_sendfile_data_t *http_data = data; + + if(http_data->sendfile_response_count + realsize < HTTP_SENDFILE_RESPONSE_SIZE) + { + // I'm not sure why we need the (realsize+1) here, but it truncates the data by 1 char if I don't do this + switch_copy_string(&http_data->sendfile_response[http_data->sendfile_response_count], ptr, (realsize+1)); + http_data->sendfile_response_count += realsize; + } + else + { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Response page is more than %d bytes long, truncating.\n", HTTP_SENDFILE_RESPONSE_SIZE); + realsize = 0; + } + + return realsize; +} + +// This function and do_lookup_url functions could possibly be merged together. Or at least have do_lookup_url call this up as part of the initialization routine as it is a subset of the operations. +static void http_sendfile_initialize_curl(http_sendfile_data_t *http_data) +{ + http_data->curl_handle = curl_easy_init(); + + if (!strncasecmp(http_data->url, "https", 5)) + { + curl_easy_setopt(http_data->curl_handle, CURLOPT_SSL_VERIFYPEER, 0); + curl_easy_setopt(http_data->curl_handle, CURLOPT_SSL_VERIFYHOST, 0); + } + + /* From the docs: + * Optionally, you can provide data to POST using the CURLOPT_READFUNCTION and CURLOPT_READDATA + * options but then you must make sure to not set CURLOPT_POSTFIELDS to anything but NULL + * curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDSIZE, strlen(data)); + * curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDS, (void *) data); + */ + + // switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Post data: %s\n", data); + + curl_easy_setopt(http_data->curl_handle, CURLOPT_FOLLOWLOCATION, 1); + curl_easy_setopt(http_data->curl_handle, CURLOPT_MAXREDIRS, 15); + curl_easy_setopt(http_data->curl_handle, CURLOPT_URL, http_data->url); + curl_easy_setopt(http_data->curl_handle, CURLOPT_NOSIGNAL, 1); + curl_easy_setopt(http_data->curl_handle, CURLOPT_USERAGENT, "freeswitch-curl/1.0"); + + http_data->sendfile_response = switch_core_alloc(http_data->pool, sizeof(char) * HTTP_SENDFILE_RESPONSE_SIZE); + memset(http_data->sendfile_response, 0, sizeof(char) * HTTP_SENDFILE_RESPONSE_SIZE); + + // Set the function where we will copy out the response body data to + curl_easy_setopt(http_data->curl_handle, CURLOPT_WRITEFUNCTION, http_sendfile_response_callback); + curl_easy_setopt(http_data->curl_handle, CURLOPT_WRITEDATA, (void *) http_data); + + /* Add the file to upload as a POST form field */ + curl_formadd(&http_data->formpost, &http_data->lastptr, CURLFORM_COPYNAME, http_data->filename_element_name, CURLFORM_FILE, http_data->filename_element, CURLFORM_END); + + if(!zstr(http_data->extrapost_elements)) + { + // Now to parse out the individual post element/value pairs + char *argv[64] = { 0 }; // Probably don't need 64 but eh does it really use that much memory? + uint32_t argc = 0; + char *temp_extrapost = switch_core_strdup(http_data->pool, http_data->extrapost_elements); + + argc = switch_separate_string(temp_extrapost, '&', argv, (sizeof(argv) / sizeof(argv[0]))); + + for(uint8_t count = 0; count < argc; count++) + { + char *argv2[4] = { 0 }; + uint32_t argc2 = switch_separate_string(argv[count], '=', argv2, (sizeof(argv2) / sizeof(argv2[0]))); + + if(argc2 == 2) + curl_formadd(&http_data->formpost, &http_data->lastptr, CURLFORM_COPYNAME, argv2[0], CURLFORM_COPYCONTENTS, argv2[1], CURLFORM_END); + } + } + + /* Fill in the submit field too, even if this isn't really needed */ + curl_formadd(&http_data->formpost, &http_data->lastptr, CURLFORM_COPYNAME, "submit", CURLFORM_COPYCONTENTS, "or_die", CURLFORM_END); + + /* what URL that receives this POST */ + curl_easy_setopt(http_data->curl_handle, CURLOPT_HTTPPOST, http_data->formpost); + + // This part actually fires off the curl, captures the HTTP response code, and then frees up the handle. + curl_easy_perform(http_data->curl_handle); + curl_easy_getinfo(http_data->curl_handle, CURLINFO_RESPONSE_CODE, &http_data->http_response_code); + + curl_easy_cleanup(http_data->curl_handle); + + // Clean up the form data from POST + curl_formfree(http_data->formpost); +} + +static switch_status_t http_sendfile_test_file_open(http_sendfile_data_t *http_data, switch_event_t *event) +{ + switch_status_t retval = switch_file_open(&http_data->file_handle, http_data->filename_element, SWITCH_FOPEN_READ, SWITCH_FPROT_UREAD,http_data->pool); + if(retval != SWITCH_STATUS_SUCCESS) + { + if(switch_test_flag(http_data, CSO_EVENT)) + { + if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, HTTP_SENDFILE_ACK_EVENT) == SWITCH_STATUS_SUCCESS) + { + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Command-Execution-Identifier", http_data->identifier_str); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Filename", http_data->filename_element); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File-Access", "Failure"); + switch_event_fire(&event); + switch_event_destroy(&event); + } + else + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to create event to notify of failure to open file %s\n", http_data->filename_element); + } + + if((switch_test_flag(http_data, CSO_STREAM) || switch_test_flag(http_data, CSO_NONE)) && http_data->stream) + http_data->stream->write_function(http_data->stream, "-Err Unable to open file %s\n", http_data->filename_element); + + if(switch_test_flag(http_data, CSO_NONE) && !http_data->stream) + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "curl_sendfile: Unable to open file %s\n", http_data->filename_element); + } + + return retval; +} + +static void http_sendfile_success_report(http_sendfile_data_t *http_data, switch_event_t *event) +{ + if(switch_test_flag(http_data, CSO_EVENT)) + { + if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, HTTP_SENDFILE_ACK_EVENT) == SWITCH_STATUS_SUCCESS) + { + char *code_as_string = switch_core_alloc(http_data->pool, 16); + memset(code_as_string, 0, 16); + switch_snprintf(code_as_string, 16, "%d", http_data->http_response_code); + + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Command-Execution-Identifier", http_data->identifier_str); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Filename", http_data->filename_element); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "File-Access", "Success"); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "REST-HTTP-Code", code_as_string); + switch_event_add_body(event, "%s", http_data->sendfile_response); + + switch_event_fire(&event); + switch_event_destroy(&event); + } + else + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to create a event to report on success of curl_sendfile.\n"); + } + + if((switch_test_flag(http_data, CSO_STREAM) || switch_test_flag(http_data, CSO_NONE) || switch_test_flag(http_data, CSO_EVENT)) && http_data->stream) + { + if(http_data->http_response_code == 200) + http_data->stream->write_function(http_data->stream, "+200 Ok\n"); + else + http_data->stream->write_function(http_data->stream, "-%d Err\n", http_data->http_response_code); + + if(http_data->sendfile_response_count && switch_test_flag(http_data, CSO_STREAM)) + http_data->stream->write_function(http_data->stream, "%s\n", http_data->sendfile_response); + } + + if(switch_test_flag(http_data, CSO_NONE) && !http_data->stream) + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Sending of file %s to url %s resulted with code %lu\n", http_data->filename_element, http_data->url, http_data->http_response_code); +} + +#define HTTP_SENDFILE_APP_SYNTAX " [nopost|postparam1=foo&postparam2=bar... [event|none [identifier ]]]" +SWITCH_STANDARD_APP(http_sendfile_app_function) +{ + switch_event_t *event = NULL; + char *argv[10] = { 0 }, *argv2[10] = { 0 }; + int argc = 0, argc2 = 0; + http_sendfile_data_t *http_data = NULL; + switch_memory_pool_t *pool = switch_core_session_get_pool(session); + switch_channel_t *channel = switch_core_session_get_channel(session); + + assert(channel != NULL); + + http_data = switch_core_alloc(pool, sizeof(http_sendfile_data_t)); + memset(http_data, 0, sizeof(http_sendfile_data_t)); + + http_data->pool = pool; + + // Either the parameters are provided on the data="" or else they are provided as chanvars. No mixing & matching + if(!zstr(data)) + { + http_data->mydata = switch_core_strdup(http_data->pool, data); + + if ((argc = switch_separate_string(http_data->mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) + { + uint8_t i = 0; + + if (argc < 2 || argc > 5) + goto http_sendfile_app_usage; + + http_data->url = switch_core_strdup(http_data->pool, argv[i++]); + + switch_url_decode(argv[i]); + argc2 = switch_separate_string(argv[i++], '=', argv2, (sizeof(argv2) / sizeof(argv2[0]))); + + if(argc2 == 2) + { + http_data->filename_element_name = switch_core_strdup(pool, argv2[0]); + http_data->filename_element = switch_core_strdup(pool, argv2[1]); + } + else + goto http_sendfile_app_usage; + + if(argc > 2) + { + http_data->extrapost_elements = switch_core_strdup(pool, argv[i++]); + + if(argc > 3) + { + if(!strncasecmp(argv[i++], "event", 5)) + { + switch_set_flag(http_data, CSO_EVENT); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Setting output to event handler.\n"); + } + + if(argc > 4) + { + if(strncasecmp(argv[i], "uuid", 4)) + http_data->identifier_str = switch_core_session_get_uuid(session); + else + http_data->identifier_str = switch_core_strdup(pool, argv[i++]); + } + } + } + } + } + else + { + char *send_output = (char *) switch_channel_get_variable_dup(channel, "curl_sendfile_report", SWITCH_TRUE, -1); + char *identifier = (char *) switch_channel_get_variable_dup(channel, "curl_sendfile_identifier", SWITCH_TRUE, -1); + + http_data->url = (char *) switch_channel_get_variable_dup(channel, "curl_sendfile_url", SWITCH_TRUE, -1); + http_data->filename_element_name = (char *) switch_channel_get_variable_dup(channel, "curl_sendfile_filename_element", SWITCH_TRUE, -1); + http_data->filename_element = (char *) switch_channel_get_variable_dup(channel, "curl_sendfile_filename", SWITCH_TRUE, -1); + http_data->extrapost_elements = (char *) switch_channel_get_variable_dup(channel, "curl_sendfile_extrapost", SWITCH_TRUE, -1); + + + if(zstr(http_data->url) || zstr(http_data->filename_element) || zstr(http_data->filename_element_name)) + goto http_sendfile_app_usage; + + if(!zstr(send_output)) + { + if(!strncasecmp(send_output, "event", 5)) + switch_set_flag(http_data, CSO_EVENT); + else if(!strncasecmp(send_output, "none", 4)) + switch_set_flag(http_data, CSO_NONE); + else + { + switch_set_flag(http_data, CSO_NONE); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Invalid parameter %s specified for curl_sendfile_report. Setting default of 'none'.\n", send_output); + } + } + else + { + switch_set_flag(http_data, CSO_NONE); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "No parameter specified for curl_sendfile_report. Setting default of 'none'.\n"); + } + + if(!zstr(identifier)) + { + if(!strncasecmp(identifier, "uuid", 4)) + http_data->identifier_str = switch_core_session_get_uuid(session); + else if(!zstr(identifier)) + http_data->identifier_str = identifier; + } + } + + switch_url_decode(http_data->filename_element_name); + switch_url_decode(http_data->filename_element); + + // We need to check the file now... + if(http_sendfile_test_file_open(http_data, event) != SWITCH_STATUS_SUCCESS) + goto http_sendfile_app_done; + + switch_file_close(http_data->file_handle); + + switch_url_decode(http_data->url); + + http_sendfile_initialize_curl(http_data); + + http_sendfile_success_report(http_data, event); + + goto http_sendfile_app_done; + +http_sendfile_app_usage: + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failure: Usage: \nOr you can set chanvars curl_senfile_url, curl_sendfile_filename_element, curl_sendfile_filename, curl_sendfile_extrapost\n", HTTP_SENDFILE_APP_SYNTAX); + +http_sendfile_app_done: + if (http_data && http_data->headers) + { + switch_curl_slist_free_all(http_data->headers); + } + + return; +} + +#define HTTP_SENDFILE_SYNTAX " [nopost|postparam1=foo&postparam2=bar... [event|stream|both|none [identifier ]]]" +SWITCH_STANDARD_API(http_sendfile_function) +{ + switch_status_t status; + switch_bool_t new_memory_pool = SWITCH_FALSE; + char *argv[10] = { 0 }, *argv2[10] = { 0 }; + int argc = 0, argc2 = 0; + http_sendfile_data_t *http_data = NULL; + switch_memory_pool_t *pool = NULL; + switch_event_t *event = NULL; + + if(zstr(cmd)) + { + status = SWITCH_STATUS_SUCCESS; + goto http_sendfile_usage; + } + if(session) + { + pool = switch_core_session_get_pool(session); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "We're using a session's memory pool for curl_sendfile. Maybe we should consider always making a new memory pool?\n"); + } + else + { + switch_core_new_memory_pool(&pool); + new_memory_pool = SWITCH_TRUE; // So we can properly destroy the memory pool + } + + http_data = switch_core_alloc(pool, sizeof(http_sendfile_data_t)); + memset(http_data, 0, sizeof(http_sendfile_data_t)); + + http_data->mydata = switch_core_strdup(pool, cmd); + http_data->stream = stream; + http_data->pool = pool; + + // stream->write_function(stream,"\ncmd is %s\nmydata is %s\n", cmd, http_data->mydata); + + if ((argc = switch_separate_string(http_data->mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) + { + uint8_t i = 0; + + if (argc < 2 || argc > 5) + { + status = SWITCH_STATUS_SUCCESS; + goto http_sendfile_usage; + } + + http_data->url = switch_core_strdup(pool, argv[i++]); + + switch_url_decode(argv[i]); + argc2 = switch_separate_string(argv[i++], '=', argv2, (sizeof(argv2) / sizeof(argv2[0]))); + + if(argc2 == 2) + { + http_data->filename_element_name = switch_core_strdup(pool, argv2[0]); + http_data->filename_element = switch_core_strdup(pool, argv2[1]); + } + else + goto http_sendfile_usage; + + switch_url_decode(http_data->filename_element_name); + switch_url_decode(http_data->filename_element); + + if(argc > 2) + { + http_data->extrapost_elements = switch_core_strdup(pool, argv[i++]); + + if(argc > 3) + { + if(!strncasecmp(argv[i], "event", 5)) + switch_set_flag(http_data, CSO_EVENT); + else if(!strncasecmp(argv[i], "stream", 6)) + switch_set_flag(http_data, CSO_STREAM); + else if(!strncasecmp(argv[i], "both", 4)) + { + switch_set_flag(http_data, CSO_EVENT); + switch_set_flag(http_data, CSO_STREAM); + } + else + { + if(strncasecmp(argv[i], "none", 4)) + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Invalid 4th parameter set for curl_sendfile. Defaulting to \"none\"\n"); + + switch_set_flag(http_data, CSO_NONE); + } + + i++; + + if(argc > 4) + http_data->identifier_str = switch_core_strdup(pool, argv[i++]); + } + } + } + + // We need to check the file now... + if(http_sendfile_test_file_open(http_data, event) != SWITCH_STATUS_SUCCESS) + goto http_sendfile_done; + + + switch_file_close(http_data->file_handle); + + switch_url_decode(http_data->url); + + http_sendfile_initialize_curl(http_data); + + http_sendfile_success_report(http_data, event); + + status = SWITCH_STATUS_SUCCESS; + goto http_sendfile_done; + +http_sendfile_usage: + stream->write_function(stream, "-USAGE\n%s\n", HTTP_SENDFILE_SYNTAX); + goto http_sendfile_done; + +http_sendfile_done: + if (http_data && http_data->headers) + { + switch_curl_slist_free_all(http_data->headers); + } + + if (new_memory_pool == SWITCH_TRUE) + { + switch_core_destroy_memory_pool(&pool); + } + + return status; +} + SWITCH_STANDARD_APP(curl_app_function) { switch_status_t status = SWITCH_STATUS_SUCCESS; @@ -430,7 +884,10 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_curl_load) SWITCH_ADD_API(api_interface, "curl", "curl API", curl_function, SYNTAX); SWITCH_ADD_APP(app_interface, "curl", "Perform a http request", "Perform a http request", curl_app_function, SYNTAX, SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC); - + + SWITCH_ADD_API(api_interface, "curl_sendfile", "curl_sendfile API", http_sendfile_function, HTTP_SENDFILE_SYNTAX); + SWITCH_ADD_APP(app_interface, "curl_sendfile", "Send a file and some optional post variables via HTTP", "Send a file and some optional post variables via HTTP", + http_sendfile_app_function, HTTP_SENDFILE_APP_SYNTAX, SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC); /* indicate that the module should continue to be loaded */ return SWITCH_STATUS_SUCCESS; } From a7577d7ee167dc7dfeeeb1347047f38b8d19f353 Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Thu, 28 Feb 2013 14:30:56 -0600 Subject: [PATCH 22/26] FS-5048 trivial build for windows --- src/mod/applications/mod_curl/mod_curl.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_curl/mod_curl.c b/src/mod/applications/mod_curl/mod_curl.c index b1a5cb0393..b68af2276b 100644 --- a/src/mod/applications/mod_curl/mod_curl.c +++ b/src/mod/applications/mod_curl/mod_curl.c @@ -33,7 +33,12 @@ #include #include #include +#ifdef _MSC_VER +#include +#else #include +#endif + /* Prototypes */ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_curl_shutdown); @@ -287,6 +292,7 @@ static size_t http_sendfile_response_callback(void *ptr, size_t size, size_t nme // This function and do_lookup_url functions could possibly be merged together. Or at least have do_lookup_url call this up as part of the initialization routine as it is a subset of the operations. static void http_sendfile_initialize_curl(http_sendfile_data_t *http_data) { + uint8_t count; http_data->curl_handle = curl_easy_init(); if (!strncasecmp(http_data->url, "https", 5)) @@ -329,7 +335,7 @@ static void http_sendfile_initialize_curl(http_sendfile_data_t *http_data) argc = switch_separate_string(temp_extrapost, '&', argv, (sizeof(argv) / sizeof(argv[0]))); - for(uint8_t count = 0; count < argc; count++) + for(count = 0; count < argc; count++) { char *argv2[4] = { 0 }; uint32_t argc2 = switch_separate_string(argv[count], '=', argv2, (sizeof(argv2) / sizeof(argv2[0]))); From 86c1dbee2f92bd4ebf03517ea9cff5927ab83231 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 28 Feb 2013 14:52:26 -0600 Subject: [PATCH 23/26] FS-5136 set ringback and bridge_early_media=true and it should fall to playing the ringback when the 180 hits --- src/switch_ivr_originate.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index 4361d8df33..e7a25af109 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -1273,6 +1273,11 @@ static switch_status_t setup_ringback(originate_global_t *oglobals, originate_st switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(oglobals->session), SWITCH_LOG_DEBUG, "Play Ringback File [%s]\n", ringback_data); + if (switch_test_flag((&ringback->fhb), SWITCH_FILE_OPEN)) { + switch_core_file_close(&ringback->fhb); + } + + ringback->fhb.channels = read_codec->implementation->number_of_channels; ringback->fhb.samplerate = read_codec->implementation->actual_samples_per_second; if (switch_core_file_open(&ringback->fhb, @@ -1690,12 +1695,13 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void * int32_t sample; switch_core_session_t *session; switch_codec_t *read_codec, read_codecs[MAX_PEERS] = { {0} }; - int i, x, ready = 0, answered = 0; + int i, x, ready = 0, answered = 0, ring_ready = 0; int16_t *data; uint32_t datalen = 0; switch_status_t status; switch_frame_t *read_frame = NULL; + for (i = 0; i < MAX_PEERS && (session = state->originate_status[i].peer_session); i++) { originate_status[i].peer_session = session; switch_core_session_read_lock(session); @@ -1712,6 +1718,12 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void * if (switch_channel_media_ready(channel)) { ready++; + if (switch_channel_test_flag(channel, CF_RING_READY)) { + ring_ready = 1; + state->oglobals->bridge_early_media = -1; + state->oglobals->ignore_early_media = 1; + } + if (switch_channel_test_flag(channel, CF_ANSWERED)) { answered++; } @@ -1766,7 +1778,7 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void * switch_mutex_unlock(state->mutex); } - if (!ready || answered) { + if (!ready || answered || ring_ready) { break; } } @@ -1780,7 +1792,9 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void * switch_core_session_rwunlock(session); } - state->oglobals->early_ok = 1; + if (!ring_ready) { + state->oglobals->early_ok = 1; + } return NULL; } @@ -3084,7 +3098,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } } write_frame.datalen = (uint32_t) (ringback.asis ? olen : olen * 2); -write_frame.samples = (uint32_t) olen; + write_frame.samples = (uint32_t) olen; } else if (ringback.audio_buffer) { if ((write_frame.datalen = (uint32_t) switch_buffer_read_loop(ringback.audio_buffer, From aa8f7c975f08c10c2735f92ac6ffe39f1fbc7be8 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 28 Feb 2013 18:44:38 -0600 Subject: [PATCH 24/26] fix bridge_early_media in transcoding situation --- src/switch_ivr_originate.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index e7a25af109..ad70f150fc 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -1229,7 +1229,7 @@ static switch_status_t setup_ringback(originate_global_t *oglobals, originate_st } else { switch_core_session_get_read_impl(oglobals->session, &peer_read_impl); } - + if (switch_core_codec_init(write_codec, "L16", NULL, @@ -1694,13 +1694,17 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void * int16_t mux_data[SWITCH_RECOMMENDED_BUFFER_SIZE / 2] = { 0 }; int32_t sample; switch_core_session_t *session; - switch_codec_t *read_codec, read_codecs[MAX_PEERS] = { {0} }; + switch_codec_t read_codecs[MAX_PEERS] = { {0} }; int i, x, ready = 0, answered = 0, ring_ready = 0; int16_t *data; uint32_t datalen = 0; switch_status_t status; switch_frame_t *read_frame = NULL; + switch_codec_implementation_t read_impl = { 0 }; + if (state->oglobals->session) { + switch_core_session_get_read_impl(state->oglobals->session, &read_impl); + } for (i = 0; i < MAX_PEERS && (session = state->originate_status[i].peer_session); i++) { originate_status[i].peer_session = session; @@ -1730,19 +1734,17 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void * if (!state->ringback->asis) { if (!switch_core_codec_ready((&read_codecs[i]))) { - read_codec = switch_core_session_get_read_codec(session); - if (switch_core_codec_init(&read_codecs[i], "L16", NULL, - read_codec->implementation->actual_samples_per_second, - read_codec->implementation->microseconds_per_packet / 1000, + read_impl.actual_samples_per_second, + read_impl.microseconds_per_packet / 1000, 1, SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Codec Error!\n"); - } else { - switch_core_session_set_read_codec(session, &read_codecs[i]); } + switch_core_session_set_read_codec(session, NULL); + switch_core_session_set_read_codec(session, &read_codecs[i]); } status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0); if (SWITCH_READ_ACCEPTABLE(status)) { @@ -1786,6 +1788,7 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void * for (i = 0; i < MAX_PEERS && (session = originate_status[i].peer_session); i++) { if (switch_core_codec_ready((&read_codecs[i]))) { + switch_core_session_set_read_codec(session, NULL); switch_core_codec_destroy(&read_codecs[i]); } switch_core_session_reset(session, SWITCH_FALSE, SWITCH_TRUE); From 3d2457eddd5b2ccc652bf81dbebfa6db84f64bdc Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 1 Mar 2013 09:29:47 -0600 Subject: [PATCH 25/26] FS-5120 please update and test this version --- src/switch_rtp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 88848dd777..fee2f95416 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -1597,6 +1597,14 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_udptl_mode(switch_rtp_t *rtp_session) { switch_socket_t *sock; + if (!switch_rtp_ready(rtp_session)) { + return SWITCH_STATUS_FALSE; + } + + if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_PROXY_MEDIA)) { + ping_socket(rtp_session); + } + READ_INC(rtp_session); WRITE_INC(rtp_session); From 790abe6b0f5beec3ad9d38717a97b722b39d96ac Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 1 Mar 2013 11:40:13 -0600 Subject: [PATCH 26/26] bump --- configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 0c83d77d1d..99f88fd339 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.3.13b], bugs@freeswitch.org) +AC_INIT([freeswitch], [1.3.14b], bugs@freeswitch.org) AC_SUBST(SWITCH_VERSION_MAJOR, [1]) AC_SUBST(SWITCH_VERSION_MINOR, [3]) -AC_SUBST(SWITCH_VERSION_MICRO, [13b]) +AC_SUBST(SWITCH_VERSION_MICRO, [14b]) AC_SUBST(SWITCH_VERSION_REVISION, []) AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, [])