From 20194286a492e5a3d4c3bcd46c14d5d7d5a52da3 Mon Sep 17 00:00:00 2001 From: Mathieu Parent Date: Fri, 25 Jun 2010 01:05:43 +0200 Subject: [PATCH 01/62] Skinny: correct early media and answer - SWITCH_MESSAGE_INDICATE_DISPLAY was missing a "break" statement - handle not responding device (cancels early media or answer) - don't send messages when listener is not ready (fix rare crashes) --- src/mod/endpoints/mod_skinny/mod_skinny.c | 36 ++++++++++--------- .../endpoints/mod_skinny/skinny_protocol.c | 20 +++++++---- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/src/mod/endpoints/mod_skinny/mod_skinny.c b/src/mod/endpoints/mod_skinny/mod_skinny.c index 63900dcc37..335edaaa6f 100644 --- a/src/mod/endpoints/mod_skinny/mod_skinny.c +++ b/src/mod/endpoints/mod_skinny/mod_skinny.c @@ -957,10 +957,16 @@ switch_status_t channel_answer_channel(switch_core_session_t *session) switch_channel_get_variable(channel, "skinny_device_name"), atoi(switch_channel_get_variable(channel, "skinny_device_instance")), &listener); if (listener) { + int x = 0; skinny_session_start_media(session, listener, atoi(switch_channel_get_variable(channel, "skinny_line_instance"))); /* Wait for media */ while(!switch_test_flag(tech_pvt, TFLAG_IO)) { switch_cond_next(); + if (++x > 1000) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "Wait tooo long to answer %s:%s\n", + switch_channel_get_variable(channel, "skinny_device_name"), switch_channel_get_variable(channel, "skinny_device_instance")); + return SWITCH_STATUS_FALSE; + } } } else { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "Unable to find listener to answer %s:%s\n", @@ -976,28 +982,26 @@ switch_status_t channel_receive_message(switch_core_session_t *session, switch_c switch (msg->message_id) { case SWITCH_MESSAGE_INDICATE_ANSWER: - { - switch_clear_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA); - channel_answer_channel(session); - } - break; + switch_clear_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA); + return channel_answer_channel(session); + case SWITCH_MESSAGE_INDICATE_DISPLAY: - { - skinny_session_send_call_info_all(session); - } + skinny_session_send_call_info_all(session); + return SWITCH_STATUS_SUCCESS; + case SWITCH_MESSAGE_INDICATE_PROGRESS: - { - if (!switch_test_flag(tech_pvt, TFLAG_EARLY_MEDIA)) { - /* early media */ - switch_set_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA); - channel_answer_channel(session); - } + if (!switch_test_flag(tech_pvt, TFLAG_EARLY_MEDIA)) { + /* early media */ + switch_set_flag_locked(tech_pvt, TFLAG_EARLY_MEDIA); + return channel_answer_channel(session); } + return SWITCH_STATUS_SUCCESS; + default: - break; + return SWITCH_STATUS_SUCCESS; + } - return SWITCH_STATUS_SUCCESS; } /* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines diff --git a/src/mod/endpoints/mod_skinny/skinny_protocol.c b/src/mod/endpoints/mod_skinny/skinny_protocol.c index c71b7333da..9486c5c869 100644 --- a/src/mod/endpoints/mod_skinny/skinny_protocol.c +++ b/src/mod/endpoints/mod_skinny/skinny_protocol.c @@ -914,13 +914,19 @@ switch_status_t skinny_perform_send_reply(listener_t *listener, const char *file len = reply->length+8; ptr = (char *) reply; - switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_DEBUG, - "Sending %s (type=%x,length=%d) to %s:%d.\n", - skinny_message_type2str(reply->type), reply->type, reply->length, - listener->device_name, listener->device_instance); - switch_socket_send(listener->sock, ptr, &len); - - return SWITCH_STATUS_SUCCESS; + if (listener_is_ready(listener)) { + switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_DEBUG, + "Sending %s (type=%x,length=%d) to %s:%d.\n", + skinny_message_type2str(reply->type), reply->type, reply->length, + listener->device_name, listener->device_instance); + return switch_socket_send(listener->sock, ptr, &len); + } else { + switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, SWITCH_LOG_WARNING, + "Not sending %s (type=%x,length=%d) to %s:%d while not ready.\n", + skinny_message_type2str(reply->type), reply->type, reply->length, + listener->device_name, listener->device_instance); + return SWITCH_STATUS_FALSE; + } } /* For Emacs: From 40578724929f14d85714b9a70eb96771b868ddde Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Wed, 23 Jun 2010 12:29:47 -0400 Subject: [PATCH 02/62] freetdm: no need for hw dtmf events on startup --- libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c b/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c index 352d9b1534..539d411884 100644 --- a/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c +++ b/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c @@ -274,11 +274,8 @@ static unsigned wp_open_range(ftdm_span_t *span, unsigned spanno, unsigned start err = sangoma_tdm_get_hw_dtmf(chan->sockfd, &tdm_api); if (err > 0) { - err = sangoma_tdm_enable_dtmf_events(chan->sockfd, &tdm_api); - if (err == 0) { - ftdm_channel_set_feature(chan, FTDM_CHANNEL_FEATURE_DTMF_DETECT); - dtmf = "hardware"; - } + ftdm_channel_set_feature(chan, FTDM_CHANNEL_FEATURE_DTMF_DETECT); + dtmf = "hardware"; } } From fd0191049c65203c15ba1ca34dc9fceea8750e03 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Wed, 23 Jun 2010 15:52:11 -0400 Subject: [PATCH 03/62] freetdm: disable dtmf on demand based on dial plan variable freetdm_disable_dtmf --- libs/freetdm/mod_freetdm/mod_freetdm.c | 40 +++++++++++++++++--------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index 268ee0da60..be48409376 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -973,6 +973,9 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_SET_PRE_BUFFER_SIZE, &tmp); } } + if ((var = switch_channel_get_variable(channel, "freetdm_disable_dtmf"))) { + ftdm_channel_command(tech_pvt->ftdmchan, FTDM_COMMAND_DISABLE_DTMF_DETECT, NULL); + } } break; case SWITCH_MESSAGE_INDICATE_UUID_CHANGE: @@ -1452,6 +1455,24 @@ static FIO_SIGNAL_CB_FUNCTION(on_common_signal) return FTDM_BREAK; } +static void ftdm_enable_channel_dtmf(ftdm_channel_t *fchan, switch_channel_t *channel) +{ + if (channel) { + const char *var; + if ((var = switch_channel_get_variable(channel, "freetdm_disable_dtmf"))) { + if (switch_true(var)) { + ftdm_channel_command(fchan, FTDM_COMMAND_DISABLE_DTMF_DETECT, NULL); + ftdm_log(FTDM_LOG_INFO, "DTMF detection disabled in channel %d:%d\n", ftdm_channel_get_id(fchan), ftdm_channel_get_span_id(fchan)); + return; + } + } + /* the variable is not present or has a negative value then proceed to enable DTMF ... */ + } + if (ftdm_channel_command(fchan, FTDM_COMMAND_ENABLE_DTMF_DETECT, NULL) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "Failed to enable DTMF detection in channel %d:%d\n", ftdm_channel_get_id(fchan), ftdm_channel_get_span_id(fchan)); + } +} + static FIO_SIGNAL_CB_FUNCTION(on_fxo_signal) { switch_core_session_t *session = NULL; @@ -1497,6 +1518,7 @@ static FIO_SIGNAL_CB_FUNCTION(on_fxo_signal) if ((session = ftdm_channel_get_session(sigmsg->channel, 0))) { channel = switch_core_session_get_channel(session); switch_channel_mark_answered(channel); + ftdm_enable_channel_dtmf(sigmsg->channel, channel); switch_core_session_rwunlock(session); } } @@ -1541,6 +1563,7 @@ static FIO_SIGNAL_CB_FUNCTION(on_fxs_signal) if ((session = ftdm_channel_get_session(sigmsg->channel, 0))) { channel = switch_core_session_get_channel(session); switch_channel_mark_answered(channel); + ftdm_enable_channel_dtmf(sigmsg->channel, channel); switch_core_session_rwunlock(session); } } @@ -1837,12 +1860,9 @@ static FIO_SIGNAL_CB_FUNCTION(on_r2_signal) case FTDM_SIGEVENT_UP: { if ((session = ftdm_channel_get_session(sigmsg->channel, 0))) { - ftdm_tone_type_t tt = FTDM_TONE_DTMF; channel = switch_core_session_get_channel(session); switch_channel_mark_answered(channel); - if (ftdm_channel_command(sigmsg->channel, FTDM_COMMAND_ENABLE_DTMF_DETECT, &tt) != FTDM_SUCCESS) { - ftdm_log(FTDM_LOG_ERROR, "Failed to enable DTMF detection in R2 channel %d:%d\n", spanid, chanid); - } + ftdm_enable_channel_dtmf(sigmsg->channel, channel); switch_core_session_rwunlock(session); } } @@ -1879,12 +1899,7 @@ static FIO_SIGNAL_CB_FUNCTION(on_clear_channel_signal) switch(sigmsg->event_id) { case FTDM_SIGEVENT_START: { - ftdm_tone_type_t tt = FTDM_TONE_DTMF; - - if (ftdm_channel_command(sigmsg->channel, FTDM_COMMAND_ENABLE_DTMF_DETECT, &tt) != FTDM_SUCCESS) { - ftdm_log(FTDM_LOG_ERROR, "TONE ERROR\n"); - } - + ftdm_enable_channel_dtmf(sigmsg->channel, NULL); return ftdm_channel_from_event(sigmsg, &session); } break; @@ -1905,12 +1920,9 @@ static FIO_SIGNAL_CB_FUNCTION(on_clear_channel_signal) case FTDM_SIGEVENT_UP: { if ((session = ftdm_channel_get_session(sigmsg->channel, 0))) { - ftdm_tone_type_t tt = FTDM_TONE_DTMF; channel = switch_core_session_get_channel(session); switch_channel_mark_answered(channel); - if (ftdm_channel_command(sigmsg->channel, FTDM_COMMAND_ENABLE_DTMF_DETECT, &tt) != FTDM_SUCCESS) { - ftdm_log(FTDM_LOG_ERROR, "TONE ERROR\n"); - } + ftdm_enable_channel_dtmf(sigmsg->channel, channel); switch_core_session_rwunlock(session); } else { const char *uuid = ftdm_channel_get_uuid(sigmsg->channel, 0); From 29ce4bbdd1290ebf5a0f2a3dc15f4d2f76d2f271 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Wed, 23 Jun 2010 20:50:12 -0400 Subject: [PATCH 04/62] freetdm: add span to trace logging --- libs/freetdm/mod_freetdm/mod_freetdm.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index be48409376..cc2592790f 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -3434,6 +3434,7 @@ SWITCH_STANDARD_API(ft_function) char tracepath[255]; unsigned i = 0; uint32_t chan_id = 0; + uint32_t span_id = 0; uint32_t chan_count = 0; ftdm_span_t *span = NULL; ftdm_channel_t *chan = NULL; @@ -3454,18 +3455,19 @@ SWITCH_STANDARD_API(ft_function) goto end; } } + span_id = ftdm_span_get_id(span); if (chan_id) { chan = ftdm_span_get_channel(span, chan_id); - snprintf(tracepath, sizeof(tracepath), "%s-in-c%d", argv[1], chan_id); + snprintf(tracepath, sizeof(tracepath), "%s-in-s%dc%d", argv[1], span_id, chan_id); ftdm_channel_command(chan, FTDM_COMMAND_TRACE_INPUT, tracepath); - snprintf(tracepath, sizeof(tracepath), "%s-out-c%d", argv[1], chan_id); + snprintf(tracepath, sizeof(tracepath), "%s-out-s%dc%d", argv[1], span_id, chan_id); ftdm_channel_command(chan, FTDM_COMMAND_TRACE_OUTPUT, tracepath); } else { for (i = 1; i <= chan_count; i++) { chan = ftdm_span_get_channel(span, i); - snprintf(tracepath, sizeof(tracepath), "%s-in-c%d", argv[1], i); + snprintf(tracepath, sizeof(tracepath), "%s-in-s%dc%d", argv[1], span_id, i); ftdm_channel_command(chan, FTDM_COMMAND_TRACE_INPUT, tracepath); - snprintf(tracepath, sizeof(tracepath), "%s-out-c%d", argv[1], i); + snprintf(tracepath, sizeof(tracepath), "%s-out-s%dc%d", argv[1], span_id, i); ftdm_channel_command(chan, FTDM_COMMAND_TRACE_OUTPUT, tracepath); } } From 5afb21b180c3bedc288f53dc4f29545526432004 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Thu, 24 Jun 2010 15:25:58 -0400 Subject: [PATCH 05/62] freetdm: fix io trace file closure --- libs/freetdm/src/ftdm_io.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/freetdm/src/ftdm_io.c b/libs/freetdm/src/ftdm_io.c index abcb3d6fb2..dca616e74b 100644 --- a/libs/freetdm/src/ftdm_io.c +++ b/libs/freetdm/src/ftdm_io.c @@ -2252,9 +2252,9 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_command(ftdm_channel_t *ftdmchan, ftdm_co close(ftdmchan->fds[FTDM_READ_TRACE_INDEX]); ftdmchan->fds[FTDM_READ_TRACE_INDEX] = -1; } - if (ftdmchan->fds[FTDM_READ_TRACE_INDEX] > 0) { - close(ftdmchan->fds[FTDM_READ_TRACE_INDEX]); - ftdmchan->fds[FTDM_READ_TRACE_INDEX] = -1; + if (ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] > 0) { + close(ftdmchan->fds[FTDM_WRITE_TRACE_INDEX]); + ftdmchan->fds[FTDM_WRITE_TRACE_INDEX] = -1; } GOTO_STATUS(done, FTDM_SUCCESS); } From c31abb3ed058a54f054a62c5cb58c23fd83bf1cc Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Thu, 24 Jun 2010 19:48:55 -0400 Subject: [PATCH 06/62] freetdm: re-enable hw dtmf on channel destroy if needed --- .../freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c b/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c index 539d411884..914e53e730 100644 --- a/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c +++ b/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c @@ -1185,6 +1185,19 @@ static FIO_CHANNEL_DESTROY_FUNCTION(wanpipe_channel_destroy) #endif if (ftdmchan->sockfd != FTDM_INVALID_SOCKET) { + /* enable HW DTMF. As odd as it seems. Why enable when the channel is being destroyed and won't be used anymore? + * because that way we can transfer the DTMF state back to the driver, if we're being restarted we will set again + * the FEATURE_DTMF flag and use HW DTMF, if we don't enable here, then on module restart we won't see + * HW DTMF available and will use software */ + if (ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { + wanpipe_tdm_api_t tdm_api; + int err; + memset(&tdm_api, 0, sizeof(tdm_api)); + err = sangoma_tdm_enable_dtmf_events(ftdmchan->sockfd, &tdm_api); + if (err) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Failed enabling Sangoma HW DTMF failed on channel destroy\n"); + } + } sangoma_close(&ftdmchan->sockfd); } From 6914b1c855d53a52e8a730d5217a181866496093 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Fri, 25 Jun 2010 12:11:23 -0400 Subject: [PATCH 07/62] freetdm: improve channel read error logging --- libs/freetdm/src/ftdm_io.c | 8 ++++++++ libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libs/freetdm/src/ftdm_io.c b/libs/freetdm/src/ftdm_io.c index dca616e74b..d813fa5a48 100644 --- a/libs/freetdm/src/ftdm_io.c +++ b/libs/freetdm/src/ftdm_io.c @@ -2911,16 +2911,22 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data if (!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "channel not open"); + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "cannot read from channel that is not open\n"); return FTDM_FAIL; } if (!ftdmchan->fio->read) { snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "method not implemented"); + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "read method not implemented\n"); return FTDM_FAIL; } status = ftdm_raw_read(ftdmchan, data, datalen); + if (status != FTDM_SUCCESS) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "raw I/O read filed\n"); + } + if (status == FTDM_SUCCESS) { if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN) && (ftdmchan->native_codec == FTDM_CODEC_ALAW || ftdmchan->native_codec == FTDM_CODEC_ULAW)) { @@ -2947,6 +2953,7 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data status = codec_func(data, max, datalen); } else { snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); + ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "no codec function to perform transcoding from %d to %d\n", ftdmchan->native_codec, ftdmchan->effective_codec); status = FTDM_FAIL; } } @@ -2979,6 +2986,7 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data *sln++ = alaw_to_linear(*lp++); } else { snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "codec error!"); + ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "invalid effective codec %d\n", ftdmchan->effective_codec); return FTDM_FAIL; } } diff --git a/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c b/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c index 914e53e730..9a8cab4112 100644 --- a/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c +++ b/libs/freetdm/src/ftmod/ftmod_wanpipe/ftmod_wanpipe.c @@ -731,19 +731,23 @@ static FIO_COMMAND_FUNCTION(wanpipe_command) static FIO_READ_FUNCTION(wanpipe_read) { int rx_len = 0; + int myerrno = 0; wp_tdm_api_rx_hdr_t hdrframe; memset(&hdrframe, 0, sizeof(hdrframe)); - rx_len = sangoma_readmsg_tdm(ftdmchan->sockfd, &hdrframe, (int)sizeof(hdrframe), data, (int)*datalen,0); + rx_len = sangoma_readmsg_tdm(ftdmchan->sockfd, &hdrframe, (int)sizeof(hdrframe), data, (int)*datalen, 0); *datalen = rx_len; - if (rx_len == 0 || rx_len == -17) { + if (rx_len == 0) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Read 0 bytes\n"); return FTDM_TIMEOUT; } if (rx_len < 0) { + myerrno = errno; snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "%s", strerror(errno)); + ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Failed to read from sangoma device: %s (%d)\n", strerror(errno), rx_len); return FTDM_FAIL; } From ff1a52ab186455bf1bd2b785c7d31685a569dabf Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 25 Jun 2010 13:19:53 -0500 Subject: [PATCH 08/62] add call_uuid --- src/switch_channel.c | 3 + src/switch_core_sqldb.c | 291 +++++++++++++++++++++---------------- src/switch_ivr_originate.c | 17 +-- 3 files changed, 172 insertions(+), 139 deletions(-) diff --git a/src/switch_channel.c b/src/switch_channel.c index 7eb8bd0c74..9a85d5efbd 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -1761,6 +1761,9 @@ SWITCH_DECLARE(void) switch_channel_event_set_basic_data(switch_channel_t *chann switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Presence-Data", v); } + if ((v = switch_channel_get_variable(channel, "call_uuid"))) { + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Channel-Call-UUID", v); + } if (switch_channel_test_flag(channel, CF_ANSWERED)) { switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Answer-State", "answered"); diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 488fb0748c..71cfd416a9 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -89,7 +89,7 @@ static void sql_close(time_t prune) char *key; switch_mutex_lock(sql_manager.dbh_mutex); - top: + top: locked = 0; for (hi = switch_hash_first(NULL, sql_manager.dbh_hash); hi; hi = switch_hash_next(hi)) { @@ -357,7 +357,7 @@ SWITCH_DECLARE(switch_status_t) _switch_cache_db_get_db_handle(switch_cache_db_h switch_core_hash_insert(sql_manager.dbh_hash, new_dbh->name, new_dbh); } - end: + end: if (new_dbh) new_dbh->last_used = switch_epoch_time_now(NULL); @@ -426,7 +426,7 @@ static switch_status_t switch_cache_db_execute_sql_real(switch_cache_db_handle_t /** OMFG you cruel bastards. Who chooses 64k as a max buffer len for a sql statement, have you ever heard of transactions? - **/ +**/ static switch_status_t switch_cache_db_execute_sql_chunked(switch_cache_db_handle_t *dbh, char *sql, uint32_t chunk_size, char **err) { switch_status_t status = SWITCH_STATUS_FALSE; @@ -567,7 +567,7 @@ SWITCH_DECLARE(char *) switch_cache_db_execute_sql2str(switch_cache_db_handle_t break; } - end: + end: if (dbh->io_mutex) { switch_mutex_unlock(dbh->io_mutex); @@ -634,7 +634,7 @@ SWITCH_DECLARE(switch_status_t) switch_cache_db_persistant_execute_trans(switch_ switch_mutex_lock(dbh->io_mutex); } - again: + again: while (begin_retries > 0) { again = 0; @@ -688,7 +688,7 @@ SWITCH_DECLARE(switch_status_t) switch_cache_db_persistant_execute_trans(switch_ } } - done: + done: switch_cache_db_execute_sql_real(dbh, "COMMIT", NULL); @@ -924,9 +924,13 @@ static void *SWITCH_THREAD_FUNC switch_core_sql_thread(switch_thread_t *thread, return NULL; } +#define MAX_SQL 5 +#define new_sql() switch_assert(sql_idx+1 < MAX_SQL); sql[sql_idx++] + static void core_event_handler(switch_event_t *event) { - char *sql = NULL; + char *sql[MAX_SQL] = { 0 }; + int sql_idx = 0; switch_assert(event); @@ -937,18 +941,18 @@ static void core_event_handler(switch_event_t *event) const char *manager = switch_event_get_header(event, "task-sql_manager"); if (id) { - sql = switch_mprintf("insert into tasks values(%q,'%q','%q',%q, '%q')", - id, - switch_event_get_header_nil(event, "task-desc"), - switch_event_get_header_nil(event, "task-group"), manager ? manager : "0", switch_core_get_variable("hostname") - ); + new_sql() = switch_mprintf("insert into tasks values(%q,'%q','%q',%q, '%q')", + id, + switch_event_get_header_nil(event, "task-desc"), + switch_event_get_header_nil(event, "task-group"), manager ? manager : "0", switch_core_get_variable("hostname") + ); } } break; case SWITCH_EVENT_DEL_SCHEDULE: case SWITCH_EVENT_EXE_SCHEDULE: - sql = switch_mprintf("delete from tasks where task_id=%q and hostname='%q'", - switch_event_get_header_nil(event, "task-id"), switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("delete from tasks where task_id=%q and hostname='%q'", + switch_event_get_header_nil(event, "task-id"), switch_core_get_variable("hostname")); break; case SWITCH_EVENT_RE_SCHEDULE: { @@ -956,48 +960,48 @@ static void core_event_handler(switch_event_t *event) const char *manager = switch_event_get_header(event, "task-sql_manager"); if (id) { - sql = switch_mprintf("update tasks set task_desc='%q',task_group='%q', task_sql_manager=%q where task_id=%q and hostname='%q'", - switch_event_get_header_nil(event, "task-desc"), - switch_event_get_header_nil(event, "task-group"), manager ? manager : "0", id, switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("update tasks set task_desc='%q',task_group='%q', task_sql_manager=%q where task_id=%q and hostname='%q'", + switch_event_get_header_nil(event, "task-desc"), + switch_event_get_header_nil(event, "task-group"), manager ? manager : "0", id, switch_core_get_variable("hostname")); } } break; case SWITCH_EVENT_CHANNEL_DESTROY: - sql = switch_mprintf("delete from channels where uuid='%q' and hostname='%q'", - switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("delete from channels where uuid='%q' and hostname='%q'", + switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); break; case SWITCH_EVENT_CHANNEL_UUID: { - sql = switch_mprintf("update channels set uuid='%q' where uuid='%q' and hostname='%q';" - "update calls set caller_uuid='%q' where caller_uuid='%q' and hostname='%q';" - "update calls set callee_uuid='%q' where callee_uuid='%q' and hostname='%q'", - switch_event_get_header_nil(event, "unique-id"), - switch_event_get_header_nil(event, "old-unique-id"), - switch_core_get_variable("hostname"), - switch_event_get_header_nil(event, "unique-id"), - switch_event_get_header_nil(event, "old-unique-id"), - switch_core_get_variable("hostname"), - switch_event_get_header_nil(event, "unique-id"), - switch_event_get_header_nil(event, "old-unique-id"), switch_core_get_variable("hostname") - ); + new_sql() = switch_mprintf("update channels set uuid='%q' where uuid='%q' and hostname='%q';" + "update calls set caller_uuid='%q' where caller_uuid='%q' and hostname='%q';" + "update calls set callee_uuid='%q' where callee_uuid='%q' and hostname='%q'", + switch_event_get_header_nil(event, "unique-id"), + switch_event_get_header_nil(event, "old-unique-id"), + switch_core_get_variable("hostname"), + switch_event_get_header_nil(event, "unique-id"), + switch_event_get_header_nil(event, "old-unique-id"), + switch_core_get_variable("hostname"), + switch_event_get_header_nil(event, "unique-id"), + switch_event_get_header_nil(event, "old-unique-id"), switch_core_get_variable("hostname") + ); break; } case SWITCH_EVENT_CHANNEL_CREATE: - sql = switch_mprintf("insert into channels (uuid,direction,created,created_epoch, name,state,callstate,dialplan,context,hostname) " - "values('%q','%q','%q','%ld','%q','%q','%q','%q','%q','%q')", - switch_event_get_header_nil(event, "unique-id"), - switch_event_get_header_nil(event, "call-direction"), - switch_event_get_header_nil(event, "event-date-local"), - (long) switch_epoch_time_now(NULL), - switch_event_get_header_nil(event, "channel-name"), - switch_event_get_header_nil(event, "channel-state"), - switch_event_get_header_nil(event, "channel-call-state"), - switch_event_get_header_nil(event, "caller-dialplan"), - switch_event_get_header_nil(event, "caller-context"), switch_core_get_variable("hostname") - ); + new_sql() = switch_mprintf("insert into channels (uuid,direction,created,created_epoch, name,state,callstate,dialplan,context,hostname) " + "values('%q','%q','%q','%ld','%q','%q','%q','%q','%q','%q')", + switch_event_get_header_nil(event, "unique-id"), + switch_event_get_header_nil(event, "call-direction"), + switch_event_get_header_nil(event, "event-date-local"), + (long) switch_epoch_time_now(NULL), + switch_event_get_header_nil(event, "channel-name"), + switch_event_get_header_nil(event, "channel-state"), + switch_event_get_header_nil(event, "channel-call-state"), + switch_event_get_header_nil(event, "caller-dialplan"), + switch_event_get_header_nil(event, "caller-context"), switch_core_get_variable("hostname") + ); break; case SWITCH_EVENT_CODEC: - sql = + new_sql() = switch_mprintf ("update channels set read_codec='%q',read_rate='%q',write_codec='%q',write_rate='%q' where uuid='%q' and hostname='%q'", switch_event_get_header_nil(event, "channel-read-codec-name"), @@ -1009,15 +1013,28 @@ static void core_event_handler(switch_event_t *event) case SWITCH_EVENT_CHANNEL_HOLD: case SWITCH_EVENT_CHANNEL_UNHOLD: case SWITCH_EVENT_CHANNEL_EXECUTE: - sql = switch_mprintf("update channels set application='%q',application_data='%q'," - "presence_id='%q',presence_data='%q' where uuid='%q' and hostname='%q'", - switch_event_get_header_nil(event, "application"), - switch_event_get_header_nil(event, "application-data"), - switch_event_get_header_nil(event, "channel-presence-id"), - switch_event_get_header_nil(event, "channel-presence-data"), - switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname") + new_sql() = switch_mprintf("update channels set application='%q',application_data='%q'," + "presence_id='%q',presence_data='%q' where uuid='%q' and hostname='%q'", + switch_event_get_header_nil(event, "application"), + switch_event_get_header_nil(event, "application-data"), + switch_event_get_header_nil(event, "channel-presence-id"), + switch_event_get_header_nil(event, "channel-presence-data"), + switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname") + + ); + break; + + case SWITCH_EVENT_CHANNEL_ORIGINATE: + { + new_sql() = switch_mprintf("update channels set " + "presence_id='%q',presence_data='%q', call_uuid='%q' where uuid='%q' and hostname='%q'", + switch_event_get_header_nil(event, "channel-presence-id"), + switch_event_get_header_nil(event, "channel-presence-data"), + switch_event_get_header_nil(event, "channel-call-uuid"), + switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); + + } - ); break; case SWITCH_EVENT_CALL_UPDATE: { @@ -1033,23 +1050,23 @@ static void core_event_handler(switch_event_t *event) } if (!zstr(name) && !zstr(number)) { - sql = switch_mprintf("update channels set state='%s',callstate='%s',callee_name='%q'," - "callee_num='%q',callee_direction='%q' where uuid='%s' and hostname='%q'", - switch_event_get_header_nil(event, "channel-state"), - switch_event_get_header_nil(event, "channel-call-state"), - switch_str_nil(name), - switch_str_nil(number), - switch_event_get_header_nil(event, "direction"), - switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("update channels set state='%s',callstate='%s',callee_name='%q'," + "callee_num='%q',callee_direction='%q' where uuid='%s' and hostname='%q'", + switch_event_get_header_nil(event, "channel-state"), + switch_event_get_header_nil(event, "channel-call-state"), + switch_str_nil(name), + switch_str_nil(number), + switch_event_get_header_nil(event, "direction"), + switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); } } break; case SWITCH_EVENT_CHANNEL_CALLSTATE: { - sql = switch_mprintf("update channels set callstate='%q' where uuid='%q' and hostname='%q'", - switch_event_get_header_nil(event, "channel-call-state"), - switch_event_get_header_nil(event, "unique-id"), - switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("update channels set callstate='%q' where uuid='%q' and hostname='%q'", + switch_event_get_header_nil(event, "channel-call-state"), + switch_event_get_header_nil(event, "unique-id"), + switch_core_get_variable("hostname")); } break; @@ -1067,55 +1084,62 @@ static void core_event_handler(switch_event_t *event) case CS_DESTROY: break; case CS_ROUTING: - sql = switch_mprintf("update channels set state='%s',cid_name='%q',cid_num='%q'," - "ip_addr='%s',dest='%q',dialplan='%q',context='%q',presence_id='%q',presence_data='%q' " - "where uuid='%s' and hostname='%q'", - switch_event_get_header_nil(event, "channel-state"), - switch_event_get_header_nil(event, "caller-caller-id-name"), - switch_event_get_header_nil(event, "caller-caller-id-number"), - switch_event_get_header_nil(event, "caller-network-addr"), - switch_event_get_header_nil(event, "caller-destination-number"), - switch_event_get_header_nil(event, "caller-dialplan"), - switch_event_get_header_nil(event, "caller-context"), - switch_event_get_header_nil(event, "channel-presence-id"), - switch_event_get_header_nil(event, "channel-presence-data"), - switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("update channels set state='%s',cid_name='%q',cid_num='%q'," + "ip_addr='%s',dest='%q',dialplan='%q',context='%q',presence_id='%q',presence_data='%q' " + "where uuid='%s' and hostname='%q'", + switch_event_get_header_nil(event, "channel-state"), + switch_event_get_header_nil(event, "caller-caller-id-name"), + switch_event_get_header_nil(event, "caller-caller-id-number"), + switch_event_get_header_nil(event, "caller-network-addr"), + switch_event_get_header_nil(event, "caller-destination-number"), + switch_event_get_header_nil(event, "caller-dialplan"), + switch_event_get_header_nil(event, "caller-context"), + switch_event_get_header_nil(event, "channel-presence-id"), + switch_event_get_header_nil(event, "channel-presence-data"), + switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); break; default: - sql = switch_mprintf("update channels set state='%s' where uuid='%s' and hostname='%q'", - switch_event_get_header_nil(event, "channel-state"), - switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("update channels set state='%s' where uuid='%s' and hostname='%q'", + switch_event_get_header_nil(event, "channel-state"), + switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); break; } + break; + + } case SWITCH_EVENT_CHANNEL_BRIDGE: - sql = switch_mprintf("insert into calls values ('%s', '%ld', '%s','%q','%q','%q','%q','%s','%q','%q','%q','%q','%s','%q')", - switch_event_get_header_nil(event, "event-date-local"), - (long) switch_epoch_time_now(NULL), - switch_event_get_header_nil(event, "event-calling-function"), - switch_event_get_header_nil(event, "caller-caller-id-name"), - switch_event_get_header_nil(event, "caller-caller-id-number"), - switch_event_get_header_nil(event, "caller-destination-number"), - switch_event_get_header_nil(event, "caller-channel-name"), - switch_event_get_header_nil(event, "caller-unique-id"), - switch_event_get_header_nil(event, "Other-Leg-caller-id-name"), - switch_event_get_header_nil(event, "Other-Leg-caller-id-number"), - switch_event_get_header_nil(event, "Other-Leg-destination-number"), - switch_event_get_header_nil(event, "Other-Leg-channel-name"), - switch_event_get_header_nil(event, "Other-Leg-unique-id"), switch_core_get_variable("hostname") - ); + new_sql() = switch_mprintf("update channels set call_uuid='%q' where uuid='%s' and hostname='%q'", + switch_event_get_header_nil(event, "channel-call-uuid"), + switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("insert into calls values ('%s', '%s', '%ld', '%s','%q','%q','%q','%q','%s','%q','%q','%q','%q','%s','%q')", + switch_event_get_header_nil(event, "channel-call-uuid"), + switch_event_get_header_nil(event, "event-date-local"), + (long) switch_epoch_time_now(NULL), + switch_event_get_header_nil(event, "event-calling-function"), + switch_event_get_header_nil(event, "caller-caller-id-name"), + switch_event_get_header_nil(event, "caller-caller-id-number"), + switch_event_get_header_nil(event, "caller-destination-number"), + switch_event_get_header_nil(event, "caller-channel-name"), + switch_event_get_header_nil(event, "caller-unique-id"), + switch_event_get_header_nil(event, "Other-Leg-caller-id-name"), + switch_event_get_header_nil(event, "Other-Leg-caller-id-number"), + switch_event_get_header_nil(event, "Other-Leg-destination-number"), + switch_event_get_header_nil(event, "Other-Leg-channel-name"), + switch_event_get_header_nil(event, "Other-Leg-unique-id"), switch_core_get_variable("hostname") + ); break; case SWITCH_EVENT_CHANNEL_UNBRIDGE: - sql = switch_mprintf("delete from calls where caller_uuid='%s' and hostname='%q'", - switch_event_get_header_nil(event, "caller-unique-id"), switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("delete from calls where caller_uuid='%s' and hostname='%q'", + switch_event_get_header_nil(event, "caller-unique-id"), switch_core_get_variable("hostname")); break; case SWITCH_EVENT_SHUTDOWN: - sql = switch_mprintf("delete from channels where hostname='%q';" - "delete from interfaces where hostname='%q';" - "delete from calls where hostname='%q'", - switch_core_get_variable("hostname"), switch_core_get_variable("hostname"), switch_core_get_variable("hostname") - ); + new_sql() = switch_mprintf("delete from channels where hostname='%q';" + "delete from interfaces where hostname='%q';" + "delete from calls where hostname='%q'", + switch_core_get_variable("hostname"), switch_core_get_variable("hostname"), switch_core_get_variable("hostname") + ); break; case SWITCH_EVENT_LOG: return; @@ -1128,12 +1152,12 @@ static void core_event_handler(switch_event_t *event) const char *key = switch_event_get_header_nil(event, "key"); const char *filename = switch_event_get_header_nil(event, "filename"); if (!zstr(type) && !zstr(name)) { - sql = + new_sql() = switch_mprintf ("insert into interfaces (type,name,description,syntax,ikey,filename,hostname) values('%q','%q','%q','%q','%q','%q','%q')", type, name, switch_str_nil(description), switch_str_nil(syntax), switch_str_nil(key), switch_str_nil(filename), switch_core_get_variable("hostname") - ); + ); } break; } @@ -1142,8 +1166,8 @@ static void core_event_handler(switch_event_t *event) const char *type = switch_event_get_header_nil(event, "type"); const char *name = switch_event_get_header_nil(event, "name"); if (!zstr(type) && !zstr(name)) { - sql = switch_mprintf("delete from interfaces where type='%q' and name='%q' and hostname='%q'", type, name, - switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("delete from interfaces where type='%q' and name='%q' and hostname='%q'", type, name, + switch_core_get_variable("hostname")); } break; } @@ -1154,9 +1178,9 @@ static void core_event_handler(switch_event_t *event) if (zstr(type)) { break; } - sql = switch_mprintf("update channels set secure='%s' where uuid='%s' and hostname='%q'", - type, switch_event_get_header_nil(event, "caller-unique-id"), switch_core_get_variable("hostname") - ); + new_sql() = switch_mprintf("update channels set secure='%s' where uuid='%s' and hostname='%q'", + type, switch_event_get_header_nil(event, "caller-unique-id"), switch_core_get_variable("hostname") + ); break; } case SWITCH_EVENT_NAT: @@ -1164,14 +1188,14 @@ static void core_event_handler(switch_event_t *event) const char *op = switch_event_get_header_nil(event, "op"); switch_bool_t sticky = switch_true(switch_event_get_header_nil(event, "sticky")); if (!strcmp("add", op)) { - sql = switch_mprintf("insert into nat (port, proto, sticky, hostname) values (%s, %s, %d,'%q')", - switch_event_get_header_nil(event, "port"), - switch_event_get_header_nil(event, "proto"), sticky, switch_core_get_variable("hostname") - ); + new_sql() = switch_mprintf("insert into nat (port, proto, sticky, hostname) values (%s, %s, %d,'%q')", + switch_event_get_header_nil(event, "port"), + switch_event_get_header_nil(event, "proto"), sticky, switch_core_get_variable("hostname") + ); } else if (!strcmp("del", op)) { - sql = switch_mprintf("delete from nat where port=%s and proto=%s and hostname='%q'", - switch_event_get_header_nil(event, "port"), - switch_event_get_header_nil(event, "proto"), switch_core_get_variable("hostname")); + new_sql() = switch_mprintf("delete from nat where port=%s and proto=%s and hostname='%q'", + switch_event_get_header_nil(event, "port"), + switch_event_get_header_nil(event, "proto"), switch_core_get_variable("hostname")); } else if (!strcmp("status", op)) { /* call show nat api */ } else if (!strcmp("status_response", op)) { @@ -1185,13 +1209,17 @@ static void core_event_handler(switch_event_t *event) break; } - if (sql) { - if (switch_stristr("update channels", sql) || switch_stristr("delete from channels", sql)) { - switch_queue_push(sql_manager.sql_queue[1], sql); - } else { - switch_queue_push(sql_manager.sql_queue[0], sql); + if (sql_idx) { + int i = 0; + + for(i = 0; i < sql_idx; i++) { + if (switch_stristr("update channels", sql[i]) || switch_stristr("delete from channels", sql[i])) { + switch_queue_push(sql_manager.sql_queue[1], sql[i]); + } else { + switch_queue_push(sql_manager.sql_queue[0], sql[i]); + } + sql[i] = NULL; } - sql = NULL; } } @@ -1247,11 +1275,15 @@ static char create_channels_sql[] = " callstate VARCHAR(64),\n" " callee_name VARCHAR(1024),\n" " callee_num VARCHAR(256),\n" - " callee_direction VARCHAR(5)\n" - ");\ncreate index uuindex on channels (uuid,hostname);\n"; + " callee_direction VARCHAR(5),\n" + " call_uuid VARCHAR(256)\n" + ");\n" + "create index uuindex on channels (uuid,hostname);\n" + "create index uuindex2 on channels (call_uuid,hostname);\n"; static char create_calls_sql[] = "CREATE TABLE calls (\n" + " call_uuid VARCHAR(255),\n" " call_created VARCHAR(128),\n" " call_created_epoch INTEGER,\n" " function VARCHAR(1024),\n" @@ -1266,7 +1298,10 @@ static char create_calls_sql[] = " callee_chan_name VARCHAR(1024),\n" " callee_uuid VARCHAR(256),\n" " hostname VARCHAR(256)\n" - ");\n" "create index eruuindex on calls (caller_uuid,hostname);\n" "create index eeuuindex on calls (callee_uuid,hostname);\n"; + ");\n" "create index eruuindex on calls (caller_uuid,hostname);\n" + "create index eeuuindex on calls (callee_uuid,hostname);\n" + "create index eeuuindex2 on calls (call_uuid,hostname);\n" + ; static char create_interfaces_sql[] = "CREATE TABLE interfaces (\n" @@ -1309,7 +1344,7 @@ switch_status_t switch_core_sqldb_start(switch_memory_pool_t *pool, switch_bool_ switch_core_hash_init(&sql_manager.dbh_hash, sql_manager.memory_pool); - top: + top: /* Activate SQL database */ if (switch_core_db_handle(&dbh) != SWITCH_STATUS_SUCCESS) { @@ -1369,8 +1404,8 @@ switch_status_t switch_core_sqldb_start(switch_memory_pool_t *pool, switch_bool_ case SCDB_TYPE_ODBC: { char *err; - switch_cache_db_test_reactive(dbh, "select callee_direction from channels", "DROP TABLE channels", create_channels_sql); - switch_cache_db_test_reactive(dbh, "select hostname from calls", "DROP TABLE calls", create_calls_sql); + switch_cache_db_test_reactive(dbh, "select call_uuid from channels", "DROP TABLE channels", create_channels_sql); + switch_cache_db_test_reactive(dbh, "select call_uuid from calls", "DROP TABLE calls", create_calls_sql); switch_cache_db_test_reactive(dbh, "select ikey from interfaces", "DROP TABLE interfaces", create_interfaces_sql); switch_cache_db_test_reactive(dbh, "select hostname from tasks", "DROP TABLE tasks", create_tasks_sql); diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index 03dbd4dd25..e7d4badd02 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -2326,7 +2326,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess char *vdata; const char *current_variable; char variable_buffer[512] = ""; - switch_event_t *local_var_event = NULL, *originate_var_event = NULL; + switch_event_t *local_var_event = NULL, *originate_var_event = NULL, *event = NULL; end = NULL; chan_type = peer_names[i]; @@ -2582,16 +2582,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess if (local_clobber) { if (var_event) { - switch_event_t *event; switch_event_header_t *header; /* install the vars from the {} params */ for (header = var_event->headers; header; header = header->next) { switch_channel_set_variable(originate_status[i].peer_channel, header->name, header->value); } - switch_event_create(&event, SWITCH_EVENT_CHANNEL_ORIGINATE); - switch_assert(event); - switch_channel_event_set_data(originate_status[i].peer_channel, event); - switch_event_fire(&event); } } @@ -2606,19 +2601,19 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess if (!local_clobber) { if (var_event) { - switch_event_t *event; switch_event_header_t *header; /* install the vars from the {} params */ for (header = var_event->headers; header; header = header->next) { switch_channel_set_variable(originate_status[i].peer_channel, header->name, header->value); } - switch_event_create(&event, SWITCH_EVENT_CHANNEL_ORIGINATE); - switch_assert(event); - switch_channel_event_set_data(originate_status[i].peer_channel, event); - switch_event_fire(&event); } } + switch_event_create(&event, SWITCH_EVENT_CHANNEL_ORIGINATE); + switch_assert(event); + switch_channel_event_set_data(originate_status[i].peer_channel, event); + switch_event_fire(&event); + if (originate_status[i].peer_channel) { const char *vvar; From ae99b1a7065d2a07358761cd712d592bfae52072 Mon Sep 17 00:00:00 2001 From: Brian West Date: Fri, 25 Jun 2010 14:10:49 -0500 Subject: [PATCH 09/62] clean up --- conf/autoload_configs/switch.conf.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/autoload_configs/switch.conf.xml b/conf/autoload_configs/switch.conf.xml index 03bc993372..e1f89f88ac 100644 --- a/conf/autoload_configs/switch.conf.xml +++ b/conf/autoload_configs/switch.conf.xml @@ -49,7 +49,7 @@ - Donot change mailer-app-args. + Do not change mailer-app-args. You will also need to download a sendmail clone for Windows (msmtp). This version works without issue: http://msmtp.sourceforge.net/index.html. Download and copy the .exe to %winddir%\system32. You'll need to create a small config file for smtp credentials (host name, authentication, tls, etc.) in @@ -66,7 +66,7 @@ # Set a default account account default : provider - ################################### + ################################### --> From 77c662687a10c2b7545c7756ceba4d3bb67074b5 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 25 Jun 2010 16:57:01 -0500 Subject: [PATCH 10/62] add (experimental) agc flag --- .../mod_conference/mod_conference.c | 84 +++++++++++++++---- 1 file changed, 70 insertions(+), 14 deletions(-) diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 583a0e1e2d..cbb82af5db 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -176,7 +176,8 @@ typedef enum { CFLAG_BRIDGE_TO = (1 << 6), CFLAG_WAIT_MOD = (1 << 7), CFLAG_VID_FLOOR = (1 << 8), - CFLAG_WASTE_BANDWIDTH = (1 << 9) + CFLAG_WASTE_BANDWIDTH = (1 << 9), + CFLAG_GAIN_CONTROL = (1 << 10) } conf_flag_t; typedef enum { @@ -300,6 +301,8 @@ typedef struct conference_obj { uint32_t verbose_events; int end_count; uint32_t relationship_total; + uint32_t score; + uint32_t avg_score; } conference_obj_t; /* Relationship with another member */ @@ -335,6 +338,7 @@ struct conference_member { uint8_t *mux_frame; uint32_t read; int32_t energy_level; + int32_t agc_volume_in_level; int32_t volume_in_level; int32_t volume_out_level; switch_time_t join_time; @@ -997,8 +1001,10 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v uint8_t *file_frame; uint8_t *async_file_frame; int16_t *bptr; - int x; + int x = 0; int32_t z = 0; + int member_score_sum = 0; + int mux_loop_count = 0; file_frame = switch_core_alloc(conference->pool, SWITCH_RECOMMENDED_BUFFER_SIZE); async_file_frame = switch_core_alloc(conference->pool, SWITCH_RECOMMENDED_BUFFER_SIZE); @@ -1183,8 +1189,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v } has_file_data = 1; } - - + if (ready || has_file_data) { /* Use more bits in the main_frame to preserve the exact sum of the audio samples. */ int main_frame[SWITCH_RECOMMENDED_BUFFER_SIZE / 2] = { 0 }; @@ -1203,16 +1208,29 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v } } + member_score_sum = 0; + mux_loop_count = 0; + /* Copy audio from every member known to be producing audio into the main frame. */ for (omember = conference->members; omember; omember = omember->next) { + if (switch_test_flag(conference, CFLAG_GAIN_CONTROL)) { + member_score_sum += omember->score; + } + if (!(switch_test_flag(omember, MFLAG_RUNNING) && switch_test_flag(omember, MFLAG_HAS_AUDIO))) { continue; } + mux_loop_count++; bptr = (int16_t *) omember->frame; for (x = 0; x < omember->read / 2; x++) { main_frame[x] += (int32_t) bptr[x]; } } + + if (switch_test_flag(conference, CFLAG_GAIN_CONTROL) && x && mux_loop_count) { + conference->avg_score = member_score_sum / mux_loop_count; + } + /* Create write frame once per member who is not deaf for each sample in the main frame check if our audio is involved and if so, subtract it from the sample so we don't hear ourselves. @@ -1272,7 +1290,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v switch_normalize_to_16bit(z); write_frame[x] = (int16_t) z; } - + switch_mutex_lock(omember->audio_out_mutex); ok = switch_buffer_write(omember->mux_buffer, write_frame, bytes); switch_mutex_unlock(omember->audio_out_mutex); @@ -1936,6 +1954,22 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v member->score = energy / (samples / divisor); } + if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->conference->avg_score && member->score) { + int diff = member->conference->avg_score - member->score; + + if (diff > 200) { + member->agc_volume_in_level++; + switch_normalize_volume(member->agc_volume_in_level); + member->score = member->energy_level + 10; + } else if (diff < -200) { + member->agc_volume_in_level--; + switch_normalize_volume(member->agc_volume_in_level); + member->score = member->energy_level + 10; + } else { + member->agc_volume_in_level = 0; + } + } + member->score_iir = (int) (((1.0 - SCORE_DECAY) * (float) member->score) + (SCORE_DECAY * (float) member->score_iir)); if (member->score_iir > SCORE_MAX_IIR) { @@ -2041,7 +2075,9 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v } /* Check for input volume adjustments */ - if (member->volume_in_level) { + if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->agc_volume_in_level) { + switch_change_sln_volume(data, datalen / 2, member->agc_volume_in_level); + } else if (member->volume_in_level) { switch_change_sln_volume(data, datalen / 2, member->volume_in_level); } @@ -3239,7 +3275,8 @@ static void conference_list(conference_obj_t *conference, switch_stream_handle_t count++; } - stream->write_function(stream, "%s%d%s%d%s%d\n", delim, member->volume_in_level, delim, member->volume_out_level, delim, member->energy_level); + stream->write_function(stream, "%s%d%s%d%s%d\n", delim, member->agc_volume_in_level ? + member->agc_volume_in_level : member->volume_in_level, delim, member->volume_out_level, delim, member->energy_level); } switch_mutex_unlock(conference->member_mutex); @@ -3556,7 +3593,7 @@ static switch_status_t conf_api_sub_list(conference_obj_t *conference, switch_st } -static void add_x_tag(switch_xml_t x_member, const char *name, const char *value, int off) +static switch_xml_t add_x_tag(switch_xml_t x_member, const char *name, const char *value, int off) { switch_size_t dlen = strlen(value) * 3; char *data; @@ -3570,6 +3607,8 @@ static void add_x_tag(switch_xml_t x_member, const char *name, const char *value switch_url_encode(value, data, dlen); switch_xml_set_txt_d(x_tag, data); free(data); + + return x_tag; } static void conference_xlist(conference_obj_t *conference, switch_xml_t x_conference, int off) @@ -3620,6 +3659,10 @@ static void conference_xlist(conference_obj_t *conference, switch_xml_t x_confer switch_xml_set_attr_d(x_conference, "dynamic", "true"); } + if (switch_test_flag(conference, CFLAG_GAIN_CONTROL)) { + switch_xml_set_attr_d(x_conference, "agc", "true"); + } + x_members = switch_xml_add_child_d(x_conference, "members", 0); switch_assert(x_members); @@ -3633,6 +3676,7 @@ static void conference_xlist(conference_obj_t *conference, switch_xml_t x_confer uint32_t count = 0; switch_xml_t x_tag; int toff = 0; + char tmp[50] = ""; if (switch_test_flag(member, MFLAG_NOCHANNEL)) { continue; @@ -3655,12 +3699,12 @@ static void conference_xlist(conference_obj_t *conference, switch_xml_t x_confer add_x_tag(x_member, "caller_id_number", profile->caller_id_number, toff++); - switch_snprintf(i, sizeof(i), "%d", switch_epoch_time_now(NULL) - member->join_time); - add_x_tag(x_member, "join_time", i, toff++); - - switch_snprintf(i, sizeof(i), "%d", switch_epoch_time_now(NULL) - member->last_talking); - add_x_tag(x_member, "last_talking", member->last_talking ? i : "N/A", toff++); - + switch_snprintf(i, sizeof(i), "%d", switch_epoch_time_now(NULL) - member->join_time); + add_x_tag(x_member, "join_time", i, toff++); + + switch_snprintf(i, sizeof(i), "%d", switch_epoch_time_now(NULL) - member->last_talking); + add_x_tag(x_member, "last_talking", member->last_talking ? i : "N/A", toff++); + x_flags = switch_xml_add_child_d(x_member, "flags", count++); switch_assert(x_flags); @@ -3685,6 +3729,16 @@ static void conference_xlist(conference_obj_t *conference, switch_xml_t x_confer x_tag = switch_xml_add_child_d(x_flags, "end_conference", count++); switch_xml_set_txt_d(x_tag, switch_test_flag(member, MFLAG_ENDCONF) ? "true" : "false"); + switch_snprintf(tmp, sizeof(tmp), "%d", member->volume_out_level); + x_tag = add_x_tag(x_member, "output-volume", tmp, toff++); + + switch_snprintf(tmp, sizeof(tmp), "%d", member->agc_volume_in_level ? member->agc_volume_in_level : member->volume_in_level); + x_tag = add_x_tag(x_member, "input-volume", tmp, toff++); + + if (member->agc_volume_in_level) { + switch_xml_set_attr_d(x_tag, "auto", "true"); + } + } switch_mutex_unlock(conference->member_mutex); @@ -4902,6 +4956,8 @@ static void set_cflags(const char *flags, uint32_t *f) *f |= CFLAG_VID_FLOOR; } else if (!strcasecmp(argv[i], "waste-bandwidth")) { *f |= CFLAG_WASTE_BANDWIDTH; + } else if (!strcasecmp(argv[i], "auto-gain-control")) { + *f |= CFLAG_GAIN_CONTROL; } } From 612f3a36f3b50203ba2d7bf92bd70d2d93325364 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 25 Jun 2010 17:10:32 -0500 Subject: [PATCH 11/62] remove initial announcement --- src/mod/applications/mod_rss/mod_rss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/applications/mod_rss/mod_rss.c b/src/mod/applications/mod_rss/mod_rss.c index 57b06088fc..2eaae2f16f 100644 --- a/src/mod/applications/mod_rss/mod_rss.c +++ b/src/mod/applications/mod_rss/mod_rss.c @@ -515,7 +515,7 @@ SWITCH_STANDARD_APP(rss_function) dtb.index = 0; dtb.sh = &sh; dtb.speed = TTS_MEAN_SPEED; - switch_set_flag(&dtb, SFLAG_INFO); + //switch_set_flag(&dtb, SFLAG_INFO); switch_copy_string(dtb.voice, voice, sizeof(dtb.voice)); while (entries[0].inuse && switch_channel_ready(channel)) { while (switch_channel_ready(channel)) { From 2adde7d86dfb6817e0b7fb135e024e1d1458b869 Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Fri, 25 Jun 2010 19:29:33 -0400 Subject: [PATCH 12/62] mod_conference: Add energy, volume_in and volume_out to xml_list --- src/mod/applications/mod_conference/mod_conference.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index cbb82af5db..a95da4d27f 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -3704,6 +3704,15 @@ static void conference_xlist(conference_obj_t *conference, switch_xml_t x_confer switch_snprintf(i, sizeof(i), "%d", switch_epoch_time_now(NULL) - member->last_talking); add_x_tag(x_member, "last_talking", member->last_talking ? i : "N/A", toff++); + + switch_snprintf(i, sizeof(i), "%d", member->energy_level); + add_x_tag(x_member, "energy", i, toff++); + + switch_snprintf(i, sizeof(i), "%d", member->volume_in_level); + add_x_tag(x_member, "volume_in", i, toff++); + + switch_snprintf(i, sizeof(i), "%d", member->volume_out_level); + add_x_tag(x_member, "volume_out", i, toff++); x_flags = switch_xml_add_child_d(x_member, "flags", count++); switch_assert(x_flags); From 1b3a5df08d5a082332ce728bb63657470a7cbdaf Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 25 Jun 2010 21:10:05 -0500 Subject: [PATCH 13/62] update --- .../mod_conference/mod_conference.c | 158 ++++++++++++++---- 1 file changed, 127 insertions(+), 31 deletions(-) diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index a95da4d27f..883d7e088a 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -303,6 +303,10 @@ typedef struct conference_obj { uint32_t relationship_total; uint32_t score; uint32_t avg_score; + uint32_t avg_itt; + uint32_t avg_tally; + int mux_loop_count; + int member_loop_count; } conference_obj_t; /* Relationship with another member */ @@ -341,6 +345,8 @@ struct conference_member { int32_t agc_volume_in_level; int32_t volume_in_level; int32_t volume_out_level; + int32_t agc_concur; + int32_t nt_tally; switch_time_t join_time; switch_time_t last_talking; uint32_t native_rate; @@ -354,6 +360,9 @@ struct conference_member { switch_speech_handle_t lsh; switch_speech_handle_t *sh; uint32_t verbose_events; + uint32_t avg_score; + uint32_t avg_itt; + uint32_t avg_tally; struct conference_member *next; }; @@ -1004,7 +1013,6 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v int x = 0; int32_t z = 0; int member_score_sum = 0; - int mux_loop_count = 0; file_frame = switch_core_alloc(conference->pool, SWITCH_RECOMMENDED_BUFFER_SIZE); async_file_frame = switch_core_alloc(conference->pool, SWITCH_RECOMMENDED_BUFFER_SIZE); @@ -1209,26 +1217,40 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v } member_score_sum = 0; - mux_loop_count = 0; + conference->mux_loop_count = 0; + conference->member_loop_count = 0; /* Copy audio from every member known to be producing audio into the main frame. */ for (omember = conference->members; omember; omember = omember->next) { if (switch_test_flag(conference, CFLAG_GAIN_CONTROL)) { member_score_sum += omember->score; } - + + conference->member_loop_count++; + if (!(switch_test_flag(omember, MFLAG_RUNNING) && switch_test_flag(omember, MFLAG_HAS_AUDIO))) { continue; } - mux_loop_count++; + conference->mux_loop_count++; bptr = (int16_t *) omember->frame; for (x = 0; x < omember->read / 2; x++) { main_frame[x] += (int32_t) bptr[x]; } } - if (switch_test_flag(conference, CFLAG_GAIN_CONTROL) && x && mux_loop_count) { - conference->avg_score = member_score_sum / mux_loop_count; + if (switch_test_flag(conference, CFLAG_GAIN_CONTROL)) { + if (x && conference->mux_loop_count && conference->member_loop_count > 1) { + int this_avg = member_score_sum / conference->mux_loop_count; + + conference->avg_tally += this_avg; + conference->avg_score = conference->avg_tally / ++conference->avg_itt; + + if (conference->avg_itt > (conference->rate / x) * 10) { + conference->avg_itt = 0; + conference->avg_tally = 0; + conference->avg_score = this_avg; + } + } } @@ -1929,6 +1951,14 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v goto do_continue; } + /* Check for input volume adjustments */ + if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->agc_volume_in_level) { + switch_change_sln_volume(read_frame->data, read_frame->datalen / 2, member->agc_volume_in_level); + } else if (member->volume_in_level) { + switch_change_sln_volume(read_frame->data, read_frame->datalen / 2, member->volume_in_level); + } + + energy_level = member->energy_level; /* if the member can speak, compute the audio energy level and */ @@ -1937,6 +1967,7 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v uint32_t energy = 0, i = 0, samples = 0, j = 0; int16_t *data; int divisor = 0; + int one_sec = (read_impl.actual_samples_per_second / read_impl.samples_per_packet); data = read_frame->data; @@ -1952,22 +1983,71 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v j += read_impl.number_of_channels; } member->score = energy / (samples / divisor); + member->avg_tally += member->score; + member->avg_score = member->avg_tally / ++member->avg_itt; + + if (member->avg_itt > one_sec * 10) { + member->avg_itt = 0; + member->avg_tally = 0; + member->avg_score = member->score; + } + } - if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->conference->avg_score && member->score) { - int diff = member->conference->avg_score - member->score; + if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->conference->avg_score && member->score && + switch_test_flag(member, MFLAG_TALKING)) { + int diff = member->conference->avg_score - member->avg_score; - if (diff > 200) { - member->agc_volume_in_level++; - switch_normalize_volume(member->agc_volume_in_level); - member->score = member->energy_level + 10; - } else if (diff < -200) { - member->agc_volume_in_level--; - switch_normalize_volume(member->agc_volume_in_level); - member->score = member->energy_level + 10; + if (abs(diff) >= 200) { + member->agc_concur++; } else { - member->agc_volume_in_level = 0; + member->agc_concur = 0; } + + if (member->agc_concur >= one_sec / 2) { + if (diff > 200) { + member->agc_volume_in_level++; + + if (diff > 200) { + member->agc_volume_in_level++; + } + + switch_normalize_volume(member->agc_volume_in_level); + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG7, + "conf %s AGC +++ %d %d %d %d %d\n", + member->conference->name, + member->id, diff, member->conference->avg_score, + member->avg_score, member->agc_volume_in_level); + + } else if (diff < -400 || (member->agc_volume_in_level > 0 && diff < -200)) { + member->agc_volume_in_level--; + + if (diff < -800 || (member->agc_volume_in_level > 0 && diff < -400)) { + member->agc_volume_in_level--; + } + + switch_normalize_volume(member->agc_volume_in_level); + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG7, + "conf %s AGC +++ %d %d %d %d %d\n", + member->conference->name, + member->id, diff, member->conference->avg_score, + member->avg_score, member->agc_volume_in_level); + } + member->agc_concur = 0; + } + member->nt_tally = 0; + } else { + member->nt_tally++; + + if (member->nt_tally > one_sec * 5) { + member->nt_tally = 0; + member->avg_itt = 0; + member->avg_tally = 0; + member->avg_score = member->score; + } + } member->score_iir = (int) (((1.0 - SCORE_DECAY) * (float) member->score) + (SCORE_DECAY * (float) member->score_iir)); @@ -2074,12 +2154,6 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v datalen = read_frame->datalen; } - /* Check for input volume adjustments */ - if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->agc_volume_in_level) { - switch_change_sln_volume(data, datalen / 2, member->agc_volume_in_level); - } else if (member->volume_in_level) { - switch_change_sln_volume(data, datalen / 2, member->volume_in_level); - } if (datalen) { switch_size_t ok = 1; @@ -3311,6 +3385,29 @@ static switch_status_t conf_api_sub_mute(conference_member_t *member, switch_str return SWITCH_STATUS_SUCCESS; } +static switch_status_t conf_api_sub_agc_on(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv) +{ + switch_set_flag(conference, CFLAG_GAIN_CONTROL); + + if (stream) { + stream->write_function(stream, "OK AGC ENABLED\n"); + } + + return SWITCH_STATUS_SUCCESS; + +} + +static switch_status_t conf_api_sub_agc_off(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv) +{ + switch_clear_flag(conference, CFLAG_GAIN_CONTROL); + + if (stream) { + stream->write_function(stream, "OK AGC DISABLED\n"); + } + + return SWITCH_STATUS_SUCCESS; +} + static switch_status_t conf_api_sub_unmute(conference_member_t *member, switch_stream_handle_t *stream, void *data) { switch_event_t *event; @@ -4400,15 +4497,14 @@ static api_command_t conf_api_sub_commands[] = { " dtmf <[member_id|all|last]> "}, {"kick", (void_fn_t) & conf_api_sub_kick, CONF_API_SUB_MEMBER_TARGET, " kick <[member_id|all|last]>"}, {"mute", (void_fn_t) & conf_api_sub_mute, CONF_API_SUB_MEMBER_TARGET, " mute <[member_id|all]|last>"}, - {"unmute", (void_fn_t) & conf_api_sub_unmute, CONF_API_SUB_MEMBER_TARGET, - " unmute <[member_id|all]|last>"}, + {"unmute", (void_fn_t) & conf_api_sub_unmute, CONF_API_SUB_MEMBER_TARGET, " unmute <[member_id|all]|last>"}, {"deaf", (void_fn_t) & conf_api_sub_deaf, CONF_API_SUB_MEMBER_TARGET, " deaf <[member_id|all]|last>"}, - {"undeaf", (void_fn_t) & conf_api_sub_undeaf, CONF_API_SUB_MEMBER_TARGET, - " undeaf <[member_id|all]|last>"}, - {"relate", (void_fn_t) & conf_api_sub_relate, CONF_API_SUB_ARGS_SPLIT, - " relate [nospeak|nohear|clear]"}, + {"undeaf", (void_fn_t) & conf_api_sub_undeaf, CONF_API_SUB_MEMBER_TARGET, " undeaf <[member_id|all]|last>"}, + {"relate", (void_fn_t) & conf_api_sub_relate, CONF_API_SUB_ARGS_SPLIT, " relate [nospeak|nohear|clear]"}, {"lock", (void_fn_t) & conf_api_sub_lock, CONF_API_SUB_ARGS_SPLIT, " lock"}, {"unlock", (void_fn_t) & conf_api_sub_unlock, CONF_API_SUB_ARGS_SPLIT, " unlock"}, + {"agc_on", (void_fn_t) & conf_api_sub_agc_on, CONF_API_SUB_ARGS_SPLIT, " agc_on"}, + {"agc_off", (void_fn_t) & conf_api_sub_agc_off, CONF_API_SUB_ARGS_SPLIT, " agc_off"}, {"dial", (void_fn_t) & conf_api_sub_dial, CONF_API_SUB_ARGS_SPLIT, " dial / "}, {"bgdial", (void_fn_t) & conf_api_sub_bgdial, CONF_API_SUB_ARGS_SPLIT, @@ -4528,7 +4624,7 @@ switch_status_t conf_api_dispatch(conference_obj_t *conference, switch_stream_ha } if (!found) { - stream->write_function(stream, "Confernece command '%s' not found.\n", argv[argn]); + stream->write_function(stream, "Conference command '%s' not found.\n", argv[argn]); } else { status = SWITCH_STATUS_SUCCESS; } @@ -5586,7 +5682,7 @@ SWITCH_STANDARD_APP(conference_function) msg.message_id = SWITCH_MESSAGE_INDICATE_BRIDGE; switch_core_session_receive_message(session, &msg); - /* Run the confernece loop */ + /* Run the conference loop */ conference_loop_output(&member); switch_channel_set_private(channel, "_conference_autocall_list_", NULL); From 746e8e44cdb3e4d1678f859bf39fcbfe65e39ec7 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Sun, 27 Jun 2010 17:37:51 -0400 Subject: [PATCH 14/62] freetdm: add physical span:chan when logging --- libs/freetdm/src/include/private/ftdm_core.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/freetdm/src/include/private/ftdm_core.h b/libs/freetdm/src/include/private/ftdm_core.h index 0dad0209ed..560f0c4184 100644 --- a/libs/freetdm/src/include/private/ftdm_core.h +++ b/libs/freetdm/src/include/private/ftdm_core.h @@ -593,9 +593,9 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_queue_dtmf(ftdm_channel_t *ftdmchan, cons #define ftdm_channel_lock(chan) ftdm_mutex_lock(chan->mutex) #define ftdm_channel_unlock(chan) ftdm_mutex_unlock(chan->mutex) -#define ftdm_log_chan_ex(fchan, file, func, line, level, format, ...) ftdm_log(file, func, line, level, "s%dc%d " format, fchan->span_id, fchan->chan_id, __VA_ARGS__) -#define ftdm_log_chan(fchan, level, format, ...) ftdm_log(level, "s%dc%d " format, fchan->span_id, fchan->chan_id, __VA_ARGS__) -#define ftdm_log_chan_msg(fchan, level, msg) ftdm_log(level, "s%dc%d " msg, fchan->span_id, fchan->chan_id) +#define ftdm_log_chan_ex(fchan, file, func, line, level, format, ...) ftdm_log(file, func, line, level, "[s%dc%d][%d:%d] " format, fchan->span_id, fchan->chan_id, fchan->physical_span_id, fchan->physical_chan_id, __VA_ARGS__) +#define ftdm_log_chan(fchan, level, format, ...) ftdm_log(level, "[s%dc%d][%d:%d] " format, fchan->span_id, fchan->chan_id, fchan->physical_span_id, fchan->physical_chan_id, __VA_ARGS__) +#define ftdm_log_chan_msg(fchan, level, msg) ftdm_log(level, "[s%dc%d][%d:%d] " msg, fchan->span_id, fchan->chan_id, fchan->physical_span_id, fchan->physical_chan_id) FT_DECLARE_DATA extern const char *FTDM_LEVEL_NAMES[9]; From 7ef629e34bc4de769f8d3d082fade225574e24d3 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Sun, 27 Jun 2010 18:35:31 -0400 Subject: [PATCH 15/62] freetdm: check if the schedule is already running --- libs/freetdm/src/ftdm_sched.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libs/freetdm/src/ftdm_sched.c b/libs/freetdm/src/ftdm_sched.c index fc9fe60446..5aacc202bf 100644 --- a/libs/freetdm/src/ftdm_sched.c +++ b/libs/freetdm/src/ftdm_sched.c @@ -128,8 +128,16 @@ FT_DECLARE(ftdm_status_t) ftdm_sched_free_run(ftdm_sched_t *sched) ftdm_status_t status = FTDM_FAIL; ftdm_assert_return(sched != NULL, FTDM_EINVAL, "invalid pointer\n"); + ftdm_mutex_lock(sched->mutex); + ftdm_mutex_lock(sched_globals.mutex); + if (sched->freerun) { + ftdm_log(FTDM_LOG_ERROR, "Schedule %s is already running in free run\n", sched->name); + goto done; + } + sched->freerun = 1; + if (sched_globals.running == FTDM_FALSE) { ftdm_log(FTDM_LOG_NOTICE, "Launching main schedule thread\n"); status = ftdm_thread_create_detached(run_main_schedule, NULL); @@ -154,6 +162,8 @@ FT_DECLARE(ftdm_status_t) ftdm_sched_free_run(ftdm_sched_t *sched) done: ftdm_mutex_unlock(sched_globals.mutex); + + ftdm_mutex_unlock(sched->mutex); return status; } From bacef26a6a55468c44527562071a563714a56167 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Sun, 27 Jun 2010 19:31:26 -0400 Subject: [PATCH 16/62] openzap: misc dtmf merged changes from freetdm --- libs/openzap/mod_openzap/mod_openzap.c | 37 ++++++++++++------- .../src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c | 22 ++++++++--- 2 files changed, 39 insertions(+), 20 deletions(-) diff --git a/libs/openzap/mod_openzap/mod_openzap.c b/libs/openzap/mod_openzap/mod_openzap.c index 5aebfea57f..445725b1b7 100644 --- a/libs/openzap/mod_openzap/mod_openzap.c +++ b/libs/openzap/mod_openzap/mod_openzap.c @@ -1529,6 +1529,24 @@ static ZIO_SIGNAL_CB_FUNCTION(on_common_signal) return ZAP_BREAK; } +static void zap_enable_channel_dtmf(zap_channel_t *zchan, switch_channel_t *channel) +{ + if (channel) { + const char *var; + if ((var = switch_channel_get_variable(channel, "openzap_disable_dtmf"))) { + if (switch_true(var)) { + zap_channel_command(zchan, ZAP_COMMAND_DISABLE_DTMF_DETECT, NULL); + zap_log(ZAP_LOG_INFO, "DTMF detection disabled in channel %d:%d\n", zchan->span_id, zchan->chan_id); + return; + } + } + /* the variable is not present or has negative value then proceed to enable DTMF */ + } + if (zap_channel_command(zchan, ZAP_COMMAND_ENABLE_DTMF_DETECT, NULL) != ZAP_SUCCESS) { + zap_log(ZAP_LOG_ERROR, "Failed to enable DTMF detection in channel %d:%d\n", zchan->span_id, zchan->chan_id); + } +} + static ZIO_SIGNAL_CB_FUNCTION(on_fxo_signal) { switch_core_session_t *session = NULL; @@ -1567,6 +1585,7 @@ static ZIO_SIGNAL_CB_FUNCTION(on_fxo_signal) if ((session = zap_channel_get_session(sigmsg->channel, 0))) { channel = switch_core_session_get_channel(session); switch_channel_mark_answered(channel); + zap_enable_channel_dtmf(sigmsg->channel, channel); switch_core_session_rwunlock(session); } } @@ -1606,6 +1625,7 @@ static ZIO_SIGNAL_CB_FUNCTION(on_fxs_signal) if ((session = zap_channel_get_session(sigmsg->channel, 0))) { channel = switch_core_session_get_channel(session); switch_channel_mark_answered(channel); + zap_enable_channel_dtmf(sigmsg->channel, channel); switch_core_session_rwunlock(session); } } @@ -1887,12 +1907,9 @@ static ZIO_SIGNAL_CB_FUNCTION(on_r2_signal) case ZAP_SIGEVENT_UP: { if ((session = zap_channel_get_session(sigmsg->channel, 0))) { - zap_tone_type_t tt = ZAP_TONE_DTMF; channel = switch_core_session_get_channel(session); switch_channel_mark_answered(channel); - if (zap_channel_command(sigmsg->channel, ZAP_COMMAND_ENABLE_DTMF_DETECT, &tt) != ZAP_SUCCESS) { - zap_log(ZAP_LOG_ERROR, "Failed to enable DTMF detection in R2 channel %d:%d\n", sigmsg->channel->span_id, sigmsg->channel->chan_id); - } + zap_enable_channel_dtmf(sigmsg->channel, channel); switch_core_session_rwunlock(session); } } @@ -1923,12 +1940,7 @@ static ZIO_SIGNAL_CB_FUNCTION(on_clear_channel_signal) switch(sigmsg->event_id) { case ZAP_SIGEVENT_START: { - zap_tone_type_t tt = ZAP_TONE_DTMF; - - if (zap_channel_command(sigmsg->channel, ZAP_COMMAND_ENABLE_DTMF_DETECT, &tt) != ZAP_SUCCESS) { - zap_log(ZAP_LOG_ERROR, "TONE ERROR\n"); - } - + zap_enable_channel_dtmf(sigmsg->channel, channel); return zap_channel_from_event(sigmsg, &session); } break; @@ -1949,12 +1961,9 @@ static ZIO_SIGNAL_CB_FUNCTION(on_clear_channel_signal) case ZAP_SIGEVENT_UP: { if ((session = zap_channel_get_session(sigmsg->channel, 0))) { - zap_tone_type_t tt = ZAP_TONE_DTMF; channel = switch_core_session_get_channel(session); switch_channel_mark_answered(channel); - if (zap_channel_command(sigmsg->channel, ZAP_COMMAND_ENABLE_DTMF_DETECT, &tt) != ZAP_SUCCESS) { - zap_log(ZAP_LOG_ERROR, "TONE ERROR\n"); - } + zap_enable_channel_dtmf(sigmsg->channel, channel); switch_core_session_rwunlock(session); } else { const char *uuid = zap_channel_get_uuid(sigmsg->channel, 0); diff --git a/libs/openzap/src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c b/libs/openzap/src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c index 6afc7e6c0d..40cf2a5a7c 100644 --- a/libs/openzap/src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c +++ b/libs/openzap/src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c @@ -264,11 +264,8 @@ static unsigned wp_open_range(zap_span_t *span, unsigned spanno, unsigned start, err = sangoma_tdm_get_hw_dtmf(chan->sockfd, &tdm_api); if (err > 0) { - err = sangoma_tdm_enable_dtmf_events(chan->sockfd, &tdm_api); - if (err == 0) { - zap_channel_set_feature(chan, ZAP_CHANNEL_FEATURE_DTMF_DETECT); - dtmf = "hardware"; - } + zap_channel_set_feature(chan, ZAP_CHANNEL_FEATURE_DTMF_DETECT); + dtmf = "hardware"; } } @@ -1186,8 +1183,21 @@ static ZIO_CHANNEL_DESTROY_FUNCTION(wanpipe_channel_destroy) sangoma_wait_obj_delete(&sangoma_wait_obj); } #endif - if (zchan->sockfd != ZAP_INVALID_SOCKET) { + /* enable HW DTMF. As odd as it seems. Why enable when the channel is being destroyed and won't be used anymore? + * because that way we can transfer the DTMF state back to the driver, if we're being restarted we will set again + * the FEATURE_DTMF flag and use HW DTMF, if we don't enable here, then on module restart we won't see + * HW DTMF available and will use software */ + if (zap_channel_test_feature(zchan, ZAP_CHANNEL_FEATURE_DTMF_DETECT)) { + wanpipe_tdm_api_t tdm_api; + int err; + memset(&tdm_api, 0, sizeof(tdm_api)); + err = sangoma_tdm_enable_dtmf_events(zchan->sockfd, &tdm_api); + if (err) { + zap_log(ZAP_LOG_WARNING, "Failed to enable Sangoma HW DTMF on channel %d:%d at destroy\n", + zchan->span_id, zchan->chan_id); + } + } sangoma_close(&zchan->sockfd); } From dc048ed22de8d32167218910bf79b1f48c135e70 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Sun, 27 Jun 2010 19:33:11 -0400 Subject: [PATCH 17/62] freetdm: fix id --- libs/freetdm/mod_freetdm/mod_freetdm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index cc2592790f..923c34363b 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -1462,14 +1462,14 @@ static void ftdm_enable_channel_dtmf(ftdm_channel_t *fchan, switch_channel_t *ch if ((var = switch_channel_get_variable(channel, "freetdm_disable_dtmf"))) { if (switch_true(var)) { ftdm_channel_command(fchan, FTDM_COMMAND_DISABLE_DTMF_DETECT, NULL); - ftdm_log(FTDM_LOG_INFO, "DTMF detection disabled in channel %d:%d\n", ftdm_channel_get_id(fchan), ftdm_channel_get_span_id(fchan)); + ftdm_log(FTDM_LOG_INFO, "DTMF detection disabled in channel %d:%d\n", ftdm_channel_get_span_id(fchan), ftdm_channel_get_id(fchan)); return; } } /* the variable is not present or has a negative value then proceed to enable DTMF ... */ } if (ftdm_channel_command(fchan, FTDM_COMMAND_ENABLE_DTMF_DETECT, NULL) != FTDM_SUCCESS) { - ftdm_log(FTDM_LOG_ERROR, "Failed to enable DTMF detection in channel %d:%d\n", ftdm_channel_get_id(fchan), ftdm_channel_get_span_id(fchan)); + ftdm_log(FTDM_LOG_ERROR, "Failed to enable DTMF detection in channel %d:%d\n", ftdm_channel_get_span_id(fchan), ftdm_channel_get_id(fchan)); } } From 3b1d9f5bef7c71940bc0977ed6ec65c5408aab5b Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 28 Jun 2010 08:10:18 -0500 Subject: [PATCH 18/62] clear flag on destroy --- src/switch_core_sqldb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 71cfd416a9..c1eee58495 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -155,6 +155,7 @@ SWITCH_DECLARE(void) switch_cache_db_flush_handles(void) SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t ** dbh) { if (dbh && *dbh) { + switch_clear_flag(*dbh, CDF_INUSE); switch_mutex_unlock((*dbh)->mutex); *dbh = NULL; } From 46064642ba82ece5f06566af7c82fe2d81565642 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 28 Jun 2010 08:37:11 -0500 Subject: [PATCH 19/62] update --- src/mod/applications/mod_conference/mod_conference.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 883d7e088a..74a662811a 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -1951,7 +1951,11 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v goto do_continue; } - /* Check for input volume adjustments */ + /* Check for input volume adjustments */ + if (!switch_test_flag(member->conference, CFLAG_GAIN_CONTROL)) { + member->agc_volume_in_level = 0; + } + if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->agc_volume_in_level) { switch_change_sln_volume(read_frame->data, read_frame->datalen / 2, member->agc_volume_in_level); } else if (member->volume_in_level) { @@ -2004,11 +2008,11 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v member->agc_concur = 0; } - if (member->agc_concur >= one_sec / 2) { + if (member->agc_concur >= one_sec) { if (diff > 200) { member->agc_volume_in_level++; - if (diff > 200) { + if (diff > 400) { member->agc_volume_in_level++; } @@ -3400,7 +3404,7 @@ static switch_status_t conf_api_sub_agc_on(conference_obj_t *conference, switch_ static switch_status_t conf_api_sub_agc_off(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv) { switch_clear_flag(conference, CFLAG_GAIN_CONTROL); - + if (stream) { stream->write_function(stream, "OK AGC DISABLED\n"); } From 013222bba34cdb99bd1785b37d392cec33225922 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 28 Jun 2010 08:49:24 -0500 Subject: [PATCH 20/62] wait for state change --- src/mod/languages/mod_spidermonkey/mod_spidermonkey.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c b/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c index 09af60f9cb..4f6c7aadc4 100644 --- a/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c @@ -2864,6 +2864,7 @@ static JSBool session_construct(JSContext * cx, JSObject * obj, uintN argc, jsva &jss->session, &jss->cause, uuid, 60, NULL, NULL, NULL, NULL, NULL, SOF_NONE, NULL) == SWITCH_STATUS_SUCCESS) { switch_set_flag(jss, S_HUP); switch_channel_set_state(switch_core_session_get_channel(jss->session), CS_SOFT_EXECUTE); + switch_channel_wait_for_state_timeout(switch_core_session_get_channel(jss->session), CS_SOFT_EXECUTE, 5000); *rval = BOOLEAN_TO_JSVAL(JS_TRUE); } else { *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, switch_channel_cause2str(jss->cause))); From 7626a6c6b4d8e7f02fcfb3dbc965647009f10517 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 28 Jun 2010 10:25:21 -0500 Subject: [PATCH 21/62] nm this is bad --- src/switch_core_sqldb.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index c1eee58495..71cfd416a9 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -155,7 +155,6 @@ SWITCH_DECLARE(void) switch_cache_db_flush_handles(void) SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t ** dbh) { if (dbh && *dbh) { - switch_clear_flag(*dbh, CDF_INUSE); switch_mutex_unlock((*dbh)->mutex); *dbh = NULL; } From 5456b9abfda838e619bfe76790c8abde07f8ffa2 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Mon, 28 Jun 2010 12:42:26 -0400 Subject: [PATCH 22/62] freetdm: add ring flag to progress --- .../freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c b/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c index 9716a8c9bd..b079f9ecc7 100644 --- a/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c @@ -1455,7 +1455,7 @@ static __inline__ void state_advance(ftdm_channel_t *ftdmchan) BOOST_CHAN(ftdmchan), 0, SIGBOOST_EVENT_CALL_START_ACK, - 0, 0); + 0, SIGBOOST_PROGRESS_RING); } } } From a87429ac87fd142b49e325e1c91a7d515785e00c Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Mon, 28 Jun 2010 15:49:19 -0500 Subject: [PATCH 23/62] Add initial support for VS2010 --- Freeswitch.2010.sln | 2571 +++++++++++++++++ docs/docs.2010.vcxproj | 121 + fscomm/FSComm.2010.vcxproj | 539 ++++ .../broadvoice/src/libbroadvoice.2010.vcxproj | 227 ++ libs/esl/fs_cli.2010.vcxproj | 215 ++ libs/esl/src/esl.2010.vcxproj | 158 + libs/ilbc/libilbc.2010.vcxproj | 187 ++ libs/libdingaling/libdingaling.2010.vcxproj | 311 ++ libs/libteletone/libteletone.2010.vcxproj | 183 ++ .../build/msvc/portaudio.2010.vcxproj | 970 +++++++ libs/silk/src/Silk_FIX.2010.vcxproj | 300 ++ libs/spandsp/src/libspandsp.2010.vcxproj | 440 +++ .../src/msvc/make_at_dictionary.2010.vcxproj | 65 + .../src/msvc/make_modem_filter.2010.vcxproj | 96 + .../win32/VS2008/libspeex/libspeex.vcxproj | 644 +++++ .../VS2008/libspeexdsp/libspeexdsp.vcxproj | 390 +++ libs/srtp/libsrtp.2010.vcxproj | 457 +++ libs/unimrcp/build/vsprops/apr.props | 30 + libs/unimrcp/build/vsprops/apt.props | 15 + libs/unimrcp/build/vsprops/mpf.props | 15 + libs/unimrcp/build/vsprops/mrcp.props | 15 + libs/unimrcp/build/vsprops/mrcpclient.props | 15 + .../unimrcp/build/vsprops/mrcpsignaling.props | 15 + .../build/vsprops/mrcpv2transport.props | 14 + libs/unimrcp/build/vsprops/sofiasip.props | 22 + libs/unimrcp/build/vsprops/unibase.props | 26 + libs/unimrcp/build/vsprops/unidebug.props | 21 + libs/unimrcp/build/vsprops/unirelease.props | 18 + libs/unimrcp/build/vsprops/unirtsp.props | 15 + .../libs/apr-toolkit/aprtoolkit.2010.vcxproj | 157 + libs/unimrcp/libs/mpf/mpf.2010.vcxproj | 193 ++ .../libs/mrcp-client/mrcpclient.2010.vcxproj | 121 + .../mrcp-signaling/mrcpsignaling.2010.vcxproj | 121 + libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj | 148 + .../mrcpv2transport.2010.vcxproj | 124 + .../libs/uni-rtsp/unirtsp.2010.vcxproj | 132 + .../mrcp-sofiasip/mrcpsofiasip.2010.vcxproj | 139 + .../mrcp-unirtsp/mrcpunirtsp.2010.vcxproj | 133 + libs/win32/Dowload 32khz Sounds.2010.vcxproj | 82 + libs/win32/Dowload 32khz music.2010.vcxproj | 88 + libs/win32/Download 16khz Sounds.2010.vcxproj | 82 + libs/win32/Download 16khz music.2010.vcxproj | 88 + libs/win32/Download 8khz Sounds.2010.vcxproj | 77 + libs/win32/Download 8khz music.2010.vcxproj | 86 + libs/win32/Download CELT.vcxproj | 91 + libs/win32/Download FLITE.2010.vcxproj | 88 + libs/win32/Download JSON.2010.vcxproj | 86 + libs/win32/Download LAME.2010.vcxproj | 88 + libs/win32/Download LIBSHOUT.2010.vcxproj | 88 + libs/win32/Download OGG.2010.vcxproj | 88 + libs/win32/Download PTHREAD.2010.vcxproj | 84 + libs/win32/Download mpg123.2010.vcxproj | 88 + libs/win32/Download pocketsphinx.2010.vcxproj | 84 + libs/win32/Download sphinxbase.2010.vcxproj | 84 + libs/win32/Download sphinxmodel.2010.vcxproj | 87 + libs/win32/Sound_Files/16khz.2010.vcxproj | 82 + .../win32/Sound_Files/16khzmusic.2010.vcxproj | 66 + libs/win32/Sound_Files/32khz.2010.vcxproj | 82 + .../win32/Sound_Files/32khzmusic.2010.vcxproj | 64 + libs/win32/Sound_Files/8khz.2010.vcxproj | 82 + libs/win32/Sound_Files/8khzmusic.2010.vcxproj | 66 + libs/win32/apr-util/libaprutil.2010.vcxproj | 1035 +++++++ libs/win32/apr-util/xml.2010.vcxproj | 309 ++ libs/win32/apr/libapr.2010.vcxproj | 377 +++ libs/win32/celt/libcelt.vcxproj | 162 ++ libs/win32/curl/curllib.2010.vcxproj | 330 +++ libs/win32/flite/flite.2010.vcxproj | 326 +++ libs/win32/iksemel/iksemel.2010.vcxproj | 152 + libs/win32/js/js.2010.vcxproj | 460 +++ libs/win32/json/libjson.2010.vcxproj | 156 + libs/win32/libg722_1/libg722_1.vcxproj | 170 ++ libs/win32/libmp3lame/libmp3lame.2010.vcxproj | 494 ++++ libs/win32/libogg/libogg.2010.vcxproj | 221 ++ libs/win32/libshout/libshout.vcxproj | 203 ++ libs/win32/libsndfile/libsndfile.2010.vcxproj | 218 ++ libs/win32/mpg123/libmpg123.2010.vcxproj | 175 ++ libs/win32/pcre/libpcre.2010.vcxproj | 635 ++++ .../pocketsphinx/pocketsphinx.2010.vcxproj | 452 +++ libs/win32/pthread/pthread.2010.vcxproj | 500 ++++ .../sofia/libsofia_sip_ua_static.2010.vcxproj | 541 ++++ libs/win32/sphinxbase/sphinxbase.2010.vcxproj | 704 +++++ libs/win32/sqlite/sqlite.2010.vcxproj | 451 +++ libs/win32/udns/libudns.2010.vcxproj | 149 + libs/xmlrpc-c/Windows/abyss.2010.vcxproj | 457 +++ libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj | 216 ++ libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj | 640 ++++ libs/xmlrpc-c/Windows/xmltok.2010.vcxproj | 233 ++ src/inet_pton.c | 2 + .../mod_avmd/mod_avmd.2010.vcxproj | 154 + .../mod_commands/mod_commands.2010.vcxproj | 135 + .../mod_conference.2010.vcxproj | 135 + .../mod_curl/mod_curl.2010.vcxproj | 147 + .../applications/mod_db/mod_db.2010.vcxproj | 131 + .../mod_dptools/mod_dptools.2010.vcxproj | 135 + .../mod_easyroute/mod_easyroute.2010.vcxproj | 131 + .../mod_enum/mod_enum.2010.vcxproj | 143 + .../applications/mod_esf/mod_esf.2010.vcxproj | 131 + .../mod_expr/mod_expr.2010.vcxproj | 156 + .../mod_fifo/mod_fifo.2010.vcxproj | 131 + .../applications/mod_fsv/mod_fsv.2010.vcxproj | 131 + .../mod_hash/mod_hash.2010.vcxproj | 131 + .../applications/mod_lcr/mod_lcr.2010.vcxproj | 131 + .../mod_nibblebill.2010.vcxproj | 135 + .../applications/mod_rss/mod_rss.2010.vcxproj | 137 + .../mod_skel/mod_skel.2010.vcxproj | 135 + .../mod_snom/mod_snom.2010.vcxproj | 133 + .../mod_spandsp/mod_spandsp.2010.vcxproj | 151 + .../mod_valet_parking.2010.vcxproj | 135 + .../applications/mod_vmd/mod_vmd.2010.vcxproj | 131 + .../mod_voicemail/mod_voicemail.2010.vcxproj | 131 + .../mod_cepstral/mod_cepstral.2010.vcxproj | 143 + .../asr_tts/mod_flite/mod_flite.2010.vcxproj | 271 ++ .../mod_unimrcp/mod_unimrcp.2010.vcxproj | 198 ++ src/mod/codecs/mod_amr/mod_amr.2010.vcxproj | 253 ++ src/mod/codecs/mod_bv/mod_bv.2010.vcxproj | 139 + src/mod/codecs/mod_celt/mod_celt.vcxproj | 142 + .../codecs/mod_g723_1/mod_g723_1.2010.vcxproj | 260 ++ src/mod/codecs/mod_g729/mod_g729.2010.vcxproj | 259 ++ src/mod/codecs/mod_h26x/mod_h26x.2010.vcxproj | 139 + src/mod/codecs/mod_ilbc/mod_ilbc.2010.vcxproj | 143 + src/mod/codecs/mod_silk/mod_silk.2010.vcxproj | 139 + .../codecs/mod_siren/mod_siren.2010.vcxproj | 139 + .../codecs/mod_speex/mod_speex.2010.vcxproj | 146 + .../mod_dialplan_asterisk.2010.vcxproj | 131 + .../mod_dialplan_directory.2010.vcxproj | 135 + .../mod_dialplan_xml.2010.vcxproj | 135 + .../mod_ldap/mod_ldap.2010.vcxproj | 287 ++ .../mod_dingaling/mod_dingaling.2010.vcxproj | 156 + .../mod_loopback/mod_loopback.2010.vcxproj | 133 + .../endpoints/mod_opal/mod_opal_2010.vcxproj | 91 + .../mod_portaudio/mod_PortAudio.2010.vcxproj | 167 ++ .../mod_skinny/mod_skinny_2010.vcxproj | 101 + .../mod_skypopen/mod_skypopen.2010.vcxproj | 87 + .../mod_sofia/mod_sofia.2010.vcxproj | 172 ++ .../mod_cdr_csv/mod_cdr_csv.2010.vcxproj | 141 + .../mod_event_multicast.2010.vcxproj | 139 + .../mod_event_socket.2010.vcxproj | 135 + .../mod_file_string.2010.vcxproj | 131 + .../mod_local_stream.2010.vcxproj | 131 + .../mod_native_file.2010.vcxproj | 137 + src/mod/formats/mod_shout/mod_shout.vcxproj | 193 ++ .../mod_sndfile/mod_sndfile.2010.vcxproj | 149 + .../mod_tone_stream.2010.vcxproj | 135 + .../languages/mod_lua/lua/lua.2010.vcxproj | 227 ++ .../languages/mod_lua/mod_lua.2010.vcxproj | 156 + .../managed/FreeSWITCH.Managed.2010.csproj | 77 + .../mod_managed/mod_managed.2010.vcxproj | 392 +++ .../mod_spidermonkey.2010.vcxproj | 165 ++ .../mod_spidermonkey_core_db.2010.vcxproj | 181 ++ .../mod_spidermonkey_curl.2010.vcxproj | 181 ++ .../mod_spidermonkey_odbc.2010.vcxproj | 191 ++ .../mod_spidermonkey_socket.2010.vcxproj | 161 ++ .../mod_spidermonkey_teletone.2010.vcxproj | 191 ++ .../mod_console/mod_console.2010.vcxproj | 131 + .../mod_logfile/mod_logfile.2010.vcxproj | 131 + .../say/mod_say_de/mod_say_de.2010.vcxproj | 131 + .../say/mod_say_en/mod_say_en.2010.vcxproj | 135 + .../say/mod_say_es/mod_say_es.2010.vcxproj | 131 + .../say/mod_say_fr/mod_say_fr.2010.vcxproj | 131 + .../say/mod_say_it/mod_say_it.2010.vcxproj | 131 + .../say/mod_say_nl/mod_say_nl.2010.vcxproj | 143 + .../say/mod_say_ru/mod_say_ru.2010.vcxproj | 131 + .../say/mod_say_zh/mod_say_zh.2010.vcxproj | 131 + .../mod_xml_cdr/mod_xml_cdr.2010.vcxproj | 149 + .../mod_xml_curl/mod_xml_curl.2010.vcxproj | 147 + .../mod_xml_rpc/mod_xml_rpc.2010.vcxproj | 167 ++ w32/Console/FreeSwitchConsole.2010.vcxproj | 228 ++ w32/Library/FreeSwitchCore.2010.vcxproj | 813 ++++++ w32/apr.props | 12 + w32/curl.props | 12 + w32/module_debug.props | 22 + w32/module_release.props | 23 + w32/modules.props | 23 + w32/spidermonkey.props | 18 + w32/winlibs.props | 12 + 175 files changed, 34173 insertions(+) create mode 100644 Freeswitch.2010.sln create mode 100644 docs/docs.2010.vcxproj create mode 100644 fscomm/FSComm.2010.vcxproj create mode 100644 libs/broadvoice/src/libbroadvoice.2010.vcxproj create mode 100644 libs/esl/fs_cli.2010.vcxproj create mode 100644 libs/esl/src/esl.2010.vcxproj create mode 100644 libs/ilbc/libilbc.2010.vcxproj create mode 100644 libs/libdingaling/libdingaling.2010.vcxproj create mode 100644 libs/libteletone/libteletone.2010.vcxproj create mode 100644 libs/portaudio/build/msvc/portaudio.2010.vcxproj create mode 100644 libs/silk/src/Silk_FIX.2010.vcxproj create mode 100644 libs/spandsp/src/libspandsp.2010.vcxproj create mode 100644 libs/spandsp/src/msvc/make_at_dictionary.2010.vcxproj create mode 100644 libs/spandsp/src/msvc/make_modem_filter.2010.vcxproj create mode 100644 libs/speex/win32/VS2008/libspeex/libspeex.vcxproj create mode 100644 libs/speex/win32/VS2008/libspeexdsp/libspeexdsp.vcxproj create mode 100644 libs/srtp/libsrtp.2010.vcxproj create mode 100644 libs/unimrcp/build/vsprops/apr.props create mode 100644 libs/unimrcp/build/vsprops/apt.props create mode 100644 libs/unimrcp/build/vsprops/mpf.props create mode 100644 libs/unimrcp/build/vsprops/mrcp.props create mode 100644 libs/unimrcp/build/vsprops/mrcpclient.props create mode 100644 libs/unimrcp/build/vsprops/mrcpsignaling.props create mode 100644 libs/unimrcp/build/vsprops/mrcpv2transport.props create mode 100644 libs/unimrcp/build/vsprops/sofiasip.props create mode 100644 libs/unimrcp/build/vsprops/unibase.props create mode 100644 libs/unimrcp/build/vsprops/unidebug.props create mode 100644 libs/unimrcp/build/vsprops/unirelease.props create mode 100644 libs/unimrcp/build/vsprops/unirtsp.props create mode 100644 libs/unimrcp/libs/apr-toolkit/aprtoolkit.2010.vcxproj create mode 100644 libs/unimrcp/libs/mpf/mpf.2010.vcxproj create mode 100644 libs/unimrcp/libs/mrcp-client/mrcpclient.2010.vcxproj create mode 100644 libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2010.vcxproj create mode 100644 libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj create mode 100644 libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2010.vcxproj create mode 100644 libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj create mode 100644 libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2010.vcxproj create mode 100644 libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2010.vcxproj create mode 100644 libs/win32/Dowload 32khz Sounds.2010.vcxproj create mode 100644 libs/win32/Dowload 32khz music.2010.vcxproj create mode 100644 libs/win32/Download 16khz Sounds.2010.vcxproj create mode 100644 libs/win32/Download 16khz music.2010.vcxproj create mode 100644 libs/win32/Download 8khz Sounds.2010.vcxproj create mode 100644 libs/win32/Download 8khz music.2010.vcxproj create mode 100644 libs/win32/Download CELT.vcxproj create mode 100644 libs/win32/Download FLITE.2010.vcxproj create mode 100644 libs/win32/Download JSON.2010.vcxproj create mode 100644 libs/win32/Download LAME.2010.vcxproj create mode 100644 libs/win32/Download LIBSHOUT.2010.vcxproj create mode 100644 libs/win32/Download OGG.2010.vcxproj create mode 100644 libs/win32/Download PTHREAD.2010.vcxproj create mode 100644 libs/win32/Download mpg123.2010.vcxproj create mode 100644 libs/win32/Download pocketsphinx.2010.vcxproj create mode 100644 libs/win32/Download sphinxbase.2010.vcxproj create mode 100644 libs/win32/Download sphinxmodel.2010.vcxproj create mode 100644 libs/win32/Sound_Files/16khz.2010.vcxproj create mode 100644 libs/win32/Sound_Files/16khzmusic.2010.vcxproj create mode 100644 libs/win32/Sound_Files/32khz.2010.vcxproj create mode 100644 libs/win32/Sound_Files/32khzmusic.2010.vcxproj create mode 100644 libs/win32/Sound_Files/8khz.2010.vcxproj create mode 100644 libs/win32/Sound_Files/8khzmusic.2010.vcxproj create mode 100644 libs/win32/apr-util/libaprutil.2010.vcxproj create mode 100644 libs/win32/apr-util/xml.2010.vcxproj create mode 100644 libs/win32/apr/libapr.2010.vcxproj create mode 100644 libs/win32/celt/libcelt.vcxproj create mode 100644 libs/win32/curl/curllib.2010.vcxproj create mode 100644 libs/win32/flite/flite.2010.vcxproj create mode 100644 libs/win32/iksemel/iksemel.2010.vcxproj create mode 100644 libs/win32/js/js.2010.vcxproj create mode 100644 libs/win32/json/libjson.2010.vcxproj create mode 100644 libs/win32/libg722_1/libg722_1.vcxproj create mode 100644 libs/win32/libmp3lame/libmp3lame.2010.vcxproj create mode 100644 libs/win32/libogg/libogg.2010.vcxproj create mode 100644 libs/win32/libshout/libshout.vcxproj create mode 100644 libs/win32/libsndfile/libsndfile.2010.vcxproj create mode 100644 libs/win32/mpg123/libmpg123.2010.vcxproj create mode 100644 libs/win32/pcre/libpcre.2010.vcxproj create mode 100644 libs/win32/pocketsphinx/pocketsphinx.2010.vcxproj create mode 100644 libs/win32/pthread/pthread.2010.vcxproj create mode 100644 libs/win32/sofia/libsofia_sip_ua_static.2010.vcxproj create mode 100644 libs/win32/sphinxbase/sphinxbase.2010.vcxproj create mode 100644 libs/win32/sqlite/sqlite.2010.vcxproj create mode 100644 libs/win32/udns/libudns.2010.vcxproj create mode 100644 libs/xmlrpc-c/Windows/abyss.2010.vcxproj create mode 100644 libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj create mode 100644 libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj create mode 100644 libs/xmlrpc-c/Windows/xmltok.2010.vcxproj create mode 100644 src/mod/applications/mod_avmd/mod_avmd.2010.vcxproj create mode 100644 src/mod/applications/mod_commands/mod_commands.2010.vcxproj create mode 100644 src/mod/applications/mod_conference/mod_conference.2010.vcxproj create mode 100644 src/mod/applications/mod_curl/mod_curl.2010.vcxproj create mode 100644 src/mod/applications/mod_db/mod_db.2010.vcxproj create mode 100644 src/mod/applications/mod_dptools/mod_dptools.2010.vcxproj create mode 100644 src/mod/applications/mod_easyroute/mod_easyroute.2010.vcxproj create mode 100644 src/mod/applications/mod_enum/mod_enum.2010.vcxproj create mode 100644 src/mod/applications/mod_esf/mod_esf.2010.vcxproj create mode 100644 src/mod/applications/mod_expr/mod_expr.2010.vcxproj create mode 100644 src/mod/applications/mod_fifo/mod_fifo.2010.vcxproj create mode 100644 src/mod/applications/mod_fsv/mod_fsv.2010.vcxproj create mode 100644 src/mod/applications/mod_hash/mod_hash.2010.vcxproj create mode 100644 src/mod/applications/mod_lcr/mod_lcr.2010.vcxproj create mode 100644 src/mod/applications/mod_nibblebill/mod_nibblebill.2010.vcxproj create mode 100644 src/mod/applications/mod_rss/mod_rss.2010.vcxproj create mode 100644 src/mod/applications/mod_skel/mod_skel.2010.vcxproj create mode 100644 src/mod/applications/mod_snom/mod_snom.2010.vcxproj create mode 100644 src/mod/applications/mod_spandsp/mod_spandsp.2010.vcxproj create mode 100644 src/mod/applications/mod_valet_parking/mod_valet_parking.2010.vcxproj create mode 100644 src/mod/applications/mod_vmd/mod_vmd.2010.vcxproj create mode 100644 src/mod/applications/mod_voicemail/mod_voicemail.2010.vcxproj create mode 100644 src/mod/asr_tts/mod_cepstral/mod_cepstral.2010.vcxproj create mode 100644 src/mod/asr_tts/mod_flite/mod_flite.2010.vcxproj create mode 100644 src/mod/asr_tts/mod_unimrcp/mod_unimrcp.2010.vcxproj create mode 100644 src/mod/codecs/mod_amr/mod_amr.2010.vcxproj create mode 100644 src/mod/codecs/mod_bv/mod_bv.2010.vcxproj create mode 100644 src/mod/codecs/mod_celt/mod_celt.vcxproj create mode 100644 src/mod/codecs/mod_g723_1/mod_g723_1.2010.vcxproj create mode 100644 src/mod/codecs/mod_g729/mod_g729.2010.vcxproj create mode 100644 src/mod/codecs/mod_h26x/mod_h26x.2010.vcxproj create mode 100644 src/mod/codecs/mod_ilbc/mod_ilbc.2010.vcxproj create mode 100644 src/mod/codecs/mod_silk/mod_silk.2010.vcxproj create mode 100644 src/mod/codecs/mod_siren/mod_siren.2010.vcxproj create mode 100644 src/mod/codecs/mod_speex/mod_speex.2010.vcxproj create mode 100644 src/mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.2010.vcxproj create mode 100644 src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.2010.vcxproj create mode 100644 src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.2010.vcxproj create mode 100644 src/mod/directories/mod_ldap/mod_ldap.2010.vcxproj create mode 100644 src/mod/endpoints/mod_dingaling/mod_dingaling.2010.vcxproj create mode 100644 src/mod/endpoints/mod_loopback/mod_loopback.2010.vcxproj create mode 100644 src/mod/endpoints/mod_opal/mod_opal_2010.vcxproj create mode 100644 src/mod/endpoints/mod_portaudio/mod_PortAudio.2010.vcxproj create mode 100644 src/mod/endpoints/mod_skinny/mod_skinny_2010.vcxproj create mode 100644 src/mod/endpoints/mod_skypopen/mod_skypopen.2010.vcxproj create mode 100644 src/mod/endpoints/mod_sofia/mod_sofia.2010.vcxproj create mode 100644 src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.2010.vcxproj create mode 100644 src/mod/event_handlers/mod_event_multicast/mod_event_multicast.2010.vcxproj create mode 100644 src/mod/event_handlers/mod_event_socket/mod_event_socket.2010.vcxproj create mode 100644 src/mod/formats/mod_file_string/mod_file_string.2010.vcxproj create mode 100644 src/mod/formats/mod_local_stream/mod_local_stream.2010.vcxproj create mode 100644 src/mod/formats/mod_native_file/mod_native_file.2010.vcxproj create mode 100644 src/mod/formats/mod_shout/mod_shout.vcxproj create mode 100644 src/mod/formats/mod_sndfile/mod_sndfile.2010.vcxproj create mode 100644 src/mod/formats/mod_tone_stream/mod_tone_stream.2010.vcxproj create mode 100644 src/mod/languages/mod_lua/lua/lua.2010.vcxproj create mode 100644 src/mod/languages/mod_lua/mod_lua.2010.vcxproj create mode 100644 src/mod/languages/mod_managed/managed/FreeSWITCH.Managed.2010.csproj create mode 100644 src/mod/languages/mod_managed/mod_managed.2010.vcxproj create mode 100644 src/mod/languages/mod_spidermonkey/mod_spidermonkey.2010.vcxproj create mode 100644 src/mod/languages/mod_spidermonkey/mod_spidermonkey_core_db.2010.vcxproj create mode 100644 src/mod/languages/mod_spidermonkey/mod_spidermonkey_curl.2010.vcxproj create mode 100644 src/mod/languages/mod_spidermonkey/mod_spidermonkey_odbc.2010.vcxproj create mode 100644 src/mod/languages/mod_spidermonkey/mod_spidermonkey_socket.2010.vcxproj create mode 100644 src/mod/languages/mod_spidermonkey/mod_spidermonkey_teletone.2010.vcxproj create mode 100644 src/mod/loggers/mod_console/mod_console.2010.vcxproj create mode 100644 src/mod/loggers/mod_logfile/mod_logfile.2010.vcxproj create mode 100644 src/mod/say/mod_say_de/mod_say_de.2010.vcxproj create mode 100644 src/mod/say/mod_say_en/mod_say_en.2010.vcxproj create mode 100644 src/mod/say/mod_say_es/mod_say_es.2010.vcxproj create mode 100644 src/mod/say/mod_say_fr/mod_say_fr.2010.vcxproj create mode 100644 src/mod/say/mod_say_it/mod_say_it.2010.vcxproj create mode 100644 src/mod/say/mod_say_nl/mod_say_nl.2010.vcxproj create mode 100644 src/mod/say/mod_say_ru/mod_say_ru.2010.vcxproj create mode 100644 src/mod/say/mod_say_zh/mod_say_zh.2010.vcxproj create mode 100644 src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.2010.vcxproj create mode 100644 src/mod/xml_int/mod_xml_curl/mod_xml_curl.2010.vcxproj create mode 100644 src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj create mode 100644 w32/Console/FreeSwitchConsole.2010.vcxproj create mode 100644 w32/Library/FreeSwitchCore.2010.vcxproj create mode 100644 w32/apr.props create mode 100644 w32/curl.props create mode 100644 w32/module_debug.props create mode 100644 w32/module_release.props create mode 100644 w32/modules.props create mode 100644 w32/spidermonkey.props create mode 100644 w32/winlibs.props diff --git a/Freeswitch.2010.sln b/Freeswitch.2010.sln new file mode 100644 index 0000000000..37b0415498 --- /dev/null +++ b/Freeswitch.2010.sln @@ -0,0 +1,2571 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Endpoints", "Endpoints", "{9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Applications", "Applications", "{E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dialplans", "Dialplans", "{C5F182F9-754A-4EC5-B50F-76ED02BE13F4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Event Handlers", "Event Handlers", "{9ADF1E48-2F5C-4ED7-A893-596259FABFE0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Formats", "Formats", "{A5A27244-AD24-46E5-B01B-840CD296C91D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{CBD81696-EFB4-4D2F-8451-1B8DAA86155A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Directories", "Directories", "{B8F5B47B-8568-46EB-B320-64C17D2A98BC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Languages", "Languages", "{0C808854-54D1-4230-BFF5-77B5FD905000}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Loggers", "Loggers", "{A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XML Interfaces", "XML Interfaces", "{F69A4A6B-9360-4EBB-A280-22AA3C455AC5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Libraries", "_Libraries", "{EB910B0D-F27D-4B62-B67B-DE834C99AC5B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Downloads", "_Downloads", "{C120A020-773F-4EA3-923F-B67AF28B750D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "say", "say", "{6CD61A1D-797C-470A-BE08-8C31B68BB336}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Config", "_Config", "{57D119DC-484F-420F-B9E9-8589FD9A8DF8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Default", "Default", "{3B08FEFD-4D3D-4C16-BA94-EE83509E32A0}" + ProjectSection(SolutionItems) = preProject + conf\freeswitch.xml = conf\freeswitch.xml + conf\vars.xml = conf\vars.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Release", "Release", "{7BFD517E-7F8F-4A40-A78E-8D3632738227}" + ProjectSection(SolutionItems) = preProject + release\conf\freeswitch.xml = release\conf\freeswitch.xml + release\conf\vars.xml = release\conf\vars.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{6374D55C-FABE-4A02-9CF1-4145308A56C5}" + ProjectSection(SolutionItems) = preProject + debug\conf\freeswitch.xml = debug\conf\freeswitch.xml + debug\conf\vars.xml = debug\conf\vars.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build System", "_Build System", "{DB1024A8-41BF-4AD7-9AE6-13202230D1F3}" + ProjectSection(SolutionItems) = preProject + acsite.m4 = acsite.m4 + bootstrap.sh = bootstrap.sh + build\buildlib.sh = build\buildlib.sh + configure.in = configure.in + Makefile.am = Makefile.am + build\modmake.rules.in = build\modmake.rules.in + build\modules.conf.in = build\modules.conf.in + libs\win32\util.vbs = libs\win32\util.vbs + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "m4", "m4", "{CDE9B06A-3C27-4987-8FAE-DF1006BC705D}" + ProjectSection(SolutionItems) = preProject + build\config\ac_cflags_gcc_option.m4 = build\config\ac_cflags_gcc_option.m4 + build\config\ac_cflags_sun_option.m4 = build\config\ac_cflags_sun_option.m4 + build\config\ac_gcc_archflag.m4 = build\config\ac_gcc_archflag.m4 + build\config\ac_gcc_x86_cpuid.m4 = build\config\ac_gcc_x86_cpuid.m4 + build\config\ac_prog_gzip.m4 = build\config\ac_prog_gzip.m4 + build\config\ac_prog_wget.m4 = build\config\ac_prog_wget.m4 + build\config\ax_cc_maxopt.m4 = build\config\ax_cc_maxopt.m4 + build\config\ax_cflags_warn_all_ansi.m4 = build\config\ax_cflags_warn_all_ansi.m4 + build\config\ax_check_compiler_flags.m4 = build\config\ax_check_compiler_flags.m4 + build\config\ax_compiler_vendor.m4 = build\config\ax_compiler_vendor.m4 + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoload_configs", "{3C90CCF0-2CDD-4A7A-ACFF-208C1E271692}" + ProjectSection(SolutionItems) = preProject + conf\autoload_configs\alsa.conf.xml = conf\autoload_configs\alsa.conf.xml + conf\autoload_configs\conference.conf.xml = conf\autoload_configs\conference.conf.xml + conf\autoload_configs\console.conf.xml = conf\autoload_configs\console.conf.xml + conf\autoload_configs\dialplan_directory.conf.xml = conf\autoload_configs\dialplan_directory.conf.xml + conf\autoload_configs\dingaling.conf.xml = conf\autoload_configs\dingaling.conf.xml + conf\autoload_configs\enum.conf.xml = conf\autoload_configs\enum.conf.xml + conf\autoload_configs\event_multicast.conf.xml = conf\autoload_configs\event_multicast.conf.xml + conf\autoload_configs\event_socket.conf.xml = conf\autoload_configs\event_socket.conf.xml + conf\autoload_configs\ivr.conf.xml = conf\autoload_configs\ivr.conf.xml + conf\autoload_configs\java.conf.xml = conf\autoload_configs\java.conf.xml + conf\autoload_configs\limit.conf.xml = conf\autoload_configs\limit.conf.xml + conf\autoload_configs\local_stream.conf.xml = conf\autoload_configs\local_stream.conf.xml + conf\autoload_configs\logfile.conf.xml = conf\autoload_configs\logfile.conf.xml + conf\autoload_configs\modules.conf.xml = conf\autoload_configs\modules.conf.xml + conf\autoload_configs\openmrcp.conf.xml = conf\autoload_configs\openmrcp.conf.xml + conf\autoload_configs\portaudio.conf.xml = conf\autoload_configs\portaudio.conf.xml + conf\autoload_configs\rss.conf.xml = conf\autoload_configs\rss.conf.xml + conf\autoload_configs\sofia.conf.xml = conf\autoload_configs\sofia.conf.xml + conf\autoload_configs\spidermonkey.conf.xml = conf\autoload_configs\spidermonkey.conf.xml + conf\autoload_configs\switch.conf.xml = conf\autoload_configs\switch.conf.xml + conf\autoload_configs\syslog.conf.xml = conf\autoload_configs\syslog.conf.xml + conf\autoload_configs\voicemail.conf.xml = conf\autoload_configs\voicemail.conf.xml + conf\autoload_configs\wanpipe.conf.xml = conf\autoload_configs\wanpipe.conf.xml + conf\autoload_configs\woomera.conf.xml = conf\autoload_configs\woomera.conf.xml + conf\autoload_configs\xml_cdr.conf.xml = conf\autoload_configs\xml_cdr.conf.xml + conf\autoload_configs\xml_curl.conf.xml = conf\autoload_configs\xml_curl.conf.xml + conf\autoload_configs\xml_rpc.conf.xml = conf\autoload_configs\xml_rpc.conf.xml + conf\autoload_configs\zeroconf.conf.xml = conf\autoload_configs\zeroconf.conf.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC}" + ProjectSection(SolutionItems) = preProject + conf\dialplan\default.xml = conf\dialplan\default.xml + conf\dialplan\public.xml = conf\dialplan\public.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{FC71C66E-E268-4EAD-B1F5-F008DC382E83}" + ProjectSection(SolutionItems) = preProject + conf\directory\default.xml = conf\directory\default.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26}" + ProjectSection(SolutionItems) = preProject + conf\sip_profiles\external.xml = conf\sip_profiles\external.xml + conf\sip_profiles\internal.xml = conf\sip_profiles\internal.xml + conf\sip_profiles\nat.xml = conf\sip_profiles\nat.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lang", "lang", "{09455AA9-C243-4F16-A1A1-A016881A2765}" + ProjectSection(SolutionItems) = preProject + conf\directory\default.xml = conf\directory\default.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "en", "en", "{57199684-EC63-4A60-9DC6-11815AF6B413}" + ProjectSection(SolutionItems) = preProject + conf\lang\en\en.xml = conf\lang\en\en.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "de", "de", "{2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C}" + ProjectSection(SolutionItems) = preProject + conf\lang\de\de.xml = conf\lang\de\de.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fr", "fr", "{D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}" + ProjectSection(SolutionItems) = preProject + conf\lang\fr\fr.xml = conf\lang\fr\fr.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358}" + ProjectSection(SolutionItems) = preProject + conf\lang\de\demo\demo.xml = conf\lang\de\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{CC3E7F48-2590-49CB-AD8B-BE3650F55462}" + ProjectSection(SolutionItems) = preProject + conf\lang\de\vm\tts.xml = conf\lang\de\vm\tts.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{765EF1B9-5027-4820-BC37-A44466A51631}" + ProjectSection(SolutionItems) = preProject + conf\lang\en\demo\demo.xml = conf\lang\en\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{713E4747-1126-40B1-BD84-58F9A7745423}" + ProjectSection(SolutionItems) = preProject + conf\lang\en\vm\sounds.xml = conf\lang\en\vm\sounds.xml + conf\lang\en\vm\tts.xml = conf\lang\en\vm\tts.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{F1B71990-EB04-4EB5-B28A-BC3EB6F7E843}" + ProjectSection(SolutionItems) = preProject + conf\lang\fr\demo\demo.xml = conf\lang\fr\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{3DAF028C-AB5B-4183-A01B-DCC43F5A87F0}" + ProjectSection(SolutionItems) = preProject + conf\lang\fr\vm\sounds.xml = conf\lang\fr\vm\sounds.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoload_configs", "{4833F8E3-ABBF-4260-9DB1-B34015676CFC}" + ProjectSection(SolutionItems) = preProject + debug\conf\autoload_configs\alsa.conf.xml = debug\conf\autoload_configs\alsa.conf.xml + debug\conf\autoload_configs\conference.conf.xml = debug\conf\autoload_configs\conference.conf.xml + debug\conf\autoload_configs\console.conf.xml = debug\conf\autoload_configs\console.conf.xml + debug\conf\autoload_configs\dialplan_directory.conf.xml = debug\conf\autoload_configs\dialplan_directory.conf.xml + debug\conf\autoload_configs\dingaling.conf.xml = debug\conf\autoload_configs\dingaling.conf.xml + debug\conf\autoload_configs\enum.conf.xml = debug\conf\autoload_configs\enum.conf.xml + debug\conf\autoload_configs\event_multicast.conf.xml = debug\conf\autoload_configs\event_multicast.conf.xml + debug\conf\autoload_configs\event_socket.conf.xml = debug\conf\autoload_configs\event_socket.conf.xml + debug\conf\autoload_configs\ivr.conf.xml = debug\conf\autoload_configs\ivr.conf.xml + debug\conf\autoload_configs\java.conf.xml = debug\conf\autoload_configs\java.conf.xml + debug\conf\autoload_configs\limit.conf.xml = debug\conf\autoload_configs\limit.conf.xml + debug\conf\autoload_configs\local_stream.conf.xml = debug\conf\autoload_configs\local_stream.conf.xml + debug\conf\autoload_configs\logfile.conf.xml = debug\conf\autoload_configs\logfile.conf.xml + debug\conf\autoload_configs\modules.conf.xml = debug\conf\autoload_configs\modules.conf.xml + debug\conf\autoload_configs\openmrcp.conf.xml = debug\conf\autoload_configs\openmrcp.conf.xml + debug\conf\autoload_configs\portaudio.conf.xml = debug\conf\autoload_configs\portaudio.conf.xml + debug\conf\autoload_configs\rss.conf.xml = debug\conf\autoload_configs\rss.conf.xml + debug\conf\autoload_configs\sofia.conf.xml = debug\conf\autoload_configs\sofia.conf.xml + debug\conf\autoload_configs\spidermonkey.conf.xml = debug\conf\autoload_configs\spidermonkey.conf.xml + debug\conf\autoload_configs\switch.conf.xml = debug\conf\autoload_configs\switch.conf.xml + debug\conf\autoload_configs\syslog.conf.xml = debug\conf\autoload_configs\syslog.conf.xml + debug\conf\autoload_configs\voicemail.conf.xml = debug\conf\autoload_configs\voicemail.conf.xml + debug\conf\autoload_configs\wanpipe.conf.xml = debug\conf\autoload_configs\wanpipe.conf.xml + debug\conf\autoload_configs\woomera.conf.xml = debug\conf\autoload_configs\woomera.conf.xml + debug\conf\autoload_configs\xml_cdr.conf.xml = debug\conf\autoload_configs\xml_cdr.conf.xml + debug\conf\autoload_configs\xml_curl.conf.xml = debug\conf\autoload_configs\xml_curl.conf.xml + debug\conf\autoload_configs\xml_rpc.conf.xml = debug\conf\autoload_configs\xml_rpc.conf.xml + debug\conf\autoload_configs\zeroconf.conf.xml = debug\conf\autoload_configs\zeroconf.conf.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{D44DD429-FE98-42AA-B5B7-4B4EBE33AEFD}" + ProjectSection(SolutionItems) = preProject + debug\conf\dialplan\default.xml = debug\conf\dialplan\default.xml + debug\conf\dialplan\US.conf.xml = debug\conf\dialplan\US.conf.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{471110C9-A7ED-4966-98E1-8EA667BF0EEA}" + ProjectSection(SolutionItems) = preProject + debug\conf\directory\default.xml = debug\conf\directory\default.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{4DF5199E-F7F5-4347-97DD-22078FCDB371}" + ProjectSection(SolutionItems) = preProject + debug\conf\sip_profiles\default.xml = debug\conf\sip_profiles\default.xml + debug\conf\sip_profiles\nat.xml = debug\conf\sip_profiles\nat.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lang", "lang", "{B487BEBE-4A5C-434F-8D30-39465412F84F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "de", "de", "{2003189F-0E69-4FF7-A11D-3BFB3F03D558}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\de\de.xml = debug\conf\lang\de\de.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "en", "en", "{C8EA69FA-365E-4897-9BB0-08022509E18B}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\en\en.xml = debug\conf\lang\en\en.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fr", "fr", "{1240C217-6674-43C1-B099-B0290D84F28B}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\fr\fr.xml = debug\conf\lang\fr\fr.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{03517B06-98A1-46DD-9347-BFFFED7DD8A4}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\de\demo\demo.xml = debug\conf\lang\de\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{1D339A14-FFC2-4F6E-BEF2-D5D6DF14AC88}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\de\vm\tts.xml = debug\conf\lang\de\vm\tts.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{B4C6D0B5-5F39-4546-820D-4BCAA6C3E301}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\en\demo\demo.xml = debug\conf\lang\en\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{3041F86C-51D4-4D9E-8A00-91BA4B7C51D4}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\en\vm\sounds.xml = debug\conf\lang\en\vm\sounds.xml + debug\conf\lang\en\vm\tts.xml = debug\conf\lang\en\vm\tts.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{DFE96A6E-5C9A-4C74-959A-9C485A7AD95C}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\fr\demo\demo.xml = debug\conf\lang\fr\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{80A4CA5C-7208-4134-8EFD-C147B03C8AA1}" + ProjectSection(SolutionItems) = preProject + debug\conf\lang\fr\vm\sounds.xml = debug\conf\lang\fr\vm\sounds.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoload_configs", "{8D29085B-952D-4594-9BB9-5781CE552D0A}" + ProjectSection(SolutionItems) = preProject + release\conf\autoload_configs\alsa.conf.xml = release\conf\autoload_configs\alsa.conf.xml + release\conf\autoload_configs\conference.conf.xml = release\conf\autoload_configs\conference.conf.xml + release\conf\autoload_configs\console.conf.xml = release\conf\autoload_configs\console.conf.xml + release\conf\autoload_configs\dialplan_directory.conf.xml = release\conf\autoload_configs\dialplan_directory.conf.xml + release\conf\autoload_configs\dingaling.conf.xml = release\conf\autoload_configs\dingaling.conf.xml + release\conf\autoload_configs\enum.conf.xml = release\conf\autoload_configs\enum.conf.xml + release\conf\autoload_configs\event_multicast.conf.xml = release\conf\autoload_configs\event_multicast.conf.xml + release\conf\autoload_configs\event_socket.conf.xml = release\conf\autoload_configs\event_socket.conf.xml + release\conf\autoload_configs\ivr.conf.xml = release\conf\autoload_configs\ivr.conf.xml + release\conf\autoload_configs\java.conf.xml = release\conf\autoload_configs\java.conf.xml + release\conf\autoload_configs\limit.conf.xml = release\conf\autoload_configs\limit.conf.xml + release\conf\autoload_configs\local_stream.conf.xml = release\conf\autoload_configs\local_stream.conf.xml + release\conf\autoload_configs\logfile.conf.xml = release\conf\autoload_configs\logfile.conf.xml + release\conf\autoload_configs\modules.conf.xml = release\conf\autoload_configs\modules.conf.xml + release\conf\autoload_configs\openmrcp.conf.xml = release\conf\autoload_configs\openmrcp.conf.xml + release\conf\autoload_configs\portaudio.conf.xml = release\conf\autoload_configs\portaudio.conf.xml + release\conf\autoload_configs\rss.conf.xml = release\conf\autoload_configs\rss.conf.xml + release\conf\autoload_configs\sofia.conf.xml = release\conf\autoload_configs\sofia.conf.xml + release\conf\autoload_configs\spidermonkey.conf.xml = release\conf\autoload_configs\spidermonkey.conf.xml + release\conf\autoload_configs\switch.conf.xml = release\conf\autoload_configs\switch.conf.xml + release\conf\autoload_configs\syslog.conf.xml = release\conf\autoload_configs\syslog.conf.xml + release\conf\autoload_configs\voicemail.conf.xml = release\conf\autoload_configs\voicemail.conf.xml + release\conf\autoload_configs\wanpipe.conf.xml = release\conf\autoload_configs\wanpipe.conf.xml + release\conf\autoload_configs\woomera.conf.xml = release\conf\autoload_configs\woomera.conf.xml + release\conf\autoload_configs\xml_cdr.conf.xml = release\conf\autoload_configs\xml_cdr.conf.xml + release\conf\autoload_configs\xml_curl.conf.xml = release\conf\autoload_configs\xml_curl.conf.xml + release\conf\autoload_configs\xml_rpc.conf.xml = release\conf\autoload_configs\xml_rpc.conf.xml + release\conf\autoload_configs\zeroconf.conf.xml = release\conf\autoload_configs\zeroconf.conf.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{23874F4B-C0AF-4587-9F7E-DB0F06DE8CB4}" + ProjectSection(SolutionItems) = preProject + conf\dialplan\default.xml = conf\dialplan\default.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{19ED97F6-30D8-4FCE-AE1D-8B7FCB170D40}" + ProjectSection(SolutionItems) = preProject + release\conf\directory\default.xml = release\conf\directory\default.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sip_profiles", "sip_profiles", "{99E79D76-FCFC-466B-965B-273CCACF99B0}" + ProjectSection(SolutionItems) = preProject + release\conf\sip_profiles\default.xml = release\conf\sip_profiles\default.xml + release\conf\sip_profiles\nat.xml = release\conf\sip_profiles\nat.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lang", "lang", "{8FADAC7F-CA9E-49D9-B957-A5F5605D238C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "de", "de", "{58A56014-DEA7-4172-8C26-BAD8D499A1E8}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\de\de.xml = release\conf\lang\de\de.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "en", "en", "{EB577858-8284-4DEA-ADDA-DD046BCA0126}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\en\en.xml = release\conf\lang\en\en.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fr", "fr", "{89A94241-1DA6-44E8-A685-AED1E665C2AD}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\fr\fr.xml = release\conf\lang\fr\fr.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{2D74F635-AB18-43B3-A87E-A71F3EA24DDB}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\de\demo\demo.xml = release\conf\lang\de\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{A721E646-07E9-4E16-A92D-B97F654B2BAC}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\de\vm\tts.xml = release\conf\lang\de\vm\tts.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{50331CA0-7038-4341-B92D-C34E1601EFF0}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\en\demo\demo.xml = release\conf\lang\en\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{FC0DB2A2-B1A3-426E-9E37-BE28FE8FE01B}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\en\vm\sounds.xml = release\conf\lang\en\vm\sounds.xml + release\conf\lang\en\vm\tts.xml = release\conf\lang\en\vm\tts.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{91C6DEDE-CE4A-47D1-A84B-3E828F82E2B0}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\fr\demo\demo.xml = release\conf\lang\fr\demo\demo.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vm", "vm", "{8F5A511B-F716-4D07-9657-55B9E4F1D3E9}" + ProjectSection(SolutionItems) = preProject + release\conf\lang\fr\vm\sounds.xml = release\conf\lang\fr\vm\sounds.xml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sound Files", "Sound Files", "{4F227C26-768F-46A3-8684-1D08A46FB374}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unimrcp", "unimrcp", "{62F27B1A-C919-4A70-8478-51F178F3B18F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchConsole", "w32\Console\FreeSwitchConsole.2010.vcxproj", "{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.2010.vcxproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.2010.vcxproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.2010.vcxproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2010.vcxproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.2010.vcxproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2010.vcxproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2010.vcxproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ldap", "src\mod\directories\mod_ldap\mod_ldap.2010.vcxproj", "{EC3E5C7F-EE09-47E2-80FE-546363D14A98}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_directory", "src\mod\dialplans\mod_dialplan_directory\mod_dialplan_directory.2010.vcxproj", "{A27CCA23-1541-4337-81A4-F0A6413078A0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_multicast", "src\mod\event_handlers\mod_event_multicast\mod_event_multicast.2010.vcxproj", "{784113EF-44D9-4949-835D-7065D3C7AD08}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libteletone\libteletone.2010.vcxproj", "{89385C74-5860-4174-9CAF-A39E7C48909C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.2010.vcxproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2010.vcxproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2010.vcxproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dingaling", "src\mod\endpoints\mod_dingaling\mod_dingaling.2010.vcxproj", "{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.2010.vcxproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_console", "src\mod\loggers\mod_console\mod_console.2010.vcxproj", "{1C453396-D912-4213-89FD-9B489162B7B5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_int\mod_xml_rpc\mod_xml_rpc.2010.vcxproj", "{CBEC7225-0C21-4DA8-978E-1F158F8AD950}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.2010.vcxproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.2010.vcxproj", "{C24FB505-05D7-4319-8485-7540B44C8603}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.2010.vcxproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_socket", "src\mod\event_handlers\mod_event_socket\mod_event_socket.2010.vcxproj", "{05515420-16DE-4E63-BE73-85BE85BA5142}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.2010.vcxproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsrtp", "libs\srtp\libsrtp.2010.vcxproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsqlite", "libs\win32\sqlite\sqlite.2010.vcxproj", "{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre", "libs\win32\pcre\libpcre.2010.vcxproj", "{8D04B550-D240-4A44-8A18-35DA3F7038D9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre Generate pcre_chartables.c", "libs\win32\pcre\pcre_chartables.c.2010.vcxproj", "{1CED5987-A529-46DC-B30F-870D85FF9C94}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.2010.vcxproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.2010.vcxproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iksemel", "libs\win32\iksemel\iksemel.2010.vcxproj", "{E727E8F6-935D-46FE-8B0E-37834748A0E3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.2010.vcxproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "curllib", "libs\win32\curl\curllib.2010.vcxproj", "{87EE9DA4-DE1E-4448-8324-183C98DCA588}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "libs\win32\apr-util\xml.2010.vcxproj", "{155844C3-EC5F-407F-97A4-A2DDADED9B2F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "js", "libs\win32\js\js.2010.vcxproj", "{204FA0DE-305D-4414-AE2E-F195A23F390D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.2010.vcxproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsofia_sip_ua_static", "libs\win32\sofia\libsofia_sip_ua_static.2010.vcxproj", "{70A49BC2-7500-41D0-B75D-EDCC5BE987A0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PTHREAD", "libs\win32\Download PTHREAD.2010.vcxproj", "{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pthread", "libs\win32\pthread\pthread.2010.vcxproj", "{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.2010.vcxproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.2010.vcxproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_core_db", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_core_db.2010.vcxproj", "{ACFFF684-4D19-4D48-AF12-88EA1D778BDF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_teletone", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_teletone.2010.vcxproj", "{8F992C49-6C51-412F-B2A3-34EAB708EB65}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libudns", "libs\win32\udns\libudns.2010.vcxproj", "{4043FC6A-9A30-4577-8AD5-9B233C9575D8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_enum", "src\mod\applications\mod_enum\mod_enum.2010.vcxproj", "{71A967D5-0E99-4CEF-A587-98836EE6F2EF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_odbc", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_odbc.2010.vcxproj", "{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml_int\mod_xml_curl\mod_xml_curl.2010.vcxproj", "{AB91A099-7690-4ECF-8994-E458F4EA1ED4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.2010.vcxproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\portaudio\build\msvc\portaudio.2010.vcxproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.2010.vcxproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.2010.vcxproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h26x", "src\mod\codecs\mod_h26x\mod_h26x.2010.vcxproj", "{2C3C2423-234B-4772-8899-D3B137E5CA35}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_esf", "src\mod\applications\mod_esf\mod_esf.2010.vcxproj", "{3850D93A-5F24-4922-BC1C-74D08C37C256}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_local_stream", "src\mod\formats\mod_local_stream\mod_local_stream.2010.vcxproj", "{2CA40887-1622-46A1-A7F9-17FD7E7E545B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_socket", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_socket.2010.vcxproj", "{028C7278-05D7-4E18-82FE-BE231B844F41}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voicemail", "src\mod\applications\mod_voicemail\mod_voicemail.2010.vcxproj", "{D7F1E3F2-A3F4-474C-8555-15122571AF52}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_de", "src\mod\say\mod_say_de\mod_say_de.2010.vcxproj", "{5BC072DB-3826-48EA-AF34-FE32AA01E83B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_es", "src\mod\say\mod_say_es\mod_say_es.2010.vcxproj", "{FA429E98-8B03-45E6-A096-A4BC5E821DE4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_fr", "src\mod\say\mod_say_fr\mod_say_fr.2010.vcxproj", "{06E3A538-AB32-44F2-B477-755FF9CB5D37}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_it", "src\mod\say\mod_say_it\mod_say_it.2010.vcxproj", "{6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_nl", "src\mod\say\mod_say_nl\mod_say_nl.2010.vcxproj", "{A4B122CF-5196-476B-8C0E-D8BD59AC3C14}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fifo", "src\mod\applications\mod_fifo\mod_fifo.2010.vcxproj", "{75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_db", "src\mod\applications\mod_db\mod_db.2010.vcxproj", "{F6A33240-8F29-48BD-98F0-826995911799}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_expr", "src\mod\applications\mod_expr\mod_expr.2010.vcxproj", "{65A6273D-FCAB-4C55-B09E-65100141A5D4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_asterisk", "src\mod\dialplans\mod_dialplan_asterisk\mod_dialplan_asterisk.2010.vcxproj", "{E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_logfile", "src\mod\loggers\mod_logfile\mod_logfile.2010.vcxproj", "{D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr_csv", "src\mod\event_handlers\mod_cdr_csv\mod_cdr_csv.2010.vcxproj", "{44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_tone_stream", "src\mod\formats\mod_tone_stream\mod_tone_stream.2010.vcxproj", "{6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fsv", "src\mod\applications\mod_fsv\mod_fsv.2010.vcxproj", "{E3246D17-E29B-4AB5-962A-C69B0C5837BB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_curl", "src\mod\languages\mod_spidermonkey\mod_spidermonkey_curl.2010.vcxproj", "{36E854E3-CE12-4348-A125-CCF3F9D74813}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lua", "src\mod\languages\mod_lua\mod_lua.2010.vcxproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abyss", "libs\xmlrpc-c\Windows\abyss.2010.vcxproj", "{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlrpc", "libs\xmlrpc-c\Windows\xmlrpc.2010.vcxproj", "{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmlparse", "libs\xmlrpc-c\Windows\xmlparse.2010.vcxproj", "{0D108721-EAE8-4BAF-8102-D8960EC93647}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmltok", "libs\xmlrpc-c\Windows\xmltok.2010.vcxproj", "{B535402E-38D2-4D54-8360-423ACBD17192}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxbase", "libs\win32\Download sphinxbase.2010.vcxproj", "{4F92B672-DADB-4047-8D6A-4BB3796733FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download sphinxmodel", "libs\win32\Download sphinxmodel.2010.vcxproj", "{2DEE4895-1134-439C-B688-52203E57D878}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download pocketsphinx", "libs\win32\Download pocketsphinx.2010.vcxproj", "{AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinxbase", "libs\win32\sphinxbase\sphinxbase.2010.vcxproj", "{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pocketsphinx", "libs\win32\pocketsphinx\pocketsphinx.2010.vcxproj", "{94001A0E-A837-445C-8004-F918F10D0226}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_pocketsphinx", "src\mod\asr_tts\mod_pocketsphinx\mod_pocketsphinx.2010.vcxproj", "{2286DA73-9FC5-45BC-A508-85994C3317AB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khzsound", "libs\win32\Download 8khz Sounds.2010.vcxproj", "{3CE1DC99-8246-4DB1-A709-74F19F08EC67}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khzsound", "libs\win32\Download 16khz Sounds.2010.vcxproj", "{87A1FE3D-F410-4C8E-9591-8C625985BC70}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz", "libs\win32\Sound_Files\8khz.2010.vcxproj", "{7A8D8174-B355-4114-AFC1-04777CB9DE0A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz", "libs\win32\Sound_Files\16khz.2010.vcxproj", "{7EB71250-F002-4ED8-92CA-CA218114537A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khzsound", "libs\win32\Dowload 32khz Sounds.2010.vcxproj", "{6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz", "libs\win32\Sound_Files\32khz.2010.vcxproj", "{464AAB78-5489-4916-BE51-BF8D61822311}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flite", "libs\win32\flite\flite.2010.vcxproj", "{0AD1177E-1FD8-4643-9391-431467A11084}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_flite", "src\mod\asr_tts\mod_flite\mod_flite.2010.vcxproj", "{66444AEE-554C-11DD-A9F0-8C5D56D89593}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download FLITE", "libs\win32\Download FLITE.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LAME", "libs\win32\Download LAME.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LIBSHOUT", "libs\win32\Download LIBSHOUT.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download OGG", "libs\win32\Download OGG.2010.vcxproj", "{D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp3lame", "libs\win32\libmp3lame\libmp3lame.2010.vcxproj", "{E316772F-5D8F-4F2A-8F71-094C3E859D34}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libshout", "libs\win32\libshout\libshout.vcxproj", "{D3D8B329-20BE-475E-9E83-653CEA0E0EF5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shout", "src\mod\formats\mod_shout\mod_shout.vcxproj", "{38FE0559-9910-43A8-9E45-3E5004C27692}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libs\win32\libogg\libogg.2010.vcxproj", "{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_snom", "src\mod\applications\mod_snom\mod_snom.2010.vcxproj", "{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_zh", "src\mod\say\mod_say_zh\mod_say_zh.2010.vcxproj", "{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_managed", "src\mod\languages\mod_managed\mod_managed.2010.vcxproj", "{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSWITCH.Managed", "src\mod\languages\mod_managed\managed\FreeSWITCH.Managed.2010.csproj", "{834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download mpg123", "libs\win32\Download mpg123.2010.vcxproj", "{E796E337-DE78-4303-8614-9A590862EE95}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmpg123", "libs\win32\mpg123\libmpg123.2010.vcxproj", "{419C8F80-D858-4B48-A25C-AF4007608137}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_loopback", "src\mod\endpoints\mod_loopback\mod_loopback.2010.vcxproj", "{B3F424EC-3D8F-417C-B244-3919D5E1A577}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_vmd", "src\mod\applications\mod_vmd\mod_vmd.2010.vcxproj", "{14E4A972-9CFB-436D-B0A5-4943F3F80D47}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libg722_1", "libs\win32\libg722_1\libg722_1.vcxproj", "{1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_siren", "src\mod\codecs\mod_siren\mod_siren.2010.vcxproj", "{0B6C905B-142E-4999-B39D-92FF7951E921}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "esl", "libs\esl\src\esl.2010.vcxproj", "{CF405366-9558-4AE8-90EF-5E21B51CCB4E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fs_cli", "libs\esl\fs_cli.2010.vcxproj", "{D2FB8043-D208-4AEE-8F18-3B5857C871B9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_easyroute", "src\mod\applications\mod_easyroute\mod_easyroute.2010.vcxproj", "{329FD5B0-EF28-4606-86D0-F6EA21CF8E36}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lcr", "src\mod\applications\mod_lcr\mod_lcr.2010.vcxproj", "{1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.2010.vcxproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2010.vcxproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libs\speex\win32\VS2008\libspeex\libspeex.vcxproj", "{E972C52F-9E85-4D65-B19C-031E511E9DB4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeexdsp", "libs\speex\win32\VS2008\libspeexdsp\libspeexdsp.vcxproj", "{03207781-0D1C-4DB3-A71D-45C608F28DBD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\ilbc\libilbc.2010.vcxproj", "{9A5DDF08-C88C-4A35-B7F6-D605228446BD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua51", "src\mod\languages\mod_lua\lua\lua.2010.vcxproj", "{D0B36172-CD76-454A-9B89-990025266C2A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opal", "src\mod\endpoints\mod_opal\mod_opal_2010.vcxproj", "{05C9FB27-480E-4D53-B3B7-6338E2526666}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skinny", "src\mod\endpoints\mod_skinny\mod_skinny_2010.vcxproj", "{CC1DD008-9406-448D-A0AD-33C3186CFADB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_at_dictionary", "libs\spandsp\src\msvc\make_at_dictionary.2010.vcxproj", "{DEE932AB-5911-4700-9EEB-8C7090A0A330}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_modem_filter", "libs\spandsp\src\msvc\make_modem_filter.2010.vcxproj", "{329A6FA0-0FCC-4435-A950-E670AEFA9838}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skel", "src\mod\applications\mod_skel\mod_skel.2010.vcxproj", "{11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2010.vcxproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 32khz music", "libs\win32\Dowload 32khz music.2010.vcxproj", "{1F0A8A77-E661-418F-BB92-82172AE43803}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 8khz music", "libs\win32\Download 8khz music.2010.vcxproj", "{4F5C9D55-98EF-4256-8311-32D7BD360406}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download 16khz music", "libs\win32\Download 16khz music.2010.vcxproj", "{E10571C4-E7F4-4608-B5F2-B22E7EB95400}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "8khz music", "libs\win32\Sound_Files\8khzmusic.2010.vcxproj", "{D1ABE208-6442-4FB4-9AAD-1677E41BC870}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "16khz music", "libs\win32\Sound_Files\16khzmusic.2010.vcxproj", "{BA599D0A-4310-4505-91DA-6A6447B3E289}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz music", "libs\win32\Sound_Files\32khzmusic.2010.vcxproj", "{EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_file_string", "src\mod\formats\mod_file_string\mod_file_string.2010.vcxproj", "{70564D74-199A-4452-9C60-19ED5F242F0D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_nibblebill", "src\mod\applications\mod_nibblebill\mod_nibblebill.2010.vcxproj", "{3C977801-FE88-48F2-83D3-FA2EBFF6688E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\mod_say_ru\mod_say_ru.2010.vcxproj", "{0382E8FD-CFDC-41C0-8B03-792C7C84FC31}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_valet_parking", "src\mod\applications\mod_valet_parking\mod_valet_parking.2010.vcxproj", "{432DB165-1EB2-4781-A9C0-71E62610B20A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbroadvoice", "libs\broadvoice\src\libbroadvoice.2010.vcxproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bv", "src\mod\codecs\mod_bv\mod_bv.2010.vcxproj", "{D5C87B19-150D-4EF3-A671-96589BD2D14A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aprtoolkit", "libs\unimrcp\libs\apr-toolkit\aprtoolkit.2010.vcxproj", "{13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpf", "libs\unimrcp\libs\mpf\mpf.2010.vcxproj", "{B5A00BFA-6083-4FAE-A097-71642D6473B5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcp", "libs\unimrcp\libs\mrcp\mrcp.2010.vcxproj", "{1C320193-46A6-4B34-9C56-8AB584FC1B56}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpclient", "libs\unimrcp\libs\mrcp-client\mrcpclient.2010.vcxproj", "{72782932-37CC-46AE-8C7F-9A7B1A6EE108}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsignaling", "libs\unimrcp\libs\mrcp-signaling\mrcpsignaling.2010.vcxproj", "{12A49562-BAB9-43A3-A21D-15B60BBB4C31}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpv2transport", "libs\unimrcp\libs\mrcpv2-transport\mrcpv2transport.2010.vcxproj", "{A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unirtsp", "libs\unimrcp\libs\uni-rtsp\unirtsp.2010.vcxproj", "{504B3154-7A4F-459D-9877-B951021C3F1F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsofiasip", "libs\unimrcp\modules\mrcp-sofiasip\mrcpsofiasip.2010.vcxproj", "{746F3632-5BB2-4570-9453-31D6D58A7D8E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpunirtsp", "libs\unimrcp\modules\mrcp-unirtsp\mrcpunirtsp.2010.vcxproj", "{DEB01ACB-D65F-4A62-AED9-58C1054499E9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_unimrcp", "src\mod\asr_tts\mod_unimrcp\mod_unimrcp.2010.vcxproj", "{D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download CELT", "libs\win32\Download CELT.vcxproj", "{FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcelt", "libs\win32\celt\libcelt.vcxproj", "{ABB71A76-42B0-47A4-973A-42E3D920C6FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_celt", "src\mod\codecs\mod_celt\mod_celt.vcxproj", "{4D418176-3B33-47E6-A63E-01BA34ADD21C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FSComm", "fscomm\FSComm.2010.vcxproj", "{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_curl", "src\mod\applications\mod_curl\mod_curl.2010.vcxproj", "{EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download JSON", "libs\win32\Download JSON.2010.vcxproj", "{B808178B-82F0-4CF4-A2B1-921939FA24D0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjson", "libs\win32\json\libjson.2010.vcxproj", "{9778F1C0-09BC-4698-8EBC-BD982247209A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_silk", "src\mod\codecs\mod_silk\mod_silk.2010.vcxproj", "{AFA983D6-4569-4F88-BA94-555ED00FD9A8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silk_FIX", "libs\silk\src\Silk_FIX.2010.vcxproj", "{56B91D01-9150-4BBF-AFA1-5B68AB991B76}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_avmd", "src\mod\applications\mod_avmd\mod_avmd.2010.vcxproj", "{990BAA76-89D3-4E38-8479-C7B28784EFC8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spandsp", "src\mod\applications\mod_spandsp\mod_spandsp.2010.vcxproj", "{1E21AFE0-6FDB-41D2-942D-863607C24B91}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_hash", "src\mod\applications\mod_hash\mod_hash.2010.vcxproj", "{2E250296-0C08-4342-9C8A-BCBDD0E7DF65}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + All|Win32 = All|Win32 + All|x64 = All|x64 + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|Win32.ActiveCfg = Release|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.ActiveCfg = Release|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.Build.0 = Release|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.ActiveCfg = Debug|Win32 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.Build.0 = Debug|Win32 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.ActiveCfg = Debug|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.Build.0 = Debug|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.ActiveCfg = Release|Win32 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|Win32.Build.0 = Release|Win32 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.ActiveCfg = Release|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release|x64.Build.0 = Release|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|Win32.ActiveCfg = Release|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.ActiveCfg = Release|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.Build.0 = Release|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.ActiveCfg = Debug|Win32 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.Build.0 = Debug|Win32 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.ActiveCfg = Debug|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.Build.0 = Debug|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.ActiveCfg = Release|Win32 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|Win32.Build.0 = Release|Win32 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.ActiveCfg = Release|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release|x64.Build.0 = Release|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|Win32.ActiveCfg = Release Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.ActiveCfg = Release Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.Build.0 = Release Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.Build.0 = Debug Passthrough|Win32 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.ActiveCfg = Debug Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.Build.0 = Debug Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.ActiveCfg = Release Passthrough|Win32 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|Win32.Build.0 = Release Passthrough|Win32 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.ActiveCfg = Release Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release|x64.Build.0 = Release Passthrough|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|Win32.ActiveCfg = Release|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.ActiveCfg = Release|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.Build.0 = Release|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.ActiveCfg = Debug|Win32 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.Build.0 = Debug|Win32 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.ActiveCfg = Debug|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.Build.0 = Debug|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.ActiveCfg = Release|Win32 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.Build.0 = Release|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|Win32.ActiveCfg = Release|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.ActiveCfg = Release|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.Build.0 = Release|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.Build.0 = Debug|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.ActiveCfg = Release|Win32 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.ActiveCfg = Release|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|Win32.ActiveCfg = Release|x64 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.ActiveCfg = Release|x64 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.All|x64.Build.0 = Release|x64 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.ActiveCfg = Debug|Win32 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|Win32.Build.0 = Debug|Win32 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.ActiveCfg = Debug|x64 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Debug|x64.Build.0 = Debug|x64 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.ActiveCfg = Release|Win32 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|Win32.Build.0 = Release|Win32 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.ActiveCfg = Release|x64 + {5580D60E-0F77-4716-9CD4-B8E5986FA375}.Release|x64.Build.0 = Release|x64 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x64.ActiveCfg = Debug|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|Win32.ActiveCfg = Release|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release|x64.ActiveCfg = Release|Win32 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|Win32.ActiveCfg = Release|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.ActiveCfg = Release|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.Build.0 = Release|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.ActiveCfg = Debug|Win32 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.Build.0 = Debug|Win32 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.ActiveCfg = Debug|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.Build.0 = Debug|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.ActiveCfg = Release|Win32 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.Build.0 = Release|Win32 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.ActiveCfg = Release|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.Build.0 = Release|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|Win32.ActiveCfg = Release MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.ActiveCfg = Release MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.Build.0 = Release MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.ActiveCfg = Debug MS-LDAP|Win32 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.Build.0 = Debug MS-LDAP|Win32 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.ActiveCfg = Debug MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.Build.0 = Debug MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.ActiveCfg = Release MS-LDAP|Win32 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|Win32.Build.0 = Release MS-LDAP|Win32 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.ActiveCfg = Release MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release|x64.Build.0 = Release MS-LDAP|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|Win32.ActiveCfg = Release|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.ActiveCfg = Release|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.Build.0 = Release|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.ActiveCfg = Debug|Win32 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.Build.0 = Debug|Win32 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.ActiveCfg = Debug|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.Build.0 = Debug|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.ActiveCfg = Release|Win32 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|Win32.Build.0 = Release|Win32 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.ActiveCfg = Release|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release|x64.Build.0 = Release|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.All|Win32.ActiveCfg = Release|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.ActiveCfg = Release|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.Build.0 = Release|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.ActiveCfg = Debug|Win32 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.Build.0 = Debug|Win32 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.ActiveCfg = Debug|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.Build.0 = Debug|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.ActiveCfg = Release|Win32 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|Win32.Build.0 = Release|Win32 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.ActiveCfg = Release|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Release|x64.Build.0 = Release|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.All|Win32.ActiveCfg = Release|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.ActiveCfg = Release|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.Build.0 = Release|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.ActiveCfg = Debug|Win32 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.Build.0 = Debug|Win32 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.ActiveCfg = Debug|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.Build.0 = Debug|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.ActiveCfg = Release|Win32 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|Win32.Build.0 = Release|Win32 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.ActiveCfg = Release|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Release|x64.Build.0 = Release|x64 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|Win32.ActiveCfg = Release|x64 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.ActiveCfg = Release|x64 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.All|x64.Build.0 = Release|x64 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.ActiveCfg = Debug|Win32 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|Win32.Build.0 = Debug|Win32 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.ActiveCfg = Debug|x64 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Debug|x64.Build.0 = Debug|x64 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.ActiveCfg = Release|Win32 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|Win32.Build.0 = Release|Win32 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.ActiveCfg = Release|x64 + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}.Release|x64.Build.0 = Release|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|Win32.ActiveCfg = Debug|Win32 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64.ActiveCfg = Debug|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|Win32.ActiveCfg = Release|Win32 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64.ActiveCfg = Release|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|Win32.ActiveCfg = Release|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.ActiveCfg = Release|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.Build.0 = Release|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.Build.0 = Debug|Win32 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.ActiveCfg = Debug|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.Build.0 = Debug|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.ActiveCfg = Release|Win32 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.Build.0 = Release|Win32 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.ActiveCfg = Release|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|x64.Build.0 = Release|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|Win32.ActiveCfg = Release|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.ActiveCfg = Release|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.Build.0 = Release|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.ActiveCfg = Debug|Win32 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.Build.0 = Debug|Win32 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.ActiveCfg = Debug|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.Build.0 = Debug|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.ActiveCfg = Release|Win32 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.Build.0 = Release|Win32 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.ActiveCfg = Release|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|x64.Build.0 = Release|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|Win32.ActiveCfg = Release|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.ActiveCfg = Release|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.Build.0 = Release|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.ActiveCfg = Debug|Win32 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.Build.0 = Debug|Win32 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.ActiveCfg = Debug|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.Build.0 = Debug|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.ActiveCfg = Release|Win32 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|Win32.Build.0 = Release|Win32 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.ActiveCfg = Release|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release|x64.Build.0 = Release|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.All|Win32.ActiveCfg = Release|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.ActiveCfg = Release|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.Build.0 = Release|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.ActiveCfg = Debug|Win32 + {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.Build.0 = Debug|Win32 + {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.ActiveCfg = Debug|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.Build.0 = Debug|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.ActiveCfg = Release|Win32 + {1C453396-D912-4213-89FD-9B489162B7B5}.Release|Win32.Build.0 = Release|Win32 + {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.ActiveCfg = Release|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Release|x64.Build.0 = Release|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|Win32.ActiveCfg = Release|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.ActiveCfg = Release|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.Build.0 = Release|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.ActiveCfg = Debug|Win32 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.Build.0 = Debug|Win32 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.ActiveCfg = Debug|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.Build.0 = Debug|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.ActiveCfg = Release|Win32 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.Build.0 = Release|Win32 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.ActiveCfg = Release|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.Build.0 = Release|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|Win32.ActiveCfg = Release|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.ActiveCfg = Release|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.Build.0 = Release|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.ActiveCfg = Debug|Win32 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.Build.0 = Debug|Win32 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.ActiveCfg = Debug|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.Build.0 = Debug|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.ActiveCfg = Release|Win32 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.Build.0 = Release|Win32 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.ActiveCfg = Release|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.Build.0 = Release|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.All|Win32.ActiveCfg = Release|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.ActiveCfg = Release|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.Build.0 = Release|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.ActiveCfg = Debug|Win32 + {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.Build.0 = Debug|Win32 + {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.ActiveCfg = Debug|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.Build.0 = Debug|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.ActiveCfg = Release|Win32 + {C24FB505-05D7-4319-8485-7540B44C8603}.Release|Win32.Build.0 = Release|Win32 + {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.ActiveCfg = Release|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Release|x64.Build.0 = Release|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|Win32.ActiveCfg = Release|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.ActiveCfg = Release|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.Build.0 = Release|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.ActiveCfg = Debug|Win32 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.Build.0 = Debug|Win32 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.ActiveCfg = Debug|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.Build.0 = Debug|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.ActiveCfg = Release|Win32 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|Win32.Build.0 = Release|Win32 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.ActiveCfg = Release|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release|x64.Build.0 = Release|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.All|Win32.ActiveCfg = Release|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.ActiveCfg = Release|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.Build.0 = Release|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.ActiveCfg = Debug|Win32 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.Build.0 = Debug|Win32 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.ActiveCfg = Debug|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.Build.0 = Debug|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.ActiveCfg = Release|Win32 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|Win32.Build.0 = Release|Win32 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.ActiveCfg = Release|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Release|x64.Build.0 = Release|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.All|Win32.ActiveCfg = Release DLL|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.ActiveCfg = Release DLL|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.Build.0 = Release DLL|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.ActiveCfg = Debug|Win32 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.Build.0 = Debug|Win32 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.ActiveCfg = Debug|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.Build.0 = Debug|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.ActiveCfg = Release|Win32 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|Win32.Build.0 = Release|Win32 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.ActiveCfg = Release|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Release|x64.Build.0 = Release|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|Win32.ActiveCfg = Release Dll|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.ActiveCfg = Release Dll|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.Build.0 = Release Dll|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.ActiveCfg = Debug|Win32 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.Build.0 = Debug|Win32 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.ActiveCfg = Debug|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.Build.0 = Debug|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.ActiveCfg = Release|Win32 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|Win32.Build.0 = Release|Win32 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.ActiveCfg = Release|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release|x64.Build.0 = Release|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|Win32.ActiveCfg = Release DLL|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.ActiveCfg = Release DLL|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.Build.0 = Release DLL|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.Build.0 = Debug|Win32 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.ActiveCfg = Debug|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.Build.0 = Debug|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.ActiveCfg = Release|Win32 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|Win32.Build.0 = Release|Win32 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.ActiveCfg = Release|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release|x64.Build.0 = Release|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|Win32.ActiveCfg = Release DLL|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.ActiveCfg = Release DLL|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.Build.0 = Release DLL|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.ActiveCfg = Debug|Win32 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.Build.0 = Debug|Win32 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.ActiveCfg = Debug|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.Build.0 = Debug|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.ActiveCfg = Release|Win32 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|Win32.Build.0 = Release|Win32 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.ActiveCfg = Release|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.Build.0 = Release|x64 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.ActiveCfg = Release|x64 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.ActiveCfg = Release|x64 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.Build.0 = Release|x64 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.ActiveCfg = Debug|x64 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.Build.0 = Debug|x64 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.ActiveCfg = Release|x64 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.Build.0 = Release|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|Win32.ActiveCfg = Release|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.ActiveCfg = Release|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.Build.0 = Release|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.ActiveCfg = Debug|Win32 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.Build.0 = Debug|Win32 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.ActiveCfg = Debug|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.Build.0 = Debug|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.ActiveCfg = Release|Win32 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.Build.0 = Release|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|Win32.ActiveCfg = Release|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.ActiveCfg = Release|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.Build.0 = Release|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.ActiveCfg = Debug|Win32 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.Build.0 = Debug|Win32 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.ActiveCfg = Debug|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.Build.0 = Debug|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.ActiveCfg = Release|Win32 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|Win32.Build.0 = Release|Win32 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.ActiveCfg = Release|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release|x64.Build.0 = Release|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|Win32.ActiveCfg = Release|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.ActiveCfg = Release|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.Build.0 = Release|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.ActiveCfg = Debug|Win32 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.Build.0 = Debug|Win32 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.ActiveCfg = Debug|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.Build.0 = Debug|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.ActiveCfg = Release|Win32 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.Build.0 = Release|Win32 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.ActiveCfg = Release|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.Build.0 = Release|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|Win32.ActiveCfg = Release|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.ActiveCfg = Release|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.Build.0 = Release|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.ActiveCfg = Debug|Win32 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.Build.0 = Debug|Win32 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.ActiveCfg = Debug|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.Build.0 = Debug|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.ActiveCfg = Release|Win32 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|Win32.Build.0 = Release|Win32 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.ActiveCfg = Release|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release|x64.Build.0 = Release|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|Win32.ActiveCfg = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.ActiveCfg = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.Build.0 = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.ActiveCfg = Debug|Win32 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.Build.0 = Debug|Win32 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.ActiveCfg = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.Build.0 = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.ActiveCfg = Release|Win32 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|Win32.Build.0 = Release|Win32 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.ActiveCfg = Release|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release|x64.Build.0 = Release|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|Win32.ActiveCfg = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.ActiveCfg = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.Build.0 = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.ActiveCfg = Debug|Win32 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.Build.0 = Debug|Win32 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.ActiveCfg = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.Build.0 = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.ActiveCfg = Release|Win32 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|Win32.Build.0 = Release|Win32 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.ActiveCfg = Release|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release|x64.Build.0 = Release|x64 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|Win32.ActiveCfg = Debug|x64 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.ActiveCfg = Debug|x64 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.All|x64.Build.0 = Debug|x64 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.ActiveCfg = Debug|Win32 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|Win32.Build.0 = Debug|Win32 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.ActiveCfg = Debug|x64 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.Debug|x64.Build.0 = Debug|x64 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.ActiveCfg = Release|Win32 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|Win32.Build.0 = Release|Win32 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.ActiveCfg = Release|x64 + {204FA0DE-305D-4414-AE2E-F195A23F390D}.Release|x64.Build.0 = Release|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|Win32.ActiveCfg = Release|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.ActiveCfg = Release|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.Build.0 = Release|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.ActiveCfg = Debug|Win32 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.Build.0 = Debug|Win32 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.ActiveCfg = Debug|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.Build.0 = Debug|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.ActiveCfg = Release|Win32 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|Win32.Build.0 = Release|Win32 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.ActiveCfg = Release|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release|x64.Build.0 = Release|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|Win32.ActiveCfg = Release|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.ActiveCfg = Release|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.Build.0 = Release|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.ActiveCfg = Debug|Win32 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.Build.0 = Debug|Win32 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.ActiveCfg = Debug|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.Build.0 = Debug|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.ActiveCfg = Release|Win32 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|Win32.Build.0 = Release|Win32 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.ActiveCfg = Release|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release|x64.Build.0 = Release|x64 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.ActiveCfg = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.Build.0 = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.ActiveCfg = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.Build.0 = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.ActiveCfg = Debug|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.Build.0 = Debug|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.ActiveCfg = Debug|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.Build.0 = Debug|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.ActiveCfg = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|Win32.Build.0 = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.ActiveCfg = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release|x64.Build.0 = Release|Win32 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|Win32.ActiveCfg = Release DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.ActiveCfg = Release DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.Build.0 = Release DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.ActiveCfg = Debug DLL|Win32 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.Build.0 = Debug DLL|Win32 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.ActiveCfg = Debug DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.Build.0 = Debug DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.ActiveCfg = Release DLL|Win32 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|Win32.Build.0 = Release DLL|Win32 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.ActiveCfg = Release DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release|x64.Build.0 = Release DLL|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|Win32.ActiveCfg = Release Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.ActiveCfg = Release Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.Build.0 = Release Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.Build.0 = Debug Passthrough|Win32 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.ActiveCfg = Debug Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.Build.0 = Debug Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.ActiveCfg = Release Passthrough|Win32 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.Build.0 = Release Passthrough|Win32 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.ActiveCfg = Release Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.Build.0 = Release Passthrough|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.ActiveCfg = Release|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.Build.0 = Release|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.ActiveCfg = Debug|Win32 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.Build.0 = Debug|Win32 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.ActiveCfg = Debug|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.Build.0 = Debug|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.ActiveCfg = Release|Win32 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.Build.0 = Release|Win32 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.ActiveCfg = Release|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.Build.0 = Release|x64 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|Win32.ActiveCfg = Release|x64 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.ActiveCfg = Release|x64 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.All|x64.Build.0 = Release|x64 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.ActiveCfg = Debug|Win32 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.Build.0 = Debug|Win32 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.ActiveCfg = Debug|x64 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.Build.0 = Debug|x64 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.ActiveCfg = Release|Win32 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|Win32.Build.0 = Release|Win32 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64.ActiveCfg = Release|x64 + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Release|x64.Build.0 = Release|x64 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|Win32.ActiveCfg = Release|x64 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.ActiveCfg = Release|x64 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.All|x64.Build.0 = Release|x64 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.ActiveCfg = Debug|Win32 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.Build.0 = Debug|Win32 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64.ActiveCfg = Debug|x64 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|x64.Build.0 = Debug|x64 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.ActiveCfg = Release|Win32 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.Build.0 = Release|Win32 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64.ActiveCfg = Release|x64 + {8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|x64.Build.0 = Release|x64 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|Win32.ActiveCfg = Release|x64 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64.ActiveCfg = Release|x64 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.All|x64.Build.0 = Release|x64 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|Win32.ActiveCfg = Debug|Win32 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|Win32.Build.0 = Debug|Win32 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|x64.ActiveCfg = Debug|x64 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|x64.Build.0 = Debug|x64 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|Win32.ActiveCfg = Release|Win32 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|Win32.Build.0 = Release|Win32 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|x64.ActiveCfg = Release|x64 + {4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|x64.Build.0 = Release|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|Win32.ActiveCfg = Release|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.ActiveCfg = Release|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.Build.0 = Release|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.ActiveCfg = Debug|Win32 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.Build.0 = Debug|Win32 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.ActiveCfg = Debug|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.Build.0 = Debug|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.ActiveCfg = Release|Win32 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.Build.0 = Release|Win32 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.ActiveCfg = Release|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|x64.Build.0 = Release|x64 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|Win32.ActiveCfg = Release|x64 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.ActiveCfg = Release|x64 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.All|x64.Build.0 = Release|x64 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.Build.0 = Debug|Win32 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64.ActiveCfg = Debug|x64 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|x64.Build.0 = Debug|x64 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.ActiveCfg = Release|Win32 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.Build.0 = Release|Win32 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64.ActiveCfg = Release|x64 + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|x64.Build.0 = Release|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|Win32.ActiveCfg = Release|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.ActiveCfg = Release|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.Build.0 = Release|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.ActiveCfg = Debug|Win32 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.Build.0 = Debug|Win32 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.ActiveCfg = Debug|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.Build.0 = Debug|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.ActiveCfg = Release|Win32 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|Win32.Build.0 = Release|Win32 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.ActiveCfg = Release|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release|x64.Build.0 = Release|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|Win32.ActiveCfg = Release|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.ActiveCfg = Release|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.Build.0 = Release|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.ActiveCfg = Debug|Win32 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.Build.0 = Debug|Win32 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.ActiveCfg = Debug|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.Build.0 = Debug|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.ActiveCfg = Release|Win32 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.Build.0 = Release|Win32 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.ActiveCfg = Release|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.Build.0 = Release|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release DirectSound|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release DirectSound|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.Build.0 = Release DirectSound|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|Win32.ActiveCfg = Release|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.ActiveCfg = Release|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.Build.0 = Release|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.ActiveCfg = Debug|Win32 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.Build.0 = Debug|Win32 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.ActiveCfg = Debug|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.Build.0 = Debug|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.ActiveCfg = Release|Win32 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|Win32.Build.0 = Release|Win32 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.ActiveCfg = Release|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release|x64.Build.0 = Release|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|Win32.ActiveCfg = Release Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.ActiveCfg = Release Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.Build.0 = Release Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.ActiveCfg = Debug Passthrough|Win32 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.Build.0 = Debug Passthrough|Win32 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.ActiveCfg = Debug Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.Build.0 = Debug Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.ActiveCfg = Release Passthrough|Win32 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.Build.0 = Release Passthrough|Win32 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.ActiveCfg = Release Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.Build.0 = Release Passthrough|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|Win32.ActiveCfg = Release|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.ActiveCfg = Release|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.Build.0 = Release|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.ActiveCfg = Debug|Win32 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.Build.0 = Debug|Win32 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.ActiveCfg = Debug|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.Build.0 = Debug|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.ActiveCfg = Release|Win32 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.Build.0 = Release|Win32 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.ActiveCfg = Release|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.Build.0 = Release|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|Win32.ActiveCfg = Release|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.ActiveCfg = Release|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.Build.0 = Release|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.ActiveCfg = Debug|Win32 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.Build.0 = Debug|Win32 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.ActiveCfg = Debug|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.Build.0 = Debug|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.ActiveCfg = Release|Win32 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|Win32.Build.0 = Release|Win32 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.ActiveCfg = Release|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release|x64.Build.0 = Release|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|Win32.ActiveCfg = Release|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.ActiveCfg = Release|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.Build.0 = Release|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.ActiveCfg = Debug|Win32 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.Build.0 = Debug|Win32 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.ActiveCfg = Debug|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.Build.0 = Debug|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.ActiveCfg = Release|Win32 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|Win32.Build.0 = Release|Win32 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.ActiveCfg = Release|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release|x64.Build.0 = Release|x64 + {028C7278-05D7-4E18-82FE-BE231B844F41}.All|Win32.ActiveCfg = Release|x64 + {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.ActiveCfg = Release|x64 + {028C7278-05D7-4E18-82FE-BE231B844F41}.All|x64.Build.0 = Release|x64 + {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.ActiveCfg = Debug|Win32 + {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|Win32.Build.0 = Debug|Win32 + {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64.ActiveCfg = Debug|x64 + {028C7278-05D7-4E18-82FE-BE231B844F41}.Debug|x64.Build.0 = Debug|x64 + {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.ActiveCfg = Release|Win32 + {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|Win32.Build.0 = Release|Win32 + {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64.ActiveCfg = Release|x64 + {028C7278-05D7-4E18-82FE-BE231B844F41}.Release|x64.Build.0 = Release|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|Win32.ActiveCfg = Release|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.ActiveCfg = Release|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.Build.0 = Release|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.ActiveCfg = Debug|Win32 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.Build.0 = Debug|Win32 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.ActiveCfg = Debug|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.Build.0 = Debug|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.ActiveCfg = Release|Win32 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.Build.0 = Release|Win32 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.ActiveCfg = Release|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.Build.0 = Release|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|Win32.ActiveCfg = Release|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.ActiveCfg = Release|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.Build.0 = Release|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.ActiveCfg = Debug|Win32 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.Build.0 = Debug|Win32 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.ActiveCfg = Debug|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.Build.0 = Debug|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.ActiveCfg = Release|Win32 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.Build.0 = Release|Win32 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.ActiveCfg = Release|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.Build.0 = Release|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|Win32.ActiveCfg = Release|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.ActiveCfg = Release|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.Build.0 = Release|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.ActiveCfg = Debug|Win32 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.Build.0 = Debug|Win32 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.ActiveCfg = Debug|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.Build.0 = Debug|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.ActiveCfg = Release|Win32 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.Build.0 = Release|Win32 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.ActiveCfg = Release|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.Build.0 = Release|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|Win32.ActiveCfg = Release|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.ActiveCfg = Release|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.Build.0 = Release|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.ActiveCfg = Debug|Win32 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.Build.0 = Debug|Win32 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.ActiveCfg = Debug|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.Build.0 = Debug|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.ActiveCfg = Release|Win32 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.Build.0 = Release|Win32 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.ActiveCfg = Release|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.Build.0 = Release|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|Win32.ActiveCfg = Release|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.ActiveCfg = Release|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.Build.0 = Release|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.ActiveCfg = Debug|Win32 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.Build.0 = Debug|Win32 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.ActiveCfg = Debug|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.Build.0 = Debug|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.ActiveCfg = Release|Win32 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.Build.0 = Release|Win32 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.ActiveCfg = Release|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.Build.0 = Release|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|Win32.ActiveCfg = Release|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.ActiveCfg = Release|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.Build.0 = Release|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.ActiveCfg = Debug|Win32 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.Build.0 = Debug|Win32 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.ActiveCfg = Debug|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.Build.0 = Debug|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.ActiveCfg = Release|Win32 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.Build.0 = Release|Win32 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.ActiveCfg = Release|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.Build.0 = Release|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|Win32.ActiveCfg = Release|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.ActiveCfg = Release|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.Build.0 = Release|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.ActiveCfg = Debug|Win32 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.Build.0 = Debug|Win32 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.ActiveCfg = Debug|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.Build.0 = Debug|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.ActiveCfg = Release|Win32 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|Win32.Build.0 = Release|Win32 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.ActiveCfg = Release|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release|x64.Build.0 = Release|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.All|Win32.ActiveCfg = Release|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.ActiveCfg = Release|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.Build.0 = Release|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.ActiveCfg = Debug|Win32 + {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.Build.0 = Debug|Win32 + {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.ActiveCfg = Debug|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.Build.0 = Debug|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.ActiveCfg = Release|Win32 + {F6A33240-8F29-48BD-98F0-826995911799}.Release|Win32.Build.0 = Release|Win32 + {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.ActiveCfg = Release|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Release|x64.Build.0 = Release|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|Win32.ActiveCfg = Release|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.ActiveCfg = Release|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.Build.0 = Release|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.ActiveCfg = Debug|Win32 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.Build.0 = Debug|Win32 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.ActiveCfg = Debug|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.Build.0 = Debug|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.ActiveCfg = Release|Win32 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|Win32.Build.0 = Release|Win32 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.ActiveCfg = Release|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release|x64.Build.0 = Release|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|Win32.ActiveCfg = Release|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.ActiveCfg = Release|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.Build.0 = Release|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.ActiveCfg = Debug|Win32 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.Build.0 = Debug|Win32 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.ActiveCfg = Debug|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.Build.0 = Debug|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.ActiveCfg = Release|Win32 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|Win32.Build.0 = Release|Win32 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.ActiveCfg = Release|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release|x64.Build.0 = Release|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|Win32.ActiveCfg = Release|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.ActiveCfg = Release|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.Build.0 = Release|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.ActiveCfg = Debug|Win32 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.Build.0 = Debug|Win32 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.ActiveCfg = Debug|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.Build.0 = Debug|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.ActiveCfg = Release|Win32 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|Win32.Build.0 = Release|Win32 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.ActiveCfg = Release|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release|x64.Build.0 = Release|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|Win32.ActiveCfg = Release|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.ActiveCfg = Release|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.Build.0 = Release|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.ActiveCfg = Debug|Win32 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.Build.0 = Debug|Win32 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.ActiveCfg = Debug|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.Build.0 = Debug|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.ActiveCfg = Release|Win32 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|Win32.Build.0 = Release|Win32 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.ActiveCfg = Release|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release|x64.Build.0 = Release|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|Win32.ActiveCfg = Release|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.ActiveCfg = Release|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.Build.0 = Release|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.ActiveCfg = Debug|Win32 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.Build.0 = Debug|Win32 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.ActiveCfg = Debug|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.Build.0 = Debug|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.ActiveCfg = Release|Win32 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|Win32.Build.0 = Release|Win32 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.ActiveCfg = Release|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release|x64.Build.0 = Release|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|Win32.ActiveCfg = Release|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.ActiveCfg = Release|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.Build.0 = Release|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.ActiveCfg = Debug|Win32 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.Build.0 = Debug|Win32 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.ActiveCfg = Debug|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.Build.0 = Debug|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.ActiveCfg = Release|Win32 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|Win32.Build.0 = Release|Win32 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.ActiveCfg = Release|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release|x64.Build.0 = Release|x64 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|Win32.ActiveCfg = Release|x64 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.ActiveCfg = Release|x64 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.All|x64.Build.0 = Release|x64 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.ActiveCfg = Debug|Win32 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|Win32.Build.0 = Debug|Win32 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64.ActiveCfg = Debug|x64 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.Debug|x64.Build.0 = Debug|x64 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.ActiveCfg = Release|Win32 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|Win32.Build.0 = Release|Win32 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.ActiveCfg = Release|x64 + {36E854E3-CE12-4348-A125-CCF3F9D74813}.Release|x64.Build.0 = Release|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|Win32.ActiveCfg = Release|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.ActiveCfg = Release|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.Build.0 = Release|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.Build.0 = Debug|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.Build.0 = Release|Win32 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.ActiveCfg = Release|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.Build.0 = Release|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|Win32.ActiveCfg = Release|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.ActiveCfg = Release|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.Build.0 = Release|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.ActiveCfg = Debug|Win32 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.Build.0 = Debug|Win32 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.ActiveCfg = Debug|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.Build.0 = Debug|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|Win32.ActiveCfg = Release|Win32 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|Win32.Build.0 = Release|Win32 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64.ActiveCfg = Release|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release|x64.Build.0 = Release|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|Win32.ActiveCfg = Release|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.ActiveCfg = Release|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.Build.0 = Release|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.ActiveCfg = Debug|Win32 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.Build.0 = Debug|Win32 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.ActiveCfg = Debug|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.Build.0 = Debug|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|Win32.ActiveCfg = Release|Win32 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|Win32.Build.0 = Release|Win32 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64.ActiveCfg = Release|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release|x64.Build.0 = Release|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|Win32.ActiveCfg = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.ActiveCfg = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.Build.0 = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.ActiveCfg = Debug|Win32 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.Build.0 = Debug|Win32 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.ActiveCfg = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.Build.0 = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|Win32.ActiveCfg = Release|Win32 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|Win32.Build.0 = Release|Win32 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64.ActiveCfg = Release|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release|x64.Build.0 = Release|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.All|Win32.ActiveCfg = Release|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.ActiveCfg = Release|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.Build.0 = Release|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.ActiveCfg = Debug|Win32 + {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.Build.0 = Debug|Win32 + {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.ActiveCfg = Debug|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.Build.0 = Debug|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Release|Win32.ActiveCfg = Release|Win32 + {B535402E-38D2-4D54-8360-423ACBD17192}.Release|Win32.Build.0 = Release|Win32 + {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64.ActiveCfg = Release|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Release|x64.Build.0 = Release|x64 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.ActiveCfg = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.Build.0 = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.ActiveCfg = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.Build.0 = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.Build.0 = Debug|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.ActiveCfg = Debug|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.Build.0 = Debug|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.ActiveCfg = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|Win32.Build.0 = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.ActiveCfg = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release|x64.Build.0 = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.ActiveCfg = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.Build.0 = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.ActiveCfg = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.Build.0 = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.ActiveCfg = Debug|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.Build.0 = Debug|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.ActiveCfg = Debug|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.Build.0 = Debug|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.ActiveCfg = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Release|Win32.Build.0 = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.ActiveCfg = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Release|x64.Build.0 = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.ActiveCfg = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.Build.0 = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.ActiveCfg = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.Build.0 = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.ActiveCfg = Debug|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.Build.0 = Debug|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.ActiveCfg = Debug|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.Build.0 = Debug|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.ActiveCfg = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|Win32.Build.0 = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.ActiveCfg = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release|x64.Build.0 = Release|Win32 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|Win32.ActiveCfg = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.ActiveCfg = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.Build.0 = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.ActiveCfg = Debug|Win32 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.Build.0 = Debug|Win32 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.ActiveCfg = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.Build.0 = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.ActiveCfg = Release|Win32 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.Build.0 = Release|Win32 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.ActiveCfg = Release|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|x64.Build.0 = Release|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.All|Win32.ActiveCfg = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.ActiveCfg = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.Build.0 = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.ActiveCfg = Debug|Win32 + {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.Build.0 = Debug|Win32 + {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.ActiveCfg = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.Build.0 = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.ActiveCfg = Release|Win32 + {94001A0E-A837-445C-8004-F918F10D0226}.Release|Win32.Build.0 = Release|Win32 + {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.ActiveCfg = Release|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Release|x64.Build.0 = Release|x64 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|Win32.ActiveCfg = Release|x64 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.ActiveCfg = Release|x64 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.All|x64.Build.0 = Release|x64 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.ActiveCfg = Debug|Win32 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|Win32.Build.0 = Debug|Win32 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.ActiveCfg = Debug|x64 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.Debug|x64.Build.0 = Debug|x64 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.ActiveCfg = Release|Win32 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|Win32.Build.0 = Release|Win32 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.ActiveCfg = Release|x64 + {2286DA73-9FC5-45BC-A508-85994C3317AB}.Release|x64.Build.0 = Release|x64 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.ActiveCfg = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.Build.0 = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.ActiveCfg = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.Build.0 = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.ActiveCfg = Debug|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.Build.0 = Debug|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.ActiveCfg = Debug|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.Build.0 = Debug|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.ActiveCfg = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|Win32.Build.0 = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.ActiveCfg = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.Build.0 = Release|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|Win32.ActiveCfg = Release|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x64.ActiveCfg = Release|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|Win32.ActiveCfg = Debug|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x64.ActiveCfg = Debug|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|Win32.ActiveCfg = Release|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release|x64.ActiveCfg = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.ActiveCfg = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.Build.0 = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.ActiveCfg = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.Build.0 = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.ActiveCfg = Debug|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.Build.0 = Debug|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.ActiveCfg = Debug|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.Build.0 = Debug|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.ActiveCfg = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|Win32.Build.0 = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.ActiveCfg = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.Build.0 = Release|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.All|Win32.ActiveCfg = Release|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x64.ActiveCfg = Release|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|Win32.ActiveCfg = Debug|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x64.ActiveCfg = Debug|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|Win32.ActiveCfg = Release|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x64.ActiveCfg = Release|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|Win32.ActiveCfg = Release|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x64.ActiveCfg = Release|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|Win32.ActiveCfg = Debug|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x64.ActiveCfg = Debug|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|Win32.ActiveCfg = Release|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x64.ActiveCfg = Release|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.All|Win32.ActiveCfg = Release|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.All|x64.ActiveCfg = Release|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|Win32.ActiveCfg = Debug|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x64.ActiveCfg = Debug|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Release|Win32.ActiveCfg = Release|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Release|x64.ActiveCfg = Release|Win32 + {0AD1177E-1FD8-4643-9391-431467A11084}.All|Win32.ActiveCfg = Release|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.ActiveCfg = Release|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.Build.0 = Release|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.ActiveCfg = Debug|Win32 + {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.Build.0 = Debug|Win32 + {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.ActiveCfg = Debug|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.Build.0 = Debug|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.ActiveCfg = Release|Win32 + {0AD1177E-1FD8-4643-9391-431467A11084}.Release|Win32.Build.0 = Release|Win32 + {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.ActiveCfg = Release|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Release|x64.Build.0 = Release|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|Win32.ActiveCfg = Release Static|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.ActiveCfg = Release Static|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.Build.0 = Release Static|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.ActiveCfg = Debug|Win32 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.ActiveCfg = Debug|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|Win32.ActiveCfg = Release|Win32 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release|x64.ActiveCfg = Release|x64 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release|x64.Build.0 = Release|Win32 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|Win32.ActiveCfg = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.ActiveCfg = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.Build.0 = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.ActiveCfg = Debug|Win32 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.Build.0 = Debug|Win32 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.ActiveCfg = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.Build.0 = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.ActiveCfg = Release|Win32 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|Win32.Build.0 = Release|Win32 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.ActiveCfg = Release|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release|x64.Build.0 = Release|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|Win32.ActiveCfg = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.ActiveCfg = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.Build.0 = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.ActiveCfg = Debug|Win32 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.Build.0 = Debug|Win32 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.ActiveCfg = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.Build.0 = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.ActiveCfg = Release|Win32 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|Win32.Build.0 = Release|Win32 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.ActiveCfg = Release|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release|x64.Build.0 = Release|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.All|Win32.ActiveCfg = Release|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.ActiveCfg = Release|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.Build.0 = Release|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.ActiveCfg = Debug|Win32 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.Build.0 = Debug|Win32 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.ActiveCfg = Debug|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.Build.0 = Debug|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.ActiveCfg = Release|Win32 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|Win32.Build.0 = Release|Win32 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.ActiveCfg = Release|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Release|x64.Build.0 = Release|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|Win32.ActiveCfg = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.ActiveCfg = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.Build.0 = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.ActiveCfg = Debug|Win32 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.Build.0 = Debug|Win32 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.ActiveCfg = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.Build.0 = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.ActiveCfg = Release|Win32 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.Build.0 = Release|Win32 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.ActiveCfg = Release|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.Build.0 = Release|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|Win32.ActiveCfg = Release|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.ActiveCfg = Release|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.Build.0 = Release|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.ActiveCfg = Debug|Win32 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.Build.0 = Debug|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.ActiveCfg = Release|Win32 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.Build.0 = Release|Win32 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.ActiveCfg = Release|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.Build.0 = Release|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|Win32.ActiveCfg = Release|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.ActiveCfg = Release|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.Build.0 = Release|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.ActiveCfg = Debug|Win32 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.Build.0 = Debug|Win32 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.ActiveCfg = Debug|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.Build.0 = Debug|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.ActiveCfg = Release|Win32 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|Win32.Build.0 = Release|Win32 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.ActiveCfg = Release|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release|x64.Build.0 = Release|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|Win32.ActiveCfg = Release_Mono|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.ActiveCfg = Release_Mono|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.Build.0 = Release_Mono|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.ActiveCfg = Debug_CLR|Win32 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.Build.0 = Debug_CLR|Win32 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.ActiveCfg = Debug_CLR|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.Build.0 = Debug_CLR|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.ActiveCfg = Release_CLR|Win32 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|Win32.Build.0 = Release_CLR|Win32 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.ActiveCfg = Release_CLR|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release|x64.Build.0 = Release_CLR|x64 + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|Win32.ActiveCfg = Release|Any CPU + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.All|x64.ActiveCfg = Release|Any CPU + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.ActiveCfg = Debug|Any CPU + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|Win32.Build.0 = Debug|Any CPU + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Debug|x64.ActiveCfg = Debug|Any CPU + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.ActiveCfg = Release|Any CPU + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|Win32.Build.0 = Release|Any CPU + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0}.Release|x64.ActiveCfg = Release|Any CPU + {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.ActiveCfg = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.Build.0 = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.ActiveCfg = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.Build.0 = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.ActiveCfg = Debug|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.Build.0 = Debug|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.ActiveCfg = Debug|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.Build.0 = Debug|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.ActiveCfg = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Release|Win32.Build.0 = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.ActiveCfg = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Release|x64.Build.0 = Release|Win32 + {419C8F80-D858-4B48-A25C-AF4007608137}.All|Win32.ActiveCfg = Release|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.ActiveCfg = Release|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.Build.0 = Release|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.ActiveCfg = Debug|Win32 + {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.Build.0 = Debug|Win32 + {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.ActiveCfg = Debug|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.Build.0 = Debug|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.ActiveCfg = Release|Win32 + {419C8F80-D858-4B48-A25C-AF4007608137}.Release|Win32.Build.0 = Release|Win32 + {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.ActiveCfg = Release|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Release|x64.Build.0 = Release|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|Win32.ActiveCfg = Release|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.ActiveCfg = Release|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.Build.0 = Release|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.ActiveCfg = Debug|Win32 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.Build.0 = Debug|Win32 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.ActiveCfg = Debug|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.Build.0 = Debug|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.ActiveCfg = Release|Win32 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|Win32.Build.0 = Release|Win32 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.ActiveCfg = Release|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release|x64.Build.0 = Release|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|Win32.ActiveCfg = Release|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.ActiveCfg = Release|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.Build.0 = Release|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.ActiveCfg = Debug|Win32 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.Build.0 = Debug|Win32 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.ActiveCfg = Debug|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.Build.0 = Debug|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.ActiveCfg = Release|Win32 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|Win32.Build.0 = Release|Win32 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.ActiveCfg = Release|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release|x64.Build.0 = Release|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|Win32.ActiveCfg = Release|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.ActiveCfg = Release|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.Build.0 = Release|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.ActiveCfg = Debug|Win32 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.Build.0 = Debug|Win32 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.ActiveCfg = Debug|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.Build.0 = Debug|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.ActiveCfg = Release|Win32 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|Win32.Build.0 = Release|Win32 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.ActiveCfg = Release|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release|x64.Build.0 = Release|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.All|Win32.ActiveCfg = Release|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.ActiveCfg = Release|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.Build.0 = Release|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.ActiveCfg = Debug|Win32 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.Build.0 = Debug|Win32 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.ActiveCfg = Debug|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.Build.0 = Debug|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.ActiveCfg = Release|Win32 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|Win32.Build.0 = Release|Win32 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.ActiveCfg = Release|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Release|x64.Build.0 = Release|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|Win32.ActiveCfg = Release|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.ActiveCfg = Release|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.Build.0 = Release|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.ActiveCfg = Debug|Win32 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.Build.0 = Debug|Win32 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.ActiveCfg = Debug|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.Build.0 = Debug|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.ActiveCfg = Release|Win32 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|Win32.Build.0 = Release|Win32 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.ActiveCfg = Release|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release|x64.Build.0 = Release|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|Win32.ActiveCfg = Release|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.ActiveCfg = Release|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.Build.0 = Release|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.ActiveCfg = Debug|Win32 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.Build.0 = Debug|Win32 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.ActiveCfg = Debug|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.Build.0 = Debug|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.ActiveCfg = Release|Win32 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|Win32.Build.0 = Release|Win32 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.ActiveCfg = Release|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release|x64.Build.0 = Release|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|Win32.ActiveCfg = Release|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.ActiveCfg = Release|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.Build.0 = Release|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.ActiveCfg = Debug|Win32 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.Build.0 = Debug|Win32 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.ActiveCfg = Debug|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.Build.0 = Debug|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.ActiveCfg = Release|Win32 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|Win32.Build.0 = Release|Win32 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.ActiveCfg = Release|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release|x64.Build.0 = Release|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|Win32.ActiveCfg = Release|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.ActiveCfg = Release|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.Build.0 = Release|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.ActiveCfg = Debug|Win32 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.Build.0 = Debug|Win32 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.ActiveCfg = Debug|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.Build.0 = Debug|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.ActiveCfg = Release|Win32 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|Win32.Build.0 = Release|Win32 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.ActiveCfg = Release|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release|x64.Build.0 = Release|x64 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|Win32.ActiveCfg = Release|x64 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.ActiveCfg = Release|x64 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.Build.0 = Release|x64 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.ActiveCfg = Debug|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.Build.0 = Debug|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.ActiveCfg = Debug|x64 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.Build.0 = Debug|x64 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.ActiveCfg = Release|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|Win32.Build.0 = Release|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.ActiveCfg = Release|x64 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release|x64.Build.0 = Release|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|Win32.ActiveCfg = Release|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.ActiveCfg = Release|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.Build.0 = Release|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.ActiveCfg = Debug|Win32 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.Build.0 = Debug|Win32 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.ActiveCfg = Debug|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.Build.0 = Debug|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.ActiveCfg = Release|Win32 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|Win32.Build.0 = Release|Win32 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.ActiveCfg = Release|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release|x64.Build.0 = Release|x64 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|Win32.ActiveCfg = Release_WM5_PPC_ARM|x64 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.ActiveCfg = Release_WM5_PPC_ARM|x64 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.Build.0 = Release_WM5_PPC_ARM|x64 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.ActiveCfg = Debug|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.Build.0 = Debug|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.ActiveCfg = Debug|x64 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.Build.0 = Debug|x64 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.ActiveCfg = Release|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|Win32.Build.0 = Release|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.ActiveCfg = Release|x64 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release|x64.Build.0 = Release|x64 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|Win32.ActiveCfg = Release_Static_SSE|x64 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.ActiveCfg = Release_Static_SSE|x64 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.Build.0 = Release_Static_SSE|x64 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.ActiveCfg = Debug|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.Build.0 = Debug|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.ActiveCfg = Debug|x64 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.Build.0 = Debug|x64 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.ActiveCfg = Release|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|Win32.Build.0 = Release|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.ActiveCfg = Release|x64 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release|x64.Build.0 = Release|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|Win32.ActiveCfg = Release|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.ActiveCfg = Release|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.Build.0 = Release|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.Build.0 = Debug|Win32 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.ActiveCfg = Debug|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.Build.0 = Debug|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.ActiveCfg = Release|Win32 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.Build.0 = Release|Win32 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.ActiveCfg = Release|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.Build.0 = Release|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.All|Win32.ActiveCfg = Release|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.ActiveCfg = Release|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.Build.0 = Release|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.ActiveCfg = Debug|Win32 + {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.Build.0 = Debug|Win32 + {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.ActiveCfg = Debug|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.Build.0 = Debug|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.ActiveCfg = Release|Win32 + {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.Build.0 = Release|Win32 + {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.ActiveCfg = Release|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.Build.0 = Release|x64 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.ActiveCfg = Release|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.Build.0 = Release|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64.ActiveCfg = Release|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|Win32.ActiveCfg = Debug|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x64.ActiveCfg = Debug|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|Win32.ActiveCfg = Release|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x64.ActiveCfg = Release|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|Win32.ActiveCfg = Release|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64.ActiveCfg = Release|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.ActiveCfg = Debug|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.ActiveCfg = Debug|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|Win32.ActiveCfg = Release|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release|x64.ActiveCfg = Release|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.Build.0 = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x64.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.Build.0 = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.Build.0 = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|Win32.Build.0 = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release|x64.Build.0 = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.Build.0 = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x64.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.Build.0 = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.Build.0 = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|Win32.Build.0 = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release|x64.Build.0 = All|Win32 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|Win32.ActiveCfg = Release|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.ActiveCfg = Release|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.Build.0 = Release|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|Win32.ActiveCfg = Debug|Win32 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x64.ActiveCfg = Debug|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|Win32.ActiveCfg = Release|Win32 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release|x64.ActiveCfg = Release|x64 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.ActiveCfg = Release|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.Build.0 = Release|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x64.ActiveCfg = Release|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.ActiveCfg = Debug|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.ActiveCfg = Debug|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|Win32.ActiveCfg = Release|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.ActiveCfg = Release|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.All|Win32.ActiveCfg = Release|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x64.ActiveCfg = Release|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|Win32.ActiveCfg = Debug|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x64.ActiveCfg = Debug|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|Win32.ActiveCfg = Release|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Release|x64.ActiveCfg = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.ActiveCfg = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.Build.0 = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.ActiveCfg = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.Build.0 = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.ActiveCfg = Debug|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.Build.0 = Debug|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.ActiveCfg = Debug|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.Build.0 = Debug|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.ActiveCfg = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|Win32.Build.0 = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.ActiveCfg = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.Build.0 = Release|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|Win32.ActiveCfg = Release|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x64.ActiveCfg = Release|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|Win32.ActiveCfg = Debug|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x64.ActiveCfg = Debug|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|Win32.ActiveCfg = Release|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release|x64.ActiveCfg = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.ActiveCfg = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.Build.0 = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.ActiveCfg = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.Build.0 = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.ActiveCfg = Debug|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.Build.0 = Debug|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.ActiveCfg = Debug|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.Build.0 = Debug|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.ActiveCfg = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|Win32.Build.0 = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.ActiveCfg = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.Build.0 = Release|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|Win32.ActiveCfg = Release|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x64.ActiveCfg = Release|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|Win32.ActiveCfg = Debug|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x64.ActiveCfg = Debug|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|Win32.ActiveCfg = Release|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x64.ActiveCfg = Release|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|Win32.ActiveCfg = Release|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x64.ActiveCfg = Release|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|Win32.ActiveCfg = Debug|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64.ActiveCfg = Debug|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|Win32.ActiveCfg = Release|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x64.ActiveCfg = Release|Win32 + {70564D74-199A-4452-9C60-19ED5F242F0D}.All|Win32.ActiveCfg = Release|x64 + {70564D74-199A-4452-9C60-19ED5F242F0D}.All|x64.ActiveCfg = Release|x64 + {70564D74-199A-4452-9C60-19ED5F242F0D}.All|x64.Build.0 = Release|x64 + {70564D74-199A-4452-9C60-19ED5F242F0D}.Debug|Win32.ActiveCfg = Debug|Win32 + {70564D74-199A-4452-9C60-19ED5F242F0D}.Debug|Win32.Build.0 = Debug|Win32 + {70564D74-199A-4452-9C60-19ED5F242F0D}.Debug|x64.ActiveCfg = Debug|x64 + {70564D74-199A-4452-9C60-19ED5F242F0D}.Debug|x64.Build.0 = Debug|x64 + {70564D74-199A-4452-9C60-19ED5F242F0D}.Release|Win32.ActiveCfg = Release|Win32 + {70564D74-199A-4452-9C60-19ED5F242F0D}.Release|Win32.Build.0 = Release|Win32 + {70564D74-199A-4452-9C60-19ED5F242F0D}.Release|x64.ActiveCfg = Release|x64 + {70564D74-199A-4452-9C60-19ED5F242F0D}.Release|x64.Build.0 = Release|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|Win32.ActiveCfg = Release|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.ActiveCfg = Release|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.Build.0 = Release|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.ActiveCfg = Debug|Win32 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.Build.0 = Debug|Win32 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.ActiveCfg = Debug|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.Build.0 = Debug|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.ActiveCfg = Release|Win32 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.Build.0 = Release|Win32 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.ActiveCfg = Release|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.Build.0 = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.Build.0 = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.Build.0 = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.ActiveCfg = Debug|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.Build.0 = Debug|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.ActiveCfg = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.Build.0 = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.ActiveCfg = Release|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.Build.0 = Release|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.Build.0 = Release|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|Win32.ActiveCfg = Release|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x64.ActiveCfg = Release|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.ActiveCfg = Debug|Win32 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.Build.0 = Debug|Win32 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.ActiveCfg = Debug|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.Build.0 = Debug|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.ActiveCfg = Release|Win32 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|Win32.Build.0 = Release|Win32 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.ActiveCfg = Release|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release|x64.Build.0 = Release|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.ActiveCfg = Release|Win32 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.Build.0 = Release|Win32 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x64.ActiveCfg = Release|Win32 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.ActiveCfg = Debug|Win32 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.ActiveCfg = Debug|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.Build.0 = Debug|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.ActiveCfg = Release|Win32 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|Win32.Build.0 = Release|Win32 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.ActiveCfg = Release|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release|x64.Build.0 = Release|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|Win32.ActiveCfg = Release|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.ActiveCfg = Release|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.Build.0 = Release|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.ActiveCfg = Debug|Win32 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.Build.0 = Debug|Win32 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.ActiveCfg = Debug|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.Build.0 = Debug|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.ActiveCfg = Release|Win32 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.Build.0 = Release|Win32 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.ActiveCfg = Release|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.Build.0 = Release|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.ActiveCfg = Release|Win32 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.Build.0 = Release|Win32 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x64.ActiveCfg = Release|Win32 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.Build.0 = Debug|Win32 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.ActiveCfg = Debug|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.Build.0 = Debug|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.ActiveCfg = Release|Win32 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|Win32.Build.0 = Release|Win32 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.ActiveCfg = Release|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release|x64.Build.0 = Release|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.ActiveCfg = Release|Win32 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.Build.0 = Release|Win32 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x64.ActiveCfg = Release|Win32 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.ActiveCfg = Debug|Win32 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.Build.0 = Debug|Win32 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.ActiveCfg = Debug|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.Build.0 = Debug|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.ActiveCfg = Release|Win32 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|Win32.Build.0 = Release|Win32 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.ActiveCfg = Release|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release|x64.Build.0 = Release|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.ActiveCfg = Release|Win32 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.Build.0 = Release|Win32 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x64.ActiveCfg = Release|Win32 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.ActiveCfg = Debug|Win32 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.Build.0 = Debug|Win32 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.ActiveCfg = Debug|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.Build.0 = Debug|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.ActiveCfg = Release|Win32 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|Win32.Build.0 = Release|Win32 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.ActiveCfg = Release|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release|x64.Build.0 = Release|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.ActiveCfg = Release|Win32 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.Build.0 = Release|Win32 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x64.ActiveCfg = Release|Win32 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.ActiveCfg = Debug|Win32 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.Build.0 = Debug|Win32 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.ActiveCfg = Debug|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.Build.0 = Debug|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.ActiveCfg = Release|Win32 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|Win32.Build.0 = Release|Win32 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.ActiveCfg = Release|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release|x64.Build.0 = Release|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.ActiveCfg = Release|Win32 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.Build.0 = Release|Win32 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x64.ActiveCfg = Release|Win32 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.ActiveCfg = Debug|Win32 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.Build.0 = Debug|Win32 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.ActiveCfg = Debug|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.Build.0 = Debug|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.ActiveCfg = Release|Win32 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|Win32.Build.0 = Release|Win32 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.ActiveCfg = Release|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release|x64.Build.0 = Release|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.ActiveCfg = Release|Win32 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.Build.0 = Release|Win32 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x64.ActiveCfg = Release|Win32 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.Build.0 = Debug|Win32 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.ActiveCfg = Debug|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.Build.0 = Debug|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.ActiveCfg = Release|Win32 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|Win32.Build.0 = Release|Win32 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.ActiveCfg = Release|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release|x64.Build.0 = Release|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.ActiveCfg = Release|Win32 + {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.Build.0 = Release|Win32 + {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x64.ActiveCfg = Release|Win32 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.ActiveCfg = Debug|Win32 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.Build.0 = Debug|Win32 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.ActiveCfg = Debug|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.Build.0 = Debug|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.ActiveCfg = Release|Win32 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|Win32.Build.0 = Release|Win32 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.ActiveCfg = Release|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Release|x64.Build.0 = Release|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.ActiveCfg = Release|Win32 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.Build.0 = Release|Win32 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x64.ActiveCfg = Release|Win32 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.ActiveCfg = Debug|Win32 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.Build.0 = Debug|Win32 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.ActiveCfg = Debug|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.Build.0 = Debug|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.ActiveCfg = Release|Win32 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|Win32.Build.0 = Release|Win32 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.ActiveCfg = Release|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release|x64.Build.0 = Release|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.ActiveCfg = Release|Win32 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.Build.0 = Release|Win32 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x64.ActiveCfg = Release|Win32 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.ActiveCfg = Debug|Win32 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.Build.0 = Debug|Win32 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.ActiveCfg = Debug|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.Build.0 = Debug|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.ActiveCfg = Release|Win32 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|Win32.Build.0 = Release|Win32 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.ActiveCfg = Release|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release|x64.Build.0 = Release|x64 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|Win32.ActiveCfg = Release|x64 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.ActiveCfg = Release|x64 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.All|x64.Build.0 = Release|x64 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.ActiveCfg = Debug|Win32 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|Win32.Build.0 = Debug|Win32 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.ActiveCfg = Debug|x64 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Debug|x64.Build.0 = Debug|x64 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.ActiveCfg = Release|Win32 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|Win32.Build.0 = Release|Win32 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.ActiveCfg = Release|x64 + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD}.Release|x64.Build.0 = Release|x64 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.ActiveCfg = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.Build.0 = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x64.ActiveCfg = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.ActiveCfg = Debug|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.Build.0 = Debug|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.ActiveCfg = Debug|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.Build.0 = Debug|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.ActiveCfg = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|Win32.Build.0 = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.ActiveCfg = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release|x64.Build.0 = Release|Win32 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|Win32.ActiveCfg = Release|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.ActiveCfg = Release|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.Build.0 = Release|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.Build.0 = Debug|Win32 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.ActiveCfg = Debug|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.Build.0 = Debug|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.ActiveCfg = Release|Win32 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.Build.0 = Release|Win32 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.ActiveCfg = Release|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.Build.0 = Release|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|Win32.ActiveCfg = Release Passthrough|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.ActiveCfg = Release Passthrough|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.Build.0 = Release Passthrough|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.ActiveCfg = Debug|Win32 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.Build.0 = Debug|Win32 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.ActiveCfg = Debug|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.Build.0 = Debug|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.ActiveCfg = Release|Win32 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|Win32.Build.0 = Release|Win32 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.ActiveCfg = Release|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release|x64.Build.0 = Release|x64 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.ActiveCfg = Release|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.Build.0 = Release|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64.ActiveCfg = Release|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|Win32.ActiveCfg = Debug|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x64.ActiveCfg = Debug|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|Win32.ActiveCfg = Release|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release|x64.ActiveCfg = Release|Win32 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|Win32.ActiveCfg = Release|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.ActiveCfg = Release|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.Build.0 = Release|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.ActiveCfg = Debug|Win32 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.Build.0 = Debug|Win32 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.ActiveCfg = Debug|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.Build.0 = Debug|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.ActiveCfg = Release|Win32 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|Win32.Build.0 = Release|Win32 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.ActiveCfg = Release|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release|x64.Build.0 = Release|x64 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.ActiveCfg = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.Build.0 = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x64.ActiveCfg = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.ActiveCfg = Debug|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.Build.0 = Debug|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.ActiveCfg = Debug|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.Build.0 = Debug|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.ActiveCfg = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|Win32.Build.0 = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.ActiveCfg = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release|x64.Build.0 = Release|Win32 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|Win32.ActiveCfg = Release|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.ActiveCfg = Release|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.Build.0 = Release|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.ActiveCfg = Debug|Win32 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.Build.0 = Debug|Win32 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.ActiveCfg = Debug|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.Build.0 = Debug|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.ActiveCfg = Release|Win32 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.Build.0 = Release|Win32 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.ActiveCfg = Release|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.Build.0 = Release|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|Win32.ActiveCfg = Release|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.ActiveCfg = Release|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.Build.0 = Release|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.ActiveCfg = Debug|Win32 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.Build.0 = Debug|Win32 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.ActiveCfg = Debug|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.Build.0 = Debug|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.ActiveCfg = Release|Win32 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|Win32.Build.0 = Release|Win32 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.ActiveCfg = Release|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release|x64.Build.0 = Release|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.ActiveCfg = Release|Win32 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.Build.0 = Release|Win32 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x64.ActiveCfg = Release|Win32 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.ActiveCfg = Debug|Win32 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.Build.0 = Debug|Win32 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.ActiveCfg = Debug|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.Build.0 = Debug|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.ActiveCfg = Release|Win32 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.Build.0 = Release|Win32 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.ActiveCfg = Release|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|x64.Build.0 = Release|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.ActiveCfg = Release|Win32 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.Build.0 = Release|Win32 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x64.ActiveCfg = Release|Win32 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.ActiveCfg = Debug|Win32 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.Build.0 = Debug|Win32 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.ActiveCfg = Debug|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.Build.0 = Debug|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.ActiveCfg = Release|Win32 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|Win32.Build.0 = Release|Win32 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.ActiveCfg = Release|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release|x64.Build.0 = Release|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|Win32.ActiveCfg = Release|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.ActiveCfg = Release|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.Build.0 = Release|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.ActiveCfg = Debug|Win32 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.Build.0 = Debug|Win32 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.ActiveCfg = Debug|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.Build.0 = Debug|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.ActiveCfg = Release|Win32 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|Win32.Build.0 = Release|Win32 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.ActiveCfg = Release|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release|x64.Build.0 = Release|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|Win32.ActiveCfg = Release|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.ActiveCfg = Release|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.Build.0 = Release|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.ActiveCfg = Debug|Win32 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.Build.0 = Debug|Win32 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.ActiveCfg = Debug|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.Build.0 = Debug|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.ActiveCfg = Release|Win32 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|Win32.Build.0 = Release|Win32 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.ActiveCfg = Release|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {5580D60E-0F77-4716-9CD4-B8E5986FA375} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {8DEB383C-4091-4F42-A56F-C9E46D552D79} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {2C3C2423-234B-4772-8899-D3B137E5CA35} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {0B6C905B-142E-4999-B39D-92FF7951E921} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {D5C87B19-150D-4EF3-A671-96589BD2D14A} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {4D418176-3B33-47E6-A63E-01BA34ADD21C} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781} + {5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C} + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C} + {0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C} + {B3F424EC-3D8F-417C-B244-3919D5E1A577} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C} + {05C9FB27-480E-4D53-B3B7-6338E2526666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C} + {CC1DD008-9406-448D-A0AD-33C3186CFADB} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C} + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C} + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {3850D93A-5F24-4922-BC1C-74D08C37C256} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {D7F1E3F2-A3F4-474C-8555-15122571AF52} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {F6A33240-8F29-48BD-98F0-826995911799} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {65A6273D-FCAB-4C55-B09E-65100141A5D4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {E3246D17-E29B-4AB5-962A-C69B0C5837BB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {14E4A972-9CFB-436D-B0A5-4943F3F80D47} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {3C977801-FE88-48F2-83D3-FA2EBFF6688E} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {432DB165-1EB2-4781-A9C0-71E62610B20A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {990BAA76-89D3-4E38-8479-C7B28784EFC8} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {1E21AFE0-6FDB-41D2-942D-863607C24B91} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78} + {07113B25-D3AF-4E04-BA77-4CD1171F022C} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4} + {A27CCA23-1541-4337-81A4-F0A6413078A0} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4} + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4} + {784113EF-44D9-4949-835D-7065D3C7AD08} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0} + {05515420-16DE-4E63-BE73-85BE85BA5142} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0} + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0} + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D} + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7} = {A5A27244-AD24-46E5-B01B-840CD296C91D} + {2CA40887-1622-46A1-A7F9-17FD7E7E545B} = {A5A27244-AD24-46E5-B01B-840CD296C91D} + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52} = {A5A27244-AD24-46E5-B01B-840CD296C91D} + {38FE0559-9910-43A8-9E45-3E5004C27692} = {A5A27244-AD24-46E5-B01B-840CD296C91D} + {70564D74-199A-4452-9C60-19ED5F242F0D} = {A5A27244-AD24-46E5-B01B-840CD296C91D} + {CBD81696-EFB4-4D2F-8451-1B8DAA86155A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {62F27B1A-C919-4A70-8478-51F178F3B18F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {1906D736-08BD-4EE1-924F-B536249B9A54} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {1CED5987-A529-46DC-B30F-870D85FF9C94} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {204FA0DE-305D-4414-AE2E-F195A23F390D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {0D108721-EAE8-4BAF-8102-D8960EC93647} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {B535402E-38D2-4D54-8360-423ACBD17192} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {94001A0E-A837-445C-8004-F918F10D0226} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {0AD1177E-1FD8-4643-9391-431467A11084} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {E316772F-5D8F-4F2A-8F71-094C3E859D34} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {419C8F80-D858-4B48-A25C-AF4007608137} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {CF405366-9558-4AE8-90EF-5E21B51CCB4E} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {03207781-0D1C-4DB3-A71D-45C608F28DBD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {9A5DDF08-C88C-4A35-B7F6-D605228446BD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {D0B36172-CD76-454A-9B89-990025266C2A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {DEE932AB-5911-4700-9EEB-8C7090A0A330} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {329A6FA0-0FCC-4435-A950-E670AEFA9838} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {9778F1C0-09BC-4698-8EBC-BD982247209A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B} + {EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC} + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000} + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000} + {8F992C49-6C51-412F-B2A3-34EAB708EB65} = {0C808854-54D1-4230-BFF5-77B5FD905000} + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000} + {028C7278-05D7-4E18-82FE-BE231B844F41} = {0C808854-54D1-4230-BFF5-77B5FD905000} + {36E854E3-CE12-4348-A125-CCF3F9D74813} = {0C808854-54D1-4230-BFF5-77B5FD905000} + {7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000} + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} = {0C808854-54D1-4230-BFF5-77B5FD905000} + {692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0} + {2286DA73-9FC5-45BC-A508-85994C3317AB} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0} + {66444AEE-554C-11DD-A9F0-8C5D56D89593} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0} + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0} + {1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A} + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A} + {CBEC7225-0C21-4DA8-978E-1F158F8AD950} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5} + {AB91A099-7690-4ECF-8994-E458F4EA1ED4} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5} + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5} + {1A1FF289-4FD6-4285-A422-D31DD67A4723} = {CBD81696-EFB4-4D2F-8451-1B8DAA86155A} + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {4F92B672-DADB-4047-8D6A-4BB3796733FD} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {2DEE4895-1134-439C-B688-52203E57D878} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {3CE1DC99-8246-4DB1-A709-74F19F08EC67} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {87A1FE3D-F410-4C8E-9591-8C625985BC70} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {E796E337-DE78-4303-8614-9A590862EE95} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {1F0A8A77-E661-418F-BB92-82172AE43803} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {4F5C9D55-98EF-4256-8311-32D7BD360406} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {E10571C4-E7F4-4608-B5F2-B22E7EB95400} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {B808178B-82F0-4CF4-A2B1-921939FA24D0} = {C120A020-773F-4EA3-923F-B67AF28B750D} + {988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {5BC072DB-3826-48EA-AF34-FE32AA01E83B} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {FA429E98-8B03-45E6-A096-A4BC5E821DE4} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {06E3A538-AB32-44F2-B477-755FF9CB5D37} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8} + {7BFD517E-7F8F-4A40-A78E-8D3632738227} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8} + {6374D55C-FABE-4A02-9CF1-4145308A56C5} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8} + {3C90CCF0-2CDD-4A7A-ACFF-208C1E271692} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} + {C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} + {FC71C66E-E268-4EAD-B1F5-F008DC382E83} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} + {8E2E8798-8B6F-4A55-8E4F-4E6FDE40ED26} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} + {09455AA9-C243-4F16-A1A1-A016881A2765} = {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} + {8D29085B-952D-4594-9BB9-5781CE552D0A} = {7BFD517E-7F8F-4A40-A78E-8D3632738227} + {23874F4B-C0AF-4587-9F7E-DB0F06DE8CB4} = {7BFD517E-7F8F-4A40-A78E-8D3632738227} + {19ED97F6-30D8-4FCE-AE1D-8B7FCB170D40} = {7BFD517E-7F8F-4A40-A78E-8D3632738227} + {99E79D76-FCFC-466B-965B-273CCACF99B0} = {7BFD517E-7F8F-4A40-A78E-8D3632738227} + {8FADAC7F-CA9E-49D9-B957-A5F5605D238C} = {7BFD517E-7F8F-4A40-A78E-8D3632738227} + {4833F8E3-ABBF-4260-9DB1-B34015676CFC} = {6374D55C-FABE-4A02-9CF1-4145308A56C5} + {D44DD429-FE98-42AA-B5B7-4B4EBE33AEFD} = {6374D55C-FABE-4A02-9CF1-4145308A56C5} + {471110C9-A7ED-4966-98E1-8EA667BF0EEA} = {6374D55C-FABE-4A02-9CF1-4145308A56C5} + {4DF5199E-F7F5-4347-97DD-22078FCDB371} = {6374D55C-FABE-4A02-9CF1-4145308A56C5} + {B487BEBE-4A5C-434F-8D30-39465412F84F} = {6374D55C-FABE-4A02-9CF1-4145308A56C5} + {CDE9B06A-3C27-4987-8FAE-DF1006BC705D} = {DB1024A8-41BF-4AD7-9AE6-13202230D1F3} + {57199684-EC63-4A60-9DC6-11815AF6B413} = {09455AA9-C243-4F16-A1A1-A016881A2765} + {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C} = {09455AA9-C243-4F16-A1A1-A016881A2765} + {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5} = {09455AA9-C243-4F16-A1A1-A016881A2765} + {765EF1B9-5027-4820-BC37-A44466A51631} = {57199684-EC63-4A60-9DC6-11815AF6B413} + {713E4747-1126-40B1-BD84-58F9A7745423} = {57199684-EC63-4A60-9DC6-11815AF6B413} + {D3E5C8ED-3A6A-4FEA-92A2-48A0BA865358} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C} + {CC3E7F48-2590-49CB-AD8B-BE3650F55462} = {2DED4BA2-D6B0-4064-BB2A-76DE3AA49E7C} + {F1B71990-EB04-4EB5-B28A-BC3EB6F7E843} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5} + {3DAF028C-AB5B-4183-A01B-DCC43F5A87F0} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5} + {2003189F-0E69-4FF7-A11D-3BFB3F03D558} = {B487BEBE-4A5C-434F-8D30-39465412F84F} + {C8EA69FA-365E-4897-9BB0-08022509E18B} = {B487BEBE-4A5C-434F-8D30-39465412F84F} + {1240C217-6674-43C1-B099-B0290D84F28B} = {B487BEBE-4A5C-434F-8D30-39465412F84F} + {03517B06-98A1-46DD-9347-BFFFED7DD8A4} = {2003189F-0E69-4FF7-A11D-3BFB3F03D558} + {1D339A14-FFC2-4F6E-BEF2-D5D6DF14AC88} = {2003189F-0E69-4FF7-A11D-3BFB3F03D558} + {B4C6D0B5-5F39-4546-820D-4BCAA6C3E301} = {C8EA69FA-365E-4897-9BB0-08022509E18B} + {3041F86C-51D4-4D9E-8A00-91BA4B7C51D4} = {C8EA69FA-365E-4897-9BB0-08022509E18B} + {DFE96A6E-5C9A-4C74-959A-9C485A7AD95C} = {1240C217-6674-43C1-B099-B0290D84F28B} + {80A4CA5C-7208-4134-8EFD-C147B03C8AA1} = {1240C217-6674-43C1-B099-B0290D84F28B} + {58A56014-DEA7-4172-8C26-BAD8D499A1E8} = {8FADAC7F-CA9E-49D9-B957-A5F5605D238C} + {EB577858-8284-4DEA-ADDA-DD046BCA0126} = {8FADAC7F-CA9E-49D9-B957-A5F5605D238C} + {89A94241-1DA6-44E8-A685-AED1E665C2AD} = {8FADAC7F-CA9E-49D9-B957-A5F5605D238C} + {2D74F635-AB18-43B3-A87E-A71F3EA24DDB} = {58A56014-DEA7-4172-8C26-BAD8D499A1E8} + {A721E646-07E9-4E16-A92D-B97F654B2BAC} = {58A56014-DEA7-4172-8C26-BAD8D499A1E8} + {50331CA0-7038-4341-B92D-C34E1601EFF0} = {EB577858-8284-4DEA-ADDA-DD046BCA0126} + {FC0DB2A2-B1A3-426E-9E37-BE28FE8FE01B} = {EB577858-8284-4DEA-ADDA-DD046BCA0126} + {91C6DEDE-CE4A-47D1-A84B-3E828F82E2B0} = {89A94241-1DA6-44E8-A685-AED1E665C2AD} + {8F5A511B-F716-4D07-9657-55B9E4F1D3E9} = {89A94241-1DA6-44E8-A685-AED1E665C2AD} + {7A8D8174-B355-4114-AFC1-04777CB9DE0A} = {4F227C26-768F-46A3-8684-1D08A46FB374} + {7EB71250-F002-4ED8-92CA-CA218114537A} = {4F227C26-768F-46A3-8684-1D08A46FB374} + {464AAB78-5489-4916-BE51-BF8D61822311} = {4F227C26-768F-46A3-8684-1D08A46FB374} + {D1ABE208-6442-4FB4-9AAD-1677E41BC870} = {4F227C26-768F-46A3-8684-1D08A46FB374} + {BA599D0A-4310-4505-91DA-6A6447B3E289} = {4F227C26-768F-46A3-8684-1D08A46FB374} + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959} = {4F227C26-768F-46A3-8684-1D08A46FB374} + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + {B5A00BFA-6083-4FAE-A097-71642D6473B5} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + {1C320193-46A6-4B34-9C56-8AB584FC1B56} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + {72782932-37CC-46AE-8C7F-9A7B1A6EE108} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + {12A49562-BAB9-43A3-A21D-15B60BBB4C31} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + {504B3154-7A4F-459D-9877-B951021C3F1F} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + {746F3632-5BB2-4570-9453-31D6D58A7D8E} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + {DEB01ACB-D65F-4A62-AED9-58C1054499E9} = {62F27B1A-C919-4A70-8478-51F178F3B18F} + EndGlobalSection +EndGlobal diff --git a/docs/docs.2010.vcxproj b/docs/docs.2010.vcxproj new file mode 100644 index 0000000000..1d29b8c6c7 --- /dev/null +++ b/docs/docs.2010.vcxproj @@ -0,0 +1,121 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + docs + {1A1FF289-4FD6-4285-A422-D31DD67A4723} + docs + + + + StaticLibrary + + + StaticLibrary + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + ..\src\include; ..\libs\include;%(AdditionalIncludeDirectories) + WIN32;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + ..\src\include; ..\libs\include;%(AdditionalIncludeDirectories) + WIN32;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + doxygen %(FullPath) + + ..\src\include\switch.h;..\src\include\switch_apr.h;..\src\include\switch_buffer.h;..\src\include\switch_caller.h;..\src\include\switch_channel.h;..\src\include\switch_config.h;..\src\include\switch_console.h;..\src\include\switch_core.h;..\src\include\switch_event.h;..\src\include\switch_frame.h;..\src\include\switch_loadable_module.h;..\src\include\switch_module_interface.h;..\src\include\switch_mutex.h;..\src\include\switch_platform.h;..\src\include\switch_resample.h;..\src\include\switch_sqlite.h;..\src\include\switch_types.h;..\src\include\switch_utils.h;%(AdditionalInputs) + html/index.html;%(Outputs) + doxygen %(FullPath) + + ..\src\include\switch.h;..\src\include\switch_apr.h;..\src\include\switch_buffer.h;..\src\include\switch_caller.h;..\src\include\switch_channel.h;..\src\include\switch_config.h;..\src\include\switch_console.h;..\src\include\switch_core.h;..\src\include\switch_event.h;..\src\include\switch_frame.h;..\src\include\switch_loadable_module.h;..\src\include\switch_module_interface.h;..\src\include\switch_mutex.h;..\src\include\switch_platform.h;..\src\include\switch_resample.h;..\src\include\switch_sqlite.h;..\src\include\switch_types.h;..\src\include\switch_utils.h;%(AdditionalInputs) + html/index.html;%(Outputs) + + + + + + \ No newline at end of file diff --git a/fscomm/FSComm.2010.vcxproj b/fscomm/FSComm.2010.vcxproj new file mode 100644 index 0000000000..decbf15a18 --- /dev/null +++ b/fscomm/FSComm.2010.vcxproj @@ -0,0 +1,539 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + FSComm + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E} + FSComm + Qt4VSv1.0 + + + + Application + false + + + Application + false + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\ + debug\ + true + .\ + release\ + true + false + + + + 0 + Unsigned + None + + + -Zm200 -w34100 -w34189 -w34100 -w34189 %(AdditionalOptions) + Disabled + $(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include;.;$(QTDIR)\include\ActiveQt;debug;$(QTDIR)\mkspecs\win32-msvc2008;..\src\include;$(QTDIR)\include\QtXml;%(AdditionalIncludeDirectories) + _WINDOWS;UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;%(PreprocessorDefinitions) + false + false + Sync + MultiThreadedDebugDLL + false + false + true + + + $(IntDir) + $(IntDir) + Level3 + true + ProgramDatabase + + + _WINDOWS;UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;_DEBUG;%(PreprocessorDefinitions) + + + "/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" "/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions) + $(QTDIR)\lib\qtmaind.lib;$(QTDIR)\lib\QtGuid4.lib;$(QTDIR)\lib\QtCored4.lib;$(QTDIR)\lib\QtXml4.lib;%(AdditionalDependencies) + debug\FSComm.exe + true + $(QTDIR)\lib;%(AdditionalLibraryDirectories) + true + + + Windows + + + + + + + 0 + Unsigned + None + + + -Zm200 -w34100 -w34189 -w34100 -w34189 %(AdditionalOptions) + MaxSpeed + $(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include;.;$(QTDIR)\include\ActiveQt;release;$(QTDIR)\mkspecs\win32-msvc2008;..\src\include;$(QTDIR)\include\QtXml;%(AdditionalIncludeDirectories) + QT_NO_DEBUG;NDEBUG;_WINDOWS;UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;QT_NO_DEBUG;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;NDEBUG;%(PreprocessorDefinitions) + false + false + Sync + MultiThreadedDLL + false + false + true + + + $(IntDir) + $(IntDir) + Level3 + true + + + + + QT_NO_DEBUG;NDEBUG;_WINDOWS;UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;QT_NO_DEBUG;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;%(PreprocessorDefinitions) + + + "/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" "/MANIFESTDEPENDENCY:type=%27win32%27 name=%27Microsoft.Windows.Common-Controls%27 version=%276.0.0.0%27 publicKeyToken=%276595b64144ccf1df%27 language=%27*%27 processorArchitecture=%27*%27" %(AdditionalOptions) + $(QTDIR)\lib\qtmain.lib;$(QTDIR)\lib\QtGui4.lib;$(QTDIR)\lib\QtCore4.lib;$(QTDIR)\lib\QtXml4.lib;%(AdditionalDependencies) + release\FSComm.exe + true + $(QTDIR)\lib;%(AdditionalLibraryDirectories) + false + + + Windows + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + + + MOC accountdialog.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_accountdialog.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\accountdialog.h -o debug\moc_accountdialog.cpp + + Rem;accountdialog.h;%(AdditionalInputs) + debug\moc_accountdialog.cpp;%(Outputs) + MOC accountdialog.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_accountdialog.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\accountdialog.h -o release\moc_accountdialog.cpp + + Rem;accountdialog.h;%(AdditionalInputs) + release\moc_accountdialog.cpp;%(Outputs) + + + + + MOC codecwidget.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_codecwidget.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 widgets\codecwidget.h -o debug\moc_codecwidget.cpp + + Rem;codecwidget.h;%(AdditionalInputs) + debug\moc_codecwidget.cpp;%(Outputs) + MOC prefportaudio.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_codecwidget.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 widgets\codecwidget.h -o release\moc_codecwidget.cpp + + Rem;codecwidget.h;%(AdditionalInputs) + release\moc_codecwidget.cpp;%(Outputs) + + + MOC consolewindow.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_consolewindow.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 debugtools\consolewindow.h -o debug\moc_consolewindow.cpp + + Rem;consolewindow.h;%(AdditionalInputs) + debug\moc_consolewindow.cpp;%(Outputs) + MOC consolewindow.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_consolewindow.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 debugtools\consolewindow.h -o release\moc_consolewindow.cpp + + Rem;consolewindow.h;%(AdditionalInputs) + release\moc_consolewindow.cpp;%(Outputs) + + + MOC fshost.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_fshost.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 fshost.h -o debug\moc_fshost.cpp + + Rem;fshost.h;%(AdditionalInputs) + debug\moc_fshost.cpp;%(Outputs) + MOC fshost.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_fshost.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 fshost.h -o release\moc_fshost.cpp + + Rem;fshost.h;%(AdditionalInputs) + release\moc_fshost.cpp;%(Outputs) + + + MOC mainwindow.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_mainwindow.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 mainwindow.h -o debug\moc_mainwindow.cpp + + Rem;mainwindow.h;%(AdditionalInputs) + debug\moc_mainwindow.cpp;%(Outputs) + MOC mainwindow.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_mainwindow.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 mainwindow.h -o release\moc_mainwindow.cpp + + Rem;mainwindow.h;%(AdditionalInputs) + release\moc_mainwindow.cpp;%(Outputs) + + + + MOC prefaccounts.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_prefaccounts.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\prefaccounts.h -o debug\moc_prefaccounts.cpp + + Rem;prefaccounts.h;%(AdditionalInputs) + debug\moc_prefaccounts.cpp;%(Outputs) + MOC prefaccounts.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_prefaccounts.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\prefaccounts.h -o release\moc_prefaccounts.cpp + + Rem;prefaccounts.h;%(AdditionalInputs) + release\moc_prefaccounts.cpp;%(Outputs) + + + MOC prefdialog.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_prefdialog.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\prefdialog.h -o debug\moc_prefdialog.cpp + + Rem;prefdialog.h;%(AdditionalInputs) + debug\moc_prefdialog.cpp;%(Outputs) + MOC prefdialog.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_prefdialog.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\prefdialog.h -o release\moc_prefdialog.cpp + + Rem;prefdialog.h;%(AdditionalInputs) + release\moc_prefdialog.cpp;%(Outputs) + + + MOC prefportaudio.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_prefportaudio.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\prefportaudio.h -o debug\moc_prefportaudio.cpp + + Rem;prefportaudio.h;%(AdditionalInputs) + debug\moc_prefportaudio.cpp;%(Outputs) + MOC prefportaudio.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_prefportaudio.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\prefportaudio.h -o release\moc_prefportaudio.cpp + + Rem;prefportaudio.h;%(AdditionalInputs) + release\moc_prefportaudio.cpp;%(Outputs) + + + MOC prefsofia.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_prefsofia.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\prefsofia.h -o debug\moc_prefsofia.cpp + + Rem;prefsofia.h;%(AdditionalInputs) + debug\moc_prefsofia.cpp;%(Outputs) + MOC prefportaudio.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_prefsofia.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 preferences\prefsofia.h -o release\moc_prefsofia.cpp + + Rem;prefsofia.h;%(AdditionalInputs) + release\moc_prefsofia.cpp;%(Outputs) + + + MOC sortfilterproxymodel.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_sortfilterproxymodel.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 debugtools\sortfilterproxymodel.h -o debug\moc_sortfilterproxymodel.cpp + + Rem;sortfilterproxymodel.h;%(AdditionalInputs) + debug\moc_sortfilterproxymodel.cpp;%(Outputs) + MOC sortfilterproxymodel.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_sortfilterproxymodel.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 debugtools\sortfilterproxymodel.h -o release\moc_sortfilterproxymodel.cpp + + Rem;sortfilterproxymodel.h;%(AdditionalInputs) + release\moc_sortfilterproxymodel.cpp;%(Outputs) + + + MOC statedebugdialog.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile debug\moc_statedebugdialog.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 debugtools\statedebugdialog.h -o debug\moc_statedebugdialog.cpp + + Rem;statedebugdialog.h;%(AdditionalInputs) + debug\moc_statedebugdialog.cpp;%(Outputs) + MOC prefportaudio.h + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile release\moc_statedebugdialog.cpp +$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"." -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2008 -D_MSC_VER=1500 -DWIN32 debugtools\statedebugdialog.h -o release\moc_statedebugdialog.cpp + + Rem;statedebugdialog.h;%(AdditionalInputs) + release\moc_statedebugdialog.cpp;%(Outputs) + + + + + + + + + + + UIC accountdialog.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_accountdialog.h +$(QTDIR)\bin\uic.exe preferences\accountdialog.ui -o ui_accountdialog.h + + Rem;accountdialog.ui;%(AdditionalInputs) + ui_accountdialog.h;%(Outputs) + UIC accountdialog.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_accountdialog.h +$(QTDIR)\bin\uic.exe preferences\accountdialog.ui -o ui_accountdialog.h + + Rem;accountdialog.ui;%(AdditionalInputs) + ui_accountdialog.h;%(Outputs) + + + UIC codecwidget.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_codecwidget.h +$(QTDIR)\bin\uic.exe widgets\codecwidget.ui -o ui_codecwidget.h + + Rem;codecwidgets.ui;%(AdditionalInputs) + ui_codecwidget.h;%(Outputs) + UIC codecwidget.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_codecwidget.h +$(QTDIR)\bin\uic.exe widgets\codecwidget.ui -o ui_codecwidget.h + + Rem;codecwidget.ui;%(AdditionalInputs) + ui_codecwidget.h;%(Outputs) + + + UIC consolewindow.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_consolewindow.h +$(QTDIR)\bin\uic.exe debugtools\consolewindow.ui -o ui_consolewindow.h + + Rem;consolewindow.ui;%(AdditionalInputs) + ui_consolewindow.h;%(Outputs) + UIC accountdialog.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_consolewindow.h +$(QTDIR)\bin\uic.exe debugtools\consolewindow.ui -o ui_consolewindow.h + + Rem;accountdialog.ui;%(AdditionalInputs) + ui_consolewindow.h;%(Outputs) + + + UIC mainwindow.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_mainwindow.h +$(QTDIR)\bin\uic.exe mainwindow.ui -o ui_mainwindow.h + + Rem;mainwindow.ui;%(AdditionalInputs) + ui_mainwindow.h;%(Outputs) + UIC mainwindow.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_mainwindow.h +$(QTDIR)\bin\uic.exe mainwindow.ui -o ui_mainwindow.h + + Rem;mainwindow.ui;%(AdditionalInputs) + ui_mainwindow.h;%(Outputs) + + + UIC prefdialog.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_prefdialog.h +$(QTDIR)\bin\uic.exe preferences\prefdialog.ui -o ui_prefdialog.h + + Rem;prefdialog.ui;%(AdditionalInputs) + ui_prefdialog.h;%(Outputs) + UIC prefdialog.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_prefdialog.h +$(QTDIR)\bin\uic.exe preferences\prefdialog.ui -o ui_prefdialog.h + + Rem;prefdialog.ui;%(AdditionalInputs) + ui_prefdialog.h;%(Outputs) + + + UIC statedebugdialog.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_statedebugdialog.h +$(QTDIR)\bin\uic.exe debugtools\statedebugdialog.ui -o ui_statedebugdialog.h + + Rem;statedebugdialog.ui;%(AdditionalInputs) + ui_statedebugdialog.h;%(Outputs) + UIC statedebugdialog.ui + Rem IncrediBuild_AllowRemote +Rem IncrediBuild_OutputFile .\ui_statedebugdialog.h +$(QTDIR)\bin\uic.exe debugtools\statedebugdialog.ui -o ui_statedebugdialog.h + + Rem;statedebugdialog.ui;%(AdditionalInputs) + ui_statedebugdialog.h;%(Outputs) + + + + + + + + + RCC resources.qrc + $(QTDIR)\bin\rcc.exe -name resources resources.qrc -o debug\qrc_resources.cpp + + $(QTDIR)\bin\rcc.exe;conf\accounts\example.xml;conf\event_socket.conf.xml;conf\freeswitch.xml;conf\portaudio.conf.xml;resources.qrc;resources\pref_audio.gif;resources\pref_sip.png;resources\splash.png;%(AdditionalInputs) + debug\qrc_resources.cpp;%(Outputs) + RCC resources.qrc + $(QTDIR)\bin\rcc.exe -name resources resources.qrc -o release\qrc_resources.cpp + + $(QTDIR)\bin\rcc.exe;conf\accounts\example.xml;conf\event_socket.conf.xml;conf\freeswitch.xml;conf\portaudio.conf.xml;resources.qrc;resources\pref_audio.gif;resources\pref_sip.png;resources\splash.png;%(AdditionalInputs) + release\qrc_resources.cpp;%(Outputs) + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/libs/broadvoice/src/libbroadvoice.2010.vcxproj b/libs/broadvoice/src/libbroadvoice.2010.vcxproj new file mode 100644 index 0000000000..e5b584a381 --- /dev/null +++ b/libs/broadvoice/src/libbroadvoice.2010.vcxproj @@ -0,0 +1,227 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libbroadvoice + {CF70F278-3364-4395-A2E1-23501C9B8AD2} + libbroadvoice + Win32Proj + + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + true + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + Disabled + .; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + EditAndContinue + CompileAsC + + + true + Windows + false + + + MachineX86 + + + + + .; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + + + true + Windows + true + true + false + + + MachineX86 + + + + + X64 + + + Disabled + .; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + ProgramDatabase + CompileAsC + + + true + Windows + false + + + MachineX64 + + + + + X64 + + + .; .\floating\common; .\floating\bv16; .\floating\bv32; .\broadvoice; .\msvc;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;BROADVOICE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_TGMATH_H;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + + + true + Windows + true + true + false + + + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/esl/fs_cli.2010.vcxproj b/libs/esl/fs_cli.2010.vcxproj new file mode 100644 index 0000000000..948b5ca70f --- /dev/null +++ b/libs/esl/fs_cli.2010.vcxproj @@ -0,0 +1,215 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + fs_cli + {D2FB8043-D208-4AEE-8F18-3B5857C871B9} + fs_cli + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + $(IntDir)BuildLog $(ProjectName).htm + + + Disabled + $(ProjectDir)getopt;$(ProjectDir)src/include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ESL_DECLARE_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + 4100;6053;4706;%(DisableSpecificWarnings) + + + Ws2_32.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)fs_cli.pdb + Console + true + + + MachineX86 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + X64 + + + Disabled + $(ProjectDir)getopt;$(ProjectDir)src/include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ESL_DECLARE_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + 4100;6053;4706;%(DisableSpecificWarnings) + + + Ws2_32.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)fs_cli.pdb + Console + true + + + MachineX64 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + $(ProjectDir)getopt;$(ProjectDir)src/include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ESL_DECLARE_STATIC;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + true + ProgramDatabase + 4100;6053;4706;%(DisableSpecificWarnings) + + + Ws2_32.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)fs_cli.pdb + Console + true + true + true + + + MachineX86 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + X64 + + + $(ProjectDir)getopt;$(ProjectDir)src/include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ESL_DECLARE_STATIC;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + true + ProgramDatabase + 4100;6053;4706;%(DisableSpecificWarnings) + + + Ws2_32.lib;%(AdditionalDependencies) + $(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)fs_cli.pdb + Console + true + true + true + + + MachineX64 + + + + + + + + + + + + {cf405366-9558-4ae8-90ef-5e21b51ccb4e} + false + + + + + + \ No newline at end of file diff --git a/libs/esl/src/esl.2010.vcxproj b/libs/esl/src/esl.2010.vcxproj new file mode 100644 index 0000000000..91def52765 --- /dev/null +++ b/libs/esl/src/esl.2010.vcxproj @@ -0,0 +1,158 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + esl + {CF405366-9558-4AE8-90EF-5E21B51CCB4E} + esl + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)Debug\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)Release\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;ESL_DECLARE_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + 4706;4100;%(DisableSpecificWarnings) + true + + + + + X64 + + + Disabled + include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;ESL_DECLARE_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + false + ProgramDatabase + 4706;4100;%(DisableSpecificWarnings) + true + + + + + include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;ESL_DECLARE_STATIC;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + true + ProgramDatabase + 4706;4100;%(DisableSpecificWarnings) + true + + + + + X64 + + + include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;ESL_DECLARE_STATIC;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + false + ProgramDatabase + 4706;4100;%(DisableSpecificWarnings) + true + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/ilbc/libilbc.2010.vcxproj b/libs/ilbc/libilbc.2010.vcxproj new file mode 100644 index 0000000000..08f4eb0330 --- /dev/null +++ b/libs/ilbc/libilbc.2010.vcxproj @@ -0,0 +1,187 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libilbc + {9A5DDF08-C88C-4A35-B7F6-D605228446BD} + libilbc + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + src; src\ilbc; src\msvc;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + ProgramDatabase + 4127;%(DisableSpecificWarnings) + + + + + src; src\ilbc; src\msvc;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + 4127;%(DisableSpecificWarnings) + + + + + X64 + + + Disabled + src; src\ilbc; src\msvc;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + ProgramDatabase + 4127;%(DisableSpecificWarnings) + + + + + X64 + + + src; src\ilbc; src\msvc;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBilbc_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + 4127;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/libdingaling/libdingaling.2010.vcxproj b/libs/libdingaling/libdingaling.2010.vcxproj new file mode 100644 index 0000000000..1e8c0bc008 --- /dev/null +++ b/libs/libdingaling/libdingaling.2010.vcxproj @@ -0,0 +1,311 @@ + + + + + Debug DLL + Win32 + + + Debug DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release DLL + Win32 + + + Release DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + libdingaling + {1906D736-08BD-4EE1-924F-B536249B9A54} + libdingaling + Win32Proj + + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(SolutionDir)Debug\ + $(Configuration)\ + $(SolutionDir)Release\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + .;.\src;..\iksemel\include;..\include;..\apr\include;..\iksemel-1.2\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + ProgramDatabase + 4100;4706;%(DisableSpecificWarnings) + + + + + .;.\src;..\iksemel\include;..\include;..\apr\include;..\iksemel-1.2\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + 4100;%(DisableSpecificWarnings) + + + + + Disabled + .;.\src;..\iksemel\include;..\include;..\apr\include;..\iksemel-1.2\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;APR_DECLARE_STATIC;APU_DECLARE_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + EditAndContinue + 4100;%(DisableSpecificWarnings) + + + libapr-1.lib;libaprutil-1.lib;iksemel.lib;Ws2_32.lib;%(AdditionalDependencies) + ..\apr\Debug;..\apr-util\Debug;..\iksemel\Debug;%(AdditionalLibraryDirectories) + .\src\dingaling.def + true + false + false + false + + + + + + + .;.\src;..\iksemel\include;..\include;..\apr\include;..\iksemel-1.2\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;APR_DECLARE_STATIC;APU_DECLARE_STATIC;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + 4100;%(DisableSpecificWarnings) + + + libapr-1.lib;libaprutil-1.lib;iksemel.lib;Ws2_32.lib;%(AdditionalDependencies) + ..\apr\Release;..\apr-util\Release;..\iksemel\Release;%(AdditionalLibraryDirectories) + .\src\dingaling.def + false + + + + + + + X64 + + + Disabled + .;.\src;..\iksemel\include;..\include;..\apr\include;..\iksemel-1.2\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + ProgramDatabase + 4100;4706;%(DisableSpecificWarnings) + + + + + X64 + + + .;.\src;..\iksemel\include;..\include;..\apr\include;..\iksemel-1.2\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + 4100;%(DisableSpecificWarnings) + + + + + X64 + + + Disabled + .;.\src;..\iksemel\include;..\include;..\apr\include;..\iksemel-1.2\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;APR_DECLARE_STATIC;APU_DECLARE_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + ProgramDatabase + 4100;%(DisableSpecificWarnings) + + + libapr-1.lib;libaprutil-1.lib;iksemel.lib;Ws2_32.lib;%(AdditionalDependencies) + ..\apr\Debug;..\apr-util\Debug;..\iksemel\Debug;%(AdditionalLibraryDirectories) + .\src\dingaling.def + true + false + false + false + + + MachineX64 + + + + + X64 + + + .;.\src;..\iksemel\include;..\include;..\apr\include;..\iksemel-1.2\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;APR_DECLARE_STATIC;APU_DECLARE_STATIC;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + 4100;%(DisableSpecificWarnings) + + + libapr-1.lib;libaprutil-1.lib;iksemel.lib;Ws2_32.lib;%(AdditionalDependencies) + ..\apr\Release;..\apr-util\Release;..\iksemel\Release;%(AdditionalLibraryDirectories) + .\src\dingaling.def + false + + + MachineX64 + + + + + + + + + + + + + + + + {f057da7f-79e5-4b00-845c-ef446ef055e3} + false + + + {e727e8f6-935d-46fe-8b0e-37834748a0e3} + false + + + + + + \ No newline at end of file diff --git a/libs/libteletone/libteletone.2010.vcxproj b/libs/libteletone/libteletone.2010.vcxproj new file mode 100644 index 0000000000..2eb005f2e3 --- /dev/null +++ b/libs/libteletone/libteletone.2010.vcxproj @@ -0,0 +1,183 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libteletone + {89385C74-5860-4174-9CAF-A39E7C48909C} + libteletone + Win32Proj + + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;TELETONE_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + true + EditAndContinue + true + + + $(ProjectDir)teletone.def + false + false + false + + + $(IntDir)$(TargetName).lib + + + + + X64 + + + Disabled + src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;TELETONE_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + true + + + $(ProjectDir)teletone.def + false + false + false + + + $(IntDir)$(TargetName).lib + MachineX64 + + + + + src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;TELETONE_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + true + ProgramDatabase + true + + + $(ProjectDir)teletone.def + false + + + $(IntDir)$(TargetName).lib + + + + + X64 + + + src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;TELETONE_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + true + ProgramDatabase + true + + + $(ProjectDir)teletone.def + false + + + $(IntDir)$(TargetName).lib + MachineX64 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/portaudio/build/msvc/portaudio.2010.vcxproj b/libs/portaudio/build/msvc/portaudio.2010.vcxproj new file mode 100644 index 0000000000..c7563d0bed --- /dev/null +++ b/libs/portaudio/build/msvc/portaudio.2010.vcxproj @@ -0,0 +1,970 @@ + + + + + Debug DirectSound + Win32 + + + Debug DirectSound + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release DirectSound + Win32 + + + Release DirectSound + x64 + + + Release + Win32 + + + Release + x64 + + + + portaudio + {0A18A071-125E-442F-AFF7-A3F68ABECF99} + portaudio + + + + DynamicLibrary + false + + + DynamicLibrary + false + + + StaticLibrary + false + + + StaticLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + StaticLibrary + false + + + StaticLibrary + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(Configuration)\ + $(Configuration)\ + false + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release_x86/portaudio.tlb + + + + + Disabled + Default + ..\..\src\common;..\..\include;.\;..\..\src\os\win;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PA_NO_ASIO;PA_NO_DS;PAWIN_USE_WDMKS_DEVICE_INFO;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(Platform)\$(Configuration)/portaudio.pch + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + $(Platform)\$(Configuration)\portaudio.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release_x86/portaudio.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\src\common;..\..\include;.\;..\..\src\os\win;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PA_NO_ASIO;PA_NO_DS;PAWIN_USE_WDMKS_DEVICE_INFO;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(Platform)\$(Configuration)\portaudio.pch + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + $(Platform)\$(Configuration)\portaudio_x64.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug_x86/portaudio.tlb + + + + + Disabled + ..\..\src\common;..\..\include;.\;..\..\src\os\win;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PA_NO_ASIO;PA_NO_DS;PAWIN_USE_WDMKS_DEVICE_INFO;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(Platform)\$(Configuration)/portaudio.pch + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + $(Platform)\$(Configuration)\portaudio.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug_x86/portaudio.tlb + + + + + Disabled + ..\..\src\common;..\..\include;.\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PA_NO_ASIO;PA_NO_DS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(Platform)\$(Configuration)\portaudio.pch + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + $(Platform)\$(Configuration)/portaudio_x64.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug_x86/portaudio.tlb + + + + + Disabled + ..\..\src\common;..\..\include;.\;..\..\src\os\win;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PA_NO_ASIO;PAWIN_USE_WDMKS_DEVICE_INFO;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(Platform)\$(Configuration)/portaudio.pch + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ksuser.lib;%(AdditionalDependencies) + $(Platform)\$(Configuration)\portaudio_x86.dll + true + .\portaudio.def + true + $(Platform)\$(Configuration)\portaudio_x86.pdb + false + + + $(Platform)\$(Configuration)\portaudio_x86.lib + MachineX86 + + + true + $(Platform)\$(Configuration)\portaudio.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug_x86/portaudio.tlb + + + + + Disabled + ..\..\src\common;..\..\include;.\;..\..\src\os\win;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(Platform)\$(Configuration)\portaudio.pch + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ksuser.lib;%(AdditionalDependencies) + $(Platform)\$(Configuration)\portaudio_x64.dll + true + .\portaudio.def + true + $(Platform)\$(Configuration)/portaudio_x64.pdb + false + + + $(Platform)\$(Configuration)\portaudio_x64.lib + MachineX64 + + + true + $(Platform)\$(Configuration)/portaudio_x64.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release_x86/portaudio.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\src\common;..\..\include;.\;..\..\src\os\win;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PA_NO_ASIO;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(Platform)\$(Configuration)/portaudio.pch + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(Platform)\$(Configuration)\portaudio_x86.dll + true + .\portaudio.def + $(Platform)\$(Configuration)\portaudio_x86.pdb + false + + + $(Platform)\$(Configuration)\portaudio_x86.lib + MachineX86 + + + true + $(Platform)\$(Configuration)\portaudio.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release_x86/portaudio.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\src\common;..\..\include;.\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(Platform)\$(Configuration)\portaudio.pch + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(Platform)\$(Configuration)\portaudio_x64.dll + true + .\portaudio.def + $(Platform)\$(Configuration)/portaudio_x64.pdb + false + + + $(Platform)\$(Configuration)/portaudio_x64.lib + MachineX64 + + + true + $(Platform)\$(Configuration)\portaudio_x64.bsc + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + ..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + \ No newline at end of file diff --git a/libs/silk/src/Silk_FIX.2010.vcxproj b/libs/silk/src/Silk_FIX.2010.vcxproj new file mode 100644 index 0000000000..8d341b50e1 --- /dev/null +++ b/libs/silk/src/Silk_FIX.2010.vcxproj @@ -0,0 +1,300 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + Silk_FIX + {56B91D01-9150-4BBF-AFA1-5B68AB991B76} + Silk + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + Neither + ../interface;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + Fast + + + Level3 + EditAndContinue + + + + + + + + + MaxSpeed + Default + Neither + ../interface;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + false + false + MultiThreaded + Fast + + + Level3 + ProgramDatabase + + + + + + + + + X64 + + + Disabled + Neither + ../interface;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + Fast + + + Level3 + ProgramDatabase + + + + + + + + + X64 + + + MaxSpeed + Default + Neither + ../interface;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + false + false + MultiThreaded + Fast + + + Level3 + ProgramDatabase + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/spandsp/src/libspandsp.2010.vcxproj b/libs/spandsp/src/libspandsp.2010.vcxproj new file mode 100644 index 0000000000..82472a9a8d --- /dev/null +++ b/libs/spandsp/src/libspandsp.2010.vcxproj @@ -0,0 +1,440 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libspandsp + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} + libspandsp + Win32Proj + + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + true + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + $(IntDir)BuildLog $(ProjectName).htm + + + Disabled + .;..\..\src\spandsp;..\..\src;..\..\src\msvc;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + $(IntDir)$(TargetName).pdb + Level4 + EditAndContinue + CompileAsC + 4127;%(DisableSpecificWarnings) + + + true + Windows + false + + + ./Debug\spandsp.lib + MachineX86 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + .;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + + + $(IntDir)$(TargetName).pdb + Level4 + ProgramDatabase + 4127;%(DisableSpecificWarnings) + + + true + Windows + true + true + false + + + ./Release\spandsp.lib + MachineX86 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + Disabled + .;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + $(IntDir)$(TargetName).pdb + Level4 + ProgramDatabase + CompileAsC + 4127;%(DisableSpecificWarnings) + + + true + Windows + false + + + $(TargetDir)spandsp.lib + MachineX64 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + .;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + + + $(IntDir)$(TargetName).pdb + Level4 + ProgramDatabase + 4127;%(DisableSpecificWarnings) + + + true + Windows + true + true + false + + + $(TargetDir)spandsp.lib + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Copying %(FullPath) to $(ProjectDir)%(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)%(Filename)%(Extension)" + $(ProjectDir)%(Filename)%(Extension);%(Outputs) + Copying %(FullPath) to $(ProjectDir)%(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)%(Filename)%(Extension)" + $(ProjectDir)%(Filename)%(Extension);%(Outputs) + Copying %(FullPath) to $(ProjectDir)%(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)%(Filename)%(Extension)" + $(ProjectDir)%(Filename)%(Extension);%(Outputs) + Copying %(FullPath) to $(ProjectDir)%(Filename)%(Extension) + copy "%(FullPath)" "$(ProjectDir)%(Filename)%(Extension)" + $(ProjectDir)%(Filename)%(Extension);%(Outputs) + + + + + {401a40cd-5db4-4e34-ac68-fa99e9fac014} + false + + + {dee932ab-5911-4700-9eeb-8c7090a0a330} + false + + + {329a6fa0-0fcc-4435-a950-e670aefa9838} + false + + + + + + \ No newline at end of file diff --git a/libs/spandsp/src/msvc/make_at_dictionary.2010.vcxproj b/libs/spandsp/src/msvc/make_at_dictionary.2010.vcxproj new file mode 100644 index 0000000000..bbda6af0d6 --- /dev/null +++ b/libs/spandsp/src/msvc/make_at_dictionary.2010.vcxproj @@ -0,0 +1,65 @@ + + + + + All + Win32 + + + + make_at_dictionary + {DEE932AB-5911-4700-9EEB-8C7090A0A330} + make_at_dictionary + Win32Proj + + + + Application + Unicode + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + $(IntDir)BuildLog $(ProjectName).htm + + + Disabled + .;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + $(IntDir)$(TargetName).pdb + Level3 + ProgramDatabase + + + true + Console + MachineX86 + + + "$(TargetPath)" >"$(ProjectDir)..\at_interpreter_dictionary.h" + + + + + + + + + \ No newline at end of file diff --git a/libs/spandsp/src/msvc/make_modem_filter.2010.vcxproj b/libs/spandsp/src/msvc/make_modem_filter.2010.vcxproj new file mode 100644 index 0000000000..87114c4495 --- /dev/null +++ b/libs/spandsp/src/msvc/make_modem_filter.2010.vcxproj @@ -0,0 +1,96 @@ + + + + + All + Win32 + + + + make_modem_filter + {329A6FA0-0FCC-4435-A950-E670AEFA9838} + make_modem_filter + Win32Proj + + + + Application + Unicode + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + $(IntDir)BuildLog $(ProjectName).htm + + + Disabled + .;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + $(IntDir)$(TargetName).pdb + Level3 + ProgramDatabase + + + true + Console + MachineX86 + + + "$(TargetPath)" -m V.17 -i -r >"$(ProjectDir)..\v17_v32bis_rx_fixed_rrc.h" +"$(TargetPath)" -m V.17 -r >"$(ProjectDir)..\v17_v32bis_rx_floating_rrc.h" + +"$(TargetPath)" -m V.17 -i -t >"$(ProjectDir)..\v17_v32bis_tx_fixed_rrc.h" +"$(TargetPath)" -m V.17 -t >"$(ProjectDir)..\v17_v32bis_tx_floating_rrc.h" + +"$(TargetPath)" -m V.22bis1200 -i -r >"$(ProjectDir)..\v22bis_rx_1200_fixed_rrc.h" +"$(TargetPath)" -m V.22bis2400 -i -r >"$(ProjectDir)..\v22bis_rx_2400_fixed_rrc.h" +"$(TargetPath)" -m V.22bis1200 -r >"$(ProjectDir)..\v22bis_rx_1200_floating_rrc.h" +"$(TargetPath)" -m V.22bis2400 -r >"$(ProjectDir)..\v22bis_rx_2400_floating_rrc.h" +"$(TargetPath)" -m V.22bis -i -t >"$(ProjectDir)..\v22bis_tx_fixed_rrc.h" +"$(TargetPath)" -m V.22bis -t >"$(ProjectDir)..\v22bis_tx_floating_rrc.h" + +"$(TargetPath)" -m V.27ter2400 -i -r >"$(ProjectDir)..\v27ter_rx_2400_fixed_rrc.h" +"$(TargetPath)" -m V.27ter4800 -i -r >"$(ProjectDir)..\v27ter_rx_4800_fixed_rrc.h" +"$(TargetPath)" -m V.27ter2400 -r >"$(ProjectDir)..\v27ter_rx_2400_floating_rrc.h" +"$(TargetPath)" -m V.27ter4800 -r >"$(ProjectDir)..\v27ter_rx_4800_floating_rrc.h" +"$(TargetPath)" -m V.27ter2400 -i -t >"$(ProjectDir)..\v27ter_tx_2400_fixed_rrc.h" +"$(TargetPath)" -m V.27ter4800 -i -t >"$(ProjectDir)..\v27ter_tx_4800_fixed_rrc.h" +"$(TargetPath)" -m V.27ter2400 -t >"$(ProjectDir)..\v27ter_tx_2400_floating_rrc.h" +"$(TargetPath)" -m V.27ter4800 -t >"$(ProjectDir)..\v27ter_tx_4800_floating_rrc.h" + +"$(TargetPath)" -m V.29 -i -r >"$(ProjectDir)..\v29rx_fixed_rrc.h" +"$(TargetPath)" -m V.29 -r >"$(ProjectDir)..\v29rx_floating_rrc.h" +"$(TargetPath)" -m V.29 -i -t >"$(ProjectDir)..\v29tx_fixed_rrc.h" +"$(TargetPath)" -m V.29 -t >"$(ProjectDir)..\v29tx_floating_rrc.h" + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/speex/win32/VS2008/libspeex/libspeex.vcxproj b/libs/speex/win32/VS2008/libspeex/libspeex.vcxproj new file mode 100644 index 0000000000..8d393df607 --- /dev/null +++ b/libs/speex/win32/VS2008/libspeex/libspeex.vcxproj @@ -0,0 +1,644 @@ + + + + + Debug_RTL_dll + Win32 + + + Debug_RTL_dll + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release_Dynamic + Win32 + + + Release_Dynamic + x64 + + + Release_RTL_dll + Win32 + + + Release_RTL_dll + x64 + + + Release_SSE2 + Win32 + + + Release_SSE2 + x64 + + + Release_SSE + Win32 + + + Release_SSE + x64 + + + Release + Win32 + + + Release + x64 + + + + {E972C52F-9E85-4D65-B19C-031E511E9DB4} + libspeex + Win32Proj + + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + + + DynamicLibrary + MultiByte + true + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + + + DynamicLibrary + MultiByte + true + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + Debug\ + $(SolutionDir)$(Configuration)\ + Release\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + EditAndContinue + CompileAsC + + + $(OutDir)libspeex.lib + + + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + + + TurnOffAllWarnings + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + $(OutDir)libspeex.lib + + + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreaded + false + StreamingSIMDExtensions + + + Level4 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + $(OutDir)libspeex.lib + + + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreaded + false + StreamingSIMDExtensions2 + + + Level4 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + $(OutDir)libspeex.lib + + + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreaded + false + + + Level4 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + libspeex.def + true + true + false + + + + + + + Disabled + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + EditAndContinue + CompileAsC + + + $(OutDir)libspeex.lib + + + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + + + Level4 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + $(OutDir)libspeex.lib + + + + + X64 + + + Disabled + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + ProgramDatabase + CompileAsC + + + $(OutDir)libspeex.lib + + + + + X64 + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + + + TurnOffAllWarnings + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + $(OutDir)libspeex.lib + + + + + X64 + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreaded + false + StreamingSIMDExtensions + + + Level4 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + $(OutDir)libspeex.lib + + + + + X64 + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreaded + false + StreamingSIMDExtensions2 + + + Level4 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + $(OutDir)libspeex.lib + + + + + X64 + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreaded + false + + + Level4 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + libspeex.def + true + true + false + + + MachineX64 + + + + + X64 + + + Disabled + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + ProgramDatabase + CompileAsC + + + $(OutDir)libspeex.lib + + + + + X64 + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + + + Level4 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + $(OutDir)libspeex.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/speex/win32/VS2008/libspeexdsp/libspeexdsp.vcxproj b/libs/speex/win32/VS2008/libspeexdsp/libspeexdsp.vcxproj new file mode 100644 index 0000000000..5ac73577ec --- /dev/null +++ b/libs/speex/win32/VS2008/libspeexdsp/libspeexdsp.vcxproj @@ -0,0 +1,390 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release_Dynamic_SSE + Win32 + + + Release_Dynamic_SSE + x64 + + + Release_Static_SSE + Win32 + + + Release_Static_SSE + x64 + + + Release + Win32 + + + Release + x64 + + + + {03207781-0D1C-4DB3-A71D-45C608F28DBD} + Win32Proj + + + + StaticLibrary + MultiByte + true + + + DynamicLibrary + MultiByte + true + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + true + + + DynamicLibrary + MultiByte + true + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + Debug\ + Debug\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + EditAndContinue + CompileAsC + + + ../../../lib/libspeexdsp.lib + + + + + X64 + + + Disabled + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + ProgramDatabase + CompileAsC + + + ../../../lib/$(Platform)\$(Configuration)\libspeexdsp.lib + + + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + + + TurnOffAllWarnings + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + ../../../lib/libspeexdsp.lib + + + + + X64 + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + + + TurnOffAllWarnings + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + ../../../lib/$(Platform)\$(Configuration)\libspeexdsp.lib + + + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + _USE_SSE;WIN32;NDEBUG;_WINDOWS;_USRDLL;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + StreamingSIMDExtensions + + + Level3 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + ../../../bin/libspeexdsp.dll + ..\..\libspeexdsp.def + Windows + true + true + false + + + ../../../lib/libspeexdsp.lib + MachineX86 + + + + + X64 + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + _USE_SSE;WIN32;NDEBUG;_WINDOWS;_USRDLL;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + StreamingSIMDExtensions + + + Level3 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + ../../../bin/libspeexdsp.dll + ..\..\libspeexdsp.def + Windows + true + true + false + + + ../../../lib/libspeexdsp.lib + MachineX64 + + + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + _USE_SSE;WIN32;NDEBUG;_WINDOWS;_USRDLL;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + StreamingSIMDExtensions + + + Level3 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + ../../../lib/libspeexdsp.lib + + + + + X64 + + + Full + AnySuitable + true + Speed + ..\..\..\include;..\..;%(AdditionalIncludeDirectories) + _USE_SSE;WIN32;NDEBUG;_WINDOWS;_USRDLL;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + + + MultiThreadedDLL + false + StreamingSIMDExtensions + + + Level3 + ProgramDatabase + CompileAsC + 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) + + + ../../../lib/libspeexdsp.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/srtp/libsrtp.2010.vcxproj b/libs/srtp/libsrtp.2010.vcxproj new file mode 100644 index 0000000000..70e6fb6881 --- /dev/null +++ b/libs/srtp/libsrtp.2010.vcxproj @@ -0,0 +1,457 @@ + + + + + Debug Dll + Win32 + + + Debug Dll + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release Dll + Win32 + + + Release Dll + x64 + + + Release + Win32 + + + Release + x64 + + + + libsrtp + {EEF031CB-FED8-451E-A471-91EC8D4F6750} + libsrtp + Win32Proj + + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)Debug\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)Release\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Creating config.h from config.hw + copy /Y "$(ProjectDir)config.hw" "$(ProjectDir)crypto\include\config.h" > NUL + + + + + + + %(Outputs) + + + Disabled + crypto/include;include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Default + false + + + Level4 + true + ProgramDatabase + + + + + Creating config.h from config.hw + copy /Y "$(ProjectDir)config.hw" "$(ProjectDir)crypto\include\config.h" > NUL + + + + + + + %(Outputs) + + + X64 + + + Disabled + crypto/include;include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Default + + + Level4 + false + ProgramDatabase + + + + + Creating config.h from config.hw + copy /Y "$(ProjectDir)config.hw" "$(ProjectDir)crypto\include\config.h" > NUL + + + + + + + %(Outputs) + + + crypto/include;include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + Default + false + + + Level4 + true + ProgramDatabase + + + + + Creating config.h from config.hw + copy /Y "$(ProjectDir)config.hw" "$(ProjectDir)crypto\include\config.h" > NUL + + + + + + + %(Outputs) + + + X64 + + + crypto/include;include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + Default + + + Level4 + false + ProgramDatabase + + + + + Creating config.h from config.hw + copy /Y "$(ProjectDir)config.hw" "$(ProjectDir)crypto\include\config.h" > NUL + + + + + + + %(Outputs) + + + Disabled + true + crypto/include;include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Default + false + + + Level4 + true + EditAndContinue + + + Ws2_32.lib;%(AdditionalDependencies) + srtp.def + false + false + + + false + + + + + + + Creating config.h from config.hw + copy /Y "$(ProjectDir)config.hw" "$(ProjectDir)crypto\include\config.h" > NUL + + + + + + + %(Outputs) + + + X64 + + + Disabled + true + crypto/include;include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Default + + + Level4 + true + ProgramDatabase + + + Ws2_32.lib;%(AdditionalDependencies) + srtp.def + false + false + + + false + + + MachineX64 + + + + + Creating config.h from config.hw + copy /Y "$(ProjectDir)config.hw" "$(ProjectDir)crypto\include\config.h" > NUL + + + + + + + %(Outputs) + + + crypto/include;include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + Default + false + + + Level4 + true + ProgramDatabase + + + Ws2_32.lib;%(AdditionalDependencies) + srtp.def + false + + + + + + + Creating config.h from config.hw + copy /Y "$(ProjectDir)config.hw" "$(ProjectDir)crypto\include\config.h" > NUL + + + + + + + %(Outputs) + + + X64 + + + crypto/include;include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + Default + + + Level4 + true + ProgramDatabase + + + Ws2_32.lib;%(AdditionalDependencies) + srtp.def + false + + + MachineX64 + + + + + + + + + + + + + Default + false + false + Default + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/apr.props b/libs/unimrcp/build/vsprops/apr.props new file mode 100644 index 0000000000..660a970181 --- /dev/null +++ b/libs/unimrcp/build/vsprops/apr.props @@ -0,0 +1,30 @@ + + + + + + + $(LibRootDir)libs\apr + $(LibRootDir)libs\apr-util + $(LibRootDir)libs\apr-iconv + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(AprDir)\include;$(AprUtilDir)\include;%(AdditionalIncludeDirectories) + + + + + $(AprDir) + + + $(AprUtilDir) + + + $(AprIconvDir) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/apt.props b/libs/unimrcp/build/vsprops/apt.props new file mode 100644 index 0000000000..8ede1684dc --- /dev/null +++ b/libs/unimrcp/build/vsprops/apt.props @@ -0,0 +1,15 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(ProjectRootDir)libs\apr-toolkit\include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;%(PreprocessorDefinitions) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/mpf.props b/libs/unimrcp/build/vsprops/mpf.props new file mode 100644 index 0000000000..ff68ceaef2 --- /dev/null +++ b/libs/unimrcp/build/vsprops/mpf.props @@ -0,0 +1,15 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(ProjectRootDir)libs\mpf\include;%(AdditionalIncludeDirectories) + MPF_STATIC_LIB;%(PreprocessorDefinitions) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/mrcp.props b/libs/unimrcp/build/vsprops/mrcp.props new file mode 100644 index 0000000000..fa4ee3539b --- /dev/null +++ b/libs/unimrcp/build/vsprops/mrcp.props @@ -0,0 +1,15 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(ProjectRootDir)libs\mrcp\include;$(ProjectRootDir)libs\mrcp\message\include;$(ProjectRootDir)libs\mrcp\control\include;$(ProjectRootDir)libs\mrcp\resources\include;%(AdditionalIncludeDirectories) + MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/mrcpclient.props b/libs/unimrcp/build/vsprops/mrcpclient.props new file mode 100644 index 0000000000..b650e07d91 --- /dev/null +++ b/libs/unimrcp/build/vsprops/mrcpclient.props @@ -0,0 +1,15 @@ + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(ProjectRootDir)libs\mrcp-client\include;%(AdditionalIncludeDirectories) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/mrcpsignaling.props b/libs/unimrcp/build/vsprops/mrcpsignaling.props new file mode 100644 index 0000000000..5e0c884a9f --- /dev/null +++ b/libs/unimrcp/build/vsprops/mrcpsignaling.props @@ -0,0 +1,15 @@ + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(ProjectRootDir)libs\mrcp-signaling\include;%(AdditionalIncludeDirectories) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/mrcpv2transport.props b/libs/unimrcp/build/vsprops/mrcpv2transport.props new file mode 100644 index 0000000000..c71836559b --- /dev/null +++ b/libs/unimrcp/build/vsprops/mrcpv2transport.props @@ -0,0 +1,14 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(ProjectRootDir)libs\mrcpv2-transport\include;%(AdditionalIncludeDirectories) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/sofiasip.props b/libs/unimrcp/build/vsprops/sofiasip.props new file mode 100644 index 0000000000..3714d30977 --- /dev/null +++ b/libs/unimrcp/build/vsprops/sofiasip.props @@ -0,0 +1,22 @@ + + + + + + + $(LibRootDir)libs\sofia-sip + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(SofiaDir)\win32;$(SofiaDir)\libsofia-sip-ua\su;$(SofiaDir)\libsofia-sip-ua\nua;$(SofiaDir)\libsofia-sip-ua\url;$(SofiaDir)\libsofia-sip-ua\sip;$(SofiaDir)\libsofia-sip-ua\msg;$(SofiaDir)\libsofia-sip-ua\sdp;$(SofiaDir)\libsofia-sip-ua\nta;$(SofiaDir)\libsofia-sip-ua\nea;$(SofiaDir)\libsofia-sip-ua\soa;$(SofiaDir)\libsofia-sip-ua\iptsec;$(SofiaDir)\libsofia-sip-ua\bnf;$(SofiaDir)\libsofia-sip-ua\features;%(AdditionalIncludeDirectories) + + + + + $(SofiaDir) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/unibase.props b/libs/unimrcp/build/vsprops/unibase.props new file mode 100644 index 0000000000..097e8596ab --- /dev/null +++ b/libs/unimrcp/build/vsprops/unibase.props @@ -0,0 +1,26 @@ + + + + $(ProjectDir)..\..\ + $(SolutionDir) + + + <_ProjectFileVersion>10.0.30319.1 + + + + WIN32;%(PreprocessorDefinitions) + Level4 + true + 4100;%(DisableSpecificWarnings) + + + + + $(ProjectRootDir) + + + $(LibRootDir) + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/unidebug.props b/libs/unimrcp/build/vsprops/unidebug.props new file mode 100644 index 0000000000..e9778995ab --- /dev/null +++ b/libs/unimrcp/build/vsprops/unidebug.props @@ -0,0 +1,21 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + Disabled + _DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + ProgramDatabase + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/unirelease.props b/libs/unimrcp/build/vsprops/unirelease.props new file mode 100644 index 0000000000..8081506815 --- /dev/null +++ b/libs/unimrcp/build/vsprops/unirelease.props @@ -0,0 +1,18 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + NDEBUG;%(PreprocessorDefinitions) + MultiThreadedDLL + + + ProgramDatabase + + + \ No newline at end of file diff --git a/libs/unimrcp/build/vsprops/unirtsp.props b/libs/unimrcp/build/vsprops/unirtsp.props new file mode 100644 index 0000000000..7ed01cb9a8 --- /dev/null +++ b/libs/unimrcp/build/vsprops/unirtsp.props @@ -0,0 +1,15 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(ProjectRootDir)libs\uni-rtsp\include;%(AdditionalIncludeDirectories) + RTSP_STATIC_LIB;%(PreprocessorDefinitions) + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/apr-toolkit/aprtoolkit.2010.vcxproj b/libs/unimrcp/libs/apr-toolkit/aprtoolkit.2010.vcxproj new file mode 100644 index 0000000000..733b541f71 --- /dev/null +++ b/libs/unimrcp/libs/apr-toolkit/aprtoolkit.2010.vcxproj @@ -0,0 +1,157 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + aprtoolkit + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2} + aprtoolkit + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + APT_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + APT_STATIC_LIB;%(PreprocessorDefinitions) + ProgramDatabase + + + + + APT_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + APT_STATIC_LIB;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {f057da7f-79e5-4b00-845c-ef446ef055e3} + false + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/mpf/mpf.2010.vcxproj b/libs/unimrcp/libs/mpf/mpf.2010.vcxproj new file mode 100644 index 0000000000..f0e068442b --- /dev/null +++ b/libs/unimrcp/libs/mpf/mpf.2010.vcxproj @@ -0,0 +1,193 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mpf + {B5A00BFA-6083-4FAE-A097-71642D6473B5} + mpf + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + codecs;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + codecs;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;%(PreprocessorDefinitions) + false + ProgramDatabase + + + + + codecs;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + codecs;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;%(PreprocessorDefinitions) + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/mrcp-client/mrcpclient.2010.vcxproj b/libs/unimrcp/libs/mrcp-client/mrcpclient.2010.vcxproj new file mode 100644 index 0000000000..108daf75cd --- /dev/null +++ b/libs/unimrcp/libs/mrcp-client/mrcpclient.2010.vcxproj @@ -0,0 +1,121 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mrcpclient + {72782932-37CC-46AE-8C7F-9A7B1A6EE108} + mrcpclient + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + ProgramDatabase + + + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2010.vcxproj b/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2010.vcxproj new file mode 100644 index 0000000000..4fa4495050 --- /dev/null +++ b/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2010.vcxproj @@ -0,0 +1,121 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mrcpsignaling + {12A49562-BAB9-43A3-A21D-15B60BBB4C31} + mrcpsignaling + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + ProgramDatabase + + + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj b/libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj new file mode 100644 index 0000000000..7afe47d10d --- /dev/null +++ b/libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj @@ -0,0 +1,148 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mrcp + {1C320193-46A6-4B34-9C56-8AB584FC1B56} + mrcp + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + %(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + %(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + ProgramDatabase + + + + + %(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + %(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2010.vcxproj b/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2010.vcxproj new file mode 100644 index 0000000000..3736767108 --- /dev/null +++ b/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2010.vcxproj @@ -0,0 +1,124 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mrcpv2transport + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA} + mrcpv2transport + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + ProgramDatabase + + + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj b/libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj new file mode 100644 index 0000000000..a281ceb00d --- /dev/null +++ b/libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj @@ -0,0 +1,132 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + unirtsp + {504B3154-7A4F-459D-9877-B951021C3F1F} + unirtsp + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + codecs;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + codecs;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;%(PreprocessorDefinitions) + ProgramDatabase + + + + + codecs;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;%(PreprocessorDefinitions) + + + + + X64 + + + codecs;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2010.vcxproj b/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2010.vcxproj new file mode 100644 index 0000000000..f9e62832b9 --- /dev/null +++ b/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2010.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mrcpsofiasip + {746F3632-5BB2-4570-9453-31D6D58A7D8E} + mrcpsofiasip + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + X64 + + + include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + ProgramDatabase + + + + + include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + X64 + + + include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + {70a49bc2-7500-41d0-b75d-edcc5be987a0} + false + + + + + + \ No newline at end of file diff --git a/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2010.vcxproj b/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2010.vcxproj new file mode 100644 index 0000000000..f19a5f0240 --- /dev/null +++ b/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2010.vcxproj @@ -0,0 +1,133 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mrcpunirtsp + {DEB01ACB-D65F-4A62-AED9-58C1054499E9} + mrcpunirtsp + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;RTSP_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + X64 + + + include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;RTSP_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + ProgramDatabase + + + + + include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;RTSP_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + X64 + + + include;%(AdditionalIncludeDirectories) + APT_STATIC_LIB;RTSP_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/win32/Dowload 32khz Sounds.2010.vcxproj b/libs/win32/Dowload 32khz Sounds.2010.vcxproj new file mode 100644 index 0000000000..ea4360fe6c --- /dev/null +++ b/libs/win32/Dowload 32khz Sounds.2010.vcxproj @@ -0,0 +1,82 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download 32khzsound + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F} + Download 32khzsound + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading 32khzsound. + if not exist "$(ProjectDir)..\sounds\en\us\callie\voicemail\32000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzipSounds en-us-callie 32000 "$(ProjectDir)..\sounds" "$(ProjectDir)..\..\build\sounds_version.txt" + $(ProjectDir)..\sounds\en\us\callie\voicemail\32000;%(Outputs) + Downloading 32khzsound. + if not exist "$(ProjectDir)..\sounds\en\us\callie\voicemail\32000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzipSounds en-us-callie 32000 "$(ProjectDir)..\sounds" "$(ProjectDir)..\..\build\sounds_version.txt" + $(ProjectDir)..\sounds\en\us\callie\voicemail\32000;%(Outputs) + + + + + {e10571c4-e7f4-4608-b5f2-b22e7eb95400} + + + + + + \ No newline at end of file diff --git a/libs/win32/Dowload 32khz music.2010.vcxproj b/libs/win32/Dowload 32khz music.2010.vcxproj new file mode 100644 index 0000000000..e39ce87b85 --- /dev/null +++ b/libs/win32/Dowload 32khz music.2010.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download 32khz music + {1F0A8A77-E661-418F-BB92-82172AE43803} + Download 32khz music + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading 32khzsound. + set /P SOUND_VERSION=<"$(ProjectDir)..\..\build\moh_version.txt" +if not exist "$(ProjectDir)..\sounds\music\32000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/freeswitch-sounds-music-32000-%SOUND_VERSION%.tar.gz "$(ProjectDir)..\sounds" + + + $(ProjectDir)..\sounds\music\32000;%(Outputs) + Downloading 32khzsound. + set /P SOUND_VERSION=<"$(ProjectDir)..\..\build\moh_version.txt" +if not exist "$(ProjectDir)..\sounds\music\32000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/freeswitch-sounds-music-32000-%SOUND_VERSION%.tar.gz "$(ProjectDir)..\sounds" + + + $(ProjectDir)..\sounds\music\32000;%(Outputs) + + + + + {6e49f6c2-adda-4bfb-81fe-ab9af51b455f} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download 16khz Sounds.2010.vcxproj b/libs/win32/Download 16khz Sounds.2010.vcxproj new file mode 100644 index 0000000000..e13ab61e3d --- /dev/null +++ b/libs/win32/Download 16khz Sounds.2010.vcxproj @@ -0,0 +1,82 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download 16khzsound + {87A1FE3D-F410-4C8E-9591-8C625985BC70} + Download 16khzsound + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading 16khzsound. + if not exist "$(ProjectDir)..\sounds\en\us\callie\voicemail\16000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzipSounds en-us-callie 16000 "$(ProjectDir)..\sounds" "$(ProjectDir)..\..\build\sounds_version.txt" + $(ProjectDir)..\sounds\en\us\callie\voicemail\16000;%(Outputs) + Downloading 16khzsound. + if not exist "$(ProjectDir)..\sounds\en\us\callie\voicemail\16000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzipSounds en-us-callie 16000 "$(ProjectDir)..\sounds" "$(ProjectDir)..\..\build\sounds_version.txt" + $(ProjectDir)..\sounds\en\us\callie\voicemail\16000;%(Outputs) + + + + + {4f5c9d55-98ef-4256-8311-32d7bd360406} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download 16khz music.2010.vcxproj b/libs/win32/Download 16khz music.2010.vcxproj new file mode 100644 index 0000000000..e7adf75bf9 --- /dev/null +++ b/libs/win32/Download 16khz music.2010.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download 16khz music + {E10571C4-E7F4-4608-B5F2-B22E7EB95400} + Download 16khz music + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading 16khzsound. + set /P SOUND_VERSION=<"$(ProjectDir)..\..\build\moh_version.txt" +if not exist "$(ProjectDir)..\sounds\music\16000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/freeswitch-sounds-music-16000-%SOUND_VERSION%.tar.gz "$(ProjectDir)..\sounds" + + + $(ProjectDir)..\sounds\music\16000;%(Outputs) + Downloading 16khzsound. + set /P SOUND_VERSION=<"$(ProjectDir)..\..\build\moh_version.txt" +if not exist "$(ProjectDir)..\sounds\music\16000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/freeswitch-sounds-music-16000-%SOUND_VERSION%.tar.gz "$(ProjectDir)..\sounds" + + + $(ProjectDir)..\sounds\music\16000;%(Outputs) + + + + + {87a1fe3d-f410-4c8e-9591-8c625985bc70} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download 8khz Sounds.2010.vcxproj b/libs/win32/Download 8khz Sounds.2010.vcxproj new file mode 100644 index 0000000000..29a356e03b --- /dev/null +++ b/libs/win32/Download 8khz Sounds.2010.vcxproj @@ -0,0 +1,77 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download 8khzsound + {3CE1DC99-8246-4DB1-A709-74F19F08EC67} + Download 8khzsound + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading 8khzsound. + if not exist "$(ProjectDir)..\sounds\en\us\callie\voicemail\8000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzipSounds en-us-callie 8000 "$(ProjectDir)..\sounds" "$(ProjectDir)..\..\build\sounds_version.txt" + $(ProjectDir)..\sounds\en\us\callie\voicemail\8000;%(Outputs) + Downloading 8khzsound. + if not exist "$(ProjectDir)..\sounds\en\us\callie\voicemail\8000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzipSounds en-us-callie 8000 "$(ProjectDir)..\sounds" "$(ProjectDir)..\..\build\sounds_version.txt" + $(ProjectDir)..\sounds\en\us\callie\voicemail\8000;%(Outputs) + + + + + + \ No newline at end of file diff --git a/libs/win32/Download 8khz music.2010.vcxproj b/libs/win32/Download 8khz music.2010.vcxproj new file mode 100644 index 0000000000..a0fc7302d8 --- /dev/null +++ b/libs/win32/Download 8khz music.2010.vcxproj @@ -0,0 +1,86 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download 8khz music + {4F5C9D55-98EF-4256-8311-32D7BD360406} + Download 8khz music + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading 8khzsound. + set /P SOUND_VERSION=<"$(ProjectDir)..\..\build\moh_version.txt" +if not exist "$(ProjectDir)..\sounds\music\8000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/freeswitch-sounds-music-8000-%SOUND_VERSION%.tar.gz "$(ProjectDir)..\sounds" + + $(ProjectDir)..\sounds\music\8000;%(Outputs) + Downloading 8khzsound. + set /P SOUND_VERSION=<"$(ProjectDir)..\..\build\moh_version.txt" +if not exist "$(ProjectDir)..\sounds\music\8000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/freeswitch-sounds-music-8000-%SOUND_VERSION%.tar.gz "$(ProjectDir)..\sounds" + + $(ProjectDir)..\sounds\music\8000;%(Outputs) + + + + + {3ce1dc99-8246-4db1-a709-74f19f08ec67} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download CELT.vcxproj b/libs/win32/Download CELT.vcxproj new file mode 100644 index 0000000000..fb05383ebc --- /dev/null +++ b/libs/win32/Download CELT.vcxproj @@ -0,0 +1,91 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19} + Download CELT + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + + + + + Document + Downloading CELT. + if not exist "$(ProjectDir)..\celt-0.7.1" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/celt-0.7.1.tar.gz "$(ProjectDir).." +xcopy "$(ProjectDir)\celt\config.h" "$(ProjectDir)..\celt-0.7.1\libcelt" /C /D /Y /S /I +xcopy "$(ProjectDir)\celt\float_cast.h" "$(ProjectDir)..\celt-0.7.1\libcelt" /C /D /Y /S /I + + $(ProjectDir)..\CELT;%(Outputs) + Downloading CELT. + if not exist "$(ProjectDir)..\celt-0.7.1" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/celt-0.7.1.tar.gz "$(ProjectDir).." +xcopy "$(ProjectDir)\celt\config.h" "$(ProjectDir)..\celt-0.7.1\libcelt" /C /D /Y /S /I +xcopy "$(ProjectDir)\celt\float_cast.h" "$(ProjectDir)..\celt-0.7.1\libcelt" /C /D /Y /S /I + + $(ProjectDir)..\CELT;%(Outputs) + + + + + {1f0a8a77-e661-418f-bb92-82172ae43803} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download FLITE.2010.vcxproj b/libs/win32/Download FLITE.2010.vcxproj new file mode 100644 index 0000000000..ef6791e48a --- /dev/null +++ b/libs/win32/Download FLITE.2010.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download FLITE + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B} + Download FLITE + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + + + + + Document + Downloading Flite. + if not exist "$(ProjectDir)..\flite-1.3.99" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/flite-1.3.99-latest.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\flite-1.3.99;%(Outputs) + Downloading Flite. + if not exist "$(ProjectDir)..\flite-1.3.99" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/flite-1.3.99-latest.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\flite-1.3.99;%(Outputs) + + + + + {fff82f9b-6a2b-4be3-95d8-dc5a4fc71e19} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download JSON.2010.vcxproj b/libs/win32/Download JSON.2010.vcxproj new file mode 100644 index 0000000000..f9faff4d27 --- /dev/null +++ b/libs/win32/Download JSON.2010.vcxproj @@ -0,0 +1,86 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download JSON + {B808178B-82F0-4CF4-A2B1-921939FA24D0} + Download JSON + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + + + + + Document + Downloading JSON. + if not exist "$(ProjectDir)..\json-c-0.9" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/json-c-0.9.tar.gz "$(ProjectDir).." + $(ProjectDir)..\JSON;%(Outputs) + Downloading JSON. + if not exist "$(ProjectDir)..\json-c-0.9" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/json-c-0.9.tar.gz "$(ProjectDir).." + $(ProjectDir)..\JSON;%(Outputs) + + + + + {d5d2bf72-29fe-4982-a9fa-82fdd086db1b} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download LAME.2010.vcxproj b/libs/win32/Download LAME.2010.vcxproj new file mode 100644 index 0000000000..66cba3698e --- /dev/null +++ b/libs/win32/Download LAME.2010.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download LAME + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B} + Download LAME + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + + + + + Document + Downloading Lame. + if not exist "$(ProjectDir)..\lame-3.97" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/lame-3.97.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\lame-3.97;%(Outputs) + Downloading Lame. + if not exist "$(ProjectDir)..\lame-3.97" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/lame-3.97.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\lame-3.97;%(Outputs) + + + + + {b808178b-82f0-4cf4-a2b1-921939fa24d0} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download LIBSHOUT.2010.vcxproj b/libs/win32/Download LIBSHOUT.2010.vcxproj new file mode 100644 index 0000000000..685d733335 --- /dev/null +++ b/libs/win32/Download LIBSHOUT.2010.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download LIBSHOUT + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B} + Download LIBSHOUT + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + + + + + Document + Downloading Flite. + if not exist "$(ProjectDir)..\libshout-2.2.2" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/libshout-2.2.2.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\libshout-2.2.2;%(Outputs) + Downloading Flite. + if not exist "$(ProjectDir)..\libshout-2.2.2" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/libshout-2.2.2.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\libshout-2.2.2;%(Outputs) + + + + + {d5d2bf72-29fe-4982-a9fa-82ab2086db1b} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download OGG.2010.vcxproj b/libs/win32/Download OGG.2010.vcxproj new file mode 100644 index 0000000000..b8daf3a83e --- /dev/null +++ b/libs/win32/Download OGG.2010.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download OGG + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B} + Download OGG + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + + + + + Document + Downloading Lame. + if not exist "$(ProjectDir)..\libogg-1.1.3" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\libogg-1.1.3;%(Outputs) + Downloading Lame. + if not exist "$(ProjectDir)..\libogg-1.1.3" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\libogg-1.1.3;%(Outputs) + + + + + {e796e337-de78-4303-8614-9a590862ee95} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download PTHREAD.2010.vcxproj b/libs/win32/Download PTHREAD.2010.vcxproj new file mode 100644 index 0000000000..cbf639d07c --- /dev/null +++ b/libs/win32/Download PTHREAD.2010.vcxproj @@ -0,0 +1,84 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download PTHREAD + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} + Download PTHREAD + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading PTHREAD. + if not exist "$(ProjectDir)..\pthreads-w32-2-7-0-release" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/pthreads-w32-2-7-0-release.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\pthreads-w32-2-7-0-release;%(Outputs) + Downloading PTHREAD. + if not exist "$(ProjectDir)..\pthreads-w32-2-7-0-release" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/pthreads-w32-2-7-0-release.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\pthreads-w32-2-7-0-release;%(Outputs) + + + + + {af8163ee-fa76-4904-a11d-7d70a1b5ba2e} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download mpg123.2010.vcxproj b/libs/win32/Download mpg123.2010.vcxproj new file mode 100644 index 0000000000..eb9d52cf7c --- /dev/null +++ b/libs/win32/Download mpg123.2010.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download mpg123 + {E796E337-DE78-4303-8614-9A590862EE95} + Download mpg123 + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + + + + + Document + Downloading Flite. + if not exist "$(ProjectDir)..\mpg123" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/mpg123.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\mpg123;%(Outputs) + Downloading Flite. + if not exist "$(ProjectDir)..\mpg123" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/mpg123.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\mpg123;%(Outputs) + + + + + {d5d2bf72-29fe-4982-a9fa-82ab3086db1b} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download pocketsphinx.2010.vcxproj b/libs/win32/Download pocketsphinx.2010.vcxproj new file mode 100644 index 0000000000..00230d9a2e --- /dev/null +++ b/libs/win32/Download pocketsphinx.2010.vcxproj @@ -0,0 +1,84 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download pocketsphinx + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E} + Download pocketsphinx + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading pocketsphinx. + if not exist "$(ProjectDir)..\pocketsphinx-0.5.99" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/pocketsphinx-0.5.99-20091212.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\pocketsphinx-0.5.99;%(Outputs) + Downloading pocketsphinx. + if not exist "$(ProjectDir)..\pocketsphinx-0.5.99" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/pocketsphinx-0.5.99-20091212.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\pocketsphinx-0.5.99;%(Outputs) + + + + + {d5d2bf72-29fe-4982-a9fa-82ab1086db1b} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download sphinxbase.2010.vcxproj b/libs/win32/Download sphinxbase.2010.vcxproj new file mode 100644 index 0000000000..1634042b99 --- /dev/null +++ b/libs/win32/Download sphinxbase.2010.vcxproj @@ -0,0 +1,84 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download sphinxbase + {4F92B672-DADB-4047-8D6A-4BB3796733FD} + Download sphinxbase + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + Document + Downloading sphinxbase. + if not exist "$(ProjectDir)..\sphinxbase-0.4.99" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/sphinxbase-0.4.99-20091212.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\sphinxbase-0.4.99;%(Outputs) + Downloading sphinxbase. + if not exist "$(ProjectDir)..\sphinxbase-0.4.99" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/sphinxbase-0.4.99-20091212.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\sphinxbase-0.4.99;%(Outputs) + + + + + {8b3b4c4c-13c2-446c-beb0-f412cc2cfb9a} + + + + + + \ No newline at end of file diff --git a/libs/win32/Download sphinxmodel.2010.vcxproj b/libs/win32/Download sphinxmodel.2010.vcxproj new file mode 100644 index 0000000000..6a2e4318d9 --- /dev/null +++ b/libs/win32/Download sphinxmodel.2010.vcxproj @@ -0,0 +1,87 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + Download sphinxmodel + {2DEE4895-1134-439C-B688-52203E57D878} + Download sphinxmodel + Win32Proj + + + + Utility + MultiByte + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + + + + + + + Document + Downloading sphinxmodel. + if not exist "$(SolutionDir)\libs\Communicator_semi_40.cd_semi_6000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/communicator_semi_6000_20080321.tar.gz "$(ProjectDir).." + + $(ProjectDir)..\Communicator_semi_40.cd_semi_6000;%(Outputs) + Downloading sphinxmodel. + if not exist "$(SolutionDir)\libs\Communicator_semi_40.cd_semi_6000" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://files.freeswitch.org/downloads/libs/communicator_semi_6000_20080321.tar.gz "$(ProjectDir).." + $(ProjectDir)..\Communicator_semi_40.cd_semi_6000;%(Outputs) + + + + + {4f92b672-dadb-4047-8d6a-4bb3796733fd} + + + + + + \ No newline at end of file diff --git a/libs/win32/Sound_Files/16khz.2010.vcxproj b/libs/win32/Sound_Files/16khz.2010.vcxproj new file mode 100644 index 0000000000..b6a532fba3 --- /dev/null +++ b/libs/win32/Sound_Files/16khz.2010.vcxproj @@ -0,0 +1,82 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 16khz + {7EB71250-F002-4ED8-92CA-CA218114537A} + My16khz + + + + Utility + MultiByte + true + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + xcopy "$(SolutionDir)libs\sounds\en\us\callie\voicemail\16000\*.*" "$(OutDir)sounds\en\us\callie\voicemail\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ivr\16000\*.*" "$(OutDir)sounds\en\us\callie\ivr\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\conference\16000\*.*" "$(OutDir)sounds\en\us\callie\conference\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\time\16000\*.*" "$(OutDir)sounds\en\us\callie\time\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\digits\16000\*.*" "$(OutDir)sounds\en\us\callie\digits\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ascii\16000\*.*" "$(OutDir)sounds\en\us\callie\ascii\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\misc\16000\*.*" "$(OutDir)sounds\en\us\callie\misc\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\currency\16000\*.*" "$(OutDir)sounds\en\us\callie\currency\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\phonetic-ascii\16000\*.*" "$(OutDir)sounds\en\us\callie\phonetic-ascii\16000" /C /D /Y /S /I + + + + + + xcopy "$(SolutionDir)libs\sounds\en\us\callie\voicemail\16000\*.*" "$(OutDir)sounds\en\us\callie\voicemail\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ivr\16000\*.*" "$(OutDir)sounds\en\us\callie\ivr\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\conference\16000\*.*" "$(OutDir)sounds\en\us\callie\conference\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\time\16000\*.*" "$(OutDir)sounds\en\us\callie\time\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\digits\16000\*.*" "$(OutDir)sounds\en\us\callie\digits\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ascii\16000\*.*" "$(OutDir)sounds\en\us\callie\ascii\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\misc\16000\*.*" "$(OutDir)sounds\en\us\callie\misc\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\currency\16000\*.*" "$(OutDir)sounds\en\us\callie\currency\16000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\phonetic-ascii\16000\*.*" "$(OutDir)sounds\en\us\callie\phonetic-ascii\16000" /C /D /Y /S /I + + + + + + {87a1fe3d-f410-4c8e-9591-8c625985bc70} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/Sound_Files/16khzmusic.2010.vcxproj b/libs/win32/Sound_Files/16khzmusic.2010.vcxproj new file mode 100644 index 0000000000..f6c03137d5 --- /dev/null +++ b/libs/win32/Sound_Files/16khzmusic.2010.vcxproj @@ -0,0 +1,66 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 16khz music + {BA599D0A-4310-4505-91DA-6A6447B3E289} + My16khzmusic + + + + Utility + MultiByte + true + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + xcopy "$(SolutionDir)libs\sounds\music\16000\*.*" "$(OutDir)sounds\music\16000" /C /D /Y /S /I + + + + + + xcopy "$(SolutionDir)libs\sounds\music\16000\*.*" "$(OutDir)sounds\music\16000" /C /D /Y /S /I + + + + + + {e10571c4-e7f4-4608-b5f2-b22e7eb95400} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/Sound_Files/32khz.2010.vcxproj b/libs/win32/Sound_Files/32khz.2010.vcxproj new file mode 100644 index 0000000000..090ce2e758 --- /dev/null +++ b/libs/win32/Sound_Files/32khz.2010.vcxproj @@ -0,0 +1,82 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 32khz + {464AAB78-5489-4916-BE51-BF8D61822311} + My32khz + + + + Utility + MultiByte + true + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + xcopy "$(SolutionDir)libs\sounds\en\us\callie\voicemail\32000\*.*" "$(OutDir)sounds\en\us\callie\voicemail\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ivr\32000\*.*" "$(OutDir)sounds\en\us\callie\ivr\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\conference\32000\*.*" "$(OutDir)sounds\en\us\callie\conference\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\time\32000\*.*" "$(OutDir)sounds\en\us\callie\time\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\digits\32000\*.*" "$(OutDir)sounds\en\us\callie\digits\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ascii\32000\*.*" "$(OutDir)sounds\en\us\callie\ascii\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\misc\32000\*.*" "$(OutDir)sounds\en\us\callie\misc\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\currency\32000\*.*" "$(OutDir)sounds\en\us\callie\currency\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\phonetic-ascii\32000\*.*" "$(OutDir)sounds\en\us\callie\phonetic-ascii\32000" /C /D /Y /S /I + + + + + + xcopy "$(SolutionDir)libs\sounds\en\us\callie\voicemail\32000\*.*" "$(OutDir)sounds\en\us\callie\voicemail\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ivr\32000\*.*" "$(OutDir)sounds\en\us\callie\ivr\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\conference\32000\*.*" "$(OutDir)sounds\en\us\callie\conference\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\time\32000\*.*" "$(OutDir)sounds\en\us\callie\time\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\digits\32000\*.*" "$(OutDir)sounds\en\us\callie\digits\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ascii\32000\*.*" "$(OutDir)sounds\en\us\callie\ascii\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\misc\32000\*.*" "$(OutDir)sounds\en\us\callie\misc\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\currency\32000\*.*" "$(OutDir)sounds\en\us\callie\currency\32000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\phonetic-ascii\32000\*.*" "$(OutDir)sounds\en\us\callie\phonetic-ascii\32000" /C /D /Y /S /I + + + + + + {6e49f6c2-adda-4bfb-81fe-ab9af51b455f} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/Sound_Files/32khzmusic.2010.vcxproj b/libs/win32/Sound_Files/32khzmusic.2010.vcxproj new file mode 100644 index 0000000000..37328d0c02 --- /dev/null +++ b/libs/win32/Sound_Files/32khzmusic.2010.vcxproj @@ -0,0 +1,64 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 32khz music + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959} + My32khz music + + + + Utility + MultiByte + true + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + xcopy "$(SolutionDir)libs\sounds\music\32000\*.*" "$(OutDir)sounds\music\32000" /C /D /Y /S /I + + + + + xcopy "$(SolutionDir)libs\sounds\music\32000\*.*" "$(OutDir)sounds\music\32000" /C /D /Y /S /I + + + + + {1f0a8a77-e661-418f-bb92-82172ae43803} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/Sound_Files/8khz.2010.vcxproj b/libs/win32/Sound_Files/8khz.2010.vcxproj new file mode 100644 index 0000000000..270c4bdbff --- /dev/null +++ b/libs/win32/Sound_Files/8khz.2010.vcxproj @@ -0,0 +1,82 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 8khz + {7A8D8174-B355-4114-AFC1-04777CB9DE0A} + Sound_Files + + + + Utility + MultiByte + true + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + xcopy "$(SolutionDir)libs\sounds\en\us\callie\voicemail\8000\*.*" "$(OutDir)sounds\en\us\callie\voicemail\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ivr\8000\*.*" "$(OutDir)sounds\en\us\callie\ivr\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\conference\8000\*.*" "$(OutDir)sounds\en\us\callie\conference\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\time\8000\*.*" "$(OutDir)sounds\en\us\callie\time\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\digits\8000\*.*" "$(OutDir)sounds\en\us\callie\digits\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ascii\8000\*.*" "$(OutDir)sounds\en\us\callie\ascii\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\misc\8000\*.*" "$(OutDir)sounds\en\us\callie\misc\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\currency\8000\*.*" "$(OutDir)sounds\en\us\callie\currency\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\phonetic-ascii\8000\*.*" "$(OutDir)sounds\en\us\callie\phonetic-ascii\8000" /C /D /Y /S /I + + + + + + xcopy "$(SolutionDir)libs\sounds\en\us\callie\voicemail\8000\*.*" "$(OutDir)sounds\en\us\callie\voicemail\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ivr\8000\*.*" "$(OutDir)sounds\en\us\callie\ivr\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\conference\8000\*.*" "$(OutDir)sounds\en\us\callie\conference\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\time\8000\*.*" "$(OutDir)sounds\en\us\callie\time\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\digits\8000\*.*" "$(OutDir)sounds\en\us\callie\digits\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\ascii\8000\*.*" "$(OutDir)sounds\en\us\callie\ascii\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\misc\8000\*.*" "$(OutDir)sounds\en\us\callie\misc\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\currency\8000\*.*" "$(OutDir)sounds\en\us\callie\currency\8000" /C /D /Y /S /I +xcopy "$(SolutionDir)libs\sounds\en\us\callie\phonetic-ascii\8000\*.*" "$(OutDir)sounds\en\us\callie\phonetic-ascii\8000" /C /D /Y /S /I + + + + + + {3ce1dc99-8246-4db1-a709-74f19f08ec67} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/Sound_Files/8khzmusic.2010.vcxproj b/libs/win32/Sound_Files/8khzmusic.2010.vcxproj new file mode 100644 index 0000000000..40384525f4 --- /dev/null +++ b/libs/win32/Sound_Files/8khzmusic.2010.vcxproj @@ -0,0 +1,66 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + 8khz music + {D1ABE208-6442-4FB4-9AAD-1677E41BC870} + 8khz music + + + + Utility + MultiByte + true + + + Utility + MultiByte + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + + + + xcopy "$(SolutionDir)libs\sounds\music\8000\*.*" "$(OutDir)sounds\music\8000" /C /D /Y /S /I + + + + + + xcopy "$(SolutionDir)libs\sounds\music\8000\*.*" "$(OutDir)sounds\music\8000" /C /D /Y /S /I + + + + + + {4f5c9d55-98ef-4256-8311-32d7bd360406} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/apr-util/libaprutil.2010.vcxproj b/libs/win32/apr-util/libaprutil.2010.vcxproj new file mode 100644 index 0000000000..8244bf720c --- /dev/null +++ b/libs/win32/apr-util/libaprutil.2010.vcxproj @@ -0,0 +1,1035 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libaprutil + {F057DA7F-79E5-4B00-845C-EF446EF055E3} + libaprutil + + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + if not exist "$(ProjectDir)..\..\apr-util\include\apr_ldap.h" type "$(ProjectDir)..\..\apr-util\include\apr_ldap.hw" > "$(ProjectDir)..\..\apr-util\include\apr_ldap.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu.h" type "$(ProjectDir)..\..\apr-util\include\apu.hw" > "$(ProjectDir)..\..\apr-util\include\apu.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_config.h" type "$(ProjectDir)..\..\apr-util\include\apu_config.hw" > "$(ProjectDir)..\..\apr-util\include\apu_config.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.h" type "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.hw" > "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_want.h" type "$(ProjectDir)..\..\apr-util\include\apu_want.hw" > "$(ProjectDir)..\..\apr-util\include\apu_want.h" + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)libaprutil.tlb + + + + + /EHsc %(AdditionalOptions) + Disabled + ..\..\apr-util\include;..\..\apr-util\include/private;..\..\apr-util\dbm/sdbm;..\..\apr-iconv-1.1.1\include;..\..\apr\include;%(AdditionalIncludeDirectories) + _DEBUG;APU_DECLARE_EXPORT;APU_USE_SDBM;WIN32;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + $(IntDir)libaprutil.pch + $(IntDir) + .\Debug/ + Level3 + true + ProgramDatabase + + + _DEBUG;APU_VERSION_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\apr-util\include;..\..\apr-util\include/private;..\..\apr-util\dbm/sdbm;..\..\apr-iconv-1.1.1\include;..\..\apr-1.2.7\include;%(AdditionalIncludeDirectories) + + + ws2_32.lib;mswsock.lib;wldap32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + %(AdditionalLibraryDirectories) + true + $(IntDir)libaprutil-1.pdb + Windows + 0x6EE60000 + false + + + $(IntDir)libaprutil-1.lib + MachineX86 + + + true + $(IntDir)libaprutil.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\apr-util\include\apr_ldap.h" type "$(ProjectDir)..\..\apr-util\include\apr_ldap.hw" > "$(ProjectDir)..\..\apr-util\include\apr_ldap.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu.h" type "$(ProjectDir)..\..\apr-util\include\apu.hw" > "$(ProjectDir)..\..\apr-util\include\apu.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_config.h" type "$(ProjectDir)..\..\apr-util\include\apu_config.hw" > "$(ProjectDir)..\..\apr-util\include\apu_config.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.h" type "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.hw" > "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_want.h" type "$(ProjectDir)..\..\apr-util\include\apu_want.hw" > "$(ProjectDir)..\..\apr-util\include\apu_want.h" + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)libaprutil.tlb + + + + + /EHsc %(AdditionalOptions) + Disabled + ..\..\apr-util\include;..\..\apr-util\include/private;..\..\apr-util\dbm/sdbm;..\..\apr-iconv-1.1.1\include;..\..\apr\include;%(AdditionalIncludeDirectories) + _DEBUG;APU_DECLARE_EXPORT;APU_USE_SDBM;WIN32;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + $(IntDir)libaprutil.pch + Level3 + true + ProgramDatabase + + + _DEBUG;APU_VERSION_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\apr-util\include;..\..\apr-util\include/private;..\..\apr-util\dbm/sdbm;..\..\apr-iconv-1.1.1\include;..\..\apr-1.2.7\include;%(AdditionalIncludeDirectories) + + + ws2_32.lib;mswsock.lib;wldap32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + %(AdditionalLibraryDirectories) + true + $(IntDir)libaprutil-1.pdb + Windows + 0x6EE60000 + false + + + $(TargetDir)libaprutil-1.lib + MachineX64 + + + true + $(IntDir)libaprutil.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\apr-util\include\apr_ldap.h" type "$(ProjectDir)..\..\apr-util\include\apr_ldap.hw" > "$(ProjectDir)..\..\apr-util\include\apr_ldap.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu.h" type "$(ProjectDir)..\..\apr-util\include\apu.hw" > "$(ProjectDir)..\..\apr-util\include\apu.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_config.h" type "$(ProjectDir)..\..\apr-util\include\apu_config.hw" > "$(ProjectDir)..\..\apr-util\include\apu_config.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.h" type "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.hw" > "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_want.h" type "$(ProjectDir)..\..\apr-util\include\apu_want.hw" > "$(ProjectDir)..\..\apr-util\include\apu_want.h" + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)libaprutil.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\apr-util\include;..\..\apr-util\include/private;..\..\apr-util\dbm/sdbm;..\..\apr-iconv-1.1.1\include;..\..\apr\include;%(AdditionalIncludeDirectories) + NDEBUG;APU_DECLARE_EXPORT;APU_USE_SDBM;WIN32;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)libaprutil.pch + $(IntDir) + .\Release/ + Level3 + true + ProgramDatabase + + + NDEBUG;APU_VERSION_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\apr-util\include;..\..\apr-util\include/private;..\..\apr-util\dbm/sdbm;..\..\apr-iconv-1.1.1\include;..\..\apr-1.2.7\include;%(AdditionalIncludeDirectories) + + + ws2_32.lib;mswsock.lib;wldap32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + %(AdditionalLibraryDirectories) + true + $(IntDir)libaprutil-1.pdb + Windows + true + 0x6EE60000 + false + + + $(IntDir)libaprutil-1.lib + MachineX86 + + + true + $(IntDir)libaprutil.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\apr-util\include\apr_ldap.h" type "$(ProjectDir)..\..\apr-util\include\apr_ldap.hw" > "$(ProjectDir)..\..\apr-util\include\apr_ldap.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu.h" type "$(ProjectDir)..\..\apr-util\include\apu.hw" > "$(ProjectDir)..\..\apr-util\include\apu.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_config.h" type "$(ProjectDir)..\..\apr-util\include\apu_config.hw" > "$(ProjectDir)..\..\apr-util\include\apu_config.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.h" type "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.hw" > "$(ProjectDir)..\..\apr-util\include\apu_select_dbm.h" +if not exist "$(ProjectDir)..\..\apr-util\include\apu_want.h" type "$(ProjectDir)..\..\apr-util\include\apu_want.hw" > "$(ProjectDir)..\..\apr-util\include\apu_want.h" + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)libaprutil.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\apr-util\include;..\..\apr-util\include/private;..\..\apr-util\dbm/sdbm;..\..\apr-iconv-1.1.1\include;..\..\apr\include;%(AdditionalIncludeDirectories) + NDEBUG;APU_DECLARE_EXPORT;APU_USE_SDBM;WIN32;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)libaprutil.pch + Level3 + true + ProgramDatabase + + + NDEBUG;APU_VERSION_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\apr-util\include;..\..\apr-util\include/private;..\..\apr-util\dbm/sdbm;..\..\apr-iconv-1.1.1\include;..\..\apr-1.2.7\include;%(AdditionalIncludeDirectories) + + + ws2_32.lib;mswsock.lib;wldap32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + %(AdditionalLibraryDirectories) + true + $(IntDir)libaprutil-1.pdb + Windows + true + 0x6EE60000 + false + + + $(TargetDir)libaprutil-1.lib + MachineX64 + + + true + $(IntDir)libaprutil.bsc + + + + + + + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creating apr_ldap.h from apr_ldap.hw + if not exist ..\..\apr-util\include\apr_ldap.h type ..\..\apr-util\include\apr_ldap.hw > ..\..\apr-util\include\apr_ldap.h + + ..\..\apr-util\include\apr_ldap.h;%(Outputs) + Creating apr_ldap.h from apr_ldap.hw + if not exist ..\..\apr-util\include\apr_ldap.h type ..\..\apr-util\include\apr_ldap.hw > ..\..\apr-util\include\apr_ldap.h + + ..\..\apr-util\include\apr_ldap.h;%(Outputs) + Creating apr_ldap.h from apr_ldap.hw + if not exist ..\..\apr-util\include\apr_ldap.h type ..\..\apr-util\include\apr_ldap.hw > ..\..\apr-util\include\apr_ldap.h + + ..\..\apr-util\include\apr_ldap.h;%(Outputs) + Creating apr_ldap.h from apr_ldap.hw + if not exist ..\..\apr-util\include\apr_ldap.h type ..\..\apr-util\include\apr_ldap.hw > ..\..\apr-util\include\apr_ldap.h + + ..\..\apr-util\include\apr_ldap.h;%(Outputs) + + + + + Creating apu.h from apu.hw + if not exist ..\..\apr-util\include\apu.h type ..\..\apr-util\include\apu.hw > ..\..\apr-util\include\apu.h + + ..\..\apr-util\include\apu.h;%(Outputs) + Creating apu.h from apu.hw + if not exist ..\..\apr-util\include\apu.h type ..\..\apr-util\include\apu.hw > ..\..\apr-util\include\apu.h + + ..\..\apr-util\include\apu.h;%(Outputs) + Creating apu.h from apu.hw + if not exist ..\..\apr-util\include\apu.h type ..\..\apr-util\include\apu.hw > ..\..\apr-util\include\apu.h + + ..\..\apr-util\include\apu.h;%(Outputs) + Creating apu.h from apu.hw + if not exist ..\..\apr-util\include\apu.h type ..\..\apr-util\include\apu.hw > ..\..\apr-util\include\apu.h + + ..\..\apr-util\include\apu.h;%(Outputs) + + + + Creating apu_config.h from apu_config.hw + if not exist ..\..\apr-util\include\private\apu_config.h type ..\..\apr-util\include\private\apu_config.hw > ..\..\apr-util\include\private\apu_config.h + + ..\..\apr-util\include\private\apu_config.h;%(Outputs) + Creating apu_config.h from apu_config.hw + if not exist ..\..\apr-util\include\private\apu_config.h type ..\..\apr-util\include\private\apu_config.hw > ..\..\apr-util\include\private\apu_config.h + + ..\..\apr-util\include\private\apu_config.h;%(Outputs) + Creating apu_config.h from apu_config.hw + if not exist ..\..\apr-util\include\private\apu_config.h type ..\..\apr-util\include\private\apu_config.hw > ..\..\apr-util\include\private\apu_config.h + + ..\..\apr-util\include\private\apu_config.h;%(Outputs) + Creating apu_config.h from apu_config.hw + if not exist ..\..\apr-util\include\private\apu_config.h type ..\..\apr-util\include\private\apu_config.hw > ..\..\apr-util\include\private\apu_config.h + + ..\..\apr-util\include\private\apu_config.h;%(Outputs) + + + + Creating apu_select_dbm.h from apu_select_dbm.hw + if not exist ..\..\apr-util\include\private\apu_select_dbm.h type ..\..\apr-util\include\private\apu_select_dbm.hw > ..\..\apr-util\include\private\apu_select_dbm.h + + ..\..\apr-util\include\private\apu_select_dbm.h;%(Outputs) + Creating apu_select_dbm.h from apu_select_dbm.hw + if not exist ..\..\apr-util\include\private\apu_select_dbm.h type ..\..\apr-util\include\private\apu_select_dbm.hw > ..\..\apr-util\include\private\apu_select_dbm.h + + ..\..\apr-util\include\private\apu_select_dbm.h;%(Outputs) + Creating apu_select_dbm.h from apu_select_dbm.hw + if not exist ..\..\apr-util\include\private\apu_select_dbm.h type ..\..\apr-util\include\private\apu_select_dbm.hw > ..\..\apr-util\include\private\apu_select_dbm.h + + ..\..\apr-util\include\private\apu_select_dbm.h;%(Outputs) + Creating apu_select_dbm.h from apu_select_dbm.hw + if not exist ..\..\apr-util\include\private\apu_select_dbm.h type ..\..\apr-util\include\private\apu_select_dbm.hw > ..\..\apr-util\include\private\apu_select_dbm.h + + ..\..\apr-util\include\private\apu_select_dbm.h;%(Outputs) + + + + + Creating apu_want.h from apu_want.hw + if not exist ..\..\apr-util\include\apu_want.h type ..\..\apr-util\include\apu_want.hw > ..\..\apr-util\include\apu_want.h + + ..\..\apr-util\include\apu_want.h;%(Outputs) + Creating apu_want.h from apu_want.hw + if not exist ..\..\apr-util\include\apu_want.h type ..\..\apr-util\include\apu_want.hw > ..\..\apr-util\include\apu_want.h + + ..\..\apr-util\include\apu_want.h;%(Outputs) + Creating apu_want.h from apu_want.hw + if not exist ..\..\apr-util\include\apu_want.h type ..\..\apr-util\include\apu_want.hw > ..\..\apr-util\include\apu_want.h + + ..\..\apr-util\include\apu_want.h;%(Outputs) + Creating apu_want.h from apu_want.hw + if not exist ..\..\apr-util\include\apu_want.h type ..\..\apr-util\include\apu_want.hw > ..\..\apr-util\include\apu_want.h + + ..\..\apr-util\include\apu_want.h;%(Outputs) + + + + + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + + + + + + \ No newline at end of file diff --git a/libs/win32/apr-util/xml.2010.vcxproj b/libs/win32/apr-util/xml.2010.vcxproj new file mode 100644 index 0000000000..fb0f24e630 --- /dev/null +++ b/libs/win32/apr-util/xml.2010.vcxproj @@ -0,0 +1,309 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + xml + {155844C3-EC5F-407F-97A4-A2DDADED9B2F} + xml + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + true + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + true + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + MaxSpeed + OnlyExplicitInline + $(ProjectDir)..\..\apr-util\xml\expat\lib\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;VERSION="expat_1.95.2";%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)xml.pch + $(IntDir) + $(IntDir) + $(IntDir)xml_src + Level3 + true + ProgramDatabase + + + 0x0409 + + + $(OutDir)$(ProjectName).lib + true + + + true + $(IntDir)xml.bsc + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + $(ProjectDir)..\..\apr-util\xml\expat\lib\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;VERSION="expat_1.95.2";%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)xml.pch + $(IntDir) + $(IntDir) + $(IntDir)vc90.pdb + Level3 + true + ProgramDatabase + + + 0x0409 + + + $(OutDir)$(ProjectName).lib + true + + + true + $(IntDir)xml.bsc + + + + + /EHsc %(AdditionalOptions) + Disabled + $(ProjectDir)..\..\apr-util\xml\expat\lib\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;VERSION="expat_1.95.2";%(PreprocessorDefinitions) + MultiThreadedDebugDLL + $(IntDir)xml.pch + $(IntDir) + $(IntDir) + LibD\xml_src + Level3 + true + ProgramDatabase + + + 0x0409 + + + $(OutDir)$(ProjectName).lib + true + + + true + $(IntDir)xml.bsc + + + + + X64 + + + /EHsc %(AdditionalOptions) + Disabled + $(ProjectDir)..\..\apr-util\xml\expat\lib\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;VERSION="expat_1.95.2";%(PreprocessorDefinitions) + MultiThreadedDebugDLL + $(IntDir)xml.pch + $(IntDir) + $(IntDir) + LibD\xml_src + Level3 + true + ProgramDatabase + + + 0x0409 + + + $(OutDir)$(ProjectName).lib + true + + + true + $(IntDir)xml.bsc + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + + + + + + + + Creating config.h from winconfig.h + if not exist "$(ProjectDir)..\..\apr-util\xml\expat\lib\config.h" type "$(ProjectDir)..\..\apr-util\xml\expat\lib\winconfig.h" > "$(ProjectDir)..\..\apr-util\xml\expat\lib\config.h" + + $(ProjectDir)..\..\apr-util\xml\expat\lib\config.h;%(Outputs) + Creating config.h from winconfig.h + if not exist "$(ProjectDir)..\..\apr-util\xml\expat\lib\config.h" type "$(ProjectDir)..\..\apr-util\xml\expat\lib\winconfig.h" > "$(ProjectDir)..\..\apr-util\xml\expat\lib\config.h" + + $(ProjectDir)..\..\apr-util\xml\expat\lib\config.h;%(Outputs) + Creating config.h from winconfig.h + if not exist "$(ProjectDir)..\..\apr-util\xml\expat\lib\config.h" type "$(ProjectDir)..\..\apr-util\xml\expat\lib\winconfig.h" > "$(ProjectDir)..\..\apr-util\xml\expat\lib\config.h" + + $(ProjectDir)..\..\apr-util\xml\expat\lib\config.h;%(Outputs) + Creating config.h from winconfig.h + if not exist "$(ProjectDir)..\..\apr-util\xml\expat\lib\config.h" type "$(ProjectDir)..\..\apr-util\xml\expat\lib\winconfig.h" > "$(ProjectDir)..\..\apr-util\xml\expat\lib\config.h" + + $(ProjectDir)..\..\apr-util\xml\expat\lib\config.h;%(Outputs) + + + + + Creating expat.h from expat.h.in + if not exist "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h" type "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h.in" > "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h" + + $(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h;%(Outputs) + Creating expat.h from expat.h.in + if not exist "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h" type "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h.in" > "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h" + + $(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h;%(Outputs) + Creating expat.h from expat.h.in + if not exist "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h" type "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h.in" > "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h" + + $(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h;%(Outputs) + Creating expat.h from expat.h.in + if not exist "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h" type "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h.in" > "$(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h" + + $(ProjectDir)..\..\apr-util\xml\expat\lib\expat.h;%(Outputs) + + + + + + + \ No newline at end of file diff --git a/libs/win32/apr/libapr.2010.vcxproj b/libs/win32/apr/libapr.2010.vcxproj new file mode 100644 index 0000000000..3df243d1aa --- /dev/null +++ b/libs/win32/apr/libapr.2010.vcxproj @@ -0,0 +1,377 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libapr + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} + libapr + + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + if not exist "$(ProjectDir)..\..\apr\include\apr.h" type "$(ProjectDir)apr.hw" > "$(ProjectDir)..\..\apr\include\apr.h" + + + + /EHsc %(AdditionalOptions) + Disabled + ..\..\apr\include;..\..\apr\include/arch;..\..\apr\include/arch/win32;..\..\apr\include/arch/unix;%(AdditionalIncludeDirectories) + _DEBUG;APR_DECLARE_EXPORT;WIN32;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + $(IntDir)libapr.pch + $(IntDir) + .\Debug/ + Level3 + true + ProgramDatabase + + + _DEBUG;APR_VERSION_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\apr\include;%(AdditionalIncludeDirectories) + + + ws2_32.lib;mswsock.lib;rpcrt4.lib;advapi32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + true + Windows + 0x6EEC0000 + false + + + MachineX86 + + + true + $(IntDir)libapr.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\apr\include\apr.h" type "$(ProjectDir)apr.hw" > "$(ProjectDir)..\..\apr\include\apr.h" + + + + /EHsc %(AdditionalOptions) + Disabled + ..\..\apr\include;..\..\apr\include/arch;..\..\apr\include/arch/win32;..\..\apr\include/arch/unix;%(AdditionalIncludeDirectories) + _DEBUG;APR_DECLARE_EXPORT;WIN32;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + $(IntDir)libapr.pch + Level3 + true + ProgramDatabase + + + _DEBUG;APR_VERSION_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\apr\include;%(AdditionalIncludeDirectories) + + + ws2_32.lib;mswsock.lib;rpcrt4.lib;advapi32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + true + Windows + 0x6EEC0000 + false + + + MachineX64 + + + true + $(IntDir)libapr.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\apr\include\apr.h" type "$(ProjectDir)apr.hw" > "$(ProjectDir)..\..\apr\include\apr.h" + + + + MaxSpeed + OnlyExplicitInline + ..\..\apr\include;..\..\apr\include/arch;..\..\apr\include/arch/win32;..\..\apr\include/arch/unix;%(AdditionalIncludeDirectories) + NDEBUG;APR_DECLARE_EXPORT;WIN32;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)libapr.pch + $(IntDir) + .\Release/ + Level3 + true + ProgramDatabase + + + NDEBUG;APR_VERSION_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\apr\;%(AdditionalIncludeDirectories) + + + ws2_32.lib;mswsock.lib;rpcrt4.lib;advapi32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + true + Windows + true + 0x6EEC0000 + false + + + MachineX86 + + + true + $(IntDir)libapr.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\apr\include\apr.h" type "$(ProjectDir)apr.hw" > "$(ProjectDir)..\..\apr\include\apr.h" + + + + MaxSpeed + OnlyExplicitInline + ..\..\apr\include;..\..\apr\include/arch;..\..\apr\include/arch/win32;..\..\apr\include/arch/unix;%(AdditionalIncludeDirectories) + NDEBUG;APR_DECLARE_EXPORT;WIN32;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)libapr.pch + Level3 + true + ProgramDatabase + + + NDEBUG;APR_VERSION_ONLY;%(PreprocessorDefinitions) + 0x0409 + ..\..\apr\;%(AdditionalIncludeDirectories) + + + ws2_32.lib;mswsock.lib;rpcrt4.lib;advapi32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + true + Windows + true + 0x6EEC0000 + false + + + MachineX64 + + + true + $(IntDir)libapr.bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\..\apr\include;%(AdditionalIncludeDirectories) + ..\..\apr\include;%(AdditionalIncludeDirectories) + + + + + + \ No newline at end of file diff --git a/libs/win32/celt/libcelt.vcxproj b/libs/win32/celt/libcelt.vcxproj new file mode 100644 index 0000000000..d676b6a6f5 --- /dev/null +++ b/libs/win32/celt/libcelt.vcxproj @@ -0,0 +1,162 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {ABB71A76-42B0-47A4-973A-42E3D920C6FD} + celt + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ..\..\celt-0.7.1\libcelt;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + + + X64 + + + Disabled + ..\..\celt-0.7.1\libcelt;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;_AMD64_;_WIN64;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + + + + + MaxSpeed + true + ..\..\celt-0.7.1\libcelt;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + + + X64 + + + MaxSpeed + true + ..\..\celt-0.7.1\libcelt;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;_AMD64_;_WIN64;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + + + + + + + + + + + + + + + + + + + + + + {fff82f9b-6a2b-4be3-95d8-dc5a4fc71e19} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/curl/curllib.2010.vcxproj b/libs/win32/curl/curllib.2010.vcxproj new file mode 100644 index 0000000000..b76dd1c365 --- /dev/null +++ b/libs/win32/curl/curllib.2010.vcxproj @@ -0,0 +1,330 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + curllib + {87EE9DA4-DE1E-4448-8324-183C98DCA588} + curllib + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Release\ + .\Release\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + .\Debug\ + .\Debug\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)curllib.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\curl\lib\;..\..\curl\include;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;BUILDING_LIBCURL;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)curllib.pch + $(IntDir) + .\Release/ + $(IntDir) + true + TurnOffAllWarnings + true + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + $(IntDir)curllib.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)curllib.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\curl\lib\;..\..\curl\include;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;BUILDING_LIBCURL;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)curllib.pch + true + TurnOffAllWarnings + true + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + $(IntDir)curllib.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)curllib.tlb + + + + + Disabled + ..\..\curl\lib\;..\..\curl\include;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;BUILDING_LIBCURL;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(IntDir)curllib.pch + $(IntDir) + .\Debug/ + $(IntDir) + true + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + $(IntDir)curllib.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)curllib.tlb + + + + + Disabled + ..\..\curl\lib\;..\..\curl\include;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;BUILDING_LIBCURL;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(IntDir)curllib.pch + true + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + $(IntDir)curllib.bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/win32/flite/flite.2010.vcxproj b/libs/win32/flite/flite.2010.vcxproj new file mode 100644 index 0000000000..ed76215e6a --- /dev/null +++ b/libs/win32/flite/flite.2010.vcxproj @@ -0,0 +1,326 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + flite + {0AD1177E-1FD8-4643-9391-431467A11084} + flite-1.3-current + + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + true + + + StaticLibrary + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ..\..\flite-1.3.99\include;..\..\flite-1.3.99\lang\usenglish;..\..\flite-1.3.99\lang\cmulex;%(AdditionalIncludeDirectories) + CST_AUDIO_NONE=1;NO_UNION_INITIALIZATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level4 + EditAndContinue + 4100;4057;4706;%(DisableSpecificWarnings) + + + + + X64 + + + Disabled + ..\..\flite-1.3.99\include;..\..\flite-1.3.99\lang\usenglish;..\..\flite-1.3.99\lang\cmulex;%(AdditionalIncludeDirectories) + CST_AUDIO_NONE=1;NO_UNION_INITIALIZATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + TurnOffAllWarnings + ProgramDatabase + 4100;4057;4706;%(DisableSpecificWarnings) + + + + + MaxSpeed + true + ..\..\flite-1.3.99\include;..\..\flite-1.3.99\lang\usenglish;..\..\flite-1.3.99\lang\cmulex;%(AdditionalIncludeDirectories) + CST_AUDIO_NONE=1;NO_UNION_INITIALIZATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + TurnOffAllWarnings + ProgramDatabase + 4100;4057;4706;%(DisableSpecificWarnings) + + + + + X64 + + + MaxSpeed + true + ..\..\flite-1.3.99\include;..\..\flite-1.3.99\lang\usenglish;..\..\flite-1.3.99\lang\cmulex;%(AdditionalIncludeDirectories) + CST_AUDIO_NONE=1;NO_UNION_INITIALIZATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + TurnOffAllWarnings + ProgramDatabase + 4100;4057;4706;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + include;lang/usenglish;%(AdditionalIncludeDirectories) + include;lang/usenglish;%(AdditionalIncludeDirectories) + include;lang/usenglish;%(AdditionalIncludeDirectories) + include;lang/usenglish;%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {d5d2bf72-29fe-4982-a9fa-82fdd086db1b} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/iksemel/iksemel.2010.vcxproj b/libs/win32/iksemel/iksemel.2010.vcxproj new file mode 100644 index 0000000000..f62a5bf94a --- /dev/null +++ b/libs/win32/iksemel/iksemel.2010.vcxproj @@ -0,0 +1,152 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + iksemel + {E727E8F6-935D-46FE-8B0E-37834748A0E3} + iksemel + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ..\..\iksemel\include;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + ProgramDatabase + + + + + ..\..\iksemel\include;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + TurnOffAllWarnings + ProgramDatabase + + + + + X64 + + + Disabled + ..\..\iksemel\include;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + ProgramDatabase + + + + + X64 + + + ..\..\iksemel\include;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + TurnOffAllWarnings + ProgramDatabase + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/win32/js/js.2010.vcxproj b/libs/win32/js/js.2010.vcxproj new file mode 100644 index 0000000000..2f624c658a --- /dev/null +++ b/libs/win32/js/js.2010.vcxproj @@ -0,0 +1,460 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + js + {204FA0DE-305D-4414-AE2E-F195A23F390D} + js + + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + if not exist "$(ProjectDir)..\..\js\config.h" type "$(ProjectDir)..\..\js\config.hw" > "$(ProjectDir)..\..\js\config.h" +if not exist "$(ProjectDir)..\..\js\src\jsautocfg.h" type "$(ProjectDir)..\..\js\src\jsautocfg.hw" > "$(ProjectDir)..\..\js\src\jsautocfg.h" +if not exist "$(ProjectDir)..\..\js\nsprpub\pr\include\prcpucfg.h" type "$(ProjectDir)..\..\js\nsprpub\pr\include\md\_winnt.cfg" > "$(ProjectDir)..\..\js\nsprpub\pr\include\prcpucfg.h" + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)js.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\js\nsprpub\pr\include\private;..\..\js\nsprpub\pr\include;%(AdditionalIncludeDirectories) + NDEBUG;_X86_=1;_WINDOWS;WIN32;XP_WIN;JSFILE;EXPORT_JS_API;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;JS_THREADSAFE;OSSP;_NSPR_BUILD_;JS_HAS_FILE_OBJECT=1;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)js.pch + + + $(IntDir) + $(IntDir)vc80.pdb + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + odbc32.lib;odbccp32.lib;advapi32.lib;wsock32.lib;winmm.lib;%(AdditionalDependencies) + true + %(AdditionalLibraryDirectories) + $(IntDir)js32.pdb + Windows + false + false + false + + + $(IntDir)js32.lib + MachineX86 + + + true + $(IntDir)js.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\js\config.h" type "$(ProjectDir)..\..\js\config.hw" > "$(ProjectDir)..\..\js\config.h" +if not exist "$(ProjectDir)..\..\js\src\jsautocfg.h" type "$(ProjectDir)..\..\js\src\jsautocfg.hw" > "$(ProjectDir)..\..\js\src\jsautocfg.h" +if not exist "$(ProjectDir)..\..\js\nsprpub\pr\include\prcpucfg.h" type "$(ProjectDir)..\..\js\nsprpub\pr\include\md\_winnt.cfg" > "$(ProjectDir)..\..\js\nsprpub\pr\include\prcpucfg.h" + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)js.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\js\nsprpub\pr\include\private;..\..\js\nsprpub\pr\include;%(AdditionalIncludeDirectories) + _AMD64_=1;NDEBUG;_WINDOWS;WIN32;XP_WIN;JSFILE;EXPORT_JS_API;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;JS_THREADSAFE;OSSP;_NSPR_BUILD_;JS_HAS_FILE_OBJECT=1;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)js.pch + + + $(IntDir) + $(IntDir)vc80.pdb + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + odbc32.lib;odbccp32.lib;advapi32.lib;wsock32.lib;winmm.lib;%(AdditionalDependencies) + true + %(AdditionalLibraryDirectories) + $(IntDir)js32.pdb + Windows + false + false + false + + + $(TargetDir)js32.lib + MachineX64 + + + true + $(IntDir)js.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\js\config.h" type "$(ProjectDir)..\..\js\config.hw" > "$(ProjectDir)..\..\js\config.h" +if not exist "$(ProjectDir)..\..\js\src\jsautocfg.h" type "$(ProjectDir)..\..\js\src\jsautocfg.hw" > "$(ProjectDir)..\..\js\src\jsautocfg.h" +if not exist "$(ProjectDir)..\..\js\nsprpub\pr\include\prcpucfg.h" type "$(ProjectDir)..\..\js\nsprpub\pr\include\md\_winnt.cfg" > "$(ProjectDir)..\..\js\nsprpub\pr\include\prcpucfg.h" + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)js.tlb + + + + + Disabled + ..\..\js\nsprpub\pr\include\private;..\..\js\nsprpub\pr\include;%(AdditionalIncludeDirectories) + _DEBUG;DEBUG;_X86_=1;_WINDOWS;WIN32;XP_WIN;JSFILE;EXPORT_JS_API;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;JS_THREADSAFE;OSSP;_NSPR_BUILD_;JS_HAS_FILE_OBJECT=1;%(PreprocessorDefinitions) + true + MultiThreadedDebugDLL + $(IntDir)js.pch + + + $(IntDir) + $(IntDir)vc80.pdb + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + odbc32.lib;odbccp32.lib;advapi32.lib;wsock32.lib;winmm.lib;%(AdditionalDependencies) + true + %(AdditionalLibraryDirectories) + true + $(IntDir)js32.pdb + Windows + false + + + $(IntDir)js32.lib + MachineX86 + + + true + $(IntDir)js.bsc + + + + + + + + + if not exist "$(ProjectDir)..\..\js\config.h" type "$(ProjectDir)..\..\js\config.hw" > "$(ProjectDir)..\..\js\config.h" +if not exist "$(ProjectDir)..\..\js\src\jsautocfg.h" type "$(ProjectDir)..\..\js\src\jsautocfg.hw" > "$(ProjectDir)..\..\js\src\jsautocfg.h" +if not exist "$(ProjectDir)..\..\js\nsprpub\pr\include\prcpucfg.h" type "$(ProjectDir)..\..\js\nsprpub\pr\include\md\_winnt.cfg" > "$(ProjectDir)..\..\js\nsprpub\pr\include\prcpucfg.h" + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)js.tlb + + + + + Disabled + ..\..\js\nsprpub\pr\include\private;..\..\js\nsprpub\pr\include;%(AdditionalIncludeDirectories) + _DEBUG;DEBUG;_AMD64_=1;_WINDOWS;WIN32;XP_WIN;JSFILE;EXPORT_JS_API;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;JS_THREADSAFE;OSSP;_NSPR_BUILD_;JS_HAS_FILE_OBJECT=1;%(PreprocessorDefinitions) + true + MultiThreadedDebugDLL + $(IntDir)js.pch + + + $(IntDir) + $(IntDir)vc80.pdb + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + odbc32.lib;odbccp32.lib;advapi32.lib;wsock32.lib;winmm.lib;%(AdditionalDependencies) + true + %(AdditionalLibraryDirectories) + true + $(IntDir)js32.pdb + Windows + false + + + $(TargetDir)js32.lib + MachineX64 + + + true + $(IntDir)js.bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/win32/json/libjson.2010.vcxproj b/libs/win32/json/libjson.2010.vcxproj new file mode 100644 index 0000000000..df7dcb6640 --- /dev/null +++ b/libs/win32/json/libjson.2010.vcxproj @@ -0,0 +1,156 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libjson + {9778F1C0-09BC-4698-8EBC-BD982247209A} + json + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + .;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;HAVE_STDARG_H;STDC_HEADERS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + + + X64 + + + Disabled + .;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;HAVE_STDARG_H;STDC_HEADERS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + + + + + MaxSpeed + true + .;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;HAVE_STDARG_H;STDC_HEADERS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + + + X64 + + + MaxSpeed + true + .;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;HAVE_STDARG_H;STDC_HEADERS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + + + + + + + + + + + + + + + {b808178b-82f0-4cf4-a2b1-921939fa24d0} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/libg722_1/libg722_1.vcxproj b/libs/win32/libg722_1/libg722_1.vcxproj new file mode 100644 index 0000000000..5e41d3fbbf --- /dev/null +++ b/libs/win32/libg722_1/libg722_1.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C} + libg722_1 + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + %(RootDir)%(Directory)..\..\libg722_1\src\msvc\;%(RootDir)%(Directory)..\..\libg722_1\src\generated\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBG722_1_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + + + Level3 + ProgramDatabase + + + + + MaxSpeed + true + %(RootDir)%(Directory)..\..\libg722_1\src\msvc\;%(RootDir)%(Directory)..\..\libg722_1\src\generated\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBG722_1_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + + + X64 + + + Disabled + %(RootDir)%(Directory)..\..\libg722_1\src\msvc\;%(RootDir)%(Directory)..\..\libg722_1\src\generated\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBG722_1_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + + + Level3 + ProgramDatabase + + + + + X64 + + + MaxSpeed + true + %(RootDir)%(Directory)..\..\libg722_1\src\msvc\;%(RootDir)%(Directory)..\..\libg722_1\src\generated\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBG722_1_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/win32/libmp3lame/libmp3lame.2010.vcxproj b/libs/win32/libmp3lame/libmp3lame.2010.vcxproj new file mode 100644 index 0000000000..2c498fbdbe --- /dev/null +++ b/libs/win32/libmp3lame/libmp3lame.2010.vcxproj @@ -0,0 +1,494 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libmp3lame + {E316772F-5D8F-4F2A-8F71-094C3E859D34} + libmp3lame + + + + StaticLibrary + false + + + StaticLibrary + false + + + StaticLibrary + false + + + StaticLibrary + false + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Release\ + .\Release\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + .\Debug\ + .\Debug\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + /GAy /QIfdiv /QI0f %(AdditionalOptions) + MaxSpeed + .;..\..\lame-3.97;..\..\lame-3.97\include;%(AdditionalIncludeDirectories) + NDEBUG;_WINDOWS;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + MultiThreaded + true + $(IntDir)libmp3lame_vc6.pch + $(IntDir) + .\Release/ + $(IntDir) + TurnOffAllWarnings + true + Default + + + 0x0409 + + + $(OutDir)libmp3lame.lib + true + + + + + X64 + + + /GAy /QIfdiv /QI0f %(AdditionalOptions) + MaxSpeed + .;..\..\lame-3.97;..\..\lame-3.97\include;%(AdditionalIncludeDirectories) + NDEBUG;_WINDOWS;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + MultiThreaded + true + $(IntDir)libmp3lame_vc6.pch + TurnOffAllWarnings + true + Default + + + 0x0409 + + + $(OutDir)libmp3lame.lib + true + + + + + Disabled + .;..\..\lame-3.97;..\..\lame-3.97\include;%(AdditionalIncludeDirectories) + _DEBUG;_WINDOWS;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDebug + $(IntDir)libmp3lame_vc6.pch + $(IntDir) + .\Debug/ + $(IntDir) + TurnOffAllWarnings + true + ProgramDatabase + Default + + + 0x0409 + + + $(OutDir)libmp3lame.lib + true + + + + + X64 + + + Disabled + .;..\..\lame-3.97;..\..\lame-3.97\include;%(AdditionalIncludeDirectories) + _DEBUG;_WINDOWS;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDebug + $(IntDir)libmp3lame_vc6.pch + TurnOffAllWarnings + true + ProgramDatabase + Default + + + 0x0409 + + + $(OutDir)libmp3lame.lib + true + + + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Level1 + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Level1 + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Level1 + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Level1 + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + Disabled + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + MaxSpeed + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {d5d2bf72-29fe-4982-a9fa-82ab2086db1b} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/libogg/libogg.2010.vcxproj b/libs/win32/libogg/libogg.2010.vcxproj new file mode 100644 index 0000000000..8da4327882 --- /dev/null +++ b/libs/win32/libogg/libogg.2010.vcxproj @@ -0,0 +1,221 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libogg + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} + libogg + + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + MaxSpeed + OnlyExplicitInline + ..\..\libogg-1.1.3\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + .\Static_Release/ogg_static.pch + .\Static_Release/ + .\Static_Release/ + .\Static_Release/ + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)libogg.lib + true + + + true + .\Static_Release/ogg_static.bsc + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + ..\..\libogg-1.1.3\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + .\Static_Release/ogg_static.pch + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)libogg.lib + true + + + true + .\Static_Release/ogg_static.bsc + + + + + Disabled + ..\..\libogg-1.1.3\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + .\Static_Debug/ogg_static.pch + .\Static_Debug/ + .\Static_Debug/ + .\Static_Debug/ + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)libogg.lib + true + + + true + .\Static_Debug/ogg_static.bsc + + + + + X64 + + + Disabled + ..\..\libogg-1.1.3\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + .\Static_Debug/ogg_static.pch + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)libogg.lib + true + + + true + .\Static_Debug/ogg_static.bsc + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + {d5d2bf72-29fe-4982-a9fa-82ab1086db1b} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/libshout/libshout.vcxproj b/libs/win32/libshout/libshout.vcxproj new file mode 100644 index 0000000000..cb9baec093 --- /dev/null +++ b/libs/win32/libshout/libshout.vcxproj @@ -0,0 +1,203 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5} + libshout + + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + MaxSpeed + OnlyExplicitInline + .\;..\..\libshout-2.2.2\src;..\..\libshout-2.2.2\include;..\..\libogg-1.1.3\include;..\..\pthreads-w32-2-7-0-release;..\..\libshout-2.2.2\win32\include;%(AdditionalIncludeDirectories) + WIN32;_LIB;_WIN32;VERSION="2.0.0";LIBSHOUT_MAJOR=2;LIBSHOUT_MINOR=0;LIBSHOUT_MICRO=0;HAVE_WINSOCK2_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreaded + true + .\Static_Release/ + .\Static_Release/ + .\Static_Release/ + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)libshout.lib + true + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + .\;..\..\libshout-2.2.2\src;..\..\libshout-2.2.2\include;..\..\libogg-1.1.3\include;..\..\pthreads-w32-2-7-0-release;..\..\libshout-2.2.2\win32\include;%(AdditionalIncludeDirectories) + WIN32;_LIB;_WIN32;VERSION="2.0.0";LIBSHOUT_MAJOR=2;LIBSHOUT_MINOR=0;LIBSHOUT_MICRO=0;HAVE_WINSOCK2_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreaded + true + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)libshout.lib + true + + + + + Disabled + .\;..\..\libshout-2.2.2\src;..\..\libshout-2.2.2\include;..\..\libogg-1.1.3\include;..\..\pthreads-w32-2-7-0-release;..\..\libshout-2.2.2\win32\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_WIN32;VERSION="2.0.0";LIBSHOUT_MAJOR=2;LIBSHOUT_MINOR=0;LIBSHOUT_MICRO=0;HAVE_WINSOCK2_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + .\Static_Debug/ + .\Static_Debug/ + .\Static_Debug/ + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)libshout.lib + true + + + + + X64 + + + Disabled + .\;..\..\libshout-2.2.2\src;..\..\libshout-2.2.2\include;..\..\libogg-1.1.3\include;..\..\pthreads-w32-2-7-0-release;..\..\libshout-2.2.2\win32\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_WIN32;VERSION="2.0.0";LIBSHOUT_MAJOR=2;LIBSHOUT_MINOR=0;LIBSHOUT_MICRO=0;HAVE_WINSOCK2_H;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)libshout.lib + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {d5d2bf72-29fe-4982-a9fa-82ab3086db1b} + false + + + {0feeaec6-4399-4c46-b7db-62ece80d15b4} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/libsndfile/libsndfile.2010.vcxproj b/libs/win32/libsndfile/libsndfile.2010.vcxproj new file mode 100644 index 0000000000..903a05ca72 --- /dev/null +++ b/libs/win32/libsndfile/libsndfile.2010.vcxproj @@ -0,0 +1,218 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libsndfile + {3D0370CA-BED2-4657-A475-32375CBCB6E4} + libsndfile + Win32Proj + + + + StaticLibrary + NotSet + true + + + StaticLibrary + NotSet + + + StaticLibrary + NotSet + true + + + StaticLibrary + NotSet + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ..\..\libsndfile\src;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;inline=__inline;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level1 + ProgramDatabase + CompileAsC + + + + + X64 + + + Disabled + ..\..\libsndfile\src;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;inline=__inline;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level1 + ProgramDatabase + CompileAsC + + + + + ..\..\libsndfile\src;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;inline=__inline;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level1 + ProgramDatabase + CompileAsC + + + + + X64 + + + ..\..\libsndfile\src;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;inline=__inline;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level1 + ProgramDatabase + CompileAsC + + + + + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/win32/mpg123/libmpg123.2010.vcxproj b/libs/win32/mpg123/libmpg123.2010.vcxproj new file mode 100644 index 0000000000..3a04f6adc7 --- /dev/null +++ b/libs/win32/mpg123/libmpg123.2010.vcxproj @@ -0,0 +1,175 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libmpg123 + {419C8F80-D858-4B48-A25C-AF4007608137} + libmpg123 + Win32Proj + + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + StaticLibrary + Unicode + true + + + StaticLibrary + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Debug\ + .\Debug\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + .\Release\ + .\Release\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + src;$(ProjectDir)libmpg123;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;OPT_GENERIC;strcasecmp=stricmp;strncasecmp=strnicmp;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + $(IntDir) + .\Debug/ + $(IntDir) + Level4 + ProgramDatabase + 4100;4018;4244;4127;4189;4389;4702;4706;%(DisableSpecificWarnings) + false + + + + + X64 + + + Disabled + src;$(ProjectDir)libmpg123;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;OPT_GENERIC;strcasecmp=stricmp;strncasecmp=strnicmp;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + ProgramDatabase + 4100;4018;4244;4127;4189;4389;4702;4706;%(DisableSpecificWarnings) + false + + + + + src;$(ProjectDir)libmpg123;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;OPT_GENERIC;strcasecmp=stricmp;strncasecmp=strnicmp;%(PreprocessorDefinitions) + MultiThreadedDLL + + + $(IntDir) + .\Release/ + $(IntDir) + Level4 + ProgramDatabase + 4100;4018;4244;4127;4189;4389;4702;4706;%(DisableSpecificWarnings) + false + + + + + X64 + + + src;$(ProjectDir)libmpg123;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;OPT_GENERIC;strcasecmp=stricmp;strncasecmp=strnicmp;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + ProgramDatabase + 4100;4018;4244;4127;4189;4389;4702;4706;%(DisableSpecificWarnings) + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + {e796e337-de78-4303-8614-9a590862ee95} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/pcre/libpcre.2010.vcxproj b/libs/win32/pcre/libpcre.2010.vcxproj new file mode 100644 index 0000000000..56b39be5a0 --- /dev/null +++ b/libs/win32/pcre/libpcre.2010.vcxproj @@ -0,0 +1,635 @@ + + + + + Debug DLL + Win32 + + + Debug DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release DLL + Win32 + + + Release DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + libpcre + {8D04B550-D240-4A44-8A18-35DA3F7038D9} + libpcre + + + + DynamicLibrary + false + + + DynamicLibrary + false + + + StaticLibrary + false + + + StaticLibrary + false + + + DynamicLibrary + false + + + DynamicLibrary + false + + + StaticLibrary + false + + + StaticLibrary + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)Debug\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)Release\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)libpcre.tlb + + + + + Disabled + $(ProjectDir);$(ProjectDir)..\..\pcre;%(AdditionalIncludeDirectories) + _WIN32;WIN32;_DEBUG;_WINDOWS;LIBPCRE_EXPORTS;SUPPORT_UTF8;SUPPORT_UCP;POSIX_MALLOC_THRESHOLD=10;NO_RECURSE;DEBUG;PCRE_DEFINITION;PCRE_STATIC;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(OutDir)libpcre.pch + + + $(IntDir) + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + true + $(OutDir)$(ProjectName).bsc + + + + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)libpcre.tlb + + + + + Disabled + $(ProjectDir);$(ProjectDir)..\..\pcre;%(AdditionalIncludeDirectories) + _WIN32;WIN32;_DEBUG;_WINDOWS;LIBPCRE_EXPORTS;SUPPORT_UTF8;SUPPORT_UCP;POSIX_MALLOC_THRESHOLD=10;NO_RECURSE;DEBUG;PCRE_DEFINITION;PCRE_STATIC;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(OutDir)libpcre.pch + + + $(IntDir) + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + true + $(OutDir)$(ProjectName).bsc + + + + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)libpcre.tlb + + + + + MaxSpeed + OnlyExplicitInline + $(ProjectDir);$(ProjectDir)..\..\pcre;%(AdditionalIncludeDirectories) + _WIN32;WIN32;NDEBUG;_WINDOWS;LIBPCRE_EXPORTS;SUPPORT_UTF8;SUPPORT_UCP;POSIX_MALLOC_THRESHOLD=10;NO_RECURSE;PCRE_DEFINITION;PCRE_STATIC;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(OutDir)libpcre.pch + + + $(IntDir) + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + true + $(OutDir)$(ProjectName).bsc + + + + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)libpcre.tlb + + + + + MaxSpeed + OnlyExplicitInline + $(ProjectDir);$(ProjectDir)..\..\pcre;%(AdditionalIncludeDirectories) + _WIN32;WIN32;NDEBUG;_WINDOWS;LIBPCRE_EXPORTS;SUPPORT_UTF8;SUPPORT_UCP;POSIX_MALLOC_THRESHOLD=10;NO_RECURSE;PCRE_DEFINITION;PCRE_STATIC;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(OutDir)libpcre.pch + + + $(IntDir) + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + true + $(OutDir)$(ProjectName).bsc + + + + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)libpcre.tlb + + + + + Disabled + $(ProjectDir);$(ProjectDir)..\..\pcre;%(AdditionalIncludeDirectories) + _WIN32;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPCRE_EXPORTS;SUPPORT_UTF8;SUPPORT_UCP;POSIX_MALLOC_THRESHOLD=10;NO_RECURSE;DEBUG;PCRE_DEFINITION;DLL_EXPORT;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(OutDir)libpcre.pch + + + $(IntDir) + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + $(ProjectDir)..\..\pcre\pcre.def + true + false + + + $(IntDir)$(ProjectName).lib + MachineX86 + + + true + $(OutDir)$(ProjectName).bsc + + + + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)libpcre.tlb + + + + + Disabled + $(ProjectDir);$(ProjectDir)..\..\pcre;%(AdditionalIncludeDirectories) + _WIN32;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPCRE_EXPORTS;SUPPORT_UTF8;SUPPORT_UCP;POSIX_MALLOC_THRESHOLD=10;NO_RECURSE;DEBUG;PCRE_DEFINITION;DLL_EXPORT;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(OutDir)libpcre.pch + + + $(IntDir) + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + $(ProjectDir)..\..\pcre\pcre.def + true + false + + + $(IntDir)$(ProjectName).lib + MachineX64 + + + true + $(OutDir)$(ProjectName).bsc + + + + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)libpcre.tlb + + + + + MaxSpeed + OnlyExplicitInline + $(ProjectDir);$(ProjectDir)..\..\pcre;%(AdditionalIncludeDirectories) + _WIN32;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPCRE_EXPORTS;SUPPORT_UTF8;SUPPORT_UCP;POSIX_MALLOC_THRESHOLD=10;NO_RECURSE;PCRE_DEFINITION;DLL_EXPORT;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(OutDir)libpcre.pch + + + $(IntDir) + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + $(ProjectDir)..\..\pcre\pcre.def + false + + + $(IntDir)$(ProjectName).lib + MachineX86 + + + true + $(OutDir)$(ProjectName).bsc + + + + + + + + + + + + + + + + + %(Inputs) + %(Outputs) + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)libpcre.tlb + + + + + MaxSpeed + OnlyExplicitInline + $(ProjectDir);$(ProjectDir)..\..\pcre;%(AdditionalIncludeDirectories) + _WIN32;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPCRE_EXPORTS;SUPPORT_UTF8;SUPPORT_UCP;POSIX_MALLOC_THRESHOLD=10;NO_RECURSE;PCRE_DEFINITION;DLL_EXPORT;HAVE_CONFIG_H;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(OutDir)libpcre.pch + + + $(IntDir) + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + $(ProjectDir)..\..\pcre\pcre.def + false + + + $(IntDir)$(ProjectName).lib + MachineX64 + + + true + $(OutDir)$(ProjectName).bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {1ced5987-a529-46dc-b30f-870d85ff9c94} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/pocketsphinx/pocketsphinx.2010.vcxproj b/libs/win32/pocketsphinx/pocketsphinx.2010.vcxproj new file mode 100644 index 0000000000..8828a56e61 --- /dev/null +++ b/libs/win32/pocketsphinx/pocketsphinx.2010.vcxproj @@ -0,0 +1,452 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + pocketsphinx + {94001A0E-A837-445C-8004-F918F10D0226} + pocketsphinx + + + + DynamicLibrary + false + MultiByte + + + DynamicLibrary + false + Unicode + + + DynamicLibrary + false + MultiByte + + + DynamicLibrary + false + Unicode + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)pocketsphinx.tlb + + + + + MaxSpeed + OnlyExplicitInline + ../../../include;../../../../sphinxbase/include;../../../../sphinxbase/include/win32;..\..\pocketsphinx-0.5.99/src/libpocketsphinx;..\..\sphinxbase-0.4.99\include;..\..\pocketsphinx-0.5.99\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;_USRDLL;POCKETSPHINX_EXPORTS;SPHINXDLL;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)pocketsphinx.pch + $(IntDir) + .\Release/ + $(IntDir) + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;%(AdditionalDependencies) + ..\..\..\Release;%(AdditionalLibraryDirectories) + + + true + $(IntDir)pocketsphinx.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)pocketsphinx.tlb + + + + + MaxSpeed + OnlyExplicitInline + ../../../include;../../../../sphinxbase/include;../../../../sphinxbase/include/win32;..\..\pocketsphinx-0.5.99/src/libpocketsphinx;..\..\sphinxbase-0.4.99\include;..\..\pocketsphinx-0.5.99\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;_USRDLL;POCKETSPHINX_EXPORTS;SPHINXDLL;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)pocketsphinx.pch + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;%(AdditionalDependencies) + ..\..\..\Release;%(AdditionalLibraryDirectories) + MachineX64 + + + true + $(IntDir)pocketsphinx.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)pocketsphinx.tlb + + + + + Disabled + ../../../include;../../../../sphinxbase/include;../../../../sphinxbase/include/win32;..\..\pocketsphinx-0.5.99/src/libpocketsphinx;..\..\sphinxbase-0.4.99\include;..\..\pocketsphinx-0.5.99\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;_USRDLL;POCKETSPHINX_EXPORTS;SPHINXDLL;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(IntDir)pocketsphinx.pch + $(IntDir) + .\Debug/ + $(IntDir) + TurnOffAllWarnings + true + EditAndContinue + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + ..\..\..\Debug;%(AdditionalLibraryDirectories) + true + $(IntDir)pocketsphinx.pdb + false + + + MachineX86 + + + true + $(IntDir)pocketsphinx.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)pocketsphinx.tlb + + + + + Disabled + ../../../include;../../../../sphinxbase/include;../../../../sphinxbase/include/win32;..\..\pocketsphinx-0.5.99/src/libpocketsphinx;..\..\sphinxbase-0.4.99\include;..\..\pocketsphinx-0.5.99\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;_USRDLL;POCKETSPHINX_EXPORTS;SPHINXDLL;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(IntDir)pocketsphinx.pch + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + ..\..\..\Debug;%(AdditionalLibraryDirectories) + true + $(IntDir)pocketsphinx.pdb + false + + + MachineX64 + + + true + $(IntDir)pocketsphinx.bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + {af8163ee-fa76-4904-a11d-7d70a1b5ba2e} + false + + + {2f025ead-99bd-40f5-b2cc-f0a28cad7f2d} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/pthread/pthread.2010.vcxproj b/libs/win32/pthread/pthread.2010.vcxproj new file mode 100644 index 0000000000..abf46ca222 --- /dev/null +++ b/libs/win32/pthread/pthread.2010.vcxproj @@ -0,0 +1,500 @@ + + + + + Debug DLL + Win32 + + + Debug DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release DLL + Win32 + + + Release DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + pthread + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} + pthread + + + + DynamicLibrary + false + MultiByte + + + DynamicLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + DynamicLibrary + false + MultiByte + + + DynamicLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\Debug\ + $(Configuration)\ + true + $(SolutionDir)$(PlatformName)\Debug\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(PlatformName)\Debug\ + $(Configuration)\ + false + $(SolutionDir)$(PlatformName)\Debug\ + $(Platform)\$(Configuration)\ + false + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\./pthread.tlb + + + + + MaxSpeed + OnlyExplicitInline + ../../pthreads-w32-2-7-0-release/;%(AdditionalIncludeDirectories) + __CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;PTW32_STATIC_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + .\./pthread.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + false + Level3 + true + + + NDEBUG;PTW32_RC_MSC;%(PreprocessorDefinitions) + 0x0409 + .;%(AdditionalIncludeDirectories) + + + true + .\./pthread.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\./pthread.tlb + + + + + MaxSpeed + OnlyExplicitInline + ../../pthreads-w32-2-7-0-release/;%(AdditionalIncludeDirectories) + __CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;PTW32_STATIC_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + .\./pthread.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + false + Level3 + true + + + NDEBUG;PTW32_RC_MSC;%(PreprocessorDefinitions) + 0x0409 + .;%(AdditionalIncludeDirectories) + + + true + .\./pthread.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\./pthread.tlb + + + + + Disabled + ../../pthreads-w32-2-7-0-release/;%(AdditionalIncludeDirectories) + __CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;PTW32_STATIC_LIB;%(PreprocessorDefinitions) + false + Default + MultiThreadedDebugDLL + .\./pthread.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + false + Level3 + true + ProgramDatabase + + + _DEBUG;PTW32_RC_MSC;%(PreprocessorDefinitions) + 0x0409 + .;%(AdditionalIncludeDirectories) + + + true + .\./pthread.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\./pthread.tlb + + + + + Disabled + ../../pthreads-w32-2-7-0-release/;%(AdditionalIncludeDirectories) + __CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;PTW32_STATIC_LIB;%(PreprocessorDefinitions) + false + Default + MultiThreadedDebugDLL + .\./pthread.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + false + Level3 + true + ProgramDatabase + + + _DEBUG;PTW32_RC_MSC;%(PreprocessorDefinitions) + 0x0409 + .;%(AdditionalIncludeDirectories) + + + true + .\./pthread.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\./pthread.tlb + + + + + Disabled + ../../pthreads-w32-2-7-0-release/;%(AdditionalIncludeDirectories) + __CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\./pthread.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + false + Level3 + true + ProgramDatabase + + + _DEBUG;PTW32_RC_MSC;%(PreprocessorDefinitions) + 0x0409 + .;%(AdditionalIncludeDirectories) + + + ws2_32.lib;%(AdditionalDependencies) + true + true + .\./pthreadVC2.pdb + true + .\./pthreadVC2.map + false + + + MachineX86 + + + true + .\./pthread.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\./pthread.tlb + + + + + Disabled + ../../pthreads-w32-2-7-0-release/;%(AdditionalIncludeDirectories) + __CLEANUP_C;WIN32;_DEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\./pthread.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + false + Level3 + true + ProgramDatabase + + + _DEBUG;PTW32_RC_MSC;%(PreprocessorDefinitions) + 0x0409 + .;%(AdditionalIncludeDirectories) + + + ws2_32.lib;%(AdditionalDependencies) + true + true + .\./pthreadVC2.pdb + true + .\./pthreadVC2.map + false + + + MachineX64 + + + true + .\./pthread.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\./pthread.tlb + + + + + MaxSpeed + OnlyExplicitInline + ../../pthreads-w32-2-7-0-release/;%(AdditionalIncludeDirectories) + __CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + .\./pthread.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + false + Level3 + true + + + NDEBUG;PTW32_RC_MSC;%(PreprocessorDefinitions) + 0x0409 + .;%(AdditionalIncludeDirectories) + + + ws2_32.lib;%(AdditionalDependencies) + true + false + + + MachineX86 + + + true + .\./pthread.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\./pthread.tlb + + + + + MaxSpeed + OnlyExplicitInline + ../../pthreads-w32-2-7-0-release/;%(AdditionalIncludeDirectories) + __CLEANUP_C;WIN32;NDEBUG;_WINDOWS;_USRDLL;PTW32_BUILD;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + .\./pthread.pch + $(IntDir) + $(IntDir) + $(IntDir)vc80.pdb + false + Level3 + true + + + NDEBUG;PTW32_RC_MSC;%(PreprocessorDefinitions) + 0x0409 + .;%(AdditionalIncludeDirectories) + + + ws2_32.lib;%(AdditionalDependencies) + true + false + + + MachineX64 + + + true + .\./pthread.bsc + + + + + + + + + + + + + + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + + + + + {8b3b4c4c-13c2-446c-beb0-f412cc2cfb9a} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/sofia/libsofia_sip_ua_static.2010.vcxproj b/libs/win32/sofia/libsofia_sip_ua_static.2010.vcxproj new file mode 100644 index 0000000000..fdfb0e853b --- /dev/null +++ b/libs/win32/sofia/libsofia_sip_ua_static.2010.vcxproj @@ -0,0 +1,541 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libsofia_sip_ua_static + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} + libsofia_sip_ua_static + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Debug\ + .\Debug\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + .\Release\ + .\Release\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + + + if not exist "$(ProjectDir)..\..\sofia-sip\win32\gawk.exe" cscript /nologo "$(ProjectDir)..\util.vbs" Get http://files.freeswitch.org/downloads/win32/gawk.exe "$(ProjectDir)..\..\sofia-sip\win32\" +cd /D "$(ProjectDir)..\..\sofia-sip\win32\" +set AWK="$(ProjectDir)..\..\sofia-sip\win32\gawk.exe" +if not exist "$(ProjectDir)..\..\sofia-sip\libsofia-sip-ua\http\http_parser_table.c" "autogen.cmd" +if not exist "$(ProjectDir)$(IntDir)\auth_client.obj" "autogen.cmd" + + + + Disabled + ..\..\sofia-sip\win32;..\..\sofia-sip\libsofia-sip-ua\su;..\..\sofia-sip\libsofia-sip-ua\ipt;..\..\sofia-sip\libsofia-sip-ua\sresolv;..\..\sofia-sip\libsofia-sip-ua\bnf;..\..\sofia-sip\libsofia-sip-ua\url;..\..\sofia-sip\libsofia-sip-ua\msg;..\..\sofia-sip\libsofia-sip-ua\sip;..\..\sofia-sip\libsofia-sip-ua\nta;..\..\sofia-sip\libsofia-sip-ua\nua;..\..\sofia-sip\libsofia-sip-ua\iptsec;..\..\sofia-sip\libsofia-sip-ua\http;..\..\sofia-sip\libsofia-sip-ua\nth;..\..\sofia-sip\libsofia-sip-ua\nea;..\..\sofia-sip\libsofia-sip-ua\sdp;..\..\sofia-sip\libsofia-sip-ua\soa;..\..\sofia-sip\libsofia-sip-ua\stun;..\..\sofia-sip\libsofia-sip-ua\tport;..\..\sofia-sip\libsofia-sip-ua\features;..\..\pthreads-w32-2-7-0-release;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;IN_LIBSOFIA_SIP_UA_STATIC;LIBSOFIA_SIP_UA_STATIC;LIBSRES_STATIC;PTW32_STATIC_LIB;HAVE_IPHLPAPI_H;SU_DEBUG=0;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(IntDir) + true + Level4 + true + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x040b + + + $(IntDir)libsofia_sip_ua_static.lib + true + + + true + $(IntDir)libsofia_sip_ua_static.bsc + + + + + + + + + + + if not exist "$(ProjectDir)..\..\sofia-sip\win32\gawk.exe" cscript /nologo "$(ProjectDir)..\util.vbs" Get http://files.freeswitch.org/downloads/win32/gawk.exe "$(ProjectDir)..\..\sofia-sip\win32\" +cd /D "$(ProjectDir)..\..\sofia-sip\win32\" +set AWK="$(ProjectDir)..\..\sofia-sip\win32\gawk.exe" +if not exist "$(ProjectDir)..\..\sofia-sip\libsofia-sip-ua\http\http_parser_table.c" "autogen.cmd" +if not exist "$(ProjectDir)$(IntDir)\auth_client.obj" "autogen.cmd" + + + + + X64 + + + Disabled + ..\..\sofia-sip\win32;..\..\sofia-sip\libsofia-sip-ua\su;..\..\sofia-sip\libsofia-sip-ua\ipt;..\..\sofia-sip\libsofia-sip-ua\sresolv;..\..\sofia-sip\libsofia-sip-ua\bnf;..\..\sofia-sip\libsofia-sip-ua\url;..\..\sofia-sip\libsofia-sip-ua\msg;..\..\sofia-sip\libsofia-sip-ua\sip;..\..\sofia-sip\libsofia-sip-ua\nta;..\..\sofia-sip\libsofia-sip-ua\nua;..\..\sofia-sip\libsofia-sip-ua\iptsec;..\..\sofia-sip\libsofia-sip-ua\http;..\..\sofia-sip\libsofia-sip-ua\nth;..\..\sofia-sip\libsofia-sip-ua\nea;..\..\sofia-sip\libsofia-sip-ua\sdp;..\..\sofia-sip\libsofia-sip-ua\soa;..\..\sofia-sip\libsofia-sip-ua\stun;..\..\sofia-sip\libsofia-sip-ua\tport;..\..\sofia-sip\libsofia-sip-ua\features;..\..\pthreads-w32-2-7-0-release;.;%(AdditionalIncludeDirectories) + _WIN64;WIN32;_DEBUG;_LIB;IN_LIBSOFIA_SIP_UA_STATIC;LIBSOFIA_SIP_UA_STATIC;LIBSRES_STATIC;PTW32_STATIC_LIB;HAVE_IPHLPAPI_H;SU_DEBUG=0;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + Level4 + false + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x040b + + + $(IntDir)libsofia_sip_ua_static.lib + true + + + true + $(IntDir)libsofia_sip_ua_static.bsc + + + + + if not exist "$(ProjectDir)..\..\sofia-sip\win32\gawk.exe" cscript /nologo "$(ProjectDir)..\util.vbs" Get http://files.freeswitch.org/downloads/win32/gawk.exe "$(ProjectDir)..\..\sofia-sip\win32\" +cd /D "$(ProjectDir)..\..\sofia-sip\win32\" +set AWK="$(ProjectDir)..\..\sofia-sip\win32\gawk.exe" +if not exist "$(ProjectDir)..\..\sofia-sip\libsofia-sip-ua\http\http_parser_table.c" "autogen.cmd" +if not exist "$(ProjectDir)$(IntDir)\auth_client.obj" "autogen.cmd" + + + + + MaxSpeed + OnlyExplicitInline + ..\..\sofia-sip\win32;..\..\sofia-sip\libsofia-sip-ua\su;..\..\sofia-sip\libsofia-sip-ua\ipt;..\..\sofia-sip\libsofia-sip-ua\sresolv;..\..\sofia-sip\libsofia-sip-ua\bnf;..\..\sofia-sip\libsofia-sip-ua\url;..\..\sofia-sip\libsofia-sip-ua\msg;..\..\sofia-sip\libsofia-sip-ua\sip;..\..\sofia-sip\libsofia-sip-ua\nta;..\..\sofia-sip\libsofia-sip-ua\nua;..\..\sofia-sip\libsofia-sip-ua\iptsec;..\..\sofia-sip\libsofia-sip-ua\http;..\..\sofia-sip\libsofia-sip-ua\nth;..\..\sofia-sip\libsofia-sip-ua\nea;..\..\sofia-sip\libsofia-sip-ua\sdp;..\..\sofia-sip\libsofia-sip-ua\soa;..\..\sofia-sip\libsofia-sip-ua\stun;..\..\sofia-sip\libsofia-sip-ua\tport;..\..\sofia-sip\libsofia-sip-ua\features;..\..\pthreads-w32-2-7-0-release;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;IN_LIBSOFIA_SIP_UA_STATIC;LIBSOFIA_SIP_UA_STATIC;LIBSRES_STATIC;PTW32_STATIC_LIB;HAVE_IPHLPAPI_H;SU_DEBUG=0;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir) + true + Level4 + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x040b + + + $(IntDir)libsofia_sip_ua_static.lib + true + + + true + $(IntDir)libsofia_sip_ua_static.bsc + + + + + if not exist "$(ProjectDir)..\..\sofia-sip\win32\gawk.exe" cscript /nologo "$(ProjectDir)..\util.vbs" Get http://files.freeswitch.org/downloads/win32/gawk.exe "$(ProjectDir)..\..\sofia-sip\win32\" +cd /D "$(ProjectDir)..\..\sofia-sip\win32\" +set AWK="$(ProjectDir)..\..\sofia-sip\win32\gawk.exe" +if not exist "$(ProjectDir)..\..\sofia-sip\libsofia-sip-ua\http\http_parser_table.c" "autogen.cmd" +if not exist "$(ProjectDir)$(IntDir)\auth_client.obj" "autogen.cmd" + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + ..\..\sofia-sip\win32;..\..\sofia-sip\libsofia-sip-ua\su;..\..\sofia-sip\libsofia-sip-ua\ipt;..\..\sofia-sip\libsofia-sip-ua\sresolv;..\..\sofia-sip\libsofia-sip-ua\bnf;..\..\sofia-sip\libsofia-sip-ua\url;..\..\sofia-sip\libsofia-sip-ua\msg;..\..\sofia-sip\libsofia-sip-ua\sip;..\..\sofia-sip\libsofia-sip-ua\nta;..\..\sofia-sip\libsofia-sip-ua\nua;..\..\sofia-sip\libsofia-sip-ua\iptsec;..\..\sofia-sip\libsofia-sip-ua\http;..\..\sofia-sip\libsofia-sip-ua\nth;..\..\sofia-sip\libsofia-sip-ua\nea;..\..\sofia-sip\libsofia-sip-ua\sdp;..\..\sofia-sip\libsofia-sip-ua\soa;..\..\sofia-sip\libsofia-sip-ua\stun;..\..\sofia-sip\libsofia-sip-ua\tport;..\..\sofia-sip\libsofia-sip-ua\features;..\..\pthreads-w32-2-7-0-release;.;%(AdditionalIncludeDirectories) + _WIN64;WIN32;NDEBUG;_LIB;IN_LIBSOFIA_SIP_UA_STATIC;LIBSOFIA_SIP_UA_STATIC;LIBSRES_STATIC;PTW32_STATIC_LIB;HAVE_IPHLPAPI_H;SU_DEBUG=0;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + true + Level4 + false + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x040b + + + $(IntDir)libsofia_sip_ua_static.lib + true + + + true + $(IntDir)libsofia_sip_ua_static.bsc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {8b3b4c4c-13c2-446c-beb0-f412cc2cfb9a} + false + + + {df018947-0fff-4eb3-bdee-441dc81da7a4} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/sphinxbase/sphinxbase.2010.vcxproj b/libs/win32/sphinxbase/sphinxbase.2010.vcxproj new file mode 100644 index 0000000000..cfe41baef4 --- /dev/null +++ b/libs/win32/sphinxbase/sphinxbase.2010.vcxproj @@ -0,0 +1,704 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + sphinxbase + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} + sphinxbase + + + + DynamicLibrary + false + MultiByte + + + DynamicLibrary + false + MultiByte + + + DynamicLibrary + false + MultiByte + + + DynamicLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + true + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)sphinxbase.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\sphinxbase-0.4.99\include\win32;..\..\sphinxbase-0.4.99\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;_USRDLL;SPHINXBASE_EXPORTS;HAVE_CONFIG_H;SPHINXDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)sphinxbase.pch + $(IntDir) + .\Release/ + $(IntDir) + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;%(AdditionalDependencies) + ..\..\..\Release;%(AdditionalLibraryDirectories) + + + true + $(IntDir)sphinxbase.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)sphinxbase.tlb + + + + + MaxSpeed + OnlyExplicitInline + ..\..\sphinxbase-0.4.99\include\win32;..\..\sphinxbase-0.4.99\include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;_USRDLL;SPHINXBASE_EXPORTS;HAVE_CONFIG_H;SPHINXDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + $(IntDir)sphinxbase.pch + TurnOffAllWarnings + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;%(AdditionalDependencies) + ..\..\..\Release;%(AdditionalLibraryDirectories) + MachineX64 + + + true + $(IntDir)sphinxbase.bsc + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + $(IntDir)sphinxbase.tlb + + + + + Disabled + ..\..\sphinxbase-0.4.99\include\win32;..\..\sphinxbase-0.4.99\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;_USRDLL;SPHINXBASE_EXPORTS;HAVE_CONFIG_H;SPHINXDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(IntDir)sphinxbase.pch + $(IntDir) + .\Debug/ + $(IntDir) + TurnOffAllWarnings + true + EditAndContinue + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + ..\..\..\Debug;%(AdditionalLibraryDirectories) + true + $(IntDir)sphinxbase.pdb + false + + + $(IntDir)/sphinxbase.lib + MachineX86 + + + true + $(IntDir)sphinxbase.bsc + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + $(IntDir)sphinxbase.tlb + + + + + Disabled + ..\..\sphinxbase-0.4.99\include\win32;..\..\sphinxbase-0.4.99\include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;_USRDLL;SPHINXBASE_EXPORTS;HAVE_CONFIG_H;SPHINXDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + $(IntDir)sphinxbase.pch + TurnOffAllWarnings + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + winmm.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + ..\..\..\Debug;%(AdditionalLibraryDirectories) + true + $(IntDir)sphinxbase.pdb + false + + + MachineX64 + + + true + $(IntDir)sphinxbase.bsc + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {4f92b672-dadb-4047-8d6a-4bb3796733fd} + false + + + {2dee4895-1134-439c-b688-52203e57d878} + false + + + + + + \ No newline at end of file diff --git a/libs/win32/sqlite/sqlite.2010.vcxproj b/libs/win32/sqlite/sqlite.2010.vcxproj new file mode 100644 index 0000000000..0893ae6da4 --- /dev/null +++ b/libs/win32/sqlite/sqlite.2010.vcxproj @@ -0,0 +1,451 @@ + + + + + Debug DLL + Win32 + + + Debug DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release DLL + Win32 + + + Release DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + libsqlite + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} + libsqlite + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + StaticLibrary + MultiByte + + + StaticLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Configuration)\ + $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)Debug\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)Release\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + if exist "$(ProjectDir)..\..\sqlite\src\sqlite3.h" del "$(ProjectDir)..\..\sqlite\src\sqlite3.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.h" del "$(ProjectDir)..\..\sqlite\src\parse.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.c" del "$(ProjectDir)..\..\sqlite\src\parse.c" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.h" del "$(ProjectDir)..\..\sqlite\src\opcodes.h" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.c" del "$(ProjectDir)..\..\sqlite\src\opcodes.c" +if exist "$(ProjectDir)..\..\sqlite\src\keywordhash.h" del "$(ProjectDir)..\..\sqlite\src\keywordhash.h" + + + + Disabled + $(ProjectDir);$(ProjectDir)..\..\sqlite\src;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;SQLITE_DEBUG;THREADSAFE=1;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + ProgramDatabase + + + + + + + + + if exist "$(ProjectDir)..\..\sqlite\src\sqlite3.h" del "$(ProjectDir)..\..\sqlite\src\sqlite3.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.h" del "$(ProjectDir)..\..\sqlite\src\parse.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.c" del "$(ProjectDir)..\..\sqlite\src\parse.c" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.h" del "$(ProjectDir)..\..\sqlite\src\opcodes.h" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.c" del "$(ProjectDir)..\..\sqlite\src\opcodes.c" +if exist "$(ProjectDir)..\..\sqlite\src\keywordhash.h" del "$(ProjectDir)..\..\sqlite\src\keywordhash.h" + + + + X64 + + + Disabled + $(ProjectDir);$(ProjectDir)..\..\sqlite\src;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;SQLITE_DEBUG;THREADSAFE=1;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + ProgramDatabase + + + + + + + + + if exist "$(ProjectDir)..\..\sqlite\src\sqlite3.h" del "$(ProjectDir)..\..\sqlite\src\sqlite3.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.h" del "$(ProjectDir)..\..\sqlite\src\parse.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.c" del "$(ProjectDir)..\..\sqlite\src\parse.c" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.h" del "$(ProjectDir)..\..\sqlite\src\opcodes.h" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.c" del "$(ProjectDir)..\..\sqlite\src\opcodes.c" +if exist "$(ProjectDir)..\..\sqlite\src\keywordhash.h" del "$(ProjectDir)..\..\sqlite\src\keywordhash.h" + + + + $(ProjectDir);$(ProjectDir)..\..\sqlite\src;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;THREADSAFE=1;%(PreprocessorDefinitions) + MultiThreadedDLL + + + TurnOffAllWarnings + ProgramDatabase + + + + + + + + + if exist "$(ProjectDir)..\..\sqlite\src\sqlite3.h" del "$(ProjectDir)..\..\sqlite\src\sqlite3.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.h" del "$(ProjectDir)..\..\sqlite\src\parse.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.c" del "$(ProjectDir)..\..\sqlite\src\parse.c" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.h" del "$(ProjectDir)..\..\sqlite\src\opcodes.h" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.c" del "$(ProjectDir)..\..\sqlite\src\opcodes.c" +if exist "$(ProjectDir)..\..\sqlite\src\keywordhash.h" del "$(ProjectDir)..\..\sqlite\src\keywordhash.h" + + + + X64 + + + $(ProjectDir);$(ProjectDir)..\..\sqlite\src;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;THREADSAFE=1;%(PreprocessorDefinitions) + MultiThreadedDLL + + + TurnOffAllWarnings + ProgramDatabase + + + + + + + + + if exist "$(ProjectDir)..\..\sqlite\src\sqlite3.h" del "$(ProjectDir)..\..\sqlite\src\sqlite3.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.h" del "$(ProjectDir)..\..\sqlite\src\parse.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.c" del "$(ProjectDir)..\..\sqlite\src\parse.c" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.h" del "$(ProjectDir)..\..\sqlite\src\opcodes.h" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.c" del "$(ProjectDir)..\..\sqlite\src\opcodes.c" +if exist "$(ProjectDir)..\..\sqlite\src\keywordhash.h" del "$(ProjectDir)..\..\sqlite\src\keywordhash.h" + + + + Disabled + $(ProjectDir);$(ProjectDir)..\..\sqlite\src;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;SQLITE_DEBUG;THREADSAFE=1;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + ProgramDatabase + + + sqlite3.def + true + $(IntDir)$(ProjectName).pdb + Windows + false + + + $(IntDir)$(TargetName).lib + MachineX86 + + + + + + + + + if exist "$(ProjectDir)..\..\sqlite\src\sqlite3.h" del "$(ProjectDir)..\..\sqlite\src\sqlite3.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.h" del "$(ProjectDir)..\..\sqlite\src\parse.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.c" del "$(ProjectDir)..\..\sqlite\src\parse.c" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.h" del "$(ProjectDir)..\..\sqlite\src\opcodes.h" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.c" del "$(ProjectDir)..\..\sqlite\src\opcodes.c" +if exist "$(ProjectDir)..\..\sqlite\src\keywordhash.h" del "$(ProjectDir)..\..\sqlite\src\keywordhash.h" + + + + X64 + + + Disabled + $(ProjectDir);$(ProjectDir)..\..\sqlite\src;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;SQLITE_DEBUG;THREADSAFE=1;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + TurnOffAllWarnings + ProgramDatabase + + + sqlite3.def + true + $(IntDir)$(ProjectName).pdb + Windows + false + + + $(IntDir)$(TargetName).lib + MachineX64 + + + + + + + + + if exist "$(ProjectDir)..\..\sqlite\src\sqlite3.h" del "$(ProjectDir)..\..\sqlite\src\sqlite3.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.h" del "$(ProjectDir)..\..\sqlite\src\parse.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.c" del "$(ProjectDir)..\..\sqlite\src\parse.c" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.h" del "$(ProjectDir)..\..\sqlite\src\opcodes.h" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.c" del "$(ProjectDir)..\..\sqlite\src\opcodes.c" +if exist "$(ProjectDir)..\..\sqlite\src\keywordhash.h" del "$(ProjectDir)..\..\sqlite\src\keywordhash.h" + + + + $(ProjectDir);$(ProjectDir)..\..\sqlite\src;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;THREADSAFE=1;%(PreprocessorDefinitions) + MultiThreadedDLL + + + TurnOffAllWarnings + ProgramDatabase + + + sqlite3.def + false + + + $(IntDir)$(TargetName).lib + + + + + + + + + if exist "$(ProjectDir)..\..\sqlite\src\sqlite3.h" del "$(ProjectDir)..\..\sqlite\src\sqlite3.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.h" del "$(ProjectDir)..\..\sqlite\src\parse.h" +if exist "$(ProjectDir)..\..\sqlite\src\parse.c" del "$(ProjectDir)..\..\sqlite\src\parse.c" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.h" del "$(ProjectDir)..\..\sqlite\src\opcodes.h" +if exist "$(ProjectDir)..\..\sqlite\src\opcodes.c" del "$(ProjectDir)..\..\sqlite\src\opcodes.c" +if exist "$(ProjectDir)..\..\sqlite\src\keywordhash.h" del "$(ProjectDir)..\..\sqlite\src\keywordhash.h" + + + + X64 + + + $(ProjectDir);$(ProjectDir)..\..\sqlite\src;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;THREADSAFE=1;%(PreprocessorDefinitions) + MultiThreadedDLL + + + TurnOffAllWarnings + ProgramDatabase + + + sqlite3.def + false + + + $(IntDir)$(TargetName).lib + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/win32/udns/libudns.2010.vcxproj b/libs/win32/udns/libudns.2010.vcxproj new file mode 100644 index 0000000000..2a7bbe8880 --- /dev/null +++ b/libs/win32/udns/libudns.2010.vcxproj @@ -0,0 +1,149 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + libudns + {4043FC6A-9A30-4577-8AD5-9B233C9575D8} + libudns + Win32Proj + + + + StaticLibrary + NotSet + false + + + StaticLibrary + NotSet + + + StaticLibrary + NotSet + false + + + StaticLibrary + NotSet + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + + + + + Disabled + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level3 + ProgramDatabase + + + + + X64 + + + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + + + + + X64 + + + Disabled + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level3 + ProgramDatabase + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj b/libs/xmlrpc-c/Windows/abyss.2010.vcxproj new file mode 100644 index 0000000000..36f14a2856 --- /dev/null +++ b/libs/xmlrpc-c/Windows/abyss.2010.vcxproj @@ -0,0 +1,457 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + abyss + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} + abyss + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Debug\abyss\ + .\Debug\abyss\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + .\Release\Abyss\ + .\Release\Abyss\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ..\;..\include;..\lib\util\include;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;ABYSS_WIN32;_THREAD;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\Debug\abyss/abyss.pch + .\Debug\abyss/ + .\Debug\abyss/ + .\Debug\abyss/ + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\abyssD.lib + true + + + true + .\Debug\abyss/abyss.bsc + + + + + X64 + + + Disabled + ..\;..\include;..\lib\util\include;.;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;ABYSS_WIN32;_THREAD;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\Debug\abyss/abyss.pch + $(IntDir)Abyss\ + $(IntDir)Abyss\vc90.pdb + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\$(Platform)\$(Configuration)\abyssD.lib + true + + + true + .\Debug\abyss/abyss.bsc + + + + + MaxSpeed + OnlyExplicitInline + ..\;..\include;..\lib\util\include;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;ABYSS_WIN32;_THREAD;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + .\Release\Abyss/abyss.pch + .\Release\Abyss/ + .\Release\Abyss/ + .\Release\Abyss/ + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\abyss.lib + true + + + true + .\Release\Abyss/abyss.bsc + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + ..\;..\include;..\lib\util\include;.;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;ABYSS_WIN32;_THREAD;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + .\Release\Abyss/abyss.pch + $(IntDir)Abyss\ + $(IntDir)Abyss\vc90.pdb + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\$(Platform)\$(Configuration)\abyss.lib + true + + + true + .\Release\Abyss/abyss.bsc + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj b/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj new file mode 100644 index 0000000000..24ddb86fe3 --- /dev/null +++ b/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj @@ -0,0 +1,216 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + xmlparse + {0D108721-EAE8-4BAF-8102-D8960EC93647} + xmlparse + + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + StaticLibrary + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Release\xmlparse\ + .\Release\xmlparse\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + .\Debug\xmlparse\ + .\Debug\xmlparse\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + MaxSpeed + OnlyExplicitInline + ..\lib\expat\xmltok;..\lib\expat\xmlwf;..;..\lib\util\include;..\include;.;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + .\Release\xmlparse/xmlparse.pch + .\Release\xmlparse/ + .\Release\xmlparse/ + .\Release\xmlparse/ + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\xmlparse.lib + true + + + true + .\Release\xmlparse/xmlparse.bsc + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + ..\lib\expat\xmltok;..\lib\expat\xmlwf;..;..\lib\util\include;..\include;.;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + .\Release\xmlparse/xmlparse.pch + $(IntDir)xmlparse\ + $(IntDir)xmlparse\vc90.pdb + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\$(Platform)\$(Configuration)\xmlparse.lib + true + + + true + .\Release\xmlparse/xmlparse.bsc + + + + + Disabled + ..\lib\expat\xmltok;..\lib\expat\xmlwf;..;..\lib\util\include;..\include;.;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\Debug\xmlparse/xmlparse.pch + .\Debug\xmlparse/ + .\Debug\xmlparse/ + .\Debug\xmlparse/ + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\xmlparseD.lib + true + + + true + .\Debug\xmlparse/xmlparse.bsc + + + + + X64 + + + Disabled + ..\lib\expat\xmltok;..\lib\expat\xmlwf;..;..\lib\util\include;..\include;.;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\Debug\xmlparse/xmlparse.pch + $(IntDir)xmlparse\ + $(IntDir)xmlparse\vc90.pdb + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\$(Platform)\$(Configuration)\xmlparseD.lib + true + + + true + .\Debug\xmlparse/xmlparse.bsc + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + \ No newline at end of file diff --git a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj b/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj new file mode 100644 index 0000000000..ee4bdcbff6 --- /dev/null +++ b/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj @@ -0,0 +1,640 @@ + + + + + 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 + .\Debug\xmlrpc\ + .\Debug\xmlrpc\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + .\Release\xmlrpc\ + .\Release\xmlrpc\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ../lib;../lib/util/include;../include;..;../lib/expat/xmlparse;../lib/abyss/src;../lib/wininet_transport;.;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\Debug\xmlrpc/xmlrpc.pch + .\Debug\xmlrpc/ + .\Debug\xmlrpc/ + .\Debug\xmlrpc/ + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\xmlrpcD.lib + true + + + true + .\Debug\xmlrpc/xmlrpc.bsc + + + + + X64 + + + Disabled + ../lib;../lib/util/include;../include;..;../lib/expat/xmlparse;../lib/abyss/src;../lib/wininet_transport;.;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\Debug\xmlrpc/xmlrpc.pch + $(IntDir)xmlrpc\ + $(IntDir)xmlrpc\vc90.pdb + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\$(Platform)\$(Configuration)\xmlrpcD.lib + true + + + true + .\Debug\xmlrpc/xmlrpc.bsc + + + + + MaxSpeed + OnlyExplicitInline + ../lib;../lib/util/include;../include;..;../lib/expat/xmlparse;../lib/abyss/src;../lib/wininet_transport;.;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + .\Release\xmlrpc/xmlrpc.pch + .\Release\xmlrpc/ + .\Release\xmlrpc/ + .\Release\xmlrpc/ + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\xmlrpc.lib + true + + + true + .\Release\xmlrpc/xmlrpc.bsc + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + ../lib;../lib/util/include;../include;..;../lib/expat/xmlparse;../lib/abyss/src;../lib/wininet_transport;.;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_LIB;ABYSS_WIN32;CURL_STATICLIB;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + .\Release\xmlrpc/xmlrpc.pch + $(IntDir)xmlrpc\ + $(IntDir)xmlrpc\vc90.pdb + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\$(Platform)\$(Configuration)\xmlrpc.lib + true + + + true + .\Release\xmlrpc/xmlrpc.bsc + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + .;..\..\curl\include;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + .;..\..\curl\include;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + .;..\..\curl\include;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + .;..\..\curl\include;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + true + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj b/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj new file mode 100644 index 0000000000..753b52b9c9 --- /dev/null +++ b/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj @@ -0,0 +1,233 @@ + + + + + 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 + .\Debug\xmltok\ + .\Debug\xmltok\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + .\Release\xmltok\ + .\Release\xmltok\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + Disabled + ..;.;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\Debug\xmltok/xmltok.pch + .\Debug\xmltok/ + .\Debug\xmltok/ + .\Debug\xmltok/ + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\xmltokD.lib + true + + + true + .\Debug\xmltok/xmltok.bsc + + + + + X64 + + + Disabled + ..;.;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;XML_DTD;XML_NS;_LIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + .\Debug\xmltok/xmltok.pch + $(IntDir)xmltok\ + $(IntDir)xmltok\vc90.pdb + Level3 + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\$(Platform)\$(Configuration)\xmltokD.lib + true + + + true + .\Debug\xmltok/xmltok.bsc + + + + + MaxSpeed + OnlyExplicitInline + ..;.;%(AdditionalIncludeDirectories) + NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + .\Release\xmltok/xmltok.pch + .\Release\xmltok/ + .\Release\xmltok/ + .\Release\xmltok/ + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\xmltok.lib + true + + + true + .\Release\xmltok/xmltok.bsc + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + ..;.;%(AdditionalIncludeDirectories) + NDEBUG;XML_NS;WIN32;_WINDOWS;XML_DTD;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + true + .\Release\xmltok/xmltok.pch + $(IntDir)xmltok\ + $(IntDir)xmltok\vc90.pdb + Level3 + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + ..\lib\$(Platform)\$(Configuration)\xmltok.lib + true + + + true + .\Release\xmltok/xmltok.bsc + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/inet_pton.c b/src/inet_pton.c index a38030f188..9d293ed520 100644 --- a/src/inet_pton.c +++ b/src/inet_pton.c @@ -42,8 +42,10 @@ #ifdef WIN32 #include +#if _MSC_VER < 1600 #define EAFNOSUPPORT WSAEAFNOSUPPORT #endif +#endif #include diff --git a/src/mod/applications/mod_avmd/mod_avmd.2010.vcxproj b/src/mod/applications/mod_avmd/mod_avmd.2010.vcxproj new file mode 100644 index 0000000000..32e3616880 --- /dev/null +++ b/src/mod/applications/mod_avmd/mod_avmd.2010.vcxproj @@ -0,0 +1,154 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_avmd + {990BAA76-89D3-4E38-8479-C7B28784EFC8} + mod_avmd + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + false + + + NotSet + %(AdditionalDependencies) + %(AdditionalLibraryDirectories) + + + + + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + true + false + false + true + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_commands/mod_commands.2010.vcxproj b/src/mod/applications/mod_commands/mod_commands.2010.vcxproj new file mode 100644 index 0000000000..e3025c2f75 --- /dev/null +++ b/src/mod/applications/mod_commands/mod_commands.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_commands + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB} + mod_commands + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_conference/mod_conference.2010.vcxproj b/src/mod/applications/mod_conference/mod_conference.2010.vcxproj new file mode 100644 index 0000000000..33d914a965 --- /dev/null +++ b/src/mod/applications/mod_conference/mod_conference.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_conference + {C24FB505-05D7-4319-8485-7540B44C8603} + mod_conference + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_curl/mod_curl.2010.vcxproj b/src/mod/applications/mod_curl/mod_curl.2010.vcxproj new file mode 100644 index 0000000000..dd7ea67bd0 --- /dev/null +++ b/src/mod/applications/mod_curl/mod_curl.2010.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_curl + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED} + mod_curl + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\curl\include;%(RootDir)%(Directory)..\..\..\..\libs\json-c-0.9;%(AdditionalIncludeDirectories) + CURL_STATICLIB;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\curl\include;%(RootDir)%(Directory)..\..\..\..\libs\json-c-0.9;%(AdditionalIncludeDirectories) + CURL_STATICLIB;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\curl\include;%(RootDir)%(Directory)..\..\..\..\libs\json-c-0.9;%(AdditionalIncludeDirectories) + CURL_STATICLIB;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\curl\include;%(RootDir)%(Directory)..\..\..\..\libs\json-c-0.9;%(AdditionalIncludeDirectories) + CURL_STATICLIB;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + + + + {87ee9da4-de1e-4448-8324-183c98dca588} + false + + + {9778f1c0-09bc-4698-8ebc-bd982247209a} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_db/mod_db.2010.vcxproj b/src/mod/applications/mod_db/mod_db.2010.vcxproj new file mode 100644 index 0000000000..12f112b97f --- /dev/null +++ b/src/mod/applications/mod_db/mod_db.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_db + {F6A33240-8F29-48BD-98F0-826995911799} + mod_db + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_dptools/mod_dptools.2010.vcxproj b/src/mod/applications/mod_dptools/mod_dptools.2010.vcxproj new file mode 100644 index 0000000000..833476bf8b --- /dev/null +++ b/src/mod/applications/mod_dptools/mod_dptools.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_dptools + {B5881A85-FE70-4F64-8607-2CAAE52669C6} + mod_dptools + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_easyroute/mod_easyroute.2010.vcxproj b/src/mod/applications/mod_easyroute/mod_easyroute.2010.vcxproj new file mode 100644 index 0000000000..36dafe0b9c --- /dev/null +++ b/src/mod/applications/mod_easyroute/mod_easyroute.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_easyroute + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36} + mod_easyroute + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_enum/mod_enum.2010.vcxproj b/src/mod/applications/mod_enum/mod_enum.2010.vcxproj new file mode 100644 index 0000000000..e7bed783f1 --- /dev/null +++ b/src/mod/applications/mod_enum/mod_enum.2010.vcxproj @@ -0,0 +1,143 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_enum + {71A967D5-0E99-4CEF-A587-98836EE6F2EF} + mod_enum + Win32Proj + + + + DynamicLibrary + NotSet + + + DynamicLibrary + NotSet + + + DynamicLibrary + NotSet + + + DynamicLibrary + NotSet + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\udns;%(AdditionalIncludeDirectories) + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\udns;%(AdditionalIncludeDirectories) + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\udns;%(AdditionalIncludeDirectories) + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\udns;%(AdditionalIncludeDirectories) + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + + + + {4043fc6a-9a30-4577-8ad5-9b233c9575d8} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_esf/mod_esf.2010.vcxproj b/src/mod/applications/mod_esf/mod_esf.2010.vcxproj new file mode 100644 index 0000000000..d259ff8a7e --- /dev/null +++ b/src/mod/applications/mod_esf/mod_esf.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_esf + {3850D93A-5F24-4922-BC1C-74D08C37C256} + mod_esf + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_expr/mod_expr.2010.vcxproj b/src/mod/applications/mod_expr/mod_expr.2010.vcxproj new file mode 100644 index 0000000000..0b66d10226 --- /dev/null +++ b/src/mod/applications/mod_expr/mod_expr.2010.vcxproj @@ -0,0 +1,156 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_expr + {65A6273D-FCAB-4C55-B09E-65100141A5D4} + mod_expr + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + /J + + + 4100;4701;%(DisableSpecificWarnings) + + + false + + + + + + + X64 + + + /J + + + 4100;4701;%(DisableSpecificWarnings) + + + false + + + MachineX64 + + + + + /J + + + 4100;4701;%(DisableSpecificWarnings) + + + false + + + + + + + X64 + + + /J + + + 4100;4701;%(DisableSpecificWarnings) + + + false + + + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_fifo/mod_fifo.2010.vcxproj b/src/mod/applications/mod_fifo/mod_fifo.2010.vcxproj new file mode 100644 index 0000000000..c1ef7d0b97 --- /dev/null +++ b/src/mod/applications/mod_fifo/mod_fifo.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_fifo + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD} + mod_fifo + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_fsv/mod_fsv.2010.vcxproj b/src/mod/applications/mod_fsv/mod_fsv.2010.vcxproj new file mode 100644 index 0000000000..3780b46c7e --- /dev/null +++ b/src/mod/applications/mod_fsv/mod_fsv.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_fsv + {E3246D17-E29B-4AB5-962A-C69B0C5837BB} + mod_fsv + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_hash/mod_hash.2010.vcxproj b/src/mod/applications/mod_hash/mod_hash.2010.vcxproj new file mode 100644 index 0000000000..d3babd6e21 --- /dev/null +++ b/src/mod/applications/mod_hash/mod_hash.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_hash + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65} + mod_hash + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_lcr/mod_lcr.2010.vcxproj b/src/mod/applications/mod_lcr/mod_lcr.2010.vcxproj new file mode 100644 index 0000000000..2621049857 --- /dev/null +++ b/src/mod/applications/mod_lcr/mod_lcr.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_lcr + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439} + mod_lcr + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_nibblebill/mod_nibblebill.2010.vcxproj b/src/mod/applications/mod_nibblebill/mod_nibblebill.2010.vcxproj new file mode 100644 index 0000000000..d2f59e2f02 --- /dev/null +++ b/src/mod/applications/mod_nibblebill/mod_nibblebill.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_nibblebill + {3C977801-FE88-48F2-83D3-FA2EBFF6688E} + mod_nibblebill + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(PreprocessorDefinitions) + + + true + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + %(PreprocessorDefinitions) + + + true + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_rss/mod_rss.2010.vcxproj b/src/mod/applications/mod_rss/mod_rss.2010.vcxproj new file mode 100644 index 0000000000..235808af7e --- /dev/null +++ b/src/mod/applications/mod_rss/mod_rss.2010.vcxproj @@ -0,0 +1,137 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_rss + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} + mod_rss + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_skel/mod_skel.2010.vcxproj b/src/mod/applications/mod_skel/mod_skel.2010.vcxproj new file mode 100644 index 0000000000..e1f1bf8c84 --- /dev/null +++ b/src/mod/applications/mod_skel/mod_skel.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_skel + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39} + mod_skel + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_snom/mod_snom.2010.vcxproj b/src/mod/applications/mod_snom/mod_snom.2010.vcxproj new file mode 100644 index 0000000000..dfe2a92444 --- /dev/null +++ b/src/mod/applications/mod_snom/mod_snom.2010.vcxproj @@ -0,0 +1,133 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_snom + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} + mod_snom + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_spandsp/mod_spandsp.2010.vcxproj b/src/mod/applications/mod_spandsp/mod_spandsp.2010.vcxproj new file mode 100644 index 0000000000..4f1611208a --- /dev/null +++ b/src/mod/applications/mod_spandsp/mod_spandsp.2010.vcxproj @@ -0,0 +1,151 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_spandsp + {1E21AFE0-6FDB-41D2-942D-863607C24B91} + mod_spandsp + Win32Proj + + + + DynamicLibrary + NotSet + + + DynamicLibrary + NotSet + + + DynamicLibrary + NotSet + + + DynamicLibrary + NotSet + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + + + + + + + + + + + + {1cbb0077-18c5-455f-801c-0a0ce7b0bbf5} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_valet_parking/mod_valet_parking.2010.vcxproj b/src/mod/applications/mod_valet_parking/mod_valet_parking.2010.vcxproj new file mode 100644 index 0000000000..5e006e13f9 --- /dev/null +++ b/src/mod/applications/mod_valet_parking/mod_valet_parking.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_valet_parking + {432DB165-1EB2-4781-A9C0-71E62610B20A} + mod_valet_parking + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_vmd/mod_vmd.2010.vcxproj b/src/mod/applications/mod_vmd/mod_vmd.2010.vcxproj new file mode 100644 index 0000000000..dfc60391b8 --- /dev/null +++ b/src/mod/applications/mod_vmd/mod_vmd.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_vmd + {14E4A972-9CFB-436D-B0A5-4943F3F80D47} + mod_vmd + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/applications/mod_voicemail/mod_voicemail.2010.vcxproj b/src/mod/applications/mod_voicemail/mod_voicemail.2010.vcxproj new file mode 100644 index 0000000000..cb6723a623 --- /dev/null +++ b/src/mod/applications/mod_voicemail/mod_voicemail.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_voicemail + {D7F1E3F2-A3F4-474C-8555-15122571AF52} + mod_voicemail + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/asr_tts/mod_cepstral/mod_cepstral.2010.vcxproj b/src/mod/asr_tts/mod_cepstral/mod_cepstral.2010.vcxproj new file mode 100644 index 0000000000..2bc46efdca --- /dev/null +++ b/src/mod/asr_tts/mod_cepstral/mod_cepstral.2010.vcxproj @@ -0,0 +1,143 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_cepstral + {692F6330-4D87-4C82-81DF-40DB5892636E} + mod_cepstral + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + C:\Program Files\Cepstral\sdk\include;%(AdditionalIncludeDirectories) + + + + + swift.lib;%(AdditionalDependencies) + C:\Program Files\Cepstral\sdk\lib\winnt;C:\Program Files\Cepstral\sdk\lib\windows;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + C:\Program Files\Cepstral\sdk\include;%(AdditionalIncludeDirectories) + + + + + swift.lib;%(AdditionalDependencies) + C:\Program Files\Cepstral\sdk\lib\winnt;C:\Program Files\Cepstral\sdk\lib\windows;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + C:\Program Files\Cepstral\sdk\include;%(AdditionalIncludeDirectories) + + + + + swift.lib;%(AdditionalDependencies) + C:\Program Files\Cepstral\sdk\lib\winnt;C:\Program Files\Cepstral\sdk\lib\windows;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + C:\Program Files\Cepstral\sdk\include;%(AdditionalIncludeDirectories) + + + + + swift.lib;%(AdditionalDependencies) + C:\Program Files\Cepstral\sdk\lib\winnt;C:\Program Files\Cepstral\sdk\lib\windows;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/asr_tts/mod_flite/mod_flite.2010.vcxproj b/src/mod/asr_tts/mod_flite/mod_flite.2010.vcxproj new file mode 100644 index 0000000000..7ffe03ca40 --- /dev/null +++ b/src/mod/asr_tts/mod_flite/mod_flite.2010.vcxproj @@ -0,0 +1,271 @@ + + + + + Debug Static + Win32 + + + Debug Static + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release Static + Win32 + + + Release Static + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_flite + {66444AEE-554C-11DD-A9F0-8C5D56D89593} + mod_flite + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + true + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + ../../../../libs/flite-1.3.99/include;%(AdditionalIncludeDirectories) + APT_LIB_EXPORT;%(PreprocessorDefinitions) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + ../../../../libs/flite-1.3.99/include;%(AdditionalIncludeDirectories) + APT_LIB_EXPORT;%(PreprocessorDefinitions) + + + + + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + ../../../../libs/flite-1.3.99/include;%(AdditionalIncludeDirectories) + APT_LIB_EXPORT;%(PreprocessorDefinitions) + + + + + %(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + ../../../../libs/flite-1.3.99/include;%(AdditionalIncludeDirectories) + APT_LIB_EXPORT;%(PreprocessorDefinitions) + + + + + %(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + ../../../../libs/flite-1.3.99/include;%(AdditionalIncludeDirectories) + + + + + %(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + ../../../../libs/flite-1.3.99/include;%(AdditionalIncludeDirectories) + + + + + %(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + ../../../../libs/flite-1.3.99/include;%(AdditionalIncludeDirectories) + + + + + %(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + ../../../../libs/flite-1.3.99/include;%(AdditionalIncludeDirectories) + + + + + %(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {d5d2bf72-29fe-4982-a9fa-82fdd086db1b} + false + + + {0ad1177e-1fd8-4643-9391-431467a11084} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.2010.vcxproj b/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.2010.vcxproj new file mode 100644 index 0000000000..72ac117f83 --- /dev/null +++ b/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.2010.vcxproj @@ -0,0 +1,198 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_unimrcp + {D07C378A-F5F7-438F-ADF3-4AC4FB1883CD} + mod_unimrcp + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Platform)\$(Configuration)\ + + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + $(SolutionDir)Debug/bin;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + $(SolutionDir)\$(Platform)Debug;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + $(SolutionDir)Release/bin;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + APT_STATIC_LIB;MPF_STATIC_LIB;MRCP_STATIC_LIB;LIBSOFIA_SIP_UA_STATIC;%(PreprocessorDefinitions) + + + + + $(SolutionDir)\$(Platform)Debug;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + CompileAsC + CompileAsC + CompileAsC + CompileAsC + + + + + {13deeca0-bdd4-4744-a1a2-8eb0a44df3d2} + false + + + {b5a00bfa-6083-4fae-a097-71642d6473b5} + false + + + {72782932-37cc-46ae-8c7f-9a7b1a6ee108} + false + + + {12a49562-bab9-43a3-a21d-15b60bbb4c31} + false + + + {a9edac04-6a5f-4ba7-bc0d-cce7b255b6ea} + false + + + {1c320193-46a6-4b34-9c56-8ab584fc1b56} + false + + + {504b3154-7a4f-459d-9877-b951021c3f1f} + false + + + {746f3632-5bb2-4570-9453-31d6d58a7d8e} + false + + + {deb01acb-d65f-4a62-aed9-58c1054499e9} + false + + + {f057da7f-79e5-4b00-845c-ef446ef055e3} + false + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {70a49bc2-7500-41d0-b75d-edcc5be987a0} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_amr/mod_amr.2010.vcxproj b/src/mod/codecs/mod_amr/mod_amr.2010.vcxproj new file mode 100644 index 0000000000..71f0009253 --- /dev/null +++ b/src/mod/codecs/mod_amr/mod_amr.2010.vcxproj @@ -0,0 +1,253 @@ + + + + + Debug Passthrough + Win32 + + + Debug Passthrough + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release Passthrough + Win32 + + + Release Passthrough + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_amr + {8DEB383C-4091-4F42-A56F-C9E46D552D79} + mod_amr + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libamr\src\include;%(AdditionalIncludeDirectories) + + + + + libamr.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libamr\src\include;%(AdditionalIncludeDirectories) + + + + + libamr.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libamr\src\include;%(AdditionalIncludeDirectories) + + + + + libamr.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libamr\src\include;%(AdditionalIncludeDirectories) + + + + + libamr.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libamr\src\include;%(AdditionalIncludeDirectories) + AMR_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libamr\src\include;%(AdditionalIncludeDirectories) + AMR_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libamr\src\include;%(AdditionalIncludeDirectories) + AMR_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libamr\src\include;%(AdditionalIncludeDirectories) + AMR_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_bv/mod_bv.2010.vcxproj b/src/mod/codecs/mod_bv/mod_bv.2010.vcxproj new file mode 100644 index 0000000000..06851b5b24 --- /dev/null +++ b/src/mod/codecs/mod_bv/mod_bv.2010.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_bv + {D5C87B19-150D-4EF3-A671-96589BD2D14A} + mod_bv + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\broadvoice\src\broadvoice;%(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\broadvoice\src\broadvoice;%(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\broadvoice\src\broadvoice;%(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\broadvoice\src\broadvoice;%(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + + + + {cf70f278-3364-4395-a2e1-23501c9b8ad2} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_celt/mod_celt.vcxproj b/src/mod/codecs/mod_celt/mod_celt.vcxproj new file mode 100644 index 0000000000..01c55d4217 --- /dev/null +++ b/src/mod/codecs/mod_celt/mod_celt.vcxproj @@ -0,0 +1,142 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {4D418176-3B33-47E6-A63E-01BA34ADD21C} + mod_celt + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + ..\..\..\..\libs\celt-0.7.1\libcelt;%(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + ..\..\..\..\libs\celt-0.7.1\libcelt;%(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + ..\..\..\..\libs\celt-0.7.1\libcelt;%(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + ..\..\..\..\libs\celt-0.7.1\libcelt;%(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + + + + {abb71a76-42b0-47a4-973a-42e3d920c6fd} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_g723_1/mod_g723_1.2010.vcxproj b/src/mod/codecs/mod_g723_1/mod_g723_1.2010.vcxproj new file mode 100644 index 0000000000..bdd445aa4e --- /dev/null +++ b/src/mod/codecs/mod_g723_1/mod_g723_1.2010.vcxproj @@ -0,0 +1,260 @@ + + + + + Debug Passthrough + Win32 + + + Debug Passthrough + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release Passthrough + Win32 + + + Release Passthrough + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_g723_1 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758} + mod_g723_1 + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg723\src\include;%(AdditionalIncludeDirectories) + + + + + libg723.lib;%(AdditionalDependencies) + false + + + $(OutDir)mod_g723_1.lib + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg723\src\include;%(AdditionalIncludeDirectories) + + + + + libg723.lib;%(AdditionalDependencies) + + + false + + + $(OutDir)mod_g723_1.lib + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg723\src\include;%(AdditionalIncludeDirectories) + + + + + libg723.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg723\src\include;%(AdditionalIncludeDirectories) + + + + + libg723.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg723\src\include;%(AdditionalIncludeDirectories) + G723_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg723\src\include;%(AdditionalIncludeDirectories) + G723_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg723\src\include;%(AdditionalIncludeDirectories) + G723_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg723\src\include;%(AdditionalIncludeDirectories) + G723_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + $(SolutionDir)$(Platform)\release/mod/$(ProjectName).dll + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_g729/mod_g729.2010.vcxproj b/src/mod/codecs/mod_g729/mod_g729.2010.vcxproj new file mode 100644 index 0000000000..52ec59d989 --- /dev/null +++ b/src/mod/codecs/mod_g729/mod_g729.2010.vcxproj @@ -0,0 +1,259 @@ + + + + + Debug Passthrough + Win32 + + + Debug Passthrough + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release Passthrough + Win32 + + + Release Passthrough + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_g729 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} + mod_g729 + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg729\src\include;%(AdditionalIncludeDirectories) + + + + + libg729.lib;FreeSwitchCore.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg729\src\include;%(AdditionalIncludeDirectories) + + + + + libg729.lib;FreeSwitchCore.lib;%(AdditionalDependencies) + + + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg729\src\include;%(AdditionalIncludeDirectories) + + + + + libg729.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg729\src\include;%(AdditionalIncludeDirectories) + + + + + libg729.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg729\src\include;%(AdditionalIncludeDirectories) + G729_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg729\src\include;%(AdditionalIncludeDirectories) + G729_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg729\src\include;%(AdditionalIncludeDirectories) + G729_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\codec\libg729\src\include;%(AdditionalIncludeDirectories) + G729_PASSTHROUGH;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_h26x/mod_h26x.2010.vcxproj b/src/mod/codecs/mod_h26x/mod_h26x.2010.vcxproj new file mode 100644 index 0000000000..7c639a226b --- /dev/null +++ b/src/mod/codecs/mod_h26x/mod_h26x.2010.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_h26x + {2C3C2423-234B-4772-8899-D3B137E5CA35} + mod_h26x + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\libresample\include;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\libresample\win;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\libresample\include;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\libresample\win;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\libresample\include;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\libresample\win;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\libresample\include;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\libresample\win;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_ilbc/mod_ilbc.2010.vcxproj b/src/mod/codecs/mod_ilbc/mod_ilbc.2010.vcxproj new file mode 100644 index 0000000000..4e975af142 --- /dev/null +++ b/src/mod/codecs/mod_ilbc/mod_ilbc.2010.vcxproj @@ -0,0 +1,143 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_ilbc + {D3EC0AFF-76FC-4210-A825-9A17410660A3} + mod_ilbc + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\ilbc\src\ilbc;%(AdditionalIncludeDirectories) + + + + + ..\..\..\..\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\ilbc\src\ilbc;%(AdditionalIncludeDirectories) + + + + + ..\..\..\..\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\ilbc\src\ilbc;%(AdditionalIncludeDirectories) + + + + + ..\..\..\..\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\ilbc\src\ilbc;%(AdditionalIncludeDirectories) + + + + + ..\..\..\..\libs\codec\ilbc\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {9a5ddf08-c88c-4a35-b7f6-d605228446bd} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_silk/mod_silk.2010.vcxproj b/src/mod/codecs/mod_silk/mod_silk.2010.vcxproj new file mode 100644 index 0000000000..80e84d9a7a --- /dev/null +++ b/src/mod/codecs/mod_silk/mod_silk.2010.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_silk + {AFA983D6-4569-4F88-BA94-555ED00FD9A8} + mod_silk + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\silk\interface;%(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\silk\interface;%(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\silk\interface;%(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\silk\interface;%(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + + + + {56b91d01-9150-4bbf-afa1-5b68ab991b76} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_siren/mod_siren.2010.vcxproj b/src/mod/codecs/mod_siren/mod_siren.2010.vcxproj new file mode 100644 index 0000000000..1b1ddef4d4 --- /dev/null +++ b/src/mod/codecs/mod_siren/mod_siren.2010.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_siren + {0B6C905B-142E-4999-B39D-92FF7951E921} + mod_siren + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\libg722_1\src\g722_1;%(RootDir)%(Directory)..\..\..\..\libs\libg722_1\src\msvc;%(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\libg722_1\src\g722_1;%(RootDir)%(Directory)..\..\..\..\libs\libg722_1\src\msvc;%(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\libg722_1\src\g722_1;%(RootDir)%(Directory)..\..\..\..\libs\libg722_1\src\msvc;%(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\libg722_1\src\g722_1;%(RootDir)%(Directory)..\..\..\..\libs\libg722_1\src\msvc;%(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + + + + {1bc8a8ec-e03b-44df-bcd9-088650f4d29c} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/codecs/mod_speex/mod_speex.2010.vcxproj b/src/mod/codecs/mod_speex/mod_speex.2010.vcxproj new file mode 100644 index 0000000000..0d472039a4 --- /dev/null +++ b/src/mod/codecs/mod_speex/mod_speex.2010.vcxproj @@ -0,0 +1,146 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_speex + {5580D60E-0F77-4716-9CD4-B8E5986FA375} + mod_speex + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\speex\include;%(RootDir)%(Directory)..\..\..\..\libs\speex\include\speex;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\speex-1.1.11.1\win32\libspeex\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\speex\include;%(RootDir)%(Directory)..\..\..\..\libs\speex\include\speex;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\speex-1.1.11.1\win32\libspeex\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\speex\include;%(RootDir)%(Directory)..\..\..\..\libs\speex\include\speex;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\speex-1.1.11.1\win32\libspeex\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\speex\include;%(RootDir)%(Directory)..\..\..\..\libs\speex\include\speex;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\speex-1.1.11.1\win32\libspeex\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {03207781-0d1c-4db3-a71d-45c608f28dbd} + false + + + {e972c52f-9e85-4d65-b19c-031e511e9db4} + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.2010.vcxproj b/src/mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.2010.vcxproj new file mode 100644 index 0000000000..f93d90e499 --- /dev/null +++ b/src/mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_dialplan_asterisk + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24} + mod_dialplan_asterisk + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.2010.vcxproj b/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.2010.vcxproj new file mode 100644 index 0000000000..0f222871b2 --- /dev/null +++ b/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_dialplan_directory + {A27CCA23-1541-4337-81A4-F0A6413078A0} + mod_dialplan_directory + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.2010.vcxproj b/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.2010.vcxproj new file mode 100644 index 0000000000..66c32cef1e --- /dev/null +++ b/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_dialplan_xml + {07113B25-D3AF-4E04-BA77-4CD1171F022C} + mod_dialplan_xml + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/directories/mod_ldap/mod_ldap.2010.vcxproj b/src/mod/directories/mod_ldap/mod_ldap.2010.vcxproj new file mode 100644 index 0000000000..86d76ba25b --- /dev/null +++ b/src/mod/directories/mod_ldap/mod_ldap.2010.vcxproj @@ -0,0 +1,287 @@ + + + + + Debug MS-LDAP + Win32 + + + Debug MS-LDAP + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release MS-LDAP + Win32 + + + Release MS-LDAP + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_ldap + {EC3E5C7F-EE09-47E2-80FE-546363D14A98} + mod_ldap + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + false + false + + + + cscript /nologo "$(ProjectDir)..\..\..\..\w32\vsnet\getlibs.vbs" Mod_ldap Debug + + + %(RootDir)%(Directory)..\..\..\..\libs\openldap\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;LDAP_DEPRECATED;%(PreprocessorDefinitions) + + + + + olber32.lib;oldap_r.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\openldap\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + cscript /nologo "$(ProjectDir)..\..\..\..\w32\vsnet\getlibs.vbs" Mod_ldap Debug + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\openldap\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;LDAP_DEPRECATED;%(PreprocessorDefinitions) + + + + + olber32.lib;oldap_r.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\openldap\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + cscript /nologo "$(ProjectDir)..\..\..\..\w32\vsnet\getlibs.vbs" Mod_ldap Release + + + %(RootDir)%(Directory)..\..\..\..\libs\openldap\include;%(AdditionalIncludeDirectories) + + + + + olber32.lib;oldap_r.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\openldap\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + cscript /nologo "$(ProjectDir)..\..\..\..\w32\vsnet\getlibs.vbs" Mod_ldap Release + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\openldap\include;%(AdditionalIncludeDirectories) + + + + + olber32.lib;oldap_r.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\openldap\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\openldap\include;%(AdditionalIncludeDirectories) + MSLDAP;%(PreprocessorDefinitions) + + + + + Wldap32.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\openldap\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\openldap\include;%(AdditionalIncludeDirectories) + MSLDAP;%(PreprocessorDefinitions) + + + + + Wldap32.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\openldap\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\openldap\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;MSLDAP;%(PreprocessorDefinitions) + MultiThreadedDLL + + + + + Wldap32.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\openldap\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\openldap\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;MSLDAP;%(PreprocessorDefinitions) + MultiThreadedDLL + + + + + Wldap32.lib;%(AdditionalDependencies) + + + $(ProjectDir)..\..\..\..\libs\openldap\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/endpoints/mod_dingaling/mod_dingaling.2010.vcxproj b/src/mod/endpoints/mod_dingaling/mod_dingaling.2010.vcxproj new file mode 100644 index 0000000000..150ca184c4 --- /dev/null +++ b/src/mod/endpoints/mod_dingaling/mod_dingaling.2010.vcxproj @@ -0,0 +1,156 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_dingaling + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3} + mod_dingaling + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\libdingaling\src;%(AdditionalIncludeDirectories) + + + + + /NODEFAULTLIB:LIMBCTD %(AdditionalOptions) + $(ProjectDir)..\..\..\..\libs\libdingaling\$(OutDir);$(ProjectDir)..\..\..\..\libs\iksemel\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\libdingaling\src;%(AdditionalIncludeDirectories) + + + + + /NODEFAULTLIB:LIMBCTD %(AdditionalOptions) + $(ProjectDir)..\..\..\..\libs\libdingaling\$(OutDir);$(ProjectDir)..\..\..\..\libs\iksemel\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\libdingaling\src;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\libdingaling\$(OutDir);$(ProjectDir)..\..\..\..\libs\iksemel\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\libdingaling\src;%(AdditionalIncludeDirectories) + + + + + $(ProjectDir)..\..\..\..\libs\libdingaling\$(OutDir);$(ProjectDir)..\..\..\..\libs\iksemel\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {1906d736-08bd-4ee1-924f-b536249b9a54} + false + + + {f057da7f-79e5-4b00-845c-ef446ef055e3} + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {e727e8f6-935d-46fe-8b0e-37834748a0e3} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/endpoints/mod_loopback/mod_loopback.2010.vcxproj b/src/mod/endpoints/mod_loopback/mod_loopback.2010.vcxproj new file mode 100644 index 0000000000..69d4d3bede --- /dev/null +++ b/src/mod/endpoints/mod_loopback/mod_loopback.2010.vcxproj @@ -0,0 +1,133 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_loopback + {B3F424EC-3D8F-417C-B244-3919D5E1A577} + mod_loopback + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/endpoints/mod_opal/mod_opal_2010.vcxproj b/src/mod/endpoints/mod_opal/mod_opal_2010.vcxproj new file mode 100644 index 0000000000..efe610d5f2 --- /dev/null +++ b/src/mod/endpoints/mod_opal/mod_opal_2010.vcxproj @@ -0,0 +1,91 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + mod_opal + {05C9FB27-480E-4D53-B3B7-6338E2526666} + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + true + + + + %(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;ALLOW_SMP_DANGERS;%(PreprocessorDefinitions) + + + 4100;4101;%(DisableSpecificWarnings) + + + /NODEFAULTLIB:LIMBCTD %(AdditionalOptions) + opalsd.lib;ptlibsd.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + 4100;4101;%(DisableSpecificWarnings) + + + opals.lib;ptlibs.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + false + + + + + + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/endpoints/mod_portaudio/mod_PortAudio.2010.vcxproj b/src/mod/endpoints/mod_portaudio/mod_PortAudio.2010.vcxproj new file mode 100644 index 0000000000..bf32b949e2 --- /dev/null +++ b/src/mod/endpoints/mod_portaudio/mod_PortAudio.2010.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_PortAudio + {5FD31A25-5D83-4794-8BEE-904DAD84CE71} + mod_PortAudio + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\portaudio\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;ALLOW_SMP_DANGERS;%(PreprocessorDefinitions) + + + 4100;4101;%(DisableSpecificWarnings) + + + /NODEFAULTLIB:LIMBCTD %(AdditionalOptions) + ksuser.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\portaudio\winvc\Lib;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\portaudio\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;ALLOW_SMP_DANGERS;%(PreprocessorDefinitions) + + + 4100;4101;%(DisableSpecificWarnings) + + + /NODEFAULTLIB:LIMBCTD %(AdditionalOptions) + ksuser.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\portaudio\winvc\Lib;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\portaudio\include;%(AdditionalIncludeDirectories) + ALLOW_SMP_DANGERS;%(PreprocessorDefinitions) + + + 4100;4101;%(DisableSpecificWarnings) + + + ksuser.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\portaudio\winvc\Lib;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\portaudio\include;%(AdditionalIncludeDirectories) + ALLOW_SMP_DANGERS;%(PreprocessorDefinitions) + + + 4100;4101;%(DisableSpecificWarnings) + + + ksuser.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\portaudio\winvc\Lib;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + + + + + + + {0a18a071-125e-442f-aff7-a3f68abecf99} + false + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/endpoints/mod_skinny/mod_skinny_2010.vcxproj b/src/mod/endpoints/mod_skinny/mod_skinny_2010.vcxproj new file mode 100644 index 0000000000..b1fba99099 --- /dev/null +++ b/src/mod/endpoints/mod_skinny/mod_skinny_2010.vcxproj @@ -0,0 +1,101 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + mod_skinny + {CC1DD008-9406-448D-A0AD-33C3186CFADB} + mod_skinny + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + true + + + + %(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + 4100;4101;%(DisableSpecificWarnings) + + + /NODEFAULTLIB:LIMBCTD %(AdditionalOptions) + %(AdditionalLibraryDirectories) + false + + + + + + + %(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + 4100;4101;%(DisableSpecificWarnings) + + + %(AdditionalLibraryDirectories) + false + + + + + + + + + + + + + + + + + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/endpoints/mod_skypopen/mod_skypopen.2010.vcxproj b/src/mod/endpoints/mod_skypopen/mod_skypopen.2010.vcxproj new file mode 100644 index 0000000000..fd3579d509 --- /dev/null +++ b/src/mod/endpoints/mod_skypopen/mod_skypopen.2010.vcxproj @@ -0,0 +1,87 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + mod_skypopen + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F} + mod_skypopen + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + + + Level4 + false + + + rpcrt4.lib "..\..\..\..\debug\libtiff.lib" "..\..\..\..\libs\spandsp\src\debug\spandsp.lib" %(AdditionalOptions) + false + + + + + + + %(RootDir)%(Directory)..\..\..\..\libs\spandsp\src\msvc;%(RootDir)%(Directory)..\..\..\..\libs\spandsp\src;%(RootDir)%(Directory)..\..\..\..\libs\tiff-3.8.2\libtiff;%(AdditionalIncludeDirectories) + + + + + rpcrt4.lib "..\..\..\..\release\libtiff.lib" "..\..\..\..\libs\spandsp\src\release\spandsp.lib" %(AdditionalOptions) + false + + + + + + + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.2010.vcxproj b/src/mod/endpoints/mod_sofia/mod_sofia.2010.vcxproj new file mode 100644 index 0000000000..21505d007d --- /dev/null +++ b/src/mod/endpoints/mod_sofia/mod_sofia.2010.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_sofia + {0DF3ABD0-DDC0-4265-B778-07C66780979B} + mod_sofia + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\su;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nua;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\win32;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\url;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sip;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\msg;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sdp;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nta;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nea;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\soa;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\iptsec;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\bnf;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\tport;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sresolv;%(AdditionalIncludeDirectories) + LIBSOFIA_SIP_UA_STATIC;PTW32_STATIC_LIB;LIBSRES_STATIC;%(PreprocessorDefinitions) + + + 4201;%(DisableSpecificWarnings) + + + ws2_32.lib;advapi32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\sofia-sip\win32\pthread;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\su;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nua;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\win32;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\url;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sip;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\msg;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sdp;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nta;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nea;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\soa;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\iptsec;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\bnf;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\tport;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sresolv;%(AdditionalIncludeDirectories) + LIBSOFIA_SIP_UA_STATIC;PTW32_STATIC_LIB;LIBSRES_STATIC;%(PreprocessorDefinitions) + + + 4201;%(DisableSpecificWarnings) + + + ws2_32.lib;advapi32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\sofia-sip\win32\pthread;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\su;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nua;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\win32;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\url;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sip;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\msg;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sdp;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nta;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nea;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\soa;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\iptsec;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\bnf;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\tport;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sresolv;%(AdditionalIncludeDirectories) + LIBSOFIA_SIP_UA_STATIC;PTW32_STATIC_LIB;LIBSRES_STATIC;%(PreprocessorDefinitions) + + + 4201;%(DisableSpecificWarnings) + + + ws2_32.lib;advapi32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\sofia-sip\win32\pthread;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\su;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nua;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\win32;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\url;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sip;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\msg;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sdp;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nta;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\nea;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\soa;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\iptsec;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\bnf;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\tport;%(RootDir)%(Directory)..\..\..\..\libs\sofia-sip\libsofia-sip-ua\sresolv;%(AdditionalIncludeDirectories) + LIBSOFIA_SIP_UA_STATIC;PTW32_STATIC_LIB;LIBSRES_STATIC;%(PreprocessorDefinitions) + + + 4201;%(DisableSpecificWarnings) + + + ws2_32.lib;advapi32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\..\..\libs\sofia-sip\win32\pthread;%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + + + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {df018947-0fff-4eb3-bdee-441dc81da7a4} + false + + + {70a49bc2-7500-41d0-b75d-edcc5be987a0} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.2010.vcxproj b/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.2010.vcxproj new file mode 100644 index 0000000000..64fbf8a202 --- /dev/null +++ b/src/mod/event_handlers/mod_cdr_csv/mod_cdr_csv.2010.vcxproj @@ -0,0 +1,141 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_cdr_csv + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E} + mod_cdr_csv + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.2010.vcxproj b/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.2010.vcxproj new file mode 100644 index 0000000000..b1e37a62ed --- /dev/null +++ b/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.2010.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_event_multicast + {784113EF-44D9-4949-835D-7065D3C7AD08} + mod_event_multicast + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + + + + + X64 + + + + + + + ws2_32.lib;%(AdditionalDependencies) + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/event_handlers/mod_event_socket/mod_event_socket.2010.vcxproj b/src/mod/event_handlers/mod_event_socket/mod_event_socket.2010.vcxproj new file mode 100644 index 0000000000..48c5b500ca --- /dev/null +++ b/src/mod/event_handlers/mod_event_socket/mod_event_socket.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_event_socket + {05515420-16DE-4E63-BE73-85BE85BA5142} + mod_event_socket + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/formats/mod_file_string/mod_file_string.2010.vcxproj b/src/mod/formats/mod_file_string/mod_file_string.2010.vcxproj new file mode 100644 index 0000000000..9a543f0a12 --- /dev/null +++ b/src/mod/formats/mod_file_string/mod_file_string.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_file_string + {70564D74-199A-4452-9C60-19ED5F242F0D} + mod_file_string + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/formats/mod_local_stream/mod_local_stream.2010.vcxproj b/src/mod/formats/mod_local_stream/mod_local_stream.2010.vcxproj new file mode 100644 index 0000000000..30b3003c1e --- /dev/null +++ b/src/mod/formats/mod_local_stream/mod_local_stream.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_local_stream + {2CA40887-1622-46A1-A7F9-17FD7E7E545B} + mod_local_stream + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/formats/mod_native_file/mod_native_file.2010.vcxproj b/src/mod/formats/mod_native_file/mod_native_file.2010.vcxproj new file mode 100644 index 0000000000..21b58ee45e --- /dev/null +++ b/src/mod/formats/mod_native_file/mod_native_file.2010.vcxproj @@ -0,0 +1,137 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_native_file + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7} + mod_native_file + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + false + + + + + + + X64 + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/formats/mod_shout/mod_shout.vcxproj b/src/mod/formats/mod_shout/mod_shout.vcxproj new file mode 100644 index 0000000000..3450ef1adc --- /dev/null +++ b/src/mod/formats/mod_shout/mod_shout.vcxproj @@ -0,0 +1,193 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {38FE0559-9910-43A8-9E45-3E5004C27692} + mod_shout + + + + DynamicLibrary + MultiByte + true + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + true + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + Disabled + ../../../../libs/curl/include;../../../../libs/lame-3.97/include;..\..\..\..\libs\win32\libshout;..\..\..\..\libs\libshout-2.2.2\include;..\..\..\..\libs\mpg123\src;..\..\..\..\libs\win32\mpg123;%(AdditionalIncludeDirectories) + CURL_STATICLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level3 + false + ProgramDatabase + false + + + LIBCMTD.LIB;LIBCMT.LIB;%(IgnoreSpecificDefaultLibraries) + true + MachineX86 + + + + + X64 + + + Disabled + ../../../../libs/curl/include;../../../../libs/lame-3.97/include;..\..\..\..\libs\win32\libshout;..\..\..\..\libs\libshout-2.2.2\include;..\..\..\..\libs\mpg123\src;..\..\..\..\libs\win32\mpg123;%(AdditionalIncludeDirectories) + CURL_STATICLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Level3 + false + ProgramDatabase + false + + + LIBCMTD.LIB;LIBCMT.LIB;%(IgnoreSpecificDefaultLibraries) + true + MachineX64 + + + + + MaxSpeed + true + ../../../../libs/curl/include;../../../../libs/lame-3.97/include;..\..\..\..\libs\win32\libshout;..\..\..\..\libs\libshout-2.2.2\include;..\..\..\..\libs\mpg123\src;..\..\..\..\libs\win32\mpg123;%(AdditionalIncludeDirectories) + CURL_STATICLIB;%(PreprocessorDefinitions) + MultiThreadedDLL + true + Level3 + false + ProgramDatabase + + + LIBCMTD.LIB;LIBCMT.LIB;%(IgnoreSpecificDefaultLibraries) + false + true + true + UseLinkTimeCodeGeneration + MachineX86 + + + + + X64 + + + MaxSpeed + true + ../../../../libs/curl/include;../../../../libs/lame-3.97/include;..\..\..\..\libs\win32\libshout;..\..\..\..\libs\libshout-2.2.2\include;..\..\..\..\libs\mpg123\src;..\..\..\..\libs\win32\mpg123;%(AdditionalIncludeDirectories) + CURL_STATICLIB;%(PreprocessorDefinitions) + MultiThreadedDLL + true + Level3 + false + ProgramDatabase + + + LIBCMTD.LIB;LIBCMT.LIB;%(IgnoreSpecificDefaultLibraries) + false + true + true + UseLinkTimeCodeGeneration + MachineX64 + + + + + + + + + + + + + {87ee9da4-de1e-4448-8324-183c98dca588} + false + + + {e316772f-5d8f-4f2a-8f71-094c3e859d34} + false + + + {0feeaec6-4399-4c46-b7db-62ece80d15b4} + + + {d3d8b329-20be-475e-9e83-653cea0e0ef5} + false + + + {419c8f80-d858-4b48-a25c-af4007608137} + false + + + {df018947-0fff-4eb3-bdee-441dc81da7a4} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/formats/mod_sndfile/mod_sndfile.2010.vcxproj b/src/mod/formats/mod_sndfile/mod_sndfile.2010.vcxproj new file mode 100644 index 0000000000..ba79a16c17 --- /dev/null +++ b/src/mod/formats/mod_sndfile/mod_sndfile.2010.vcxproj @@ -0,0 +1,149 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_sndfile + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} + mod_sndfile + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\win32\libsndfile\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + ..\..\..\..\libs\libsndfile\Win32\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\win32\libsndfile\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + + + + + ..\..\..\..\libs\libsndfile\Win32\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\win32\libsndfile\;%(AdditionalIncludeDirectories) + + + + + ..\..\..\..\libs\libsndfile\Win32\$(OutDir);%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\win32\libsndfile\;%(AdditionalIncludeDirectories) + + + + + ..\..\..\..\libs\libsndfile\Win32\$(OutDir);%(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {3d0370ca-bed2-4657-a475-32375cbcb6e4} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/formats/mod_tone_stream/mod_tone_stream.2010.vcxproj b/src/mod/formats/mod_tone_stream/mod_tone_stream.2010.vcxproj new file mode 100644 index 0000000000..e25af90c70 --- /dev/null +++ b/src/mod/formats/mod_tone_stream/mod_tone_stream.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_tone_stream + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52} + mod_tone_stream + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {89385c74-5860-4174-9caf-a39e7c48909c} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_lua/lua/lua.2010.vcxproj b/src/mod/languages/mod_lua/lua/lua.2010.vcxproj new file mode 100644 index 0000000000..289c73ba73 --- /dev/null +++ b/src/mod/languages/mod_lua/lua/lua.2010.vcxproj @@ -0,0 +1,227 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + lua51 + {D0B36172-CD76-454A-9B89-990025266C2A} + lua51 + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + + + + .;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;_WIN32;LUA_BUILD_AS_DLL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + ProgramDatabase + 4127; 4505;%(DisableSpecificWarnings) + false + + + $(OutDir)lua5.1.dll + + + true + false + + + .\$(IntDir)lua5.1.lib + MachineX86 + + + + + X64 + + + .;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;_WIN32;LUA_BUILD_AS_DLL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + ProgramDatabase + 4127; 4505;%(DisableSpecificWarnings) + false + + + $(OutDir)lua5.1.dll + + + true + false + + + .\$(IntDir)lua5.1.lib + MachineX64 + + + + + .;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_WIN32;LUA_BUILD_AS_DLL;%(PreprocessorDefinitions) + MultiThreadedDLL + + + ProgramDatabase + 4127; 4505;%(DisableSpecificWarnings) + + + $(OutDir)lua5.1.dll + + + false + + + .\$(IntDir)lua5.1.lib + MachineX86 + + + + + X64 + + + .;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_WIN32;LUA_BUILD_AS_DLL;%(PreprocessorDefinitions) + MultiThreadedDLL + + + ProgramDatabase + 4127; 4505;%(DisableSpecificWarnings) + + + $(OutDir)lua5.1.dll + + + false + + + .\$(IntDir)lua5.1.lib + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_lua/mod_lua.2010.vcxproj b/src/mod/languages/mod_lua/mod_lua.2010.vcxproj new file mode 100644 index 0000000000..7bab01a7ff --- /dev/null +++ b/src/mod/languages/mod_lua/mod_lua.2010.vcxproj @@ -0,0 +1,156 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_lua + {7B077E7F-1BE7-4291-AB86-55E527B25CAC} + mod_lua + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + .;./lua;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_WIN32;%(PreprocessorDefinitions) + + + 4127; 4505;%(DisableSpecificWarnings) + false + + + false + + + + + + + X64 + + + .;./lua;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_WIN32;%(PreprocessorDefinitions) + + + 4127; 4505;%(DisableSpecificWarnings) + false + + + false + + + MachineX64 + + + + + .;./lua;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_WIN32;%(PreprocessorDefinitions) + + + 4127; 4505;%(DisableSpecificWarnings) + + + false + + + + + + + X64 + + + .;./lua;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_DEPRECATE;_WIN32;%(PreprocessorDefinitions) + + + 4127; 4505;%(DisableSpecificWarnings) + + + false + + + MachineX64 + + + + + + + 6385;%(DisableSpecificWarnings) + 6385;%(DisableSpecificWarnings) + 6385;%(DisableSpecificWarnings) + 6385;%(DisableSpecificWarnings) + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + {d0b36172-cd76-454a-9b89-990025266c2a} + false + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_managed/managed/FreeSWITCH.Managed.2010.csproj b/src/mod/languages/mod_managed/managed/FreeSWITCH.Managed.2010.csproj new file mode 100644 index 0000000000..10c0d89723 --- /dev/null +++ b/src/mod/languages/mod_managed/managed/FreeSWITCH.Managed.2010.csproj @@ -0,0 +1,77 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {834E2B2F-5483-4B80-8FE3-FE48FF76E5C0} + Library + Properties + FreeSWITCH.Managed + FreeSWITCH.Managed + v3.5 + 512 + + + + + 3.5 + + + + true + full + false + ..\..\..\..\..\managed\debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\managed\release\ + TRACE + prompt + 4 + + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_managed/mod_managed.2010.vcxproj b/src/mod/languages/mod_managed/mod_managed.2010.vcxproj new file mode 100644 index 0000000000..962f2cf157 --- /dev/null +++ b/src/mod/languages/mod_managed/mod_managed.2010.vcxproj @@ -0,0 +1,392 @@ + + + + + Debug_CLR + Win32 + + + Debug_CLR + x64 + + + Debug_Mono + Win32 + + + Debug_Mono + x64 + + + Release_CLR + Win32 + + + Release_CLR + x64 + + + Release_Mono + Win32 + + + Release_Mono + x64 + + + + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} + mod_managed + Win32Proj + mod_managed + + + + DynamicLibrary + Unicode + false + true + + + DynamicLibrary + MultiByte + false + + + DynamicLibrary + Unicode + true + true + + + DynamicLibrary + MultiByte + true + + + DynamicLibrary + Unicode + false + true + + + DynamicLibrary + MultiByte + false + + + DynamicLibrary + Unicode + true + true + + + DynamicLibrary + MultiByte + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + $(Configuration)\ + true + true + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + false + $(Configuration)\ + $(Configuration)\ + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + + + + Disabled + %(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + false + Default + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + 4505;%(DisableSpecificWarnings) + + + shlwapi.lib;mscoree.lib;%(AdditionalDependencies) + + + true + true + NotSet + false + NotSet + + + + + X64 + + + Disabled + %(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + false + Default + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + 4505;%(DisableSpecificWarnings) + + + shlwapi.lib;mscoree.lib;%(AdditionalDependencies) + $(SolutionDir)$(Platform)\Debug/mod/$(ProjectName).dll + + + true + true + NotSet + false + MachineX64 + + + + + Full + true + %(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_MONO_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level4 + ProgramDatabase + 4505;%(DisableSpecificWarnings) + + + + + true + Windows + true + true + MachineX86 + + + + + X64 + + + Full + true + %(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_MONO_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level4 + ProgramDatabase + 4505;%(DisableSpecificWarnings) + + + $(SolutionDir)$(Platform)\release/mod/$(ProjectName).dll + + + true + Windows + true + true + MachineX64 + + + + + Disabled + C:\Program Files\Mono\lib\glib-2.0\include;C:\Program Files\Mono\include\glib-2.0;C:\Program Files\Mono\include\mono-1.0;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_MONO_EXPORTS;MOD_EXPORTS;%(PreprocessorDefinitions) + false + Default + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + 4505;%(DisableSpecificWarnings) + + + shlwapi.lib;mono.lib;C:\program Files\Mono\lib\glib-2.0.lib;%(AdditionalDependencies) + + + true + + + NotSet + false + NotSet + + + + + X64 + + + Disabled + C:\Program Files\Mono\lib\glib-2.0\include;C:\Program Files\Mono\include\glib-2.0;C:\Program Files\Mono\include\mono-1.0;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_MONO_EXPORTS;MOD_EXPORTS;%(PreprocessorDefinitions) + false + Default + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + 4505;%(DisableSpecificWarnings) + + + shlwapi.lib;mono.lib;C:\program Files\Mono\lib\glib-2.0.lib;%(AdditionalDependencies) + + + true + + + NotSet + false + MachineX64 + + + + + MaxSpeed + true + ..\..\..\..\libs\apr\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_MONO_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + 4505;%(DisableSpecificWarnings) + + + + + true + Windows + true + true + MachineX86 + + + + + X64 + + + MaxSpeed + true + ..\..\..\..\libs\apr\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_MONO_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + 4505;%(DisableSpecificWarnings) + + + + + true + Windows + true + true + MachineX64 + + + + + + + + + + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + {834e2b2f-5483-4b80-8fe3-fe48ff76e5c0} + false + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey.2010.vcxproj b/src/mod/languages/mod_spidermonkey/mod_spidermonkey.2010.vcxproj new file mode 100644 index 0000000000..fd7c7c82a4 --- /dev/null +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey.2010.vcxproj @@ -0,0 +1,165 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_spidermonkey + {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} + mod_spidermonkey + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + Disabled + %(AdditionalIncludeDirectories) + SM_EXPORTS;JS_HAS_FILE_OBJECT=1;%(PreprocessorDefinitions) + + + + + $(Platform)\$(Configuration)\$(ProjectName).lib + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + Disabled + %(AdditionalIncludeDirectories) + SM_EXPORTS;JS_HAS_FILE_OBJECT=1;%(PreprocessorDefinitions) + + + + + $(Platform)\$(Configuration)\$(ProjectName).lib + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(AdditionalIncludeDirectories) + SM_EXPORTS;JS_HAS_FILE_OBJECT=1;%(PreprocessorDefinitions) + + + + + $(Platform)\$(Configuration)\$(ProjectName).lib + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + SM_EXPORTS;JS_HAS_FILE_OBJECT=1;%(PreprocessorDefinitions) + + + + + $(Platform)\$(Configuration)\$(ProjectName).lib + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {87ee9da4-de1e-4448-8324-183c98dca588} + false + + + {204fa0de-305d-4414-ae2e-f195a23f390d} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey_core_db.2010.vcxproj b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_core_db.2010.vcxproj new file mode 100644 index 0000000000..65ab85c2cb --- /dev/null +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_core_db.2010.vcxproj @@ -0,0 +1,181 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_spidermonkey_core_db + {ACFFF684-4D19-4D48-AF12-88EA1D778BDF} + mod_spidermonkey_core_db + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\$(Configuration)\mod_spidermonkey_core_db\ + $(PlatformName)\$(Configuration)\mod_spidermonkey_core_db + $(PlatformName)\$(Configuration)\mod_spidermonkey_core_db + $(PlatformName)\$(Configuration)\mod_spidermonkey_core_db + + + + + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {204fa0de-305d-4414-ae2e-f195a23f390d} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + {1ad3f51e-bbb6-4090-ba39-9dfab1ef1f5f} + false + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey_curl.2010.vcxproj b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_curl.2010.vcxproj new file mode 100644 index 0000000000..9bcd25813e --- /dev/null +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_curl.2010.vcxproj @@ -0,0 +1,181 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_spidermonkey_curl + {36E854E3-CE12-4348-A125-CCF3F9D74813} + mod_spidermonkey_curl + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\$(Configuration)\mod_spidermonkey_curl\ + $(PlatformName)\$(Configuration)\mod_spidermonkey_curl + $(PlatformName)\$(Configuration)\mod_spidermonkey_curl + $(PlatformName)\$(Configuration)\mod_spidermonkey_curl + + + + + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {87ee9da4-de1e-4448-8324-183c98dca588} + false + + + {204fa0de-305d-4414-ae2e-f195a23f390d} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + {1ad3f51e-bbb6-4090-ba39-9dfab1ef1f5f} + false + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey_odbc.2010.vcxproj b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_odbc.2010.vcxproj new file mode 100644 index 0000000000..178a64aaab --- /dev/null +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_odbc.2010.vcxproj @@ -0,0 +1,191 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_spidermonkey_odbc + {0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} + mod_spidermonkey_odbc + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\$(Configuration)\mod_spidermonkey_odbc\ + $(PlatformName)\$(Configuration)\mod_spidermonkey_odbc + $(PlatformName)\$(Configuration)\mod_spidermonkey_odbc + $(PlatformName)\$(Configuration)\mod_spidermonkey_odbc + + + + + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + + true + %(AdditionalIncludeDirectories) + MultiThreadedDLL + + + + + %(AdditionalLibraryDirectories) + true + true + UseLinkTimeCodeGeneration + false + + + + + + + + + + + X64 + + + true + %(AdditionalIncludeDirectories) + MultiThreadedDLL + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + true + true + UseLinkTimeCodeGeneration + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {204fa0de-305d-4414-ae2e-f195a23f390d} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + {1ad3f51e-bbb6-4090-ba39-9dfab1ef1f5f} + false + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey_socket.2010.vcxproj b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_socket.2010.vcxproj new file mode 100644 index 0000000000..9f1cab8b06 --- /dev/null +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_socket.2010.vcxproj @@ -0,0 +1,161 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_spidermonkey_socket + {028C7278-05D7-4E18-82FE-BE231B844F41} + mod_spidermonkey_socket + Win32Proj + + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\$(Configuration)\mod_spidermonkey_socket\ + $(PlatformName)\$(Configuration)\mod_spidermonkey_socket + $(PlatformName)\$(Configuration)\mod_spidermonkey_socket + $(PlatformName)\$(Configuration)\mod_spidermonkey_socket + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + false + + + MachineX64 + + + + + + + + {204fa0de-305d-4414-ae2e-f195a23f390d} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + {1ad3f51e-bbb6-4090-ba39-9dfab1ef1f5f} + false + + + + + + \ No newline at end of file diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey_teletone.2010.vcxproj b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_teletone.2010.vcxproj new file mode 100644 index 0000000000..8a90a43712 --- /dev/null +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey_teletone.2010.vcxproj @@ -0,0 +1,191 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_spidermonkey_teletone + {8F992C49-6C51-412F-B2A3-34EAB708EB65} + mod_spidermonkey_teletone + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(PlatformName)\$(Configuration)\mod_spidermonkey_teletone\ + $(PlatformName)\$(Configuration)\mod_spidermonkey_teletone + $(PlatformName)\$(Configuration)\mod_spidermonkey_teletone + $(PlatformName)\$(Configuration)\mod_spidermonkey_teletone + + + + + + + + %(RootDir)%(Directory)..\..\..\..\libs\libteletone\src;%(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\libteletone\src;%(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + + %(RootDir)%(Directory)..\..\..\..\libs\libteletone\src;%(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + true + true + UseLinkTimeCodeGeneration + false + + + + + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\libteletone\src;%(AdditionalIncludeDirectories) + + + + + $(SolutionDir)$(Platform)\$(Configuration)/mod/$(ProjectName).dll + %(AdditionalLibraryDirectories) + true + true + UseLinkTimeCodeGeneration + false + + + MachineX64 + + + + + + + + {89385c74-5860-4174-9caf-a39e7c48909c} + false + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {204fa0de-305d-4414-ae2e-f195a23f390d} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + {1ad3f51e-bbb6-4090-ba39-9dfab1ef1f5f} + false + + + + + + \ No newline at end of file diff --git a/src/mod/loggers/mod_console/mod_console.2010.vcxproj b/src/mod/loggers/mod_console/mod_console.2010.vcxproj new file mode 100644 index 0000000000..b862f8ac80 --- /dev/null +++ b/src/mod/loggers/mod_console/mod_console.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_console + {1C453396-D912-4213-89FD-9B489162B7B5} + mod_console + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/loggers/mod_logfile/mod_logfile.2010.vcxproj b/src/mod/loggers/mod_logfile/mod_logfile.2010.vcxproj new file mode 100644 index 0000000000..6248553afb --- /dev/null +++ b/src/mod/loggers/mod_logfile/mod_logfile.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_logfile + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909} + mod_logfile + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/say/mod_say_de/mod_say_de.2010.vcxproj b/src/mod/say/mod_say_de/mod_say_de.2010.vcxproj new file mode 100644 index 0000000000..dda5ed38e5 --- /dev/null +++ b/src/mod/say/mod_say_de/mod_say_de.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_say_de + {5BC072DB-3826-48EA-AF34-FE32AA01E83B} + mod_say_de + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/say/mod_say_en/mod_say_en.2010.vcxproj b/src/mod/say/mod_say_en/mod_say_en.2010.vcxproj new file mode 100644 index 0000000000..4f684dade4 --- /dev/null +++ b/src/mod/say/mod_say_en/mod_say_en.2010.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_say_en + {988CACF7-3FCB-4992-BE69-77872AE67DC8} + mod_say_en + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/say/mod_say_es/mod_say_es.2010.vcxproj b/src/mod/say/mod_say_es/mod_say_es.2010.vcxproj new file mode 100644 index 0000000000..1300e0d666 --- /dev/null +++ b/src/mod/say/mod_say_es/mod_say_es.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_say_es + {FA429E98-8B03-45E6-A096-A4BC5E821DE4} + mod_say_es + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/say/mod_say_fr/mod_say_fr.2010.vcxproj b/src/mod/say/mod_say_fr/mod_say_fr.2010.vcxproj new file mode 100644 index 0000000000..8d208914a3 --- /dev/null +++ b/src/mod/say/mod_say_fr/mod_say_fr.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_say_fr + {06E3A538-AB32-44F2-B477-755FF9CB5D37} + mod_say_fr + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/say/mod_say_it/mod_say_it.2010.vcxproj b/src/mod/say/mod_say_it/mod_say_it.2010.vcxproj new file mode 100644 index 0000000000..ca6c9f8aeb --- /dev/null +++ b/src/mod/say/mod_say_it/mod_say_it.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_say_it + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05} + mod_say_it + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/say/mod_say_nl/mod_say_nl.2010.vcxproj b/src/mod/say/mod_say_nl/mod_say_nl.2010.vcxproj new file mode 100644 index 0000000000..3bd62896e9 --- /dev/null +++ b/src/mod/say/mod_say_nl/mod_say_nl.2010.vcxproj @@ -0,0 +1,143 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_say_nl + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14} + mod_say_nl + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + Disabled + %(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + + + false + + + + + + + X64 + + + Disabled + %(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/say/mod_say_ru/mod_say_ru.2010.vcxproj b/src/mod/say/mod_say_ru/mod_say_ru.2010.vcxproj new file mode 100644 index 0000000000..7d265ed723 --- /dev/null +++ b/src/mod/say/mod_say_ru/mod_say_ru.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_say_ru + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31} + mod_say_ru + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/say/mod_say_zh/mod_say_zh.2010.vcxproj b/src/mod/say/mod_say_zh/mod_say_zh.2010.vcxproj new file mode 100644 index 0000000000..d9a8d01e85 --- /dev/null +++ b/src/mod/say/mod_say_zh/mod_say_zh.2010.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_say_zh + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} + mod_say_zh + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + + false + + + + + + + X64 + + + + + + + false + + + MachineX64 + + + + + + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.2010.vcxproj b/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.2010.vcxproj new file mode 100644 index 0000000000..310abe6067 --- /dev/null +++ b/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.2010.vcxproj @@ -0,0 +1,149 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_xml_cdr + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836} + mod_xml_cdr + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(AdditionalIncludeDirectories) + + + + + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + false + + + MachineX64 + + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {87ee9da4-de1e-4448-8324-183c98dca588} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/xml_int/mod_xml_curl/mod_xml_curl.2010.vcxproj b/src/mod/xml_int/mod_xml_curl/mod_xml_curl.2010.vcxproj new file mode 100644 index 0000000000..0d30ff3489 --- /dev/null +++ b/src/mod/xml_int/mod_xml_curl/mod_xml_curl.2010.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_xml_curl + {AB91A099-7690-4ECF-8994-E458F4EA1ED4} + mod_xml_curl + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(AdditionalIncludeDirectories) + + + + + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {87ee9da4-de1e-4448-8324-183c98dca588} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj new file mode 100644 index 0000000000..a57eaf0b6d --- /dev/null +++ b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.2010.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + mod_xml_rpc + {CBEC7225-0C21-4DA8-978E-1F158F8AD950} + mod_xml_rpc + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + %(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\abyss\src;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\util\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\Windows;%(AdditionalIncludeDirectories) + ABYSS_WIN32;%(PreprocessorDefinitions) + + + + + ..\..\..\..\libs\xmlrpc\lib;..\..\..\..\libs\xmlrpc\lib\abyss\src\$(OutDir);..\..\..\..\libs\apr-util\xml\expat\lib\LibD;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\abyss\src;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\util\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\Windows;%(AdditionalIncludeDirectories) + ABYSS_WIN32;%(PreprocessorDefinitions) + + + + + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + %(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\abyss\src;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\util\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\Windows;%(AdditionalIncludeDirectories) + ABYSS_WIN32;%(PreprocessorDefinitions) + + + + + ..\..\..\..\libs\xmlrpc\lib;..\..\..\..\libs\xmlrpc\lib\abyss\src\$(OutDir);..\..\..\..\libs\apr-util\xml\expat\lib\LibR;%(AdditionalLibraryDirectories) + false + + + + + + + X64 + + + %(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\abyss\src;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\lib\util\include;%(RootDir)%(Directory)..\..\..\..\libs\xmlrpc-c\Windows;%(AdditionalIncludeDirectories) + ABYSS_WIN32;%(PreprocessorDefinitions) + + + + + %(AdditionalLibraryDirectories) + false + + + MachineX64 + + + + + + + + {87ee9da4-de1e-4448-8324-183c98dca588} + false + + + {d2396dd7-7d38-473a-abb7-6f96d65ae1b9} + false + + + {0d108721-eae8-4baf-8102-d8960ec93647} + false + + + {cee544a9-0303-44c2-8ece-efa7d7bcbbba} + false + + + {b535402e-38d2-4d54-8360-423acbd17192} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/w32/Console/FreeSwitchConsole.2010.vcxproj b/w32/Console/FreeSwitchConsole.2010.vcxproj new file mode 100644 index 0000000000..ddd4d69202 --- /dev/null +++ b/w32/Console/FreeSwitchConsole.2010.vcxproj @@ -0,0 +1,228 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + FreeSwitchConsole + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67} + FreeSwitchConsole + Win32Proj + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(PlatformName)\$(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + FreeSwitch + + + + $(IntDir)BuildLog $(ProjectName).htm + + + Disabled + %(RootDir)%(Directory)include;%(RootDir)%(Directory)..\libs\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + true + + + $(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)FreeSwitchConsole.pdb + Console + true + + + MachineX86 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + X64 + + + Disabled + %(RootDir)%(Directory)include;%(RootDir)%(Directory)..\libs\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level4 + true + ProgramDatabase + true + + + $(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)FreeSwitchConsole.pdb + Console + true + + + MachineX64 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + %(RootDir)%(Directory)include;%(RootDir)%(Directory)..\libs\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + true + ProgramDatabase + + + $(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)FreeSwitchConsole.pdb + Console + true + true + true + + + MachineX86 + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + X64 + + + %(RootDir)%(Directory)include;%(RootDir)%(Directory)..\libs\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level4 + true + ProgramDatabase + + + $(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)FreeSwitchConsole.pdb + Console + true + true + true + + + MachineX64 + + + + + + + + + + + + + + + + + + + + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + + + {202d7a4e-760d-4d0e-afa1-d7459ced30ff} + false + + + + + + \ No newline at end of file diff --git a/w32/Library/FreeSwitchCore.2010.vcxproj b/w32/Library/FreeSwitchCore.2010.vcxproj new file mode 100644 index 0000000000..4024c3a534 --- /dev/null +++ b/w32/Library/FreeSwitchCore.2010.vcxproj @@ -0,0 +1,813 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + FreeSwitchCoreLib + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + FreeSwitchCoreLib + Win32Proj + + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + DynamicLibrary + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(Configuration)\ + true + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + $(Configuration)\ + $(Configuration)\ + false + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + $(SolutionDir)$(PlatformName)\$(Configuration)\ + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + Disabled + ..\..\src\include;..\..\libs\include;..\..\libs\srtp\include;..\..\libs\srtp\crypto\include;..\..\libs\libteletone\src;..\..\libs\win32\sqlite;..\..\libs\pcre;..\..\libs\stfu;..\..\libs\speex\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;FREESWITCHCORE_EXPORTS;PCRE_STATIC;STATICLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Use + switch.h + $(IntDir)$(TargetName).pch + + + Level4 + true + ProgramDatabase + %(ForcedIncludeFiles) + false + Default + + + true + + + rpcrt4.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\libs\apr\$(OutDir);$(ProjectDir)..\..\libs\sqlite\$(OutDir) DLL;$(ProjectDir)..\..\libs\apr-util\$(OutDir);$(ProjectDir)..\..\libs\apr-iconv\$(OutDir);$(ProjectDir)..\..\libs\libresample\win;$(ProjectDir)..\..\libs\srtp\$(OutDir);%(AdditionalLibraryDirectories) + %(AddModuleNamesToAssembly) + true + $(OutDir)FreeSwitch.pdb + Windows + + + + + false + + + + + MachineX86 + + + + + if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\*.*" "$(OutDir)conf\" /C /D /Y /S +if not exist "$(OutDir)db" md "$(OutDir)db" +if not exist "$(OutDir)log" md "$(OutDir)log" +if not exist "$(OutDir)htdocs" md "$(OutDir)htdocs" +if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + X64 + + + Disabled + ..\..\src\include;..\..\libs\include;..\..\libs\srtp\include;..\..\libs\srtp\crypto\include;..\..\libs\libteletone\src;..\..\libs\win32\sqlite;..\..\libs\pcre;..\..\libs\stfu;..\..\libs\speex\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;FREESWITCHCORE_EXPORTS;PCRE_STATIC;STATICLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + Use + switch.h + $(IntDir)$(TargetName).pch + + + Level4 + false + ProgramDatabase + %(ForcedIncludeFiles) + false + + + true + + + rpcrt4.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\libs\apr\$(OutDir);$(ProjectDir)..\..\libs\sqlite\$(OutDir) DLL;$(ProjectDir)..\..\libs\apr-util\$(OutDir);$(ProjectDir)..\..\libs\apr-iconv\$(OutDir);$(ProjectDir)..\..\libs\libresample\win;$(ProjectDir)..\..\libs\srtp\$(OutDir);%(AdditionalLibraryDirectories) + %(AddModuleNamesToAssembly) + true + $(OutDir)FreeSwitch.pdb + Windows + + + + + false + + + $(OutDir)FreeSwitchCore.lib + MachineX64 + + + if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\*.*" "$(OutDir)conf\" /C /D /Y /S +if not exist "$(OutDir)db" md "$(OutDir)db" +if not exist "$(OutDir)log" md "$(OutDir)log" +if not exist "$(OutDir)htdocs" md "$(OutDir)htdocs" +if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + Disabled + ..\..\src\include;..\..\libs\include;..\..\libs\srtp\include;..\..\libs\srtp\crypto\include;..\..\libs\libteletone\src;..\..\libs\win32\sqlite;..\..\libs\pcre;..\..\libs\stfu;..\..\libs\speex\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;FREESWITCHCORE_EXPORTS;STATICLIB;CRASH_PROT;PCRE_STATIC;%(PreprocessorDefinitions) + MultiThreadedDLL + Use + switch.h + $(IntDir)$(TargetName).pch + + + Level4 + true + ProgramDatabase + false + + + true + + + rpcrt4.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\libs\apr\$(OutDir);$(ProjectDir)..\..\libs\sqlite\$(OutDir) DLL;$(ProjectDir)..\..\libs\apr-util\$(OutDir);$(ProjectDir)..\..\libs\apr-iconv\$(OutDir);$(ProjectDir)..\..\libs\libresample\win;$(ProjectDir)..\..\libs\srtp\$(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)FreeSwitchCore.pdb + Windows + true + true + false + + + $(OutDir)FreeSwitchCore.lib + MachineX86 + + + if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\*.*" "$(OutDir)conf\" /C /D /Y /S +if not exist "$(OutDir)db" md "$(OutDir)db" +if not exist "$(OutDir)log" md "$(OutDir)log" +if not exist "$(OutDir)htdocs" md "$(OutDir)htdocs" +if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S + + + + + + + $(IntDir)BuildLog $(ProjectName).htm + + + + + + + X64 + + + Disabled + ..\..\src\include;..\..\libs\include;..\..\libs\srtp\include;..\..\libs\srtp\crypto\include;..\..\libs\libteletone\src;..\..\libs\win32\sqlite;..\..\libs\pcre;..\..\libs\stfu;..\..\libs\speex\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;FREESWITCHCORE_EXPORTS;STATICLIB;CRASH_PROT;PCRE_STATIC;%(PreprocessorDefinitions) + MultiThreadedDLL + Use + switch.h + $(IntDir)$(TargetName).pch + + + Level4 + false + ProgramDatabase + false + + + true + + + rpcrt4.lib;%(AdditionalDependencies) + $(ProjectDir)..\..\libs\apr\$(OutDir);$(ProjectDir)..\..\libs\sqlite\$(OutDir) DLL;$(ProjectDir)..\..\libs\apr-util\$(OutDir);$(ProjectDir)..\..\libs\apr-iconv\$(OutDir);$(ProjectDir)..\..\libs\libresample\win;$(ProjectDir)..\..\libs\srtp\$(OutDir);%(AdditionalLibraryDirectories) + true + $(OutDir)FreeSwitchCore.pdb + Windows + true + true + false + + + $(OutDir)FreeSwitchCore.lib + MachineX64 + + + if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\*.*" "$(OutDir)conf\" /C /D /Y /S +if not exist "$(OutDir)db" md "$(OutDir)db" +if not exist "$(OutDir)log" md "$(OutDir)log" +if not exist "$(OutDir)htdocs" md "$(OutDir)htdocs" +if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + 6385;%(DisableSpecificWarnings) + 6385;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + + + + + + + /analyze:stacksize17000 %(AdditionalOptions) + /analyze:stacksize17000 %(AdditionalOptions) + + + + + + + + + + 4389;4127;%(DisableSpecificWarnings) + 4389;4127;%(DisableSpecificWarnings) + 4389;4127;%(DisableSpecificWarnings) + 4389;4127;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;4389;4706;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;4389;4706;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;4389;4706;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;4389;4706;%(DisableSpecificWarnings) + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + + + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + + + + + 4100;4127;%(DisableSpecificWarnings) + _CRT_SECURE_NO_DEPRECATE;STATICLIB;%(PreprocessorDefinitions) + + + 4100;4127;%(DisableSpecificWarnings) + + + + + + + + + 4100;%(DisableSpecificWarnings) + + + 4100;%(DisableSpecificWarnings) + + + + + + + 4100;%(DisableSpecificWarnings) + + + 4100;%(DisableSpecificWarnings) + + + + + + + + + 4100;%(DisableSpecificWarnings) + + + 4100;%(DisableSpecificWarnings) + + + + + + + 4100;%(DisableSpecificWarnings) + + + 4100;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Document + true + true + true + true + + + Generating switch_version.h + cscript /nologo "$(ProjectDir)..\..\libs\win32\util.vbs" Version "$(ProjectDir)" "$(ProjectDir)..\..\" "$(ProjectDir)..\..\src\include\switch_version.h.template" "$(ProjectDir)..\..\src\include\switch_version.h" + + ..\..\src\include\switch.h;..\..\src\include\switch_apr.h;..\..\src\include\switch_buffer.h;..\..\src\include\switch_caller.h;..\..\src\include\switch_channel.h;..\..\src\include\switch_console.h;..\..\src\include\switch_core.h;..\..\src\include\switch_event.h;..\..\src\include\switch_frame.h;..\..\src\include\switch_ivr.h;..\..\src\include\switch_loadable_module.h;..\..\src\include\switch_log.h;..\..\src\include\switch_module_interfaces.h;..\..\src\include\switch_platform.h;..\..\src\include\switch_resample.h;..\..\src\include\switch_rtp.h;..\..\src\include\switch_sqlite.h;..\..\src\include\switch_stun.h;..\..\src\include\switch_types.h;..\..\src\include\switch_utils.h;..\..\src\include\switch_xml.h;..\..\src\switch_buffer.c;..\..\src\switch_caller.c;..\..\src\switch_channel.c;..\..\src\switch_config.c;..\..\src\switch_console.c;..\..\src\switch_core.c;..\..\src\switch_event.c;..\..\src\switch_ivr.c;..\..\src\switch_loadable_module.c;..\..\src\switch_log.c;..\..\src\switch_resample.c;..\..\src\switch_rtp.c;..\..\src\switch_stun.c;..\..\src\switch_utils.c;..\..\src\switch_xml.c;%(AdditionalInputs) + ..\..\src\include\switch_version.h;lastversion;%(Outputs) + Generating switch_version.h + cscript /nologo "$(ProjectDir)..\..\libs\win32\util.vbs" Version "$(ProjectDir)" "$(ProjectDir)..\..\" "$(ProjectDir)..\..\src\include\switch_version.h.template" "$(ProjectDir)..\..\src\include\switch_version.h" + + ..\..\src\include\switch.h;..\..\src\include\switch_apr.h;..\..\src\include\switch_buffer.h;..\..\src\include\switch_caller.h;..\..\src\include\switch_channel.h;..\..\src\include\switch_console.h;..\..\src\include\switch_core.h;..\..\src\include\switch_event.h;..\..\src\include\switch_frame.h;..\..\src\include\switch_ivr.h;..\..\src\include\switch_loadable_module.h;..\..\src\include\switch_log.h;..\..\src\include\switch_module_interfaces.h;..\..\src\include\switch_platform.h;..\..\src\include\switch_resample.h;..\..\src\include\switch_rtp.h;..\..\src\include\switch_sqlite.h;..\..\src\include\switch_stun.h;..\..\src\include\switch_types.h;..\..\src\include\switch_utils.h;..\..\src\include\switch_xml.h;..\..\src\switch_buffer.c;..\..\src\switch_caller.c;..\..\src\switch_channel.c;..\..\src\switch_config.c;..\..\src\switch_console.c;..\..\src\switch_core.c;..\..\src\switch_event.c;..\..\src\switch_ivr.c;..\..\src\switch_loadable_module.c;..\..\src\switch_log.c;..\..\src\switch_resample.c;..\..\src\switch_rtp.c;..\..\src\switch_stun.c;..\..\src\switch_utils.c;..\..\src\switch_xml.c;%(AdditionalInputs) + ..\..\src\include\switch_version.h;lastversion;%(Outputs) + Generating switch_version.h + cscript /nologo "$(ProjectDir)..\..\libs\win32\util.vbs" Version "$(ProjectDir)" "$(ProjectDir)..\..\" "$(ProjectDir)..\..\src\include\switch_version.h.template" "$(ProjectDir)..\..\src\include\switch_version.h" + + ..\..\src\include\switch.h;..\..\src\include\switch_apr.h;..\..\src\include\switch_buffer.h;..\..\src\include\switch_caller.h;..\..\src\include\switch_channel.h;..\..\src\include\switch_console.h;..\..\src\include\switch_core.h;..\..\src\include\switch_event.h;..\..\src\include\switch_frame.h;..\..\src\include\switch_ivr.h;..\..\src\include\switch_loadable_module.h;..\..\src\include\switch_log.h;..\..\src\include\switch_module_interfaces.h;..\..\src\include\switch_platform.h;..\..\src\include\switch_resample.h;..\..\src\include\switch_rtp.h;..\..\src\include\switch_sqlite.h;..\..\src\include\switch_stun.h;..\..\src\include\switch_types.h;..\..\src\include\switch_utils.h;..\..\src\include\switch_xml.h;..\..\src\switch_buffer.c;..\..\src\switch_caller.c;..\..\src\switch_channel.c;..\..\src\switch_config.c;..\..\src\switch_console.c;..\..\src\switch_core.c;..\..\src\switch_event.c;..\..\src\switch_ivr.c;..\..\src\switch_loadable_module.c;..\..\src\switch_log.c;..\..\src\switch_resample.c;..\..\src\switch_rtp.c;..\..\src\switch_stun.c;..\..\src\switch_utils.c;..\..\src\switch_xml.c;%(AdditionalInputs) + ..\..\src\include\switch_version.h;lastversion;%(Outputs) + Generating switch_version.h + cscript /nologo "$(ProjectDir)..\..\libs\win32\util.vbs" Version "$(ProjectDir)" "$(ProjectDir)..\..\" "$(ProjectDir)..\..\src\include\switch_version.h.template" "$(ProjectDir)..\..\src\include\switch_version.h" + + ..\..\src\include\switch.h;..\..\src\include\switch_apr.h;..\..\src\include\switch_buffer.h;..\..\src\include\switch_caller.h;..\..\src\include\switch_channel.h;..\..\src\include\switch_console.h;..\..\src\include\switch_core.h;..\..\src\include\switch_event.h;..\..\src\include\switch_frame.h;..\..\src\include\switch_ivr.h;..\..\src\include\switch_loadable_module.h;..\..\src\include\switch_log.h;..\..\src\include\switch_module_interfaces.h;..\..\src\include\switch_platform.h;..\..\src\include\switch_resample.h;..\..\src\include\switch_rtp.h;..\..\src\include\switch_sqlite.h;..\..\src\include\switch_stun.h;..\..\src\include\switch_types.h;..\..\src\include\switch_utils.h;..\..\src\include\switch_xml.h;..\..\src\switch_buffer.c;..\..\src\switch_caller.c;..\..\src\switch_channel.c;..\..\src\switch_config.c;..\..\src\switch_console.c;..\..\src\switch_core.c;..\..\src\switch_event.c;..\..\src\switch_ivr.c;..\..\src\switch_loadable_module.c;..\..\src\switch_log.c;..\..\src\switch_resample.c;..\..\src\switch_rtp.c;..\..\src\switch_stun.c;..\..\src\switch_utils.c;..\..\src\switch_xml.c;%(AdditionalInputs) + ..\..\src\include\switch_version.h;lastversion;%(Outputs) + + + + + {89385c74-5860-4174-9caf-a39e7c48909c} + false + + + {03207781-0d1c-4db3-a71d-45c608f28dbd} + false + + + {eef031cb-fed8-451e-a471-91ec8d4f6750} + false + + + {f057da7f-79e5-4b00-845c-ef446ef055e3} + false + + + {f6c55d93-b927-4483-bb69-15aef3dd2dff} + false + true + false + true + false + + + {8d04b550-d240-4a44-8a18-35da3f7038d9} + false + + + {6edfefd5-3596-4fa9-8eba-b331547b35a3} + false + + + + + + \ No newline at end of file diff --git a/w32/apr.props b/w32/apr.props new file mode 100644 index 0000000000..856e7e3ffb --- /dev/null +++ b/w32/apr.props @@ -0,0 +1,12 @@ + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(SolutionDir)libs\apr\include;%(AdditionalIncludeDirectories) + %(PreprocessorDefinitions) + + + \ No newline at end of file diff --git a/w32/curl.props b/w32/curl.props new file mode 100644 index 0000000000..de23612923 --- /dev/null +++ b/w32/curl.props @@ -0,0 +1,12 @@ + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(SolutionDir)libs\curl\include;%(AdditionalIncludeDirectories) + HAVE_CURL;CURL_STATICLIB;%(PreprocessorDefinitions) + + + \ No newline at end of file diff --git a/w32/module_debug.props b/w32/module_debug.props new file mode 100644 index 0000000000..85c1d0c1d2 --- /dev/null +++ b/w32/module_debug.props @@ -0,0 +1,22 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + false + + + + Disabled + _DEBUG;DEBUG;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebugDLL + ProgramDatabase + true + + + + + \ No newline at end of file diff --git a/w32/module_release.props b/w32/module_release.props new file mode 100644 index 0000000000..8d9029d303 --- /dev/null +++ b/w32/module_release.props @@ -0,0 +1,23 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + false + + + + true + NDEBUG;%(PreprocessorDefinitions) + MultiThreadedDLL + ProgramDatabase + + + true + true + UseLinkTimeCodeGeneration + + + \ No newline at end of file diff --git a/w32/modules.props b/w32/modules.props new file mode 100644 index 0000000000..06c9c831d9 --- /dev/null +++ b/w32/modules.props @@ -0,0 +1,23 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)$(PlatformName)\$(Configuration)\mod\ + $(PlatformName)\$(Configuration)\ + + + + $(SolutionDir)\src\include;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;_USRDLL;MOD_EXPORTS;%(PreprocessorDefinitions) + Level4 + + + $(OutDir)$(TargetName)$(TargetExt) + true + $(OutDir)$(TargetName).pdb + + + \ No newline at end of file diff --git a/w32/spidermonkey.props b/w32/spidermonkey.props new file mode 100644 index 0000000000..8300ac9138 --- /dev/null +++ b/w32/spidermonkey.props @@ -0,0 +1,18 @@ + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + $(SolutionDir)libs\js\src;$(SolutionDir)libs\js\nsprpub\pr\include;$(SolutionDir)src\mod\languages\mod_spidermonkey;%(AdditionalIncludeDirectories) + XP_WIN;JSFILE;EXPORT_JS_API;JS_THREADSAFE;%(PreprocessorDefinitions) + + + ..\..\..\..\libs\nspr-4.6.1.winnt5.$(OutDir)nspr-4.6.1\lib;%(AdditionalLibraryDirectories) + + + \ No newline at end of file diff --git a/w32/winlibs.props b/w32/winlibs.props new file mode 100644 index 0000000000..05674c70c5 --- /dev/null +++ b/w32/winlibs.props @@ -0,0 +1,12 @@ + + + + <_ProjectFileVersion>10.0.30319.1 + <_PropertySheetDisplayName>Freeswitch Core Windows Libraries + + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Ws2_32.lib;Iphlpapi.lib;Winmm.lib;%(AdditionalDependencies) + + + \ No newline at end of file From da17e2a09e5dfce31cf5e387d5b3f12dce95b68b Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Mon, 28 Jun 2010 16:32:30 -0500 Subject: [PATCH 24/62] more tweaks for VS2010 --- libs/xmlrpc-c/Windows/abyss.2010.vcxproj | 20 ++++++++----------- libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj | 20 ++++++++----------- libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj | 20 ++++++++----------- libs/xmlrpc-c/Windows/xmltok.2010.vcxproj | 20 ++++++++----------- .../languages/mod_lua/lua/lua.2010.vcxproj | 4 ---- 5 files changed, 32 insertions(+), 52 deletions(-) diff --git a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj b/libs/xmlrpc-c/Windows/abyss.2010.vcxproj index 36f14a2856..f4037efbf6 100644 --- a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj +++ b/libs/xmlrpc-c/Windows/abyss.2010.vcxproj @@ -66,14 +66,14 @@ <_ProjectFileVersion>10.0.30319.1 - .\Debug\abyss\ - .\Debug\abyss\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - .\Release\Abyss\ - .\Release\Abyss\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ @@ -96,7 +96,6 @@ 0x0409 - ..\lib\abyssD.lib true @@ -127,7 +126,6 @@ 0x0409 - ..\lib\$(Platform)\$(Configuration)\abyssD.lib true @@ -156,7 +154,6 @@ 0x0409 - ..\lib\abyss.lib true @@ -187,7 +184,6 @@ 0x0409 - ..\lib\$(Platform)\$(Configuration)\abyss.lib true diff --git a/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj b/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj index 24ddb86fe3..5b2dc0d4dc 100644 --- a/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj +++ b/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj @@ -66,14 +66,14 @@ <_ProjectFileVersion>10.0.30319.1 - .\Release\xmlparse\ - .\Release\xmlparse\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - .\Debug\xmlparse\ - .\Debug\xmlparse\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ @@ -96,7 +96,6 @@ 0x0409 - ..\lib\xmlparse.lib true @@ -127,7 +126,6 @@ 0x0409 - ..\lib\$(Platform)\$(Configuration)\xmlparse.lib true @@ -156,7 +154,6 @@ 0x0409 - ..\lib\xmlparseD.lib true @@ -187,7 +184,6 @@ 0x0409 - ..\lib\$(Platform)\$(Configuration)\xmlparseD.lib true diff --git a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj b/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj index ee4bdcbff6..cca5a4d18d 100644 --- a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj +++ b/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj @@ -66,14 +66,14 @@ <_ProjectFileVersion>10.0.30319.1 - .\Debug\xmlrpc\ - .\Debug\xmlrpc\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - .\Release\xmlrpc\ - .\Release\xmlrpc\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ @@ -96,7 +96,6 @@ 0x0409 - ..\lib\xmlrpcD.lib true @@ -127,7 +126,6 @@ 0x0409 - ..\lib\$(Platform)\$(Configuration)\xmlrpcD.lib true @@ -156,7 +154,6 @@ 0x0409 - ..\lib\xmlrpc.lib true @@ -187,7 +184,6 @@ 0x0409 - ..\lib\$(Platform)\$(Configuration)\xmlrpc.lib true diff --git a/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj b/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj index 753b52b9c9..27b1bfffc4 100644 --- a/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj +++ b/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj @@ -66,14 +66,14 @@ <_ProjectFileVersion>10.0.30319.1 - .\Debug\xmltok\ - .\Debug\xmltok\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - .\Release\xmltok\ - .\Release\xmltok\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(Configuration)\ @@ -96,7 +96,6 @@ 0x0409 - ..\lib\xmltokD.lib true @@ -127,7 +126,6 @@ 0x0409 - ..\lib\$(Platform)\$(Configuration)\xmltokD.lib true @@ -156,7 +154,6 @@ 0x0409 - ..\lib\xmltok.lib true @@ -187,7 +184,6 @@ 0x0409 - ..\lib\$(Platform)\$(Configuration)\xmltok.lib true diff --git a/src/mod/languages/mod_lua/lua/lua.2010.vcxproj b/src/mod/languages/mod_lua/lua/lua.2010.vcxproj index 289c73ba73..13f6e011e2 100644 --- a/src/mod/languages/mod_lua/lua/lua.2010.vcxproj +++ b/src/mod/languages/mod_lua/lua/lua.2010.vcxproj @@ -80,7 +80,6 @@ false - $(OutDir)lua5.1.dll true @@ -106,7 +105,6 @@ false - $(OutDir)lua5.1.dll true @@ -128,7 +126,6 @@ 4127; 4505;%(DisableSpecificWarnings) - $(OutDir)lua5.1.dll false @@ -152,7 +149,6 @@ 4127; 4505;%(DisableSpecificWarnings) - $(OutDir)lua5.1.dll false From 23efa1ef56f9d4c4ed2968aebbf2f211b9fcd556 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Tue, 29 Jun 2010 00:17:48 -0400 Subject: [PATCH 25/62] freetdm: only use echo training when value is bigger than zero (fixes silence when using oslec) --- libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c b/libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c index a2eacaca61..c4ba3ae749 100644 --- a/libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c +++ b/libs/freetdm/src/ftmod/ftmod_zt/ftmod_zt.c @@ -639,7 +639,7 @@ static FIO_OPEN_FUNCTION(zt_open) } if (ioctl(ftdmchan->sockfd, codes.ECHOCANCEL, &len)) { ftdm_log(FTDM_LOG_WARNING, "Echo cancel not available for %d:%d\n", ftdmchan->span_id, ftdmchan->chan_id); - } else if (zt_globals.etlevel >= 0) { + } else if (zt_globals.etlevel > 0) { len = zt_globals.etlevel; if (ioctl(ftdmchan->sockfd, codes.ECHOTRAIN, &len)) { ftdm_log(FTDM_LOG_WARNING, "Echo training not available for %d:%d\n", ftdmchan->span_id, ftdmchan->chan_id); From 5ef1e00d3a37fabf6e44e55d8b325a488233be5d Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 29 Jun 2010 08:51:26 -0500 Subject: [PATCH 26/62] LBAPR-4 --- src/switch_apr.c | 5 ----- src/switch_core_memory.c | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/switch_apr.c b/src/switch_apr.c index d579999356..ba44ad224a 100644 --- a/src/switch_apr.c +++ b/src/switch_apr.c @@ -89,11 +89,6 @@ SWITCH_DECLARE(int) switch_thread_equal(switch_thread_id_t tid1, switch_thread_i } -SWITCH_DECLARE(void) switch_pool_clear(switch_memory_pool_t *p) -{ - apr_pool_clear(p); -} - SWITCH_DECLARE(unsigned int) switch_ci_hashfunc_default(const char *char_key, switch_ssize_t *klen) { unsigned int hash = 0; diff --git a/src/switch_core_memory.c b/src/switch_core_memory.c index 42ef86a08f..39d0403c42 100644 --- a/src/switch_core_memory.c +++ b/src/switch_core_memory.c @@ -318,6 +318,29 @@ SWITCH_DECLARE(void) switch_core_memory_pool_tag(switch_memory_pool_t *pool, con apr_pool_tag(pool, tag); } +SWITCH_DECLARE(void) switch_pool_clear(switch_memory_pool_t *p) +{ +#ifdef PER_POOL_LOCK + apr_thread_mutex_t *my_mutex; + apr_pool_mutex_set(p, NULL); +#endif + + apr_pool_clear(p); + +#ifdef PER_POOL_LOCK + + if ((apr_thread_mutex_create(&my_mutex, APR_THREAD_MUTEX_NESTED, p)) != APR_SUCCESS) { + abort(); + } + + apr_pool_mutex_set(p, my_mutex); + +#endif + +} + + + SWITCH_DECLARE(switch_status_t) switch_core_perform_new_memory_pool(switch_memory_pool_t **pool, const char *file, const char *func, int line) { char *tmp; @@ -503,6 +526,7 @@ static void *SWITCH_THREAD_FUNC pool_thread(switch_thread_t *thread, void *obj) switch_mutex_unlock(memory_manager.mem_lock); #endif #else + apr_pool_mutex_set(pop, NULL); apr_pool_clear(pop); if (switch_queue_trypush(memory_manager.pool_recycle_queue, pop) != SWITCH_STATUS_SUCCESS) { #ifdef USE_MEM_LOCK From 911e9182e1a061d5d170c98266b4dc2be967bba6 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 29 Jun 2010 09:32:41 -0500 Subject: [PATCH 27/62] add cid-in-1xx profile param and sip_cid_in_1xx chan var --- src/mod/endpoints/mod_sofia/mod_sofia.c | 34 +++++++++++++++++-------- src/mod/endpoints/mod_sofia/mod_sofia.h | 1 + src/mod/endpoints/mod_sofia/sofia.c | 13 ++++++++++ 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index a49a198827..ee62e5d17e 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -242,9 +242,17 @@ char *generate_pai_str(switch_core_session_t *session) { private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session); const char *callee_name = NULL, *callee_number = NULL; - const char *header, *ua = switch_channel_get_variable(tech_pvt->channel, "sip_user_agent"); + const char *var, *header, *ua = switch_channel_get_variable(tech_pvt->channel, "sip_user_agent"); char *pai = NULL; + if (!sofia_test_pflag(tech_pvt->profile, PFLAG_CID_IN_1XX) || + ((var = switch_channel_get_variable(tech_pvt->channel, "sip_cid_in_1xx")) && switch_false(var))) { + printf("ASSSSS\n"); + + return NULL; + } + + if (zstr((callee_name = switch_channel_get_variable(tech_pvt->channel, "effective_callee_id_name"))) && zstr((callee_name = switch_channel_get_variable(tech_pvt->channel, "sip_callee_id_name")))) { callee_name = switch_channel_get_variable(tech_pvt->channel, "callee_id_name"); @@ -511,9 +519,11 @@ switch_status_t sofia_on_hangup(switch_core_session_t *session) switch_channel_set_variable(channel, "sip_hangup_disposition", "send_refuse"); } if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) { + char *cid = generate_pai_str(session); + nua_respond(tech_pvt->nh, sip_cause, sip_status_phrase(sip_cause), TAG_IF(!zstr(reason), SIPTAG_REASON_STR(reason)), - SIPTAG_HEADER_STR(generate_pai_str(session)), TAG_IF(!zstr(bye_headers), SIPTAG_HEADER_STR(bye_headers)), TAG_END()); + TAG_IF(cid, SIPTAG_HEADER_STR(cid)), TAG_IF(!zstr(bye_headers), SIPTAG_HEADER_STR(bye_headers)), TAG_END()); } } } @@ -689,6 +699,7 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session) if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) { char *extra_headers = sofia_glue_get_extra_headers(channel, SOFIA_SIP_RESPONSE_HEADER_PREFIX); + char *cid = generate_pai_str(session); if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MODE) && tech_pvt->early_sdp && strcmp(tech_pvt->early_sdp, tech_pvt->local_sdp_str)) { /* The SIP RFC for SOA forbids sending a 183 with one sdp then a 200 with another but it won't do us much good unless @@ -702,7 +713,7 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session) NUTAG_AUTOANSWER(0), TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)), TAG_IF(sticky, NUTAG_PROXY(tech_pvt->record_route)), - SIPTAG_HEADER_STR(generate_pai_str(session)), + TAG_IF(cid, SIPTAG_HEADER_STR(cid)), NUTAG_SESSION_TIMER(session_timeout), SIPTAG_CONTACT_STR(tech_pvt->reply_contact), SIPTAG_CALL_INFO_STR(switch_channel_get_variable(tech_pvt->channel, SOFIA_SIP_HEADER_PREFIX "call_info")), @@ -717,7 +728,7 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session) NUTAG_MEDIA_ENABLE(0), TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)), TAG_IF(sticky, NUTAG_PROXY(tech_pvt->record_route)), - SIPTAG_HEADER_STR(generate_pai_str(session)), + TAG_IF(cid, SIPTAG_HEADER_STR(cid)), NUTAG_SESSION_TIMER(session_timeout), SIPTAG_CONTACT_STR(tech_pvt->reply_contact), SIPTAG_CALL_INFO_STR(switch_channel_get_variable(tech_pvt->channel, SOFIA_SIP_HEADER_PREFIX "call_info")), @@ -1936,7 +1947,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi } else if (code == 484 && msg->numeric_arg) { const char *to = switch_channel_get_variable(channel, "sip_to_uri"); const char *max_forwards = switch_channel_get_variable(channel, SWITCH_MAX_FORWARDS_VARIABLE); - + char *cid = generate_pai_str(session); char *to_uri = NULL; if (to) { @@ -1953,7 +1964,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi nua_respond(tech_pvt->nh, code, su_strdup(nua_handle_home(tech_pvt->nh), reason), TAG_IF(to_uri, SIPTAG_CONTACT_STR(to_uri)), SIPTAG_SUPPORTED_STR(NULL), SIPTAG_ACCEPT_STR(NULL), - SIPTAG_HEADER_STR(generate_pai_str(session)), + TAG_IF(cid, SIPTAG_HEADER_STR(cid)), TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_IF(!zstr(max_forwards), SIPTAG_MAX_FORWARDS_STR(max_forwards)), TAG_END()); @@ -2031,7 +2042,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi !switch_channel_test_flag(channel, CF_EARLY_MEDIA) && !switch_channel_test_flag(channel, CF_ANSWERED)) { char *extra_header = sofia_glue_get_extra_headers(channel, SOFIA_SIP_PROGRESS_HEADER_PREFIX); const char *call_info = switch_channel_get_variable(channel, "presence_call_info_full"); - + char *cid = generate_pai_str(session); switch (ring_ready_val) { @@ -2039,7 +2050,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi nua_respond(tech_pvt->nh, SIP_182_QUEUED, SIPTAG_CONTACT_STR(tech_pvt->reply_contact), - SIPTAG_HEADER_STR(generate_pai_str(session)), + TAG_IF(cid, SIPTAG_HEADER_STR(cid)), TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)), TAG_IF(!zstr(extra_header), SIPTAG_HEADER_STR(extra_header)), TAG_IF(switch_stristr("update_display", tech_pvt->x_freeswitch_support_remote), @@ -2051,7 +2062,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi nua_respond(tech_pvt->nh, SIP_180_RINGING, SIPTAG_CONTACT_STR(tech_pvt->reply_contact), - SIPTAG_HEADER_STR(generate_pai_str(session)), + TAG_IF(cid, SIPTAG_HEADER_STR(cid)), TAG_IF(call_info, SIPTAG_CALL_INFO_STR(call_info)), TAG_IF(!zstr(extra_header), SIPTAG_HEADER_STR(extra_header)), TAG_IF(switch_stristr("update_display", tech_pvt->x_freeswitch_support_remote), @@ -2147,6 +2158,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) { char *extra_header = sofia_glue_get_extra_headers(channel, SOFIA_SIP_PROGRESS_HEADER_PREFIX); + char *cid = generate_pai_str(session); if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MODE) && tech_pvt->early_sdp && strcmp(tech_pvt->early_sdp, tech_pvt->local_sdp_str)) { @@ -2163,7 +2175,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi SIP_183_SESSION_PROGRESS, NUTAG_AUTOANSWER(0), TAG_IF(sticky, NUTAG_PROXY(tech_pvt->record_route)), - SIPTAG_HEADER_STR(generate_pai_str(session)), + TAG_IF(cid, SIPTAG_HEADER_STR(cid)), SIPTAG_CONTACT_STR(tech_pvt->reply_contact), SOATAG_REUSE_REJECTED(1), SOATAG_ORDERED_USER(1), @@ -2179,7 +2191,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi NUTAG_AUTOANSWER(0), NUTAG_MEDIA_ENABLE(0), TAG_IF(sticky, NUTAG_PROXY(tech_pvt->record_route)), - SIPTAG_HEADER_STR(generate_pai_str(session)), + TAG_IF(cid, SIPTAG_HEADER_STR(cid)), SIPTAG_CONTACT_STR(tech_pvt->reply_contact), SIPTAG_CONTENT_TYPE_STR("application/sdp"), SIPTAG_PAYLOAD_STR(tech_pvt->local_sdp_str), diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index 6c986cc223..bceba89b5b 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -212,6 +212,7 @@ typedef enum { PFLAG_DESTROY, PFLAG_EXTENDED_INFO_PARSING, PFLAG_T38_PASSTHRU, + PFLAG_CID_IN_1XX, /* No new flags below this line */ PFLAG_MAX } PFLAGS; diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 7731bf839b..a2f8c54286 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2249,6 +2249,12 @@ switch_status_t reconfig_sofia(sofia_profile_t *profile) } else { sofia_clear_pflag(profile, PFLAG_T38_PASSTHRU); } + } else if (!strcasecmp(var, "cid-in-1xx")) { + if (switch_true(val)) { + sofia_set_pflag(profile, PFLAG_CID_IN_1XX); + } else { + sofia_clear_pflag(profile, PFLAG_CID_IN_1XX); + } } else if (!strcasecmp(var, "dtmf-type")) { if (!strcasecmp(val, "rfc2833")) { profile->dtmf_type = DTMF_2833; @@ -2820,6 +2826,7 @@ switch_status_t config_sofia(int reload, char *profile_name) profile->shutdown_type = "false"; profile->local_network = "localnet.auto"; sofia_set_flag(profile, TFLAG_ENABLE_SOA); + sofia_set_pflag(profile, PFLAG_CID_IN_1XX); for (param = switch_xml_child(settings, "param"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); @@ -2861,6 +2868,12 @@ switch_status_t config_sofia(int reload, char *profile_name) } else { sofia_clear_pflag(profile, PFLAG_T38_PASSTHRU); } + } else if (!strcasecmp(var, "cid-in-1xx")) { + if (switch_true(val)) { + sofia_set_pflag(profile, PFLAG_CID_IN_1XX); + } else { + sofia_clear_pflag(profile, PFLAG_CID_IN_1XX); + } } else if (!strcasecmp(var, "disable-hold")) { if (switch_true(val)) { sofia_set_pflag(profile, PFLAG_DISABLE_HOLD); From 9361e2ba9d9a89bc6d5ce0f55b8e343903be7cb5 Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Tue, 29 Jun 2010 09:55:08 -0500 Subject: [PATCH 28/62] more tweaks for VS2010 --- libs/esl/src/esl.2010.vcxproj | 16 ++++++------- libs/ilbc/libilbc.2010.vcxproj | 16 ++++++------- .../src/msvc/make_at_dictionary.2010.vcxproj | 4 ++-- .../src/msvc/make_modem_filter.2010.vcxproj | 4 ++-- .../win32/VS2008/libspeex/libspeex.vcxproj | 16 ++++++------- .../VS2008/libspeexdsp/libspeexdsp.vcxproj | 24 +++++++------------ libs/win32/apr-util/xml.2010.vcxproj | 8 +++---- libs/win32/celt/libcelt.vcxproj | 16 ++++++------- libs/win32/flite/flite.2010.vcxproj | 16 ++++++------- libs/win32/js/js.2010.vcxproj | 4 ++-- libs/win32/json/libjson.2010.vcxproj | 12 +++++----- libs/win32/udns/libudns.2010.vcxproj | 16 ++++++------- libs/xmlrpc-c/Windows/abyss.2010.vcxproj | 8 +++---- libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj | 24 ++++--------------- libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj | 22 ++++------------- libs/xmlrpc-c/Windows/xmltok.2010.vcxproj | 22 ++++------------- src/mod/codecs/mod_amr/mod_amr.2010.vcxproj | 4 ++++ .../codecs/mod_g723_1/mod_g723_1.2010.vcxproj | 4 ++++ src/mod/codecs/mod_g729/mod_g729.2010.vcxproj | 4 ++++ .../mod_ldap/mod_ldap.2010.vcxproj | 4 ++++ w32/Library/FreeSwitchCore.2010.vcxproj | 6 ++++- 21 files changed, 110 insertions(+), 140 deletions(-) diff --git a/libs/esl/src/esl.2010.vcxproj b/libs/esl/src/esl.2010.vcxproj index 91def52765..ed7b6ea890 100644 --- a/libs/esl/src/esl.2010.vcxproj +++ b/libs/esl/src/esl.2010.vcxproj @@ -61,14 +61,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)Debug\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)Release\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/ilbc/libilbc.2010.vcxproj b/libs/ilbc/libilbc.2010.vcxproj index 08f4eb0330..ad2a0c3ccb 100644 --- a/libs/ilbc/libilbc.2010.vcxproj +++ b/libs/ilbc/libilbc.2010.vcxproj @@ -61,14 +61,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/spandsp/src/msvc/make_at_dictionary.2010.vcxproj b/libs/spandsp/src/msvc/make_at_dictionary.2010.vcxproj index bbda6af0d6..3727cebf49 100644 --- a/libs/spandsp/src/msvc/make_at_dictionary.2010.vcxproj +++ b/libs/spandsp/src/msvc/make_at_dictionary.2010.vcxproj @@ -26,8 +26,8 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ false diff --git a/libs/spandsp/src/msvc/make_modem_filter.2010.vcxproj b/libs/spandsp/src/msvc/make_modem_filter.2010.vcxproj index 87114c4495..110e1f5c34 100644 --- a/libs/spandsp/src/msvc/make_modem_filter.2010.vcxproj +++ b/libs/spandsp/src/msvc/make_modem_filter.2010.vcxproj @@ -26,8 +26,8 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ false diff --git a/libs/speex/win32/VS2008/libspeex/libspeex.vcxproj b/libs/speex/win32/VS2008/libspeex/libspeex.vcxproj index 8d393df607..551481a3b1 100644 --- a/libs/speex/win32/VS2008/libspeex/libspeex.vcxproj +++ b/libs/speex/win32/VS2008/libspeex/libspeex.vcxproj @@ -192,10 +192,10 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - Debug\ - $(SolutionDir)$(Configuration)\ - Release\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(Configuration)\ $(Configuration)\ $(Configuration)\ @@ -206,10 +206,10 @@ $(Configuration)\ $(Configuration)\ $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ diff --git a/libs/speex/win32/VS2008/libspeexdsp/libspeexdsp.vcxproj b/libs/speex/win32/VS2008/libspeexdsp/libspeexdsp.vcxproj index 5ac73577ec..5a67b9d495 100644 --- a/libs/speex/win32/VS2008/libspeexdsp/libspeexdsp.vcxproj +++ b/libs/speex/win32/VS2008/libspeexdsp/libspeexdsp.vcxproj @@ -115,12 +115,12 @@ <_ProjectFileVersion>10.0.30319.1 - Debug\ - Debug\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ - $(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Configuration)\ @@ -146,9 +146,7 @@ EditAndContinue CompileAsC - - ../../../lib/libspeexdsp.lib - + @@ -167,9 +165,7 @@ ProgramDatabase CompileAsC - - ../../../lib/$(Platform)\$(Configuration)\libspeexdsp.lib - + @@ -191,9 +187,7 @@ CompileAsC 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) - - ../../../lib/libspeexdsp.lib - + @@ -218,9 +212,7 @@ CompileAsC 4244;4305;4311;4100;4127;%(DisableSpecificWarnings) - - ../../../lib/$(Platform)\$(Configuration)\libspeexdsp.lib - + diff --git a/libs/win32/apr-util/xml.2010.vcxproj b/libs/win32/apr-util/xml.2010.vcxproj index fb0f24e630..6106a58832 100644 --- a/libs/win32/apr-util/xml.2010.vcxproj +++ b/libs/win32/apr-util/xml.2010.vcxproj @@ -64,12 +64,12 @@ <_ProjectFileVersion>10.0.30319.1 - $(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ - $(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ diff --git a/libs/win32/celt/libcelt.vcxproj b/libs/win32/celt/libcelt.vcxproj index d676b6a6f5..55c59dfef9 100644 --- a/libs/win32/celt/libcelt.vcxproj +++ b/libs/win32/celt/libcelt.vcxproj @@ -60,14 +60,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/win32/flite/flite.2010.vcxproj b/libs/win32/flite/flite.2010.vcxproj index ed76215e6a..a8cce33108 100644 --- a/libs/win32/flite/flite.2010.vcxproj +++ b/libs/win32/flite/flite.2010.vcxproj @@ -60,14 +60,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/win32/js/js.2010.vcxproj b/libs/win32/js/js.2010.vcxproj index 2f624c658a..78ef6ad230 100644 --- a/libs/win32/js/js.2010.vcxproj +++ b/libs/win32/js/js.2010.vcxproj @@ -59,13 +59,13 @@ <_ProjectFileVersion>10.0.30319.1 $(SolutionDir)$(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ false $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false $(SolutionDir)$(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ false $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ diff --git a/libs/win32/json/libjson.2010.vcxproj b/libs/win32/json/libjson.2010.vcxproj index df7dcb6640..b177ab0d8b 100644 --- a/libs/win32/json/libjson.2010.vcxproj +++ b/libs/win32/json/libjson.2010.vcxproj @@ -63,12 +63,12 @@ <_ProjectFileVersion>10.0.30319.1 $(SolutionDir)$(Configuration)\ $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/win32/udns/libudns.2010.vcxproj b/libs/win32/udns/libudns.2010.vcxproj index 2a7bbe8880..7cfdc7d6a7 100644 --- a/libs/win32/udns/libudns.2010.vcxproj +++ b/libs/win32/udns/libudns.2010.vcxproj @@ -61,14 +61,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj b/libs/xmlrpc-c/Windows/abyss.2010.vcxproj index f4037efbf6..b7020e0e1f 100644 --- a/libs/xmlrpc-c/Windows/abyss.2010.vcxproj +++ b/libs/xmlrpc-c/Windows/abyss.2010.vcxproj @@ -67,13 +67,13 @@ <_ProjectFileVersion>10.0.30319.1 $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj b/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj index 5b2dc0d4dc..ea84796607 100644 --- a/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj +++ b/libs/xmlrpc-c/Windows/xmlparse.2010.vcxproj @@ -67,13 +67,13 @@ <_ProjectFileVersion>10.0.30319.1 $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ - $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ @@ -84,10 +84,6 @@ true MultiThreaded true - .\Release\xmlparse/xmlparse.pch - .\Release\xmlparse/ - .\Release\xmlparse/ - .\Release\xmlparse/ Level3 true @@ -115,9 +111,6 @@ true MultiThreaded true - .\Release\xmlparse/xmlparse.pch - $(IntDir)xmlparse\ - $(IntDir)xmlparse\vc90.pdb Level3 true @@ -141,10 +134,6 @@ true EnableFastChecks MultiThreadedDebugDLL - .\Debug\xmlparse/xmlparse.pch - .\Debug\xmlparse/ - .\Debug\xmlparse/ - .\Debug\xmlparse/ Level3 true ProgramDatabase @@ -172,9 +161,6 @@ true EnableFastChecks MultiThreadedDebugDLL - .\Debug\xmlparse/xmlparse.pch - $(IntDir)xmlparse\ - $(IntDir)xmlparse\vc90.pdb Level3 true ProgramDatabase diff --git a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj b/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj index cca5a4d18d..be81a6edfd 100644 --- a/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj +++ b/libs/xmlrpc-c/Windows/xmlrpc.2010.vcxproj @@ -66,13 +66,13 @@ <_ProjectFileVersion>10.0.30319.1 - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ @@ -83,10 +83,6 @@ true EnableFastChecks MultiThreadedDebugDLL - .\Debug\xmlrpc/xmlrpc.pch - .\Debug\xmlrpc/ - .\Debug\xmlrpc/ - .\Debug\xmlrpc/ Level3 true ProgramDatabase @@ -114,9 +110,6 @@ true EnableFastChecks MultiThreadedDebugDLL - .\Debug\xmlrpc/xmlrpc.pch - $(IntDir)xmlrpc\ - $(IntDir)xmlrpc\vc90.pdb Level3 true ProgramDatabase @@ -142,10 +135,6 @@ true MultiThreadedDLL true - .\Release\xmlrpc/xmlrpc.pch - .\Release\xmlrpc/ - .\Release\xmlrpc/ - .\Release\xmlrpc/ Level3 true @@ -173,9 +162,6 @@ true MultiThreadedDLL true - .\Release\xmlrpc/xmlrpc.pch - $(IntDir)xmlrpc\ - $(IntDir)xmlrpc\vc90.pdb Level3 true diff --git a/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj b/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj index 27b1bfffc4..0fa9e1be14 100644 --- a/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj +++ b/libs/xmlrpc-c/Windows/xmltok.2010.vcxproj @@ -67,13 +67,13 @@ <_ProjectFileVersion>10.0.30319.1 $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ @@ -83,10 +83,6 @@ true EnableFastChecks MultiThreadedDebugDLL - .\Debug\xmltok/xmltok.pch - .\Debug\xmltok/ - .\Debug\xmltok/ - .\Debug\xmltok/ Level3 true ProgramDatabase @@ -114,9 +110,6 @@ true EnableFastChecks MultiThreadedDebugDLL - .\Debug\xmltok/xmltok.pch - $(IntDir)xmltok\ - $(IntDir)xmltok\vc90.pdb Level3 true ProgramDatabase @@ -142,10 +135,6 @@ true MultiThreaded true - .\Release\xmltok/xmltok.pch - .\Release\xmltok/ - .\Release\xmltok/ - .\Release\xmltok/ Level3 true @@ -173,9 +162,6 @@ true MultiThreaded true - .\Release\xmltok/xmltok.pch - $(IntDir)xmltok\ - $(IntDir)xmltok\vc90.pdb Level3 true diff --git a/src/mod/codecs/mod_amr/mod_amr.2010.vcxproj b/src/mod/codecs/mod_amr/mod_amr.2010.vcxproj index 71f0009253..36845bb92e 100644 --- a/src/mod/codecs/mod_amr/mod_amr.2010.vcxproj +++ b/src/mod/codecs/mod_amr/mod_amr.2010.vcxproj @@ -115,6 +115,10 @@ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\Debug\mod\ + $(SolutionDir)$(PlatformName)\Release\mod\ + $(SolutionDir)$(PlatformName)\Release\mod\ + $(SolutionDir)$(PlatformName)\Debug\mod\ diff --git a/src/mod/codecs/mod_g723_1/mod_g723_1.2010.vcxproj b/src/mod/codecs/mod_g723_1/mod_g723_1.2010.vcxproj index bdd445aa4e..7e9e979798 100644 --- a/src/mod/codecs/mod_g723_1/mod_g723_1.2010.vcxproj +++ b/src/mod/codecs/mod_g723_1/mod_g723_1.2010.vcxproj @@ -115,6 +115,10 @@ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\Debug\mod\ + $(SolutionDir)$(PlatformName)\Debug\mod\ + $(SolutionDir)$(PlatformName)\Release\mod\ + $(SolutionDir)$(PlatformName)\Release\mod\ diff --git a/src/mod/codecs/mod_g729/mod_g729.2010.vcxproj b/src/mod/codecs/mod_g729/mod_g729.2010.vcxproj index 52ec59d989..e7d89eefa7 100644 --- a/src/mod/codecs/mod_g729/mod_g729.2010.vcxproj +++ b/src/mod/codecs/mod_g729/mod_g729.2010.vcxproj @@ -115,6 +115,10 @@ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\Debug\mod\ + $(SolutionDir)$(PlatformName)\Debug\mod\ + $(SolutionDir)$(PlatformName)\Release\mod\ + $(SolutionDir)$(PlatformName)\Release\mod\ diff --git a/src/mod/directories/mod_ldap/mod_ldap.2010.vcxproj b/src/mod/directories/mod_ldap/mod_ldap.2010.vcxproj index 86d76ba25b..916adba65b 100644 --- a/src/mod/directories/mod_ldap/mod_ldap.2010.vcxproj +++ b/src/mod/directories/mod_ldap/mod_ldap.2010.vcxproj @@ -121,6 +121,10 @@ false false false + $(SolutionDir)$(PlatformName)\Debug\mod\ + $(SolutionDir)$(PlatformName)\Debug\mod\ + $(SolutionDir)$(PlatformName)\Release\mod\ + $(SolutionDir)$(PlatformName)\Release\mod\ diff --git a/w32/Library/FreeSwitchCore.2010.vcxproj b/w32/Library/FreeSwitchCore.2010.vcxproj index 4024c3a534..745d13902d 100644 --- a/w32/Library/FreeSwitchCore.2010.vcxproj +++ b/w32/Library/FreeSwitchCore.2010.vcxproj @@ -65,7 +65,7 @@ <_ProjectFileVersion>10.0.30319.1 $(Configuration)\ true - $(Platform)\$(Configuration)\ + $(SolutionDir)$(PlatformName)\$(Configuration)\ $(Platform)\$(Configuration)\ true $(Configuration)\ @@ -75,6 +75,10 @@ $(Platform)\$(Configuration)\ false $(SolutionDir)$(PlatformName)\$(Configuration)\ + FreeSwitch + FreeSwitch + FreeSwitch + FreeSwitch From fd5723387e762699dfebe916e6a09cda55ea29f1 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 29 Jun 2010 09:55:28 -0500 Subject: [PATCH 29/62] update agc --- .../mod_conference/mod_conference.c | 205 +++++++++++------- 1 file changed, 131 insertions(+), 74 deletions(-) diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 74a662811a..e877b39e3f 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -176,8 +176,7 @@ typedef enum { CFLAG_BRIDGE_TO = (1 << 6), CFLAG_WAIT_MOD = (1 << 7), CFLAG_VID_FLOOR = (1 << 8), - CFLAG_WASTE_BANDWIDTH = (1 << 9), - CFLAG_GAIN_CONTROL = (1 << 10) + CFLAG_WASTE_BANDWIDTH = (1 << 9) } conf_flag_t; typedef enum { @@ -302,11 +301,13 @@ typedef struct conference_obj { int end_count; uint32_t relationship_total; uint32_t score; + int mux_loop_count; + int member_loop_count; + int agc_level; + uint32_t avg_score; uint32_t avg_itt; uint32_t avg_tally; - int mux_loop_count; - int member_loop_count; } conference_obj_t; /* Relationship with another member */ @@ -338,6 +339,7 @@ struct conference_member { switch_codec_t write_codec; char *rec_path; uint8_t *frame; + uint8_t *last_frame; uint32_t frame_size; uint8_t *mux_frame; uint32_t read; @@ -1013,6 +1015,11 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v int x = 0; int32_t z = 0; int member_score_sum = 0; + int divisor = 0; + + if (!(divisor = conference->rate / 8000)) { + divisor = 1; + } file_frame = switch_core_alloc(conference->pool, SWITCH_RECOMMENDED_BUFFER_SIZE); async_file_frame = switch_core_alloc(conference->pool, SWITCH_RECOMMENDED_BUFFER_SIZE); @@ -1034,6 +1041,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v switch_size_t file_sample_len = samples; switch_size_t file_data_len = samples * 2; int has_file_data = 0, members_with_video = 0; + uint32_t conf_energy = 0; /* Sync the conference to a single timing source */ if (switch_core_timer_next(&timer) != SWITCH_STATUS_SUCCESS) { @@ -1220,40 +1228,44 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v conference->mux_loop_count = 0; conference->member_loop_count = 0; + /* Copy audio from every member known to be producing audio into the main frame. */ for (omember = conference->members; omember; omember = omember->next) { - if (switch_test_flag(conference, CFLAG_GAIN_CONTROL)) { - member_score_sum += omember->score; - } - conference->member_loop_count++; - + if (!(switch_test_flag(omember, MFLAG_RUNNING) && switch_test_flag(omember, MFLAG_HAS_AUDIO))) { continue; } - conference->mux_loop_count++; + + if (conference->agc_level) { + if (switch_test_flag(omember, MFLAG_TALKING) && switch_test_flag(omember, MFLAG_CAN_SPEAK)) { + member_score_sum += omember->score; + conference->mux_loop_count++; + } + } + bptr = (int16_t *) omember->frame; for (x = 0; x < omember->read / 2; x++) { main_frame[x] += (int32_t) bptr[x]; } } + + if (conference->agc_level && conference->member_loop_count) { + conf_energy = 0; - if (switch_test_flag(conference, CFLAG_GAIN_CONTROL)) { - if (x && conference->mux_loop_count && conference->member_loop_count > 1) { - int this_avg = member_score_sum / conference->mux_loop_count; - - conference->avg_tally += this_avg; - conference->avg_score = conference->avg_tally / ++conference->avg_itt; - - if (conference->avg_itt > (conference->rate / x) * 10) { - conference->avg_itt = 0; - conference->avg_tally = 0; - conference->avg_score = this_avg; - } + for (x = 0; x < bytes / 2; x++) { + z = abs(main_frame[x]); + switch_normalize_to_16bit(z); + conf_energy += (int16_t) z; } + + conference->score = conf_energy / ((bytes / 2) / divisor) / conference->member_loop_count; + + conference->avg_tally += conference->score; + conference->avg_score = conference->avg_tally / ++conference->avg_itt; + if (!conference->avg_itt) conference->avg_tally = conference->score; } - - + /* Create write frame once per member who is not deaf for each sample in the main frame check if our audio is involved and if so, subtract it from the sample so we don't hear ourselves. Since main frame was 32 bit int, we did not lose any detail, now that we have to convert to 16 bit we can @@ -1950,13 +1962,16 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v goto do_continue; } - + /* Check for input volume adjustments */ - if (!switch_test_flag(member->conference, CFLAG_GAIN_CONTROL)) { + if (!member->conference->agc_level) { member->agc_volume_in_level = 0; + member->avg_score = 0; + member->avg_itt = 0; + member->avg_tally = 0; } - if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->agc_volume_in_level) { + if (member->conference->agc_level && member->agc_volume_in_level) { switch_change_sln_volume(read_frame->data, read_frame->datalen / 2, member->agc_volume_in_level); } else if (member->volume_in_level) { switch_change_sln_volume(read_frame->data, read_frame->datalen / 2, member->volume_in_level); @@ -1989,69 +2004,69 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v member->score = energy / (samples / divisor); member->avg_tally += member->score; member->avg_score = member->avg_tally / ++member->avg_itt; - - if (member->avg_itt > one_sec * 10) { - member->avg_itt = 0; - member->avg_tally = 0; - member->avg_score = member->score; - } - + if (!member->avg_itt) member->avg_tally = member->score; } - if (switch_test_flag(member->conference, CFLAG_GAIN_CONTROL) && member->conference->avg_score && member->score && - switch_test_flag(member, MFLAG_TALKING)) { - int diff = member->conference->avg_score - member->avg_score; + if (member->conference->agc_level && member->score && + switch_test_flag(member, MFLAG_TALKING) && + switch_test_flag(member, MFLAG_CAN_SPEAK) && + member->score > member->energy_level + ) { + int diff = member->conference->agc_level - member->score; if (abs(diff) >= 200) { member->agc_concur++; } else { member->agc_concur = 0; } + +#if 0 + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG8, + "conf %s FOO %d %d %d %d %d\n", + member->conference->name, + member->id, diff, member->conference->agc_level, + member->score, member->agc_volume_in_level); +#endif if (member->agc_concur >= one_sec) { - if (diff > 200) { + if (member->score < member->conference->agc_level) { member->agc_volume_in_level++; - if (diff > 400) { - member->agc_volume_in_level++; - } - switch_normalize_volume(member->agc_volume_in_level); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG7, "conf %s AGC +++ %d %d %d %d %d\n", member->conference->name, - member->id, diff, member->conference->avg_score, - member->avg_score, member->agc_volume_in_level); + member->id, diff, member->conference->agc_level, + member->score, member->agc_volume_in_level); - } else if (diff < -400 || (member->agc_volume_in_level > 0 && diff < -200)) { + } else { member->agc_volume_in_level--; - if (diff < -800 || (member->agc_volume_in_level > 0 && diff < -400)) { - member->agc_volume_in_level--; - } - switch_normalize_volume(member->agc_volume_in_level); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG7, - "conf %s AGC +++ %d %d %d %d %d\n", + "conf %s AGC --- %d %d %d %d %d\n", member->conference->name, - member->id, diff, member->conference->avg_score, - member->avg_score, member->agc_volume_in_level); + member->id, diff, member->conference->agc_level, + member->score, member->agc_volume_in_level); } member->agc_concur = 0; } member->nt_tally = 0; } else { member->nt_tally++; + member->agc_concur = 0; if (member->nt_tally > one_sec * 5) { + member->agc_volume_in_level = 0; member->nt_tally = 0; member->avg_itt = 0; member->avg_tally = 0; member->avg_score = member->score; } + } member->score_iir = (int) (((1.0 - SCORE_DECAY) * (float) member->score) + (SCORE_DECAY * (float) member->score_iir)); @@ -3389,29 +3404,52 @@ static switch_status_t conf_api_sub_mute(conference_member_t *member, switch_str return SWITCH_STATUS_SUCCESS; } -static switch_status_t conf_api_sub_agc_on(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv) +static switch_status_t conf_api_sub_agc(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv) { - switch_set_flag(conference, CFLAG_GAIN_CONTROL); + int level; + int on = 0; - if (stream) { - stream->write_function(stream, "OK AGC ENABLED\n"); + if (argc == 2) { + stream->write_function(stream, "+OK CURRENT AGC LEVEL IS %d\n", conference->agc_level); + return SWITCH_STATUS_SUCCESS; } + + if (!(on = !strcasecmp(argv[2], "on"))) { + stream->write_function(stream, "+OK AGC DISABLED\n"); + conference->agc_level = 0; + return SWITCH_STATUS_SUCCESS; + } + + if (argc > 3) { + level = atoi(argv[3]); + } else { + level = 2000; + } + + if (level > conference->energy_level) { + conference->avg_score = 0; + conference->avg_itt = 0; + conference->avg_tally = 0; + conference->agc_level = level; + + if (stream) { + stream->write_function(stream, "OK AGC ENABLED %d\n", conference->agc_level); + } + + } else { + if (stream) { + stream->write_function(stream, "-ERR invalid level\n"); + } + } + + + + return SWITCH_STATUS_SUCCESS; } -static switch_status_t conf_api_sub_agc_off(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv) -{ - switch_clear_flag(conference, CFLAG_GAIN_CONTROL); - - if (stream) { - stream->write_function(stream, "OK AGC DISABLED\n"); - } - - return SWITCH_STATUS_SUCCESS; -} - static switch_status_t conf_api_sub_unmute(conference_member_t *member, switch_stream_handle_t *stream, void *data) { switch_event_t *event; @@ -3760,8 +3798,10 @@ static void conference_xlist(conference_obj_t *conference, switch_xml_t x_confer switch_xml_set_attr_d(x_conference, "dynamic", "true"); } - if (switch_test_flag(conference, CFLAG_GAIN_CONTROL)) { - switch_xml_set_attr_d(x_conference, "agc", "true"); + if (conference->agc_level) { + char tmp[30] = ""; + switch_snprintf(tmp, sizeof(tmp), "%d", conference->agc_level); + switch_xml_set_attr_d(x_conference, "agc", tmp); } x_members = switch_xml_add_child_d(x_conference, "members", 0); @@ -4507,8 +4547,7 @@ static api_command_t conf_api_sub_commands[] = { {"relate", (void_fn_t) & conf_api_sub_relate, CONF_API_SUB_ARGS_SPLIT, " relate [nospeak|nohear|clear]"}, {"lock", (void_fn_t) & conf_api_sub_lock, CONF_API_SUB_ARGS_SPLIT, " lock"}, {"unlock", (void_fn_t) & conf_api_sub_unlock, CONF_API_SUB_ARGS_SPLIT, " unlock"}, - {"agc_on", (void_fn_t) & conf_api_sub_agc_on, CONF_API_SUB_ARGS_SPLIT, " agc_on"}, - {"agc_off", (void_fn_t) & conf_api_sub_agc_off, CONF_API_SUB_ARGS_SPLIT, " agc_off"}, + {"agc", (void_fn_t) & conf_api_sub_agc, CONF_API_SUB_ARGS_SPLIT, " agc"}, {"dial", (void_fn_t) & conf_api_sub_dial, CONF_API_SUB_ARGS_SPLIT, " dial / "}, {"bgdial", (void_fn_t) & conf_api_sub_bgdial, CONF_API_SUB_ARGS_SPLIT, @@ -5065,8 +5104,6 @@ static void set_cflags(const char *flags, uint32_t *f) *f |= CFLAG_VID_FLOOR; } else if (!strcasecmp(argv[i], "waste-bandwidth")) { *f |= CFLAG_WASTE_BANDWIDTH; - } else if (!strcasecmp(argv[i], "auto-gain-control")) { - *f |= CFLAG_GAIN_CONTROL; } } @@ -5987,6 +6024,7 @@ static conference_obj_t *conference_new(char *name, conf_xml_cfg_t cfg, switch_m char *pin_sound = NULL; char *bad_pin_sound = NULL; char *energy_level = NULL; + char *auto_gain_level = NULL; char *caller_id_name = NULL; char *caller_id_number = NULL; char *caller_controls = NULL; @@ -6004,7 +6042,7 @@ static conference_obj_t *conference_new(char *name, conf_xml_cfg_t cfg, switch_m char *verbose_events = NULL; char *auto_record = NULL; char *terminate_on_silence = NULL; - + /* Validate the conference name */ if (zstr(name)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Record! no name.\n"); @@ -6092,6 +6130,8 @@ static conference_obj_t *conference_new(char *name, conf_xml_cfg_t cfg, switch_m bad_pin_sound = val; } else if (!strcasecmp(var, "energy-level") && !zstr(val)) { energy_level = val; + } else if (!strcasecmp(var, "auto-gain-level") && !zstr(val)) { + auto_gain_level = val; } else if (!strcasecmp(var, "caller-id-name") && !zstr(val)) { caller_id_name = val; } else if (!strcasecmp(var, "caller-id-number") && !zstr(val)) { @@ -6279,6 +6319,23 @@ static conference_obj_t *conference_new(char *name, conf_xml_cfg_t cfg, switch_m if (!zstr(energy_level)) { conference->energy_level = atoi(energy_level); + if (conference->energy_level < 0) { + conference->energy_level = 0; + } + } + + if (!zstr(auto_gain_level)) { + int level = 0; + + if (switch_true(auto_gain_level)) { + level = 2000; + } else { + level = atoi(auto_gain_level); + } + + if (level > 0 && level > conference->energy_level) { + conference->agc_level = level; + } } if (!zstr(maxmember_sound)) { From 3f460f109748c8ee06e793797813ca7d44290341 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 29 Jun 2010 09:55:58 -0500 Subject: [PATCH 30/62] conf-update --- conf/sip_profiles/internal.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/sip_profiles/internal.xml b/conf/sip_profiles/internal.xml index dd1595d5ba..dd0dda153f 100644 --- a/conf/sip_profiles/internal.xml +++ b/conf/sip_profiles/internal.xml @@ -59,6 +59,10 @@ + + + + From ef03f93f46f7ef7788fb1aaac03815da751dde1a Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 29 Jun 2010 12:49:57 -0400 Subject: [PATCH 31/62] spaces --- Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index 2ef6175cac..a26346277a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -169,7 +169,7 @@ library_include_HEADERS = \ src/include/switch_xml.h \ src/include/switch_xml_config.h \ src/include/switch_cpp.h \ - src/include/switch_json.h\ + src/include/switch_json.h \ libs/libteletone/src/libteletone_detect.h \ libs/libteletone/src/libteletone_generate.h \ libs/libteletone/src/libteletone.h \ @@ -232,8 +232,8 @@ libfreeswitch_la_SOURCES = \ src/switch_limit.c \ src/g711.c \ src/switch_pcm.c \ - src/switch_profile.c\ - src/switch_json.c\ + src/switch_profile.c \ + src/switch_json.c \ libs/stfu/stfu.c \ libs/libteletone/src/libteletone_detect.c \ libs/libteletone/src/libteletone_generate.c \ From 9c5cd268f7c2fb1444be4ad49a61c0e58995b910 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 29 Jun 2010 13:02:25 -0400 Subject: [PATCH 32/62] mod_conference: fix build error for Meftah before he drives me insane with nagging --- src/mod/applications/mod_conference/mod_conference.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index e877b39e3f..53c4b85e1f 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -3801,7 +3801,7 @@ static void conference_xlist(conference_obj_t *conference, switch_xml_t x_confer if (conference->agc_level) { char tmp[30] = ""; switch_snprintf(tmp, sizeof(tmp), "%d", conference->agc_level); - switch_xml_set_attr_d(x_conference, "agc", tmp); + switch_xml_set_attr_d_buf(x_conference, "agc", tmp); } x_members = switch_xml_add_child_d(x_conference, "members", 0); From d21af530b9c8fb16abc31937c1eebc8ac7b859ce Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 29 Jun 2010 13:03:23 -0400 Subject: [PATCH 33/62] fix mod_celt rebuilds library when not required --- src/mod/codecs/mod_celt/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mod/codecs/mod_celt/Makefile b/src/mod/codecs/mod_celt/Makefile index f264210785..cdcc045bdb 100644 --- a/src/mod/codecs/mod_celt/Makefile +++ b/src/mod/codecs/mod_celt/Makefile @@ -15,6 +15,7 @@ $(CELT_DIR): $(CELT_BUILDDIR)/Makefile: $(CELT_DIR) mkdir -p $(CELT_BUILDDIR) cd $(CELT_BUILDDIR) && $(DEFAULT_VARS) $(CELT_DIR)/configure $(DEFAULT_ARGS) --srcdir=$(CELT_DIR) + $(TOUCH_TARGET) $(CELT_LA): $(CELT_BUILDDIR)/Makefile cd $(CELT_BUILDDIR) && $(MAKE) From d700e696258469e72a3572a2cbc96339fef2c4a0 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 29 Jun 2010 13:47:15 -0500 Subject: [PATCH 34/62] . --- src/mod/endpoints/mod_sofia/sofia_glue.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 5df57a811e..4c290f548b 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -4403,6 +4403,7 @@ static int recover_callback(void *pArg, int argc, char **argv, char **columnName } switch_channel_set_variable(channel, "sip_invite_call_id", switch_channel_get_variable(channel, "sip_call_id")); + switch_channel_set_variable(channel, "sip_invite_cseq", switch_channel_get_variable(channel, "sip_cseq")); if (switch_true(switch_channel_get_variable(channel, "sip_nat_detected"))) { switch_channel_set_variable_printf(channel, "sip_route_uri", "sip:%s@%s:%s", From 51cb9efe9a5dd1b8c64d9179ffa5c4b46f299878 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 29 Jun 2010 14:05:44 -0500 Subject: [PATCH 35/62] remove ass --- src/mod/endpoints/mod_sofia/mod_sofia.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index ee62e5d17e..3411d798d9 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -247,8 +247,6 @@ char *generate_pai_str(switch_core_session_t *session) if (!sofia_test_pflag(tech_pvt->profile, PFLAG_CID_IN_1XX) || ((var = switch_channel_get_variable(tech_pvt->channel, "sip_cid_in_1xx")) && switch_false(var))) { - printf("ASSSSS\n"); - return NULL; } From 524008ac50c978b9a4bc36b079ebccbcda4f3c1d Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Tue, 29 Jun 2010 14:33:01 -0500 Subject: [PATCH 36/62] more tweaks for VS2010 --- .../libs/apr-toolkit/aprtoolkit.2010.vcxproj | 16 ++++++++-------- libs/unimrcp/libs/mpf/mpf.2010.vcxproj | 16 ++++++++-------- .../libs/mrcp-client/mrcpclient.2010.vcxproj | 16 ++++++++-------- .../mrcp-signaling/mrcpsignaling.2010.vcxproj | 16 ++++++++-------- libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj | 16 ++++++++-------- .../mrcpv2transport.2010.vcxproj | 16 ++++++++-------- libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj | 16 ++++++++-------- .../mrcp-sofiasip/mrcpsofiasip.2010.vcxproj | 16 ++++++++-------- .../mrcp-unirtsp/mrcpunirtsp.2010.vcxproj | 16 ++++++++-------- libs/win32/json/libjson.2010.vcxproj | 4 ++-- .../sofia/libsofia_sip_ua_static.2010.vcxproj | 12 ++++-------- w32/Console/FreeSwitchConsole.2010.vcxproj | 7 +++---- w32/Library/FreeSwitchCore.2010.vcxproj | 8 -------- 13 files changed, 81 insertions(+), 94 deletions(-) diff --git a/libs/unimrcp/libs/apr-toolkit/aprtoolkit.2010.vcxproj b/libs/unimrcp/libs/apr-toolkit/aprtoolkit.2010.vcxproj index 733b541f71..9288736c40 100644 --- a/libs/unimrcp/libs/apr-toolkit/aprtoolkit.2010.vcxproj +++ b/libs/unimrcp/libs/apr-toolkit/aprtoolkit.2010.vcxproj @@ -69,14 +69,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/unimrcp/libs/mpf/mpf.2010.vcxproj b/libs/unimrcp/libs/mpf/mpf.2010.vcxproj index f0e068442b..1b48acef80 100644 --- a/libs/unimrcp/libs/mpf/mpf.2010.vcxproj +++ b/libs/unimrcp/libs/mpf/mpf.2010.vcxproj @@ -69,14 +69,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/unimrcp/libs/mrcp-client/mrcpclient.2010.vcxproj b/libs/unimrcp/libs/mrcp-client/mrcpclient.2010.vcxproj index 108daf75cd..1c861d58b5 100644 --- a/libs/unimrcp/libs/mrcp-client/mrcpclient.2010.vcxproj +++ b/libs/unimrcp/libs/mrcp-client/mrcpclient.2010.vcxproj @@ -69,14 +69,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2010.vcxproj b/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2010.vcxproj index 4fa4495050..f11e3bd765 100644 --- a/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2010.vcxproj +++ b/libs/unimrcp/libs/mrcp-signaling/mrcpsignaling.2010.vcxproj @@ -69,14 +69,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj b/libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj index 7afe47d10d..e525a96146 100644 --- a/libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj +++ b/libs/unimrcp/libs/mrcp/mrcp.2010.vcxproj @@ -69,14 +69,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2010.vcxproj b/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2010.vcxproj index 3736767108..33ed618305 100644 --- a/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2010.vcxproj +++ b/libs/unimrcp/libs/mrcpv2-transport/mrcpv2transport.2010.vcxproj @@ -69,14 +69,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj b/libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj index a281ceb00d..9fad4f7787 100644 --- a/libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj +++ b/libs/unimrcp/libs/uni-rtsp/unirtsp.2010.vcxproj @@ -69,14 +69,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2010.vcxproj b/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2010.vcxproj index f9e62832b9..43220e6f79 100644 --- a/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2010.vcxproj +++ b/libs/unimrcp/modules/mrcp-sofiasip/mrcpsofiasip.2010.vcxproj @@ -77,14 +77,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2010.vcxproj b/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2010.vcxproj index f19a5f0240..f8a573d857 100644 --- a/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2010.vcxproj +++ b/libs/unimrcp/modules/mrcp-unirtsp/mrcpunirtsp.2010.vcxproj @@ -77,14 +77,14 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ diff --git a/libs/win32/json/libjson.2010.vcxproj b/libs/win32/json/libjson.2010.vcxproj index b177ab0d8b..abd90a20b8 100644 --- a/libs/win32/json/libjson.2010.vcxproj +++ b/libs/win32/json/libjson.2010.vcxproj @@ -61,8 +61,8 @@ <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ $(PlatformName)\$(Configuration)\ diff --git a/libs/win32/sofia/libsofia_sip_ua_static.2010.vcxproj b/libs/win32/sofia/libsofia_sip_ua_static.2010.vcxproj index fdfb0e853b..1aca8e6aa8 100644 --- a/libs/win32/sofia/libsofia_sip_ua_static.2010.vcxproj +++ b/libs/win32/sofia/libsofia_sip_ua_static.2010.vcxproj @@ -62,12 +62,12 @@ <_ProjectFileVersion>10.0.30319.1 - .\Debug\ - .\Debug\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ - .\Release\ - .\Release\ + $(PlatformName)\$(Configuration)\ + $(PlatformName)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ @@ -101,7 +101,6 @@ if not exist "$(ProjectDir)$(IntDir)\auth_client.obj" "autogen.cmd" 0x040b - $(IntDir)libsofia_sip_ua_static.lib true @@ -146,7 +145,6 @@ if not exist "$(ProjectDir)$(IntDir)\auth_client.obj" "autogen.cmd" 0x040b - $(IntDir)libsofia_sip_ua_static.lib true @@ -183,7 +181,6 @@ if not exist "$(ProjectDir)$(IntDir)\auth_client.obj" "autogen.cmd" 0x040b - $(IntDir)libsofia_sip_ua_static.lib true @@ -222,7 +219,6 @@ if not exist "$(ProjectDir)$(IntDir)\auth_client.obj" "autogen.cmd" 0x040b - $(IntDir)libsofia_sip_ua_static.lib true diff --git a/w32/Console/FreeSwitchConsole.2010.vcxproj b/w32/Console/FreeSwitchConsole.2010.vcxproj index ddd4d69202..6514b4d9a0 100644 --- a/w32/Console/FreeSwitchConsole.2010.vcxproj +++ b/w32/Console/FreeSwitchConsole.2010.vcxproj @@ -75,6 +75,9 @@ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false + FreeSwitch + FreeSwitch + FreeSwitch FreeSwitch @@ -98,7 +101,6 @@ $(OutDir);%(AdditionalLibraryDirectories) true - $(OutDir)FreeSwitchConsole.pdb Console true @@ -130,7 +132,6 @@ $(OutDir);%(AdditionalLibraryDirectories) true - $(OutDir)FreeSwitchConsole.pdb Console true @@ -155,7 +156,6 @@ $(OutDir);%(AdditionalLibraryDirectories) true - $(OutDir)FreeSwitchConsole.pdb Console true true @@ -185,7 +185,6 @@ $(OutDir);%(AdditionalLibraryDirectories) true - $(OutDir)FreeSwitchConsole.pdb Console true true diff --git a/w32/Library/FreeSwitchCore.2010.vcxproj b/w32/Library/FreeSwitchCore.2010.vcxproj index 745d13902d..5ec0cef0ba 100644 --- a/w32/Library/FreeSwitchCore.2010.vcxproj +++ b/w32/Library/FreeSwitchCore.2010.vcxproj @@ -75,10 +75,6 @@ $(Platform)\$(Configuration)\ false $(SolutionDir)$(PlatformName)\$(Configuration)\ - FreeSwitch - FreeSwitch - FreeSwitch - FreeSwitch @@ -115,7 +111,6 @@ $(ProjectDir)..\..\libs\apr\$(OutDir);$(ProjectDir)..\..\libs\sqlite\$(OutDir) DLL;$(ProjectDir)..\..\libs\apr-util\$(OutDir);$(ProjectDir)..\..\libs\apr-iconv\$(OutDir);$(ProjectDir)..\..\libs\libresample\win;$(ProjectDir)..\..\libs\srtp\$(OutDir);%(AdditionalLibraryDirectories) %(AddModuleNamesToAssembly) true - $(OutDir)FreeSwitch.pdb Windows @@ -177,7 +172,6 @@ if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs $(ProjectDir)..\..\libs\apr\$(OutDir);$(ProjectDir)..\..\libs\sqlite\$(OutDir) DLL;$(ProjectDir)..\..\libs\apr-util\$(OutDir);$(ProjectDir)..\..\libs\apr-iconv\$(OutDir);$(ProjectDir)..\..\libs\libresample\win;$(ProjectDir)..\..\libs\srtp\$(OutDir);%(AdditionalLibraryDirectories) %(AddModuleNamesToAssembly) true - $(OutDir)FreeSwitch.pdb Windows @@ -229,7 +223,6 @@ if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs rpcrt4.lib;%(AdditionalDependencies) $(ProjectDir)..\..\libs\apr\$(OutDir);$(ProjectDir)..\..\libs\sqlite\$(OutDir) DLL;$(ProjectDir)..\..\libs\apr-util\$(OutDir);$(ProjectDir)..\..\libs\apr-iconv\$(OutDir);$(ProjectDir)..\..\libs\libresample\win;$(ProjectDir)..\..\libs\srtp\$(OutDir);%(AdditionalLibraryDirectories) true - $(OutDir)FreeSwitchCore.pdb Windows true true @@ -282,7 +275,6 @@ if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs rpcrt4.lib;%(AdditionalDependencies) $(ProjectDir)..\..\libs\apr\$(OutDir);$(ProjectDir)..\..\libs\sqlite\$(OutDir) DLL;$(ProjectDir)..\..\libs\apr-util\$(OutDir);$(ProjectDir)..\..\libs\apr-iconv\$(OutDir);$(ProjectDir)..\..\libs\libresample\win;$(ProjectDir)..\..\libs\srtp\$(OutDir);%(AdditionalLibraryDirectories) true - $(OutDir)FreeSwitchCore.pdb Windows true true From 0e2af5c74dd52f4bce7ab041f838bdf4ea9de9bb Mon Sep 17 00:00:00 2001 From: David Yat Sin Date: Wed, 12 May 2010 12:01:03 -0400 Subject: [PATCH 37/62] freetdm: Fix for case where event_process_states returns NULL instead of channel in sigmod mode --- .../ftmod_sangoma_boost/ftmod_sangoma_boost.c | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c b/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c index b079f9ecc7..fc83ab507b 100644 --- a/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_boost/ftmod_sangoma_boost.c @@ -1218,11 +1218,12 @@ static void handle_incoming_digit(sangomabc_connection_t *mcon, ftdm_span_t *spa static ftdm_channel_t* event_process_states(ftdm_span_t *span, sangomabc_short_event_t *event) { ftdm_channel_t *ftdmchan = NULL; + ftdm_sangoma_boost_data_t *signal_data = span->signal_data; switch (event->event_id) { case SIGBOOST_EVENT_CALL_START_NACK: case SIGBOOST_EVENT_CALL_START_NACK_ACK: - if (event->call_setup_id) { + if (event->call_setup_id && !signal_data->sigmod) { return NULL; } //if event->span and event->chan is valid, fall-through @@ -1238,8 +1239,8 @@ static ftdm_channel_t* event_process_states(ftdm_span_t *span, sangomabc_short_e case SIGBOOST_EVENT_CALL_RELEASED: if (!(ftdmchan = find_ftdmchan(span, (sangomabc_short_event_t*)event, 1))) { ftdm_log(FTDM_LOG_CRIT, "could not find channel %d:%d to process pending state changes!\n", - BOOST_EVENT_SPAN(((ftdm_sangoma_boost_data_t*)(span->signal_data))->sigmod, event), - BOOST_EVENT_CHAN(((ftdm_sangoma_boost_data_t*)(span->signal_data))->sigmod, event)); + BOOST_EVENT_SPAN(signal_data->sigmod, event), + BOOST_EVENT_CHAN(signal_data->sigmod, event)); return NULL; } break; @@ -1353,14 +1354,22 @@ static int parse_sangoma_event(ftdm_span_t *span, sangomabc_connection_t *mcon, * \brief Handler for channel state change * \param ftdmchan Channel to handle */ -static __inline__ void state_advance(ftdm_channel_t *ftdmchan) +static __inline__ ftdm_status_t state_advance(ftdm_channel_t *ftdmchan) { - ftdm_sangoma_boost_data_t *sangoma_boost_data = ftdmchan->span->signal_data; sangomabc_connection_t *mcon = &sangoma_boost_data->mcon; ftdm_sigmsg_t sig; ftdm_status_t status; + + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { + ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); + } else { + return FTDM_SUCCESS; + } + + ftdm_assert_return(ftdmchan->last_state != ftdmchan->state, FTDM_FAIL, "Channel state already processed\n"); + ftdm_log(FTDM_LOG_DEBUG, "%d:%d PROCESSING STATE [%s]\n", ftdmchan->span_id, ftdmchan->chan_id, ftdm_channel_state2str(ftdmchan->state)); memset(&sig, 0, sizeof(sig)); @@ -1618,14 +1627,14 @@ static __inline__ void state_advance(ftdm_channel_t *ftdmchan) default: break; } + ftdm_channel_complete_state(ftdmchan); + return FTDM_SUCCESS; } static __inline__ void advance_chan_states(ftdm_channel_t *ftdmchan) { while (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { - ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); state_advance(ftdmchan); - ftdm_channel_complete_state(ftdmchan); } } @@ -1664,7 +1673,6 @@ static __inline__ void check_state(ftdm_span_t *span) ftdm_set_state(span->channels[j], FTDM_CHANNEL_STATE_RESTART); } state_advance(span->channels[j]); - ftdm_channel_complete_state(span->channels[j]); ftdm_mutex_unlock(span->channels[j]->mutex); } } @@ -1674,11 +1682,7 @@ static __inline__ void check_state(ftdm_span_t *span) * but without taking the chan out of the queue, so check th * flag before advancing the state */ ftdm_mutex_lock(ftdmchan->mutex); - if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { - ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); - state_advance(ftdmchan); - ftdm_channel_complete_state(ftdmchan); - } + state_advance(ftdmchan); ftdm_mutex_unlock(ftdmchan->mutex); } } From eb6da2c9fc5ca96ea91ab2b463670de0306333a7 Mon Sep 17 00:00:00 2001 From: David Yat Sin Date: Tue, 29 Jun 2010 15:32:22 -0400 Subject: [PATCH 38/62] Freetdm: Fix for boost spans not started if using a combination of analog spans and boost spans --- libs/freetdm/mod_freetdm/mod_freetdm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index 923c34363b..71afdbaeed 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -2996,7 +2996,7 @@ static switch_status_t load_config(void) /* start all boost spans now that we're done configuring. Unfortunately at this point boost modules have the limitation * of needing all spans to be configured before starting them */ - for ( ; i < boosti; i++) { + for (i=0 ; i < boosti; i++) { boost_span = boost_spans[i]; ftdm_log(FTDM_LOG_DEBUG, "Starting boost span %d\n", ftdm_span_get_id(boost_span)); if (ftdm_span_start(boost_span) == FTDM_FAIL) { From e4b95562089d6e6cf914fcc62cd663d441c092f5 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Tue, 29 Jun 2010 16:29:37 -0400 Subject: [PATCH 39/62] freetdm: more sip headers --- libs/freetdm/mod_freetdm/mod_freetdm.c | 93 ++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index 71afdbaeed..ee59bf3d14 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -1137,6 +1137,80 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi direction = FTDM_BOTTOM_UP; chan_id = 0; } + + if (session && globals.sip_headers) { + switch_channel_t *channel = switch_core_session_get_channel(session); + const char *sipvar; + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-CallerName"); + if (sipvar) { + ftdm_set_string(caller_data.cid_name, sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-CallerNumber"); + if (sipvar) { + ftdm_set_string(caller_data.cid_num.digits, sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-ANI"); + if (sipvar) { + ftdm_set_string(caller_data.ani.digits, sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-ANI-TON"); + if (sipvar) { + caller_data.ani.type = atoi(sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-ANI-Plan"); + if (sipvar) { + caller_data.ani.plan = atoi(sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-ANIII"); + if (sipvar) { + ftdm_set_string(caller_data.aniII, sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-DNIS"); + if (sipvar) { + ftdm_set_string(caller_data.dnis.digits, sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-DNIS-TON"); + if (sipvar) { + caller_data.dnis.type = atoi(sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-DNIS-Plan"); + if (sipvar) { + caller_data.dnis.plan = atoi(sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-RDNIS"); + if (sipvar) { + ftdm_set_string(caller_data.rdnis.digits, sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-RDNIS-TON"); + if (sipvar) { + caller_data.rdnis.type = atoi(sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-RDNIS-Plan"); + if (sipvar) { + caller_data.rdnis.plan = atoi(sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-Screen"); + if (sipvar) { + caller_data.screen = atoi(sipvar); + } + + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-Presentation"); + if (sipvar) { + caller_data.pres = atoi(sipvar); + } + } if (switch_test_flag(outbound_profile, SWITCH_CPF_SCREEN)) { caller_data.screen = 1; @@ -1372,6 +1446,25 @@ ftdm_status_t ftdm_channel_from_event(ftdm_sigmsg_t *sigmsg, switch_core_session switch_channel_set_variable(channel, "sip_h_X-FreeTDM-SpanName", ftdm_channel_get_span_name(sigmsg->channel)); switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-SpanNumber", "%d", spanid); switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-ChanNumber", "%d", chanid); + + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-CallerName", "%s", channel_caller_data->cid_name); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-CallerNumber", "%s", channel_caller_data->cid_num.digits); + + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-ANI", "%s", channel_caller_data->ani.digits); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-ANI-TON", "%d", channel_caller_data->ani.type); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-ANI-Plan", "%d", channel_caller_data->ani.plan); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-ANI2", "%s", channel_caller_data->aniII); + + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-DNIS", "%s", channel_caller_data->dnis.digits); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-DNIS-TON", "%s", channel_caller_data->dnis.type); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-DNIS-Plan", "%s", channel_caller_data->dnis.plan); + + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-RDNIS", "%s", channel_caller_data->rdnis.digits); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-RDNIS-TON", "%d", channel_caller_data->rdnis.type); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-RDNIS-Plan", "%d", channel_caller_data->rdnis.plan); + + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-Screen", "%d", channel_caller_data->screen); + switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-Presentation", "%d", channel_caller_data->pres); } if (channel_caller_data->raw_data_len) { switch_channel_set_variable_printf(channel, "freetdm_custom_call_data", "%s", channel_caller_data->raw_data); From 98a436bb27ea0b4b764988374017413083a2551a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 29 Jun 2010 15:40:55 -0500 Subject: [PATCH 40/62] add switch_cache_db_dismiss_db_handle --- src/include/switch_core.h | 4 +++- src/switch_core_sqldb.c | 31 ++++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/include/switch_core.h b/src/include/switch_core.h index 9db7385cce..86335593c6 100644 --- a/src/include/switch_core.h +++ b/src/include/switch_core.h @@ -2012,7 +2012,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_preprocess_session(switch_core_sessio #define CACHE_DB_LEN 256 typedef enum { - CDF_INUSE = (1 << 0) + CDF_INUSE = (1 << 0), + CDF_PRUNE = (1 << 1) } cache_db_flag_t; typedef enum { @@ -2075,6 +2076,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_preprocess_session(switch_core_sessio return type_str; } +SWITCH_DECLARE(void) switch_cache_db_dismiss_db_handle(switch_cache_db_handle_t ** dbh); SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t ** dbh); SWITCH_DECLARE(void) switch_cache_db_destroy_db_handle(switch_cache_db_handle_t ** dbh); SWITCH_DECLARE(switch_status_t) _switch_cache_db_get_db_handle(switch_cache_db_handle_t ** dbh, diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 71cfd416a9..2ce23de97f 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -103,7 +103,7 @@ static void sql_close(time_t prune) diff = (time_t) prune - dbh->last_used; } - if (prune > 0 && diff < SQL_CACHE_TIMEOUT) { + if (prune > 0 && diff < SQL_CACHE_TIMEOUT && !switch_test_flag(dbh, CDF_PRUNE)) { continue; } @@ -161,6 +161,22 @@ SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t } +SWITCH_DECLARE(void) switch_cache_db_dismiss_db_handle(switch_cache_db_handle_t ** dbh) +{ + if (dbh && *dbh) { + + if ((*dbh)->type == SCDB_TYPE_CORE_DB) { + switch_set_flag((*dbh), CDF_PRUNE); + } else { + switch_clear_flag((*dbh), CDF_INUSE); + } + + switch_mutex_unlock((*dbh)->mutex); + *dbh = NULL; + } +} + + SWITCH_DECLARE(void) switch_cache_db_destroy_db_handle(switch_cache_db_handle_t ** dbh) { if (dbh && *dbh) { @@ -208,9 +224,13 @@ SWITCH_DECLARE(void) switch_cache_db_detach(void) if ((dbh = (switch_cache_db_handle_t *) val)) { if (switch_mutex_trylock(dbh->mutex) == SWITCH_STATUS_SUCCESS) { if (strstr(dbh->name, thread_str)) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG10, - "Detach cached DB handle %s [%s]\n", thread_str, switch_cache_db_type_name(dbh->type)); - switch_clear_flag(dbh, CDF_INUSE); + if (dbh->type == SCDB_TYPE_CORE_DB) { + switch_set_flag(dbh, CDF_PRUNE); + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG10, + "Detach cached DB handle %s [%s]\n", thread_str, switch_cache_db_type_name(dbh->type)); + switch_clear_flag(dbh, CDF_INUSE); + } } switch_mutex_unlock(dbh->mutex); } @@ -281,7 +301,8 @@ SWITCH_DECLARE(switch_status_t) _switch_cache_db_get_db_handle(switch_cache_db_h if ((new_dbh = (switch_cache_db_handle_t *) val)) { if (hash == new_dbh->hash && !strncasecmp(new_dbh->name, db_str, strlen(db_str)) && - !switch_test_flag(new_dbh, CDF_INUSE) && switch_mutex_trylock(new_dbh->mutex) == SWITCH_STATUS_SUCCESS) { + !switch_test_flag(new_dbh, CDF_INUSE) && !switch_test_flag(new_dbh, CDF_PRUNE) + && switch_mutex_trylock(new_dbh->mutex) == SWITCH_STATUS_SUCCESS) { switch_set_flag(new_dbh, CDF_INUSE); switch_set_string(new_dbh->name, thread_str); new_dbh->hash = switch_ci_hashfunc_default(db_str, &hlen); From ab3d7d144e28847a67eac968cf3c5d21b32bdaa0 Mon Sep 17 00:00:00 2001 From: Rupa Schomaker Date: Tue, 29 Jun 2010 16:00:44 -0500 Subject: [PATCH 41/62] switch to switch_cache_db_dismiss_db_handle to reduce odbc usage under heavy switch load --- src/mod/applications/mod_cidlookup/mod_cidlookup.c | 4 ++-- src/mod/applications/mod_db/mod_db.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) mode change 100755 => 100644 src/mod/applications/mod_cidlookup/mod_cidlookup.c diff --git a/src/mod/applications/mod_cidlookup/mod_cidlookup.c b/src/mod/applications/mod_cidlookup/mod_cidlookup.c old mode 100755 new mode 100644 index 230c48ac8d..76239cba0c --- a/src/mod/applications/mod_cidlookup/mod_cidlookup.c +++ b/src/mod/applications/mod_cidlookup/mod_cidlookup.c @@ -143,7 +143,7 @@ static switch_status_t config_callback_dsn(switch_xml_config_item_t *data, const switch_goto_status(SWITCH_STATUS_SUCCESS, done); done: - switch_cache_db_release_db_handle(&dbh); + switch_cache_db_dismiss_db_handle(&dbh); return status; } @@ -198,7 +198,7 @@ static switch_bool_t cidlookup_execute_sql_callback(char *sql, switch_core_db_ca *err = switch_core_sprintf(cbt->pool, "Unable to get ODBC handle. dsn: %s, dbh is %s\n", globals.odbc_dsn, dbh ? "not null" : "null"); } - switch_cache_db_release_db_handle(&dbh); + switch_cache_db_dismiss_db_handle(&dbh); return retval; } diff --git a/src/mod/applications/mod_db/mod_db.c b/src/mod/applications/mod_db/mod_db.c index b4c76d273a..6bf08a3c98 100644 --- a/src/mod/applications/mod_db/mod_db.c +++ b/src/mod/applications/mod_db/mod_db.c @@ -122,7 +122,7 @@ static switch_status_t limit_execute_sql(char *sql) end: - switch_cache_db_release_db_handle(&dbh); + switch_cache_db_dismiss_db_handle(&dbh); return status; } @@ -148,7 +148,7 @@ static switch_bool_t limit_execute_sql_callback(char *sql, switch_core_db_callba end: - switch_cache_db_release_db_handle(&dbh); + switch_cache_db_dismiss_db_handle(&dbh); return ret; } @@ -344,6 +344,7 @@ static switch_status_t do_config() sql = switch_mprintf("delete from limit_data where hostname='%q';", globals.hostname); limit_execute_sql(sql); switch_safe_free(sql); + switch_cache_db_dismiss_db_handle(&dbh); /* try to really free the connection */ } return status; From 6449861e02c1aba268e110e9025fa163ee9e9623 Mon Sep 17 00:00:00 2001 From: Rupa Schomaker Date: Tue, 29 Jun 2010 16:04:45 -0500 Subject: [PATCH 42/62] mod_lcr: use switch_cache_db_dismiss_db_handle to reduce persistant db connections under heavy load. --- src/mod/applications/mod_lcr/mod_lcr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) mode change 100755 => 100644 src/mod/applications/mod_lcr/mod_lcr.c diff --git a/src/mod/applications/mod_lcr/mod_lcr.c b/src/mod/applications/mod_lcr/mod_lcr.c old mode 100755 new mode 100644 index 0e45be39de..3399417532 --- a/src/mod/applications/mod_lcr/mod_lcr.c +++ b/src/mod/applications/mod_lcr/mod_lcr.c @@ -445,7 +445,7 @@ static switch_bool_t db_check(char *sql) } } - switch_cache_db_release_db_handle(&dbh); + switch_cache_db_dismiss_db_handle(&dbh); return ret; } @@ -581,7 +581,7 @@ static switch_bool_t lcr_execute_sql_callback(char *sql, switch_core_db_callback retval = SWITCH_TRUE; } } - switch_cache_db_release_db_handle(&dbh); + switch_cache_db_dismiss_db_handle(&dbh); return retval; } @@ -1175,7 +1175,7 @@ static switch_status_t lcr_load_config() } done: - switch_cache_db_release_db_handle(&dbh); + switch_cache_db_dismiss_db_handle(&dbh); switch_xml_free(xml); return status; } From c0246b11430691fd198c47a7218e47ceebd29aef Mon Sep 17 00:00:00 2001 From: Rupa Schomaker Date: Tue, 29 Jun 2010 16:18:44 -0500 Subject: [PATCH 43/62] add some docs to the switch_cache_db_* functions --- src/include/switch_core.h | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/include/switch_core.h b/src/include/switch_core.h index 86335593c6..9d7d02b6e1 100644 --- a/src/include/switch_core.h +++ b/src/include/switch_core.h @@ -2076,20 +2076,68 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_preprocess_session(switch_core_sessio return type_str; } +/*! + \brief Returns the handle to the pool, immediately available for other + threads to use. + \param [in] The handle +*/ SWITCH_DECLARE(void) switch_cache_db_dismiss_db_handle(switch_cache_db_handle_t ** dbh); +/*! + \brief Returns the handle to the pool, handle is NOT available to + other threads until the allocating thread actually terminates. + \param [in] The handle +*/ SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t ** dbh); +/*! + \brief Removes the handle from the pool and frees up the handle resources. + \param [in] The handle +*/ SWITCH_DECLARE(void) switch_cache_db_destroy_db_handle(switch_cache_db_handle_t ** dbh); +/*! + \brief Gets a new cached handle from the pool, potentially creating a new connection. + The connection is bound to the thread until it (the thread) terminates unless + you dismiss rather than release. + \param [out] dbh The handle + \param [in] type - ODBC or SQLLITE + \param [in] connection_options (userid, password, etc) +*/ SWITCH_DECLARE(switch_status_t) _switch_cache_db_get_db_handle(switch_cache_db_handle_t ** dbh, switch_cache_db_handle_type_t type, switch_cache_db_connection_options_t *connection_options, const char *file, const char *func, int line); #define switch_cache_db_get_db_handle(_a, _b, _c) _switch_cache_db_get_db_handle(_a, _b, _c, __FILE__, __SWITCH_FUNC__, __LINE__) +/*! + \brief Executes the sql and returns the result as a string + \param [in] dbh The handle + \param [in] sql - sql to run + \param [out] str - buffer for result + \param [in] len - length of str buffer + \param [out] err - Error if it exists +*/ SWITCH_DECLARE(char *) switch_cache_db_execute_sql2str(switch_cache_db_handle_t *dbh, char *sql, char *str, size_t len, char **err); +/*! + \brief Executes the sql + \param [in] dbh The handle + \param [in] sql - sql to run + \param [out] err - Error if it exists +*/ SWITCH_DECLARE(switch_status_t) switch_cache_db_execute_sql(switch_cache_db_handle_t *dbh, char *sql, char **err); +/*! + \brief Executes the sql and uses callback for row-by-row processing + \param [in] dbh The handle + \param [in] sql - sql to run + \param [in] callback - function pointer to callback + \param [in] pdata - data to pass to callback + \param [out] err - Error if it exists +*/ SWITCH_DECLARE(switch_status_t) switch_cache_db_execute_sql_callback(switch_cache_db_handle_t *dbh, const char *sql, switch_core_db_callback_func_t callback, void *pdata, char **err); +/*! + \brief Provides some feedback as to the status of the db connection pool + \param [in] stream stream for status +*/ SWITCH_DECLARE(void) switch_cache_db_status(switch_stream_handle_t *stream); SWITCH_DECLARE(switch_status_t) _switch_core_db_handle(switch_cache_db_handle_t ** dbh, const char *file, const char *func, int line); #define switch_core_db_handle(_a) _switch_core_db_handle(_a, __FILE__, __SWITCH_FUNC__, __LINE__) @@ -2098,6 +2146,9 @@ SWITCH_DECLARE(switch_bool_t) switch_cache_db_test_reactive(switch_cache_db_hand const char *test_sql, const char *drop_sql, const char *reactive_sql); SWITCH_DECLARE(switch_status_t) switch_cache_db_persistant_execute(switch_cache_db_handle_t *dbh, const char *sql, uint32_t retries); SWITCH_DECLARE(switch_status_t) switch_cache_db_persistant_execute_trans(switch_cache_db_handle_t *dbh, char *sql, uint32_t retries); +/*! + \brief Tries to detach all free connections from current thread. +*/ SWITCH_DECLARE(void) switch_cache_db_detach(void); SWITCH_DECLARE(uint32_t) switch_core_debug_level(void); SWITCH_DECLARE(void) switch_cache_db_flush_handles(void); From 13a5f4eee0b16585ebe94633fe00532a916aee47 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Tue, 29 Jun 2010 22:25:28 -0400 Subject: [PATCH 44/62] update sangoma codec configuration --- conf/autoload_configs/sangoma_codec.conf.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/autoload_configs/sangoma_codec.conf.xml b/conf/autoload_configs/sangoma_codec.conf.xml index 9176a41d3a..da4b8ed643 100644 --- a/conf/autoload_configs/sangoma_codec.conf.xml +++ b/conf/autoload_configs/sangoma_codec.conf.xml @@ -5,13 +5,13 @@ Comma separated list of codecs to register with FreeSWITCH, by default (if this parameter is not set) all available codecs are registered. Valid codec values are: PCMU,PCMA,L16,G729,G726-32,GSM - + --> From 6bd82d1fb4a45444afb310053936f5e68cde885f Mon Sep 17 00:00:00 2001 From: Mathieu Rene Date: Tue, 29 Jun 2010 23:00:24 -0400 Subject: [PATCH 45/62] Add fsctl shutdown_check to see if we're currently shutting down --- src/include/switch_types.h | 3 ++- src/mod/applications/mod_commands/mod_commands.c | 3 +++ src/switch_core.c | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/include/switch_types.h b/src/include/switch_types.h index e65b3b78ce..d18f6ecb93 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1539,7 +1539,8 @@ typedef enum { SCSC_SAVE_HISTORY, SCSC_CRASH, SCSC_MIN_IDLE_CPU, - SCSC_VERBOSE_EVENTS + SCSC_VERBOSE_EVENTS, + SCSC_SHUTDOWN_CHECK } switch_session_ctl_t; typedef enum { diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index 8c83dfc86f..9e0066191c 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -1563,6 +1563,9 @@ SWITCH_STANDARD_API(ctl_function) } else if (!strcasecmp(argv[0], "save_history")) { switch_core_session_ctl(SCSC_SAVE_HISTORY, NULL); stream->write_function(stream, "+OK\n"); + } else if (!strcasecmp(argv[0], "shutdown_check")) { + switch_core_session_ctl(SCSC_SHUTDOWN_CHECK, &arg); + stream->write_function(stream, arg ? "true" : "false"); } else if (!strcasecmp(argv[0], "shutdown")) { switch_session_ctl_t command = SCSC_SHUTDOWN; int x = 0; diff --git a/src/switch_core.c b/src/switch_core.c index 37dabbc6e9..d48cd46dfc 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -1772,6 +1772,9 @@ SWITCH_DECLARE(int32_t) switch_core_session_ctl(switch_session_ctl_t cmd, void * } } break; + case SCSC_SHUTDOWN_CHECK: + newintval = !!switch_test_flag((&runtime), SCF_SHUTDOWN_REQUESTED); + break; case SCSC_SHUTDOWN: #ifdef _MSC_VER From e11560ddf3f39c8443ccbb427102760f93751dc4 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 09:05:14 -0500 Subject: [PATCH 46/62] share handles when not using sqlite --- src/switch_core_sqldb.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 2ce23de97f..38caa03478 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -77,7 +77,7 @@ SWITCH_DECLARE(switch_status_t) _switch_core_db_handle(switch_cache_db_handle_t } -#define SQL_CACHE_TIMEOUT 300 +#define SQL_CACHE_TIMEOUT 120 static void sql_close(time_t prune) { @@ -155,6 +155,17 @@ SWITCH_DECLARE(void) switch_cache_db_flush_handles(void) SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t ** dbh) { if (dbh && *dbh) { + + switch ((*dbh)->type) { + case SCDB_TYPE_ODBC: + { + switch_clear_flag((*dbh), CDF_INUSE); + } + break; + default: + break; + } + switch_mutex_unlock((*dbh)->mutex); *dbh = NULL; } From e574455495858817ab43f1e902f3416e12da386a Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Wed, 30 Jun 2010 09:25:19 -0500 Subject: [PATCH 47/62] more tweaks for VS2010 --- w32/Console/FreeSwitchConsole.2010.vcxproj | 4 ---- w32/Library/FreeSwitchCore.2010.vcxproj | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/w32/Console/FreeSwitchConsole.2010.vcxproj b/w32/Console/FreeSwitchConsole.2010.vcxproj index 6514b4d9a0..21900b0a60 100644 --- a/w32/Console/FreeSwitchConsole.2010.vcxproj +++ b/w32/Console/FreeSwitchConsole.2010.vcxproj @@ -75,10 +75,6 @@ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false - FreeSwitch - FreeSwitch - FreeSwitch - FreeSwitch diff --git a/w32/Library/FreeSwitchCore.2010.vcxproj b/w32/Library/FreeSwitchCore.2010.vcxproj index 5ec0cef0ba..9dc0f7899c 100644 --- a/w32/Library/FreeSwitchCore.2010.vcxproj +++ b/w32/Library/FreeSwitchCore.2010.vcxproj @@ -75,6 +75,10 @@ $(Platform)\$(Configuration)\ false $(SolutionDir)$(PlatformName)\$(Configuration)\ + FreeSwitch + FreeSwitch + FreeSwitch + FreeSwitch From 4f235af8b483a57e2fcd501db6bdf499026ca419 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Wed, 30 Jun 2010 11:14:19 -0400 Subject: [PATCH 48/62] freetdm: ani2 --- libs/freetdm/mod_freetdm/mod_freetdm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index ee59bf3d14..4d8f8b3d00 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -1166,7 +1166,7 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi caller_data.ani.plan = atoi(sipvar); } - sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-ANIII"); + sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-ANI2"); if (sipvar) { ftdm_set_string(caller_data.aniII, sipvar); } From f2ea3ee315621f5c345a8fdade7e018990dc4c98 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 10:35:03 -0500 Subject: [PATCH 49/62] indent run --- src/mod/endpoints/mod_sofia/mod_sofia.c | 43 ++++++----- src/mod/endpoints/mod_sofia/mod_sofia.h | 13 ++-- src/mod/endpoints/mod_sofia/sofia.c | 9 ++- src/mod/endpoints/mod_sofia/sofia_glue.c | 94 +++++++++++++++++------- src/switch_core_sqldb.c | 37 +++++----- 5 files changed, 126 insertions(+), 70 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 3411d798d9..79a393a464 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -121,7 +121,7 @@ static switch_status_t sofia_on_init(switch_core_session_t *session) } } - end: + end: switch_mutex_unlock(tech_pvt->sofia_mutex); @@ -245,7 +245,7 @@ char *generate_pai_str(switch_core_session_t *session) const char *var, *header, *ua = switch_channel_get_variable(tech_pvt->channel, "sip_user_agent"); char *pai = NULL; - if (!sofia_test_pflag(tech_pvt->profile, PFLAG_CID_IN_1XX) || + if (!sofia_test_pflag(tech_pvt->profile, PFLAG_CID_IN_1XX) || ((var = switch_channel_get_variable(tech_pvt->channel, "sip_cid_in_1xx")) && switch_false(var))) { return NULL; } @@ -518,7 +518,7 @@ switch_status_t sofia_on_hangup(switch_core_session_t *session) } if (!sofia_test_flag(tech_pvt, TFLAG_BYE)) { char *cid = generate_pai_str(session); - + nua_respond(tech_pvt->nh, sip_cause, sip_status_phrase(sip_cause), TAG_IF(!zstr(reason), SIPTAG_REASON_STR(reason)), TAG_IF(cid, SIPTAG_HEADER_STR(cid)), TAG_IF(!zstr(bye_headers), SIPTAG_HEADER_STR(bye_headers)), TAG_END()); @@ -702,7 +702,7 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session) if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MODE) && tech_pvt->early_sdp && strcmp(tech_pvt->early_sdp, tech_pvt->local_sdp_str)) { /* The SIP RFC for SOA forbids sending a 183 with one sdp then a 200 with another but it won't do us much good unless we do so in this case we will abandon the SOA rules and go rogue. - */ + */ sofia_clear_flag(tech_pvt, TFLAG_ENABLE_SOA); } @@ -1100,7 +1100,7 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f tech_pvt->mismatch_count = 0; tech_pvt->last_ts = 0; } - skip: + skip: if ((bytes = tech_pvt->read_impl.encoded_bytes_per_packet)) { frames = (tech_pvt->read_frame.datalen / bytes); @@ -2162,7 +2162,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi tech_pvt->early_sdp && strcmp(tech_pvt->early_sdp, tech_pvt->local_sdp_str)) { /* The SIP RFC for SOA forbids sending a 183 with one sdp then a 200 with another but it won't do us much good unless we do so in this case we will abandon the SOA rules and go rogue. - */ + */ sofia_clear_flag(tech_pvt, TFLAG_ENABLE_SOA); } @@ -2207,7 +2207,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi break; } - end_lock: + end_lock: //if (msg->message_id == SWITCH_MESSAGE_INDICATE_ANSWER || msg->message_id == SWITCH_MESSAGE_INDICATE_PROGRESS) { //sofia_send_callee_id(session, NULL, NULL); @@ -2215,7 +2215,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi switch_mutex_unlock(tech_pvt->sofia_mutex); - end: + end: if (switch_channel_down(channel) || !tech_pvt || sofia_test_flag(tech_pvt, TFLAG_BYE)) { status = SWITCH_STATUS_FALSE; @@ -3158,7 +3158,7 @@ static switch_status_t cmd_profile(char **argv, int argc, switch_stream_handle_t stream->write_function(stream, "-ERR Unknown command!\n"); - done: + done: if (profile) { sofia_glue_release_profile(profile); } @@ -3456,7 +3456,7 @@ SWITCH_STANDARD_API(sofia_gateway_data_function) sofia_reg_release_gateway(gateway); - end: + end: switch_safe_free(mydata); return SWITCH_STATUS_SUCCESS; } @@ -3559,7 +3559,7 @@ SWITCH_STANDARD_API(sofia_function) stream->write_function(stream, "Unknown Command [%s]\n", argv[0]); } - done: + done: switch_safe_free(mycmd); return status; } @@ -3946,7 +3946,7 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session if (switch_core_session_compare(session, nsession)) { /* It's another sofia channel! so lets cache what they use as a pt for telephone event so we can keep it the same - */ + */ private_object_t *ctech_pvt; ctech_pvt = switch_core_session_get_private(session); switch_assert(ctech_pvt != NULL); @@ -3979,14 +3979,14 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session goto done; - error: + error: if (nsession) { switch_core_session_destroy(&nsession); } if (pool) { *pool = NULL; } - done: + done: if (profile) { if (cause == SWITCH_CAUSE_SUCCESS) { @@ -4140,12 +4140,12 @@ static void general_event_handler(switch_event_t *event) sql = switch_mprintf("select sip_user,sip_host,contact,profile_name,'%q','%q','%q' " "from sip_registrations where mwi_user='%s' and mwi_host='%q'", ct, es, switch_str_nil(body), switch_str_nil(user), switch_str_nil(host) - ); + ); } else { sql = switch_mprintf("select sip_user,sip_host,contact,profile_name,'%q','%q','%q' " "from sip_registrations where sip_user='%s' and sip_host='%q'", ct, es, switch_str_nil(body), switch_str_nil(user), switch_str_nil(host) - ); + ); } } @@ -4299,7 +4299,7 @@ static void general_event_handler(switch_event_t *event) sofia_glue_release_profile(profile); } - done: + done: switch_safe_free(local_dup); @@ -4463,7 +4463,7 @@ static switch_status_t list_profile_gateway(const char *line, const char *cursor status = SWITCH_STATUS_SUCCESS; } - end: + end: switch_safe_free(dup); @@ -4553,6 +4553,12 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_sofia_load) return SWITCH_STATUS_GENERR; } + if (switch_event_bind_removable(modname, SWITCH_EVENT_CUSTOM, MY_EVENT_RECOVERY, sofia_glue_track_event_handler, NULL, + &mod_sofia_globals.recovery_node) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't bind!\n"); + return SWITCH_STATUS_GENERR; + } + if (switch_event_bind(modname, SWITCH_EVENT_TRAP, SWITCH_EVENT_SUBCLASS_ANY, general_event_handler, NULL) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't bind!\n"); return SWITCH_STATUS_GENERR; @@ -4647,6 +4653,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_sofia_shutdown) switch_event_unbind(&mod_sofia_globals.roster_node); switch_event_unbind(&mod_sofia_globals.custom_node); switch_event_unbind(&mod_sofia_globals.mwi_node); + switch_event_unbind(&mod_sofia_globals.recovery_node); switch_event_unbind_callback(general_event_handler); while (mod_sofia_globals.threads) { diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index bceba89b5b..3723d3582c 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -83,6 +83,8 @@ typedef struct private_object private_object_t; #define MY_EVENT_REINVITE "sofia::reinvite" #define MY_EVENT_GATEWAY_ADD "sofia::gateway_add" #define MY_EVENT_GATEWAY_DEL "sofia::gateway_delete" +#define MY_EVENT_RECOVERY "sofia::recovery" +#define MY_EVENT_RECOVERY_SEND "sofia::recovery_send" #define MULTICAST_EVENT "multicast::event" #define SOFIA_REPLACES_HEADER "_sofia_replaces_" @@ -209,6 +211,7 @@ typedef enum { PFLAG_PASS_CALLEE_ID, PFLAG_LOG_AUTH_FAIL, PFLAG_TRACK_CALLS, + PFLAG_TRACK_CALLS_EVENTS, PFLAG_DESTROY, PFLAG_EXTENDED_INFO_PARSING, PFLAG_T38_PASSTHRU, @@ -295,6 +298,7 @@ struct mod_sofia_globals { switch_event_node_t *roster_node; switch_event_node_t *custom_node; switch_event_node_t *mwi_node; + switch_event_node_t *recovery_node; int guess_mask; char guess_mask_str[16]; int debug_presence; @@ -761,8 +765,7 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t void sofia_handle_sip_i_info(nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, switch_core_session_t *session, sip_t const *sip, tagi_t tags[]); -void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, sofia_private_t *sofia_private, sip_t const *sip, - tagi_t tags[]); +void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, sofia_private_t *sofia_private, sip_t const *sip, tagi_t tags[]); void sofia_reg_handle_sip_i_register(nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, sofia_private_t *sofia_private, sip_t const *sip, tagi_t tags[]); @@ -792,6 +795,7 @@ char *sofia_reg_find_reg_url(sofia_profile_t *profile, const char *user, const c void event_handler(switch_event_t *event); void sofia_presence_event_handler(switch_event_t *event); void sofia_presence_mwi_event_handler(switch_event_t *event); +void sofia_glue_track_event_handler(switch_event_t *event); void sofia_presence_cancel(void); switch_status_t config_sofia(int reload, char *profile_name); void sofia_reg_auth_challenge(nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, sofia_regtype_t regtype, const char *realm, int stale); @@ -910,7 +914,7 @@ void sofia_reg_release_gateway__(const char *file, const char *func, int line, s /* * Transport handling helper functions */ -sofia_transport_t sofia_glue_via2transport(const sip_via_t *via); +sofia_transport_t sofia_glue_via2transport(const sip_via_t * via); sofia_transport_t sofia_glue_url2transport(const url_t *url); sofia_transport_t sofia_glue_str2transport(const char *str); @@ -922,8 +926,7 @@ char *sofia_glue_strip_uri(const char *str); int sofia_glue_check_nat(sofia_profile_t *profile, const char *network_ip); int sofia_glue_transport_has_tls(const sofia_transport_t tp); const char *sofia_glue_get_unknown_header(sip_t const *sip, const char *name); -switch_status_t sofia_glue_build_crypto(private_object_t *tech_pvt, int index, switch_rtp_crypto_key_type_t type, - switch_rtp_crypto_direction_t direction); +switch_status_t sofia_glue_build_crypto(private_object_t *tech_pvt, int index, switch_rtp_crypto_key_type_t type, switch_rtp_crypto_direction_t direction); void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt); switch_status_t sofia_glue_tech_proxy_remote_addr(private_object_t *tech_pvt); void sofia_presence_event_thread_start(void); diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index a2f8c54286..b4634ea049 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2949,8 +2949,13 @@ switch_status_t config_sofia(int reload, char *profile_name) } else { sofia_clear_pflag(profile, PFLAG_UUID_AS_CALLID); } - } else if (!strcasecmp(var, "track-calls") && switch_true(val)) { - sofia_set_pflag(profile, PFLAG_TRACK_CALLS); + } else if (!strcasecmp(var, "track-calls")) { + if (switch_true(val)) { + sofia_set_pflag(profile, PFLAG_TRACK_CALLS); + } else if (!strcasecmp(val, "events")) { + sofia_set_pflag(profile, PFLAG_TRACK_CALLS); + sofia_set_pflag(profile, PFLAG_TRACK_CALLS_EVENTS); + } } else if (!strcasecmp(var, "NDLB-received-in-nat-reg-contact") && switch_true(val)) { sofia_set_pflag(profile, PFLAG_RECIEVED_IN_NAT_REG_CONTACT); } else if (!strcasecmp(var, "aggressive-nat-detection") && switch_true(val)) { diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 4c290f548b..c4621a9b8a 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -4403,7 +4403,6 @@ static int recover_callback(void *pArg, int argc, char **argv, char **columnName } switch_channel_set_variable(channel, "sip_invite_call_id", switch_channel_get_variable(channel, "sip_call_id")); - switch_channel_set_variable(channel, "sip_invite_cseq", switch_channel_get_variable(channel, "sip_cseq")); if (switch_true(switch_channel_get_variable(channel, "sip_nat_detected"))) { switch_channel_set_variable_printf(channel, "sip_route_uri", "sip:%s@%s:%s", @@ -4575,9 +4574,28 @@ int sofia_glue_recover(switch_bool_t flush) return r; } +void sofia_glue_track_event_handler(switch_event_t *event) +{ + char *sql, *buf = NULL; + char *profile_name = NULL; + + switch_assert(event); // Just a sanity check + + if ((buf = switch_event_get_header_nil(event, "sql")) && (profile_name = switch_event_get_header_nil(event, "profile_name"))) { + sofia_profile_t *profile; + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s\n", switch_event_get_header_nil(event, "Event-Calling-Function")); + if ((profile = sofia_glue_find_profile(profile_name))) { + sql = switch_mprintf("%s", buf); + sofia_glue_execute_sql_now(profile, &sql, SWITCH_TRUE); + sofia_glue_release_profile(profile); + } + } + + return; +} void sofia_glue_tech_untrack(sofia_profile_t *profile, switch_core_session_t *session, switch_bool_t force) { - char *sql; + char *sql = NULL; private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session); if (!sofia_test_pflag(profile, PFLAG_TRACK_CALLS) || (sofia_test_flag(tech_pvt, TFLAG_RECOVERING))) { @@ -4585,23 +4603,38 @@ void sofia_glue_tech_untrack(sofia_profile_t *profile, switch_core_session_t *se } if (sofia_test_pflag(profile, PFLAG_TRACK_CALLS) && (sofia_test_flag(tech_pvt, TFLAG_TRACKED) || force)) { + switch_event_t *event = NULL; if (force) { sql = switch_mprintf("delete from sip_recovery where uuid='%q'", switch_core_session_get_uuid(session)); - + } else { sql = switch_mprintf("delete from sip_recovery where runtime_uuid='%q' and uuid='%q'", switch_core_get_uuid(), switch_core_session_get_uuid(session)); } + + if (sofia_test_pflag(profile, PFLAG_TRACK_CALLS_EVENTS)) { + if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_RECOVERY_SEND) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sql", sql); + switch_event_fire(&event); + } + } + sofia_glue_execute_sql_now(profile, &sql, SWITCH_TRUE); sofia_clear_flag(tech_pvt, TFLAG_TRACKED); + + switch_safe_free(sql); } + + } void sofia_glue_tech_track(sofia_profile_t *profile, switch_core_session_t *session) { - switch_event_t *event; private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session); + switch_xml_t cdr = NULL; + char *xml_cdr_text = NULL; + char *sql = NULL; if (!sofia_test_pflag(profile, PFLAG_TRACK_CALLS) || sofia_test_flag(tech_pvt, TFLAG_RECOVERING)) { return; @@ -4611,27 +4644,34 @@ void sofia_glue_tech_track(sofia_profile_t *profile, switch_core_session_t *sess sofia_glue_tech_untrack(profile, session, SWITCH_TRUE); } - if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_DATA) == SWITCH_STATUS_SUCCESS) { - switch_xml_t cdr = NULL; - char *xml_cdr_text = NULL; - - if (switch_ivr_generate_xml_cdr(session, &cdr) == SWITCH_STATUS_SUCCESS) { - xml_cdr_text = switch_xml_toxml(cdr, SWITCH_FALSE); - switch_xml_free(cdr); - } - - if (xml_cdr_text) { - char *sql; - sql = switch_mprintf("insert into sip_recovery (runtime_uuid, profile_name, hostname, uuid, metadata) values ('%q','%q','%q','%q','%q')", - switch_core_get_uuid(), profile->name, mod_sofia_globals.hostname, switch_core_session_get_uuid(session), xml_cdr_text); - - sofia_glue_execute_sql_now(profile, &sql, SWITCH_TRUE); - free(xml_cdr_text); - sofia_set_flag(tech_pvt, TFLAG_TRACKED); - } - + if (switch_ivr_generate_xml_cdr(session, &cdr) == SWITCH_STATUS_SUCCESS) { + xml_cdr_text = switch_xml_toxml(cdr, SWITCH_FALSE); + switch_xml_free(cdr); } + if (xml_cdr_text) { + sql = switch_mprintf("insert into sip_recovery (runtime_uuid, profile_name, hostname, uuid, metadata) values ('%q','%q','%q','%q','%q')", + switch_core_get_uuid(), profile->name, mod_sofia_globals.hostname, switch_core_session_get_uuid(session), xml_cdr_text); + + if (sofia_test_pflag(profile, PFLAG_TRACK_CALLS_EVENTS)) { + switch_event_t *event = NULL; + + if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_RECOVERY_SEND) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "sql", sql); + switch_event_fire(&event); + } + } + + + sofia_glue_execute_sql_now(profile, &sql, SWITCH_TRUE); + free(xml_cdr_text); + sofia_set_flag(tech_pvt, TFLAG_TRACKED); + + } + + + switch_safe_free(sql); + } int sofia_glue_init_sql(sofia_profile_t *profile) @@ -5135,7 +5175,7 @@ void sofia_glue_actually_execute_sql_trans(sofia_profile_t *profile, char *sql, switch_cache_db_persistant_execute_trans(dbh, sql, 1); - end: + end: switch_cache_db_release_db_handle(&dbh); @@ -5159,7 +5199,7 @@ void sofia_glue_actually_execute_sql(sofia_profile_t *profile, char *sql, switch switch_cache_db_execute_sql(dbh, sql, NULL); - end: + end: switch_cache_db_release_db_handle(&dbh); @@ -5191,7 +5231,7 @@ switch_bool_t sofia_glue_execute_sql_callback(sofia_profile_t *profile, free(errmsg); } - end: + end: switch_cache_db_release_db_handle(&dbh); @@ -5324,7 +5364,7 @@ sofia_destination_t *sofia_glue_get_destination(char *data) dst->route_uri = route_uri; return dst; - mem_fail: + mem_fail: switch_safe_free(contact); switch_safe_free(to); switch_safe_free(route); diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 38caa03478..2e16c9cf5e 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -53,7 +53,7 @@ static struct { /*! \brief Open the default system database */ -SWITCH_DECLARE(switch_status_t) _switch_core_db_handle(switch_cache_db_handle_t ** dbh, const char *file, const char *func, int line) +SWITCH_DECLARE(switch_status_t) _switch_core_db_handle(switch_cache_db_handle_t **dbh, const char *file, const char *func, int line) { switch_cache_db_connection_options_t options = { {0} }; switch_status_t r; @@ -152,7 +152,7 @@ SWITCH_DECLARE(void) switch_cache_db_flush_handles(void) -SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t ** dbh) +SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t **dbh) { if (dbh && *dbh) { @@ -165,14 +165,14 @@ SWITCH_DECLARE(void) switch_cache_db_release_db_handle(switch_cache_db_handle_t default: break; } - + switch_mutex_unlock((*dbh)->mutex); *dbh = NULL; } } -SWITCH_DECLARE(void) switch_cache_db_dismiss_db_handle(switch_cache_db_handle_t ** dbh) +SWITCH_DECLARE(void) switch_cache_db_dismiss_db_handle(switch_cache_db_handle_t **dbh) { if (dbh && *dbh) { @@ -188,7 +188,7 @@ SWITCH_DECLARE(void) switch_cache_db_dismiss_db_handle(switch_cache_db_handle_t } -SWITCH_DECLARE(void) switch_cache_db_destroy_db_handle(switch_cache_db_handle_t ** dbh) +SWITCH_DECLARE(void) switch_cache_db_destroy_db_handle(switch_cache_db_handle_t **dbh) { if (dbh && *dbh) { switch_mutex_lock(sql_manager.dbh_mutex); @@ -251,7 +251,7 @@ SWITCH_DECLARE(void) switch_cache_db_detach(void) switch_mutex_unlock(sql_manager.dbh_mutex); } -SWITCH_DECLARE(switch_status_t) _switch_cache_db_get_db_handle(switch_cache_db_handle_t ** dbh, +SWITCH_DECLARE(switch_status_t) _switch_cache_db_get_db_handle(switch_cache_db_handle_t **dbh, switch_cache_db_handle_type_t type, switch_cache_db_connection_options_t *connection_options, const char *file, const char *func, int line) @@ -312,7 +312,7 @@ SWITCH_DECLARE(switch_status_t) _switch_cache_db_get_db_handle(switch_cache_db_h if ((new_dbh = (switch_cache_db_handle_t *) val)) { if (hash == new_dbh->hash && !strncasecmp(new_dbh->name, db_str, strlen(db_str)) && - !switch_test_flag(new_dbh, CDF_INUSE) && !switch_test_flag(new_dbh, CDF_PRUNE) + !switch_test_flag(new_dbh, CDF_INUSE) && !switch_test_flag(new_dbh, CDF_PRUNE) && switch_mutex_trylock(new_dbh->mutex) == SWITCH_STATUS_SUCCESS) { switch_set_flag(new_dbh, CDF_INUSE); switch_set_string(new_dbh->name, thread_str); @@ -857,7 +857,8 @@ static void *SWITCH_THREAD_FUNC switch_core_sql_thread(switch_thread_t *thread, } while (!sql_manager.event_db) { - if (switch_core_db_handle(&sql_manager.event_db) == SWITCH_STATUS_SUCCESS && sql_manager.event_db) break; + if (switch_core_db_handle(&sql_manager.event_db) == SWITCH_STATUS_SUCCESS && sql_manager.event_db) + break; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Error getting core db, Retrying\n"); switch_yield(500000); sanity--; @@ -957,7 +958,7 @@ static void *SWITCH_THREAD_FUNC switch_core_sql_thread(switch_thread_t *thread, } #define MAX_SQL 5 -#define new_sql() switch_assert(sql_idx+1 < MAX_SQL); sql[sql_idx++] +#define new_sql() switch_assert(sql_idx+1 < MAX_SQL); sql[sql_idx++] static void core_event_handler(switch_event_t *event) { @@ -994,7 +995,8 @@ static void core_event_handler(switch_event_t *event) if (id) { new_sql() = switch_mprintf("update tasks set task_desc='%q',task_group='%q', task_sql_manager=%q where task_id=%q and hostname='%q'", switch_event_get_header_nil(event, "task-desc"), - switch_event_get_header_nil(event, "task-group"), manager ? manager : "0", id, switch_core_get_variable("hostname")); + switch_event_get_header_nil(event, "task-group"), manager ? manager : "0", id, + switch_core_get_variable("hostname")); } } break; @@ -1076,7 +1078,7 @@ static void core_event_handler(switch_event_t *event) if (!name) { name = switch_event_get_header(event, "caller-callee-id-name"); } - + if (!number) { number = switch_event_get_header(event, "caller-callee-id-number"); } @@ -1097,9 +1099,8 @@ static void core_event_handler(switch_event_t *event) { new_sql() = switch_mprintf("update channels set callstate='%q' where uuid='%q' and hostname='%q'", switch_event_get_header_nil(event, "channel-call-state"), - switch_event_get_header_nil(event, "unique-id"), - switch_core_get_variable("hostname")); - + switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); + } break; case SWITCH_EVENT_CHANNEL_STATE: @@ -1244,7 +1245,7 @@ static void core_event_handler(switch_event_t *event) if (sql_idx) { int i = 0; - for(i = 0; i < sql_idx; i++) { + for (i = 0; i < sql_idx; i++) { if (switch_stristr("update channels", sql[i]) || switch_stristr("delete from channels", sql[i])) { switch_queue_push(sql_manager.sql_queue[1], sql[i]); } else { @@ -1330,10 +1331,10 @@ static char create_calls_sql[] = " callee_chan_name VARCHAR(1024),\n" " callee_uuid VARCHAR(256),\n" " hostname VARCHAR(256)\n" - ");\n" "create index eruuindex on calls (caller_uuid,hostname);\n" + ");\n" + "create index eruuindex on calls (caller_uuid,hostname);\n" "create index eeuuindex on calls (callee_uuid,hostname);\n" - "create index eeuuindex2 on calls (call_uuid,hostname);\n" - ; + "create index eeuuindex2 on calls (call_uuid,hostname);\n"; static char create_interfaces_sql[] = "CREATE TABLE interfaces (\n" From 53761efdf67d3194c2fffe0fdcf6816840423079 Mon Sep 17 00:00:00 2001 From: Brian West Date: Wed, 30 Jun 2010 11:11:21 -0500 Subject: [PATCH 50/62] fix logging and missing new line --- src/switch_nat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/switch_nat.c b/src/switch_nat.c index 843e139b24..66d75e8210 100644 --- a/src/switch_nat.c +++ b/src/switch_nat.c @@ -459,14 +459,14 @@ static switch_status_t switch_nat_add_mapping_pmp(switch_port_t port, switch_nat } while (r == NATPMP_TRYAGAIN); if (r == 0) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "mapped public port %hu protocol %s to localport %hu\n", + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "mapped public port %hu protocol %s to localport %hu\n", response.pnu.newportmapping.mappedpublicport, response.type == NATPMP_RESPTYPE_UDPPORTMAPPING ? "UDP" : (response.type == NATPMP_RESPTYPE_TCPPORTMAPPING ? "TCP" : "UNKNOWN"), response.pnu.newportmapping.privateport); if (external_port) { *external_port = response.pnu.newportmapping.mappedpublicport; } else if (response.pnu.newportmapping.mappedpublicport != response.pnu.newportmapping.privateport) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "External port %hu protocol %s was not available, it was instead mapped to %hu", + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "External port %hu protocol %s was not available, it was instead mapped to %hu\n", response.pnu.newportmapping.privateport, response.type == NATPMP_RESPTYPE_UDPPORTMAPPING ? "UDP" : (response.type == NATPMP_RESPTYPE_TCPPORTMAPPING ? "TCP" : "UNKNOWN"), response.pnu.newportmapping.mappedpublicport); @@ -638,7 +638,7 @@ SWITCH_DECLARE(void) switch_nat_republish(void) switch_stream_handle_t stream = { 0 }; SWITCH_STANDARD_STREAM(stream); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Refreshing nat maps\n"); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "Refreshing nat maps\n"); switch_api_execute("show", "nat_map as xml", NULL, &stream); From c943e641d57fb694b210ed7e80b00cda3d9e0e88 Mon Sep 17 00:00:00 2001 From: David Yat Sin Date: Wed, 30 Jun 2010 12:42:11 -0400 Subject: [PATCH 51/62] Added sangoma_isdn --- libs/freetdm/Makefile.am | 20 +- libs/freetdm/configure.ac | 3 + .../ftmod_sangoma_isdn/ftmod_sangoma_isdn.c | 1071 +++++++++++++++++ .../ftmod_sangoma_isdn/ftmod_sangoma_isdn.h | 259 ++++ .../ftmod_sangoma_isdn_cfg.c | 219 ++++ .../ftmod_sangoma_isdn_cntrl.c | 85 ++ .../ftmod_sangoma_isdn_stack_cfg.c | 1035 ++++++++++++++++ .../ftmod_sangoma_isdn_stack_cntrl.c | 316 +++++ .../ftmod_sangoma_isdn_stack_in.c | 935 ++++++++++++++ .../ftmod_sangoma_isdn_stack_out.c | 433 +++++++ .../ftmod_sangoma_isdn_support.c | 353 ++++++ .../ftmod_sangoma_isdn_trace.c | 661 ++++++++++ .../ftmod_sangoma_isdn_trace.h | 540 +++++++++ 13 files changed, 5929 insertions(+), 1 deletion(-) create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_in.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c create mode 100644 libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.h diff --git a/libs/freetdm/Makefile.am b/libs/freetdm/Makefile.am index c86d00203e..1c878e6cb4 100644 --- a/libs/freetdm/Makefile.am +++ b/libs/freetdm/Makefile.am @@ -257,6 +257,25 @@ ftmod_sangoma_ss7_la_LDFLAGS = -module -avoid-version -lsng_ss7 ftmod_sangoma_ss7_la_LIBADD = $(MYLIB) endif +if SNGISDN +ftmod_sangoma_isdn_la_SOURCES = $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c \ + $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c \ + $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c \ + $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c \ + $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c \ + $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c \ + $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c \ + $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_in.c \ + $(SRC)/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c + + +ftmod_sangoma_isdn_la_CFLAGS = $(AM_CFLAGS) $(MY_CFLAGS) +ftmod_sangoma_isdn_la_LDFLAGS = -module -avoid-version -lsng_isdn +ftmod_sangoma_isdn_la_LIBADD = $(MYLIB) +endif + + + if OPENR2 ftmod_r2_la_SOURCES = $(SRC)/ftmod/ftmod_r2/ftmod_r2.c ftmod_r2_la_CFLAGS = $(AM_CFLAGS) $(MY_CFLAGS) @@ -264,7 +283,6 @@ ftmod_r2_la_LDFLAGS = -module -avoid-version -lopenr2 ftmod_r2_la_LIBADD = $(MYLIB) endif - dox doxygen: cd docs && doxygen $(FT_SRCDIR)/docs/Doxygen.conf diff --git a/libs/freetdm/configure.ac b/libs/freetdm/configure.ac index cad37c3705..567be44587 100644 --- a/libs/freetdm/configure.ac +++ b/libs/freetdm/configure.ac @@ -173,6 +173,9 @@ AM_CONDITIONAL([LIBPRI],[test "${enable_libpri}" = "yes"]) AC_CHECK_LIB([sng_ss7], [sng_isup_init], [have_sng_ss7="yes"]) AM_CONDITIONAL([SNGSS7],[test "${have_sng_ss7}" = "yes"]) +AC_CHECK_LIB([sng_isdn], [sng_isdn_init], [have_sng_isdn="yes"]) +AM_CONDITIONAL([SNGISDN],[test "${have_sng_isdn}" = "yes"]) + AC_CHECK_LIB([openr2], [openr2_context_set_io_type], [have_openr2="yes"]) AM_CONDITIONAL([OPENR2],[test "${have_openr2}" = "yes"]) diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c new file mode 100644 index 0000000000..1872d4adab --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c @@ -0,0 +1,1071 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * Moises Silva + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "ftmod_sangoma_isdn.h" + +static void *ftdm_sangoma_isdn_run(ftdm_thread_t *me, void *obj); +static void ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdmchan); + +static ftdm_status_t ftdm_sangoma_isdn_stop(ftdm_span_t *span); +static ftdm_status_t ftdm_sangoma_isdn_start(ftdm_span_t *span); + +static ftdm_io_interface_t g_sngisdn_io_interface; +static sng_isdn_event_interface_t g_sngisdn_event_interface; + +ftdm_sngisdn_data_t g_sngisdn_data; + +extern ftdm_status_t sng_isdn_activate_trace(ftdm_span_t *span, sngisdn_tracetype_t trace_opt); + +ftdm_state_map_t sangoma_isdn_state_map = { + { + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_ANY_STATE, FTDM_END}, + {FTDM_CHANNEL_STATE_RESTART, FTDM_CHANNEL_STATE_SUSPENDED, FTDM_END} + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_RESTART, FTDM_END}, + {FTDM_CHANNEL_STATE_DOWN, FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_HANGUP, FTDM_END} + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_CANCEL, FTDM_END}, + {FTDM_CHANNEL_STATE_HANGUP, FTDM_END} + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_SUSPENDED, FTDM_END}, + {FTDM_CHANNEL_STATE_DOWN, FTDM_CHANNEL_STATE_COLLECT, FTDM_CHANNEL_STATE_RING, FTDM_CHANNEL_STATE_DIALING, + FTDM_CHANNEL_STATE_RESTART, FTDM_CHANNEL_STATE_PROGRESS, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_CHANNEL_STATE_UP, + FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_CANCEL, FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_HANGUP_COMPLETE, FTDM_END} + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_DOWN, FTDM_END}, + {FTDM_CHANNEL_STATE_COLLECT, FTDM_CHANNEL_STATE_IN_LOOP, FTDM_END} + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_COLLECT, FTDM_END}, + {FTDM_CHANNEL_STATE_RING, FTDM_CHANNEL_STATE_CANCEL, FTDM_CHANNEL_STATE_IN_LOOP, FTDM_END} + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_IN_LOOP, FTDM_END}, + {FTDM_CHANNEL_STATE_COLLECT, FTDM_CHANNEL_STATE_DOWN, FTDM_END} + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_RING, FTDM_END}, + {FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_PROGRESS, FTDM_END} + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_PROGRESS, FTDM_END}, + {FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_END}, + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_END}, + {FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_UP, FTDM_END}, + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_UP, FTDM_END}, + {FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_END}, + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_TERMINATING, FTDM_END}, + {FTDM_CHANNEL_STATE_HANGUP, FTDM_END}, + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_HANGUP, FTDM_END}, + {FTDM_CHANNEL_STATE_HANGUP_COMPLETE, FTDM_END}, + }, + { + ZSD_INBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_HANGUP_COMPLETE, FTDM_END}, + {FTDM_CHANNEL_STATE_DOWN, FTDM_END}, + }, + /**************************************************************************/ + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_ANY_STATE, FTDM_END}, + {FTDM_CHANNEL_STATE_RESTART, FTDM_CHANNEL_STATE_SUSPENDED, FTDM_CHANNEL_STATE_TERMINATING, FTDM_END} + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_RESTART, FTDM_END}, + {FTDM_CHANNEL_STATE_DOWN, FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_HANGUP, FTDM_END} + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_CANCEL, FTDM_END}, + {FTDM_CHANNEL_STATE_HANGUP, FTDM_END} + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_SUSPENDED, FTDM_END}, + {FTDM_CHANNEL_STATE_DOWN, FTDM_CHANNEL_STATE_COLLECT, FTDM_CHANNEL_STATE_RING, FTDM_CHANNEL_STATE_DIALING, + FTDM_CHANNEL_STATE_RESTART, FTDM_CHANNEL_STATE_PROGRESS, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_CHANNEL_STATE_UP, + FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_CANCEL, FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_HANGUP_COMPLETE, FTDM_END} + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_DOWN, FTDM_END}, + {FTDM_CHANNEL_STATE_DIALING, FTDM_END} + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_DIALING, FTDM_END}, + {FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_PROGRESS, FTDM_CHANNEL_STATE_DOWN, FTDM_END} + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_PROGRESS, FTDM_END}, + {FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_CHANNEL_STATE_UP, FTDM_END}, + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_PROGRESS_MEDIA, FTDM_END}, + {FTDM_CHANNEL_STATE_TERMINATING, FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_UP, FTDM_END}, + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_UP, FTDM_END}, + {FTDM_CHANNEL_STATE_HANGUP, FTDM_CHANNEL_STATE_TERMINATING, FTDM_END}, + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_TERMINATING, FTDM_END}, + {FTDM_CHANNEL_STATE_HANGUP, FTDM_END}, + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_HANGUP, FTDM_END}, + {FTDM_CHANNEL_STATE_HANGUP_COMPLETE, FTDM_END}, + }, + { + ZSD_OUTBOUND, + ZSM_UNACCEPTABLE, + {FTDM_CHANNEL_STATE_HANGUP_COMPLETE, FTDM_END}, + {FTDM_CHANNEL_STATE_DOWN, FTDM_END}, + } + } +}; + +static void *ftdm_sangoma_isdn_run(ftdm_thread_t *me, void *obj) +{ + ftdm_interrupt_t *ftdm_sangoma_isdn_int = NULL; + ftdm_span_t *span = (ftdm_span_t *) obj; + ftdm_channel_t *ftdmchan = NULL; + + ftdm_log(FTDM_LOG_INFO, "ftmod_sangoma_isdn monitor thread for span=%u started.\n", span->span_id); + + /* set IN_THREAD flag so that we know this thread is running */ + ftdm_set_flag(span, FTDM_SPAN_IN_THREAD); + + /* get an interrupt queue for this span */ + if (ftdm_queue_get_interrupt(span->pendingchans, &ftdm_sangoma_isdn_int) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "%s:Failed to get a ftdm_interrupt for span = %s!\n", span->name); + goto ftdm_sangoma_isdn_run_exit; + } + + while (ftdm_running() && !(ftdm_test_flag(span, FTDM_SPAN_STOP_THREAD))) { + + /* find out why we returned from the interrupt queue */ + switch ((ftdm_interrupt_wait(ftdm_sangoma_isdn_int, 100))) { + case FTDM_SUCCESS: /* there was a state change on the span */ + /* process all pending state changes */ + while ((ftdmchan = ftdm_queue_dequeue(span->pendingchans))) { + /* double check that this channel has a state change pending */ + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { + ftdm_sangoma_isdn_process_state_change(ftdmchan); + } else { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "reported state change but state change flag not set\n"); + } + } + + break; + + case FTDM_TIMEOUT: + /* twiddle */ + break; + + case FTDM_FAIL: + ftdm_log(FTDM_LOG_ERROR,"ftdm_interrupt_wait returned error!\non span = %s\n", span->name); + break; + + default: + ftdm_log(FTDM_LOG_ERROR,"ftdm_interrupt_wait returned with unknown code on span = %s\n", span->name); + break; + + } + + } + + /* clear the IN_THREAD flag so that we know the thread is done */ + ftdm_clear_flag(span, FTDM_SPAN_IN_THREAD); + + ftdm_log(FTDM_LOG_INFO, "ftmod_sangoma_isdn monitor thread for span %s stopping.\n", span->name); + + return NULL; + +ftdm_sangoma_isdn_run_exit: + + /* clear the IN_THREAD flag so that we know the thread is done */ + ftdm_clear_flag(span, FTDM_SPAN_IN_THREAD); + + ftdm_log(FTDM_LOG_INFO, "ftmod_sangoma_isdn monitor thread for span %s stopping due to error.\n", span->name); + + return NULL; +} + +/******************************************************************************/ +static void ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdmchan) +{ + ftdm_sigmsg_t sigev; + ftdm_signaling_status_t status; + sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; + + memset(&sigev, 0, sizeof(sigev)); + + sigev.chan_id = ftdmchan->chan_id; + sigev.span_id = ftdmchan->span_id; + sigev.channel = ftdmchan; + + /*first lock the channel*/ + ftdm_mutex_lock(ftdmchan->mutex); + + /*clear the state change flag...since we might be setting a new state*/ + ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE); + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "processing state change to %s\n", ftdm_channel_state2str(ftdmchan->state)); + + switch (ftdmchan->state) { + + case FTDM_CHANNEL_STATE_COLLECT: /* SETUP received but wating on digits */ + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request - do nothing\n"); + break; + } + + /* TODO: Overlap receive not implemented yet - cannot do it the same way as PRI requires sending complete bit */ + + /* Go straight to ring state for now */ + + /*now go to the RING state*/ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RING); + } + break; + case FTDM_CHANNEL_STATE_RING: /* incoming call request */ + { + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending incoming call from %s to %s to FTDM core\n", ftdmchan->caller_data.ani.digits, ftdmchan->caller_data.dnis.digits); + + /* we have enough information to inform FTDM of the call*/ + sigev.event_id = FTDM_SIGEVENT_START; + ftdm_span_send_signal(ftdmchan->span, &sigev); + } + break; + + case FTDM_CHANNEL_STATE_DIALING: /* outgoing call request */ + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request ... do nothing \n"); + break; + } + sngisdn_snd_setup(ftdmchan); + } + break; + case FTDM_CHANNEL_STATE_PROGRESS: + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request ... do nothing \n"); + break; + } + + /*check if the channel is inbound or outbound*/ + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { + /*OUTBOUND...so we were told by the line of this so noifiy the user*/ + sigev.event_id = FTDM_SIGEVENT_PROGRESS; + ftdm_span_send_signal(ftdmchan->span, &sigev); + } else { + sngisdn_snd_proceed(ftdmchan); + } + } + break; + + case FTDM_CHANNEL_STATE_PROGRESS_MEDIA: + { + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { + sigev.event_id = FTDM_SIGEVENT_PROGRESS_MEDIA; + ftdm_span_send_signal(ftdmchan->span, &sigev); + } else { + sngisdn_snd_progress(ftdmchan); + } + } + break; + + case FTDM_CHANNEL_STATE_UP: /* call is answered */ + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request ... do nothing \n"); + break; + } + + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { + if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && + ((sngisdn_span_data_t*)ftdmchan->span->signal_data)->signalling == SNGISDN_SIGNALING_NET) { + /* Assign the call to a specific equipment */ + sngisdn_snd_con_complete(ftdmchan); + } + } + + /* check if the channel is inbound or outbound */ + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { + /* OUTBOUND ... so we were told by the line that the other side answered */ + sigev.event_id = FTDM_SIGEVENT_UP; + ftdm_span_send_signal(ftdmchan->span, &sigev); + } else { + /* INBOUND ... so FS told us it just answered ... tell the stack */ + sngisdn_snd_connect(ftdmchan); + } + } + break; + + case FTDM_CHANNEL_STATE_CANCEL: + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request ... do nothing \n"); + break; + } + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Hanging up call before informing user!\n"); + + /* Send a release complete */ + sngisdn_snd_release(ftdmchan); + /*now go to the HANGUP complete state*/ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); + } + break; + + case FTDM_CHANNEL_STATE_TERMINATING: /* call is hung up by the remote end */ + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request ... do nothing \n"); + break; + } + + /* this state is set when the line is hanging up */ + sigev.event_id = FTDM_SIGEVENT_STOP; + ftdm_span_send_signal(ftdmchan->span, &sigev); + } + break; + + case FTDM_CHANNEL_STATE_HANGUP: /* call is hung up locally */ + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request ... do nothing \n"); + break; + } + + if (ftdm_test_flag(sngisdn_info, FLAG_REMOTE_REL)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Acknowledging remote hangup\n"); + sngisdn_snd_release(ftdmchan); + } else if (ftdm_test_flag(sngisdn_info, FLAG_REMOTE_ABORT)) { + /* Do not send any messages to remote switch as they aborted */ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Clearing local states from remote abort\n"); + } else { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Hanging up call upon local request!\n"); + + /* set the flag to indicate this hangup is started from the local side */ + ftdm_set_flag(sngisdn_info, FLAG_LOCAL_REL); + + /* If we never sent ack to incoming call, we need to send release instead of disconnect */ + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_RING) { + ftdm_set_flag(sngisdn_info, FLAG_LOCAL_ABORT); + sngisdn_snd_release(ftdmchan); + } else { + sngisdn_snd_disconnect(ftdmchan); + } + + } + + /* now go to the HANGUP complete state */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_HANGUP_COMPLETE); + } + break; + + case FTDM_CHANNEL_STATE_HANGUP_COMPLETE: + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request ... do nothing \n"); + break; + } + + if (ftdm_test_flag(sngisdn_info, FLAG_REMOTE_REL)) { + if (sngisdn_test_flag(sngisdn_info, FLAG_RESET_TX)) { + /* go to RESTART State until RSCa is received */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + } + /* Do nothing as we will receive a RELEASE COMPLETE from remote switch */ + } else if (ftdm_test_flag(sngisdn_info, FLAG_REMOTE_ABORT) || + ftdm_test_flag(sngisdn_info, FLAG_LOCAL_ABORT)) { + /* If the remote side aborted, we will not get anymore message for this call */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); + } else { + /* twiddle, waiting on remote confirmation before moving to down */ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Completing locally requested hangup\n"); + } + } + break; + + case FTDM_CHANNEL_STATE_DOWN: /* the call is finished and removed */ + { + if (ftdmchan->last_state == FTDM_CHANNEL_STATE_SUSPENDED) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "re-entering state from processing block/unblock request ... do nothing \n"); + break; + } + + /* check if there is a reset response that needs to be sent */ + if (sngisdn_test_flag(sngisdn_info, FLAG_RESET_RX)) { + /* send a RLC */ + sngisdn_snd_release(ftdmchan); + + /* inform Ftdm that the "sig" is up now for this channel */ + status = FTDM_SIG_STATE_UP; + sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sigev.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sigev); + } + + /* check if we got the reset response */ + if (sngisdn_test_flag(sngisdn_info, FLAG_RESET_TX)) { + /* inform Ftdm that the "sig" is up now for this channel */ + status = FTDM_SIG_STATE_UP; + sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sigev.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sigev); + } + + /* check if the circuit has the glare flag up */ + if (sngisdn_test_flag(sngisdn_info, FLAG_GLARE)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Glare flag is up....spoofing incoming call\n"); + /* clear all the call specific data */ + clear_call_data(sngisdn_info); + + /* close the channel */ + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { + ftdm_channel_t *close_chan = ftdmchan; + /* close the channel */ + ftdm_channel_close(&close_chan); + } + + /* spoof an incoming call */ + sngisdn_rcv_con_ind(sngisdn_info->glare.suId, + sngisdn_info->glare.suInstId, + sngisdn_info->glare.spInstId, + &sngisdn_info->glare.setup, + sngisdn_info->glare.dChan, + sngisdn_info->glare.ces); + + } else { + /* clear all of the call specific data store in the channel structure */ + clear_call_data(sngisdn_info); + + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OPEN)) { + ftdm_channel_t *close_chan = ftdmchan; + /* close the channel */ + ftdm_channel_close(&close_chan); + } + } + } + break; + case FTDM_CHANNEL_STATE_RESTART: + { +#if 0 + /* TODO: Go through channel restart call states. They do not make sense when running ISDN */ + + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_INUSE)) { + /* bring the call down first...then process the rest of the reset */ + switch (ftdmchan->last_state) { + /******************************************************************/ + case(FTDM_CHANNEL_STATE_TERMINATING): + case(FTDM_CHANNEL_STATE_HANGUP): + case(FTDM_CHANNEL_STATE_HANGUP_COMPLETE): + /* go back to the last state after taking care of the rest of the restart state */ + ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); + break; + /******************************************************************/ + default: + /* KONRAD: find out what the cause code should be */ + ftdmchan->caller_data.hangup_cause = 41; + + /* change the state to terminatting, it will throw us back here + * once the call is done + */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); + break; + /******************************************************************/ + } + } else { + + /* check if this an incoming RSC */ + if (sngisdn_test_flag(sngisdn_info, FLAG_RESET_RX)) { + /* go to a down state to clear the channel and send RSCa */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); + } /* if (sngisdn_test_flag(sngisdn_info, FLAG_RESET_RX)) */ + } /* if (inuse) */ + + /* check if this is an outgoing RSC */ + if (sngisdn_test_flag(sngisdn_info, FLAG_RESET_TX)) { + + /* make sure we aren't coming from hanging up a call */ + if (ftdmchan->last_state != FTDM_CHANNEL_STATE_HANGUP_COMPLETE) { + /* send a reset request */ + sngisdn_snd_reset(ftdmchan); + } + + /* don't change to the DOWN state as we need to wait for the RSCa */ + } /* if (sngisdn_test_flag(sngisdn_info, FLAG_RESET_TX)) */ + + /* send a sig event to the core to disable the channel */ + status = FTDM_SIG_STATE_DOWN; + sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sigev.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sigev); +#endif + } + + break; + case FTDM_CHANNEL_STATE_SUSPENDED: + { + if (sngisdn_test_flag(sngisdn_info, FLAG_INFID_PAUSED)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "processing PAUSE\n"); + /* bring the channel signaling status to down */ + status = FTDM_SIG_STATE_DOWN; + sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sigev.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sigev); + + /* check the last state and return to it to allow the call to finish */ + ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); + } + if (sngisdn_test_flag(sngisdn_info, FLAG_INFID_RESUME)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "processing RESUME\n"); + + /* we just resumed...throw the channel into reset */ + sngisdn_set_flag(sngisdn_info, FLAG_RESET_TX); + + /* clear the resume flag */ + sngisdn_clear_flag(sngisdn_info, FLAG_INFID_RESUME); + + /* go to restart state */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + } + +#if 0 + /* CHECK the equivalent for ISDN */ + if (sngisdn_test_flag(sngisdn_info, FLAG_CKT_MN_BLOCK_RX)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "processing MN_BLOCK_RX\n"); + + /* bring the channel signaling status to down */ + status = FTDM_SIG_STATE_DOWN; + sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sigev.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sigev); + + /* send a BLA */ + + ft_to_sngss7_bla(ftdmchan); + + /* check the last state and return to it to allow the call to finish */ + ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); + } + if (sngisdn_test_flag(sngisdn_info, FLAG_CKT_MN_UNBLK_RX)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "processing MN_UNBLK_RX\n"); + /* bring the channel signaling status to up */ + status = FTDM_SIG_STATE_UP; + sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sigev.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sigev); + + /* clear the unblock flag */ + sngisdn_clear_flag(sngisdn_info, FLAG_CKT_MN_UNBLK_RX); + + /* send a uba */ + ft_to_sngss7_uba(ftdmchan); + + /* check the last state and return to it to allow the call to finish */ + ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); + } + /**********************************************************************/ + if (sngisdn_test_flag(sngisdn_info, FLAG_CKT_MN_BLOCK_TX)) { + ftdm_log_chan_msg(ftdm_chan, FTDM_LOG_DEBUG, "processing MN_BLOCK_TX\n"); + /* bring the channel signaling status to down */ + status = FTDM_SIG_STATE_DOWN; + sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sigev.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sigev); + + /* send a blo */ + ft_to_sngss7_blo(ftdmchan); + + /* check the last state and return to it to allow the call to finish */ + ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); + } + if (sngisdn_test_flag(sngisdn_info, FLAG_CKT_MN_UNBLK_TX)) { + ftdm_log_chan_msg(ftdm_chan, FTDM_LOG_DEBUG, "processing MN_UNBLOCK_TX\n"); + /* bring the channel signaling status to up */ + status = FTDM_SIG_STATE_UP; + sigev.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sigev.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sigev); + + /* clear the unblock flag */ + sngisdn_clear_flag(sngisdn_info, FLAG_CKT_MN_UNBLK_TX); + + /* send a ubl */ + ft_to_sngss7_ubl(ftdmchan); + + /* check the last state and return to it to allow the call to finish */ + ftdm_set_state_locked(ftdmchan, ftdmchan->last_state); + } +#endif + } + break; + default: + { + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "unsngisdn_rcvd state %s\n", ftdm_channel_state2str(ftdmchan->state)); + } + break; + + } + + ftdm_mutex_unlock(ftdmchan->mutex); + return; +} + +static FIO_CHANNEL_OUTGOING_CALL_FUNCTION(ftdm_sangoma_isdn_outgoing_call) +{ + sngisdn_chan_data_t *sngisdn_info; + int c; + + /* lock the channel while we check whether it is availble */ + ftdm_mutex_lock(ftdmchan->mutex); + + switch (ftdmchan->state) { + + case FTDM_CHANNEL_STATE_DOWN: + { + ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_DIALING); + + /* unlock the channel */ + ftdm_mutex_unlock(ftdmchan->mutex); + + /* now we have to wait for either the stack to reject the call because of + * glare or for the network to acknowledge the call */ + c = 0; + + while (c < 100) { + + /* lock the channel while we check whether it is availble */ + ftdm_mutex_lock(ftdmchan->mutex); + + /* extract the sngisdn_chan_data structure */ + sngisdn_info = (sngisdn_chan_data_t *)ftdmchan->call_data; + + if (ftdm_test_flag(sngisdn_info, FLAG_GLARE)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Glare detected\n"); + goto outgoing_glare; + } + + switch (ftdmchan->state) { + case FTDM_CHANNEL_STATE_DIALING: + break; + case FTDM_CHANNEL_STATE_PROGRESS: + case FTDM_CHANNEL_STATE_PROGRESS_MEDIA: + case FTDM_CHANNEL_STATE_UP: + { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Outgoing call request successful\n"); + goto outgoing_successful; + } + break; + case FTDM_CHANNEL_STATE_TERMINATING: + case FTDM_CHANNEL_STATE_HANGUP_COMPLETE: + case FTDM_CHANNEL_STATE_DOWN: + { + /* Remote switch aborted this call */ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Outgoing call request failed\n"); + goto outgoing_successful; + } + break; + default: + { + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Channel in invalid state (%s)\n", ftdm_channel_state2str(ftdmchan->state)); + goto outgoing_glare; + } + break; + } + + /* unlock the channel */ + ftdm_mutex_unlock(ftdmchan->mutex); + + /* sleep for a bit to let the state change */ + ftdm_sleep(10); + + /* increment the timeout counter */ + c++; + } + + /* only way we can get here is if we are still in STATE_DIALING. We did not get a glare, so exit thread and wait for PROCEED/PROGRESS/ALERT/CONNECT or RELEASE from remote switch */ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Timeout waiting for outgoing call to be accepted by network, returning success anyways\n"); + + /* consider the call good .... for now */ + goto outgoing_successful; + } + break; + + default: + { + /* the channel is already used...this can't be, end the request */ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Outgoing call requested channel in already in use\n"); + goto outgoing_glare; + } + break; + } + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "WE SHOULD NOT BE HERE!!!!\n"); + + ftdm_mutex_unlock(ftdmchan->mutex); + return FTDM_FAIL; + +outgoing_glare: + ftdm_mutex_unlock(ftdmchan->mutex); + return FTDM_BREAK; + +outgoing_successful: + ftdm_mutex_unlock(ftdmchan->mutex); + return FTDM_SUCCESS; +} + +static FIO_CHANNEL_GET_SIG_STATUS_FUNCTION(ftdm_sangoma_isdn_get_sig_status) +{ + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_SIG_UP)) { + *status = FTDM_SIG_STATE_UP; + } else { + *status = FTDM_SIG_STATE_DOWN; + } + + return FTDM_SUCCESS; +} + +static FIO_CHANNEL_SET_SIG_STATUS_FUNCTION(ftdm_sangoma_isdn_set_sig_status) +{ + ftdm_log(FTDM_LOG_ERROR,"Cannot set channel status in this module\n"); + return FTDM_NOTIMPL; +} + +static ftdm_status_t ftdm_sangoma_isdn_start(ftdm_span_t *span) +{ + ftdm_log(FTDM_LOG_INFO,"Starting span %s:%u.\n",span->name,span->span_id); + if (sng_isdn_stack_activate(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "Failed to activate span %s\n", span->name); + return FTDM_FAIL; + } + /* clear the monitor thread stop flag */ + ftdm_clear_flag(span, FTDM_SPAN_STOP_THREAD); + ftdm_clear_flag(span, FTDM_SPAN_IN_THREAD); + + /*start the span monitor thread*/ + if (ftdm_thread_create_detached(ftdm_sangoma_isdn_run, span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT,"Failed to start Sangoma ISDN Span Monitor Thread!\n"); + return FTDM_FAIL; + } + + ftdm_log(FTDM_LOG_DEBUG,"Finished starting span %s\n", span->name); + return FTDM_SUCCESS; +} + +static ftdm_status_t ftdm_sangoma_isdn_stop(ftdm_span_t *span) +{ + unsigned i; + ftdm_log(FTDM_LOG_INFO, "Stopping span %s\n", span->name); + + /* throw the STOP_THREAD flag to signal monitor thread stop */ + ftdm_set_flag(span, FTDM_SPAN_STOP_THREAD); + + /* wait for the thread to stop */ + while (ftdm_test_flag(span, FTDM_SPAN_IN_THREAD)) { + ftdm_log(FTDM_LOG_DEBUG, "Waiting for monitor thread to end for span %s\n", span->name); + ftdm_sleep(10); + } + + /* FIXME: deconfigure any circuits, links, attached to this span */ + /* TODO: confirm with Moy whether we should start channels at 1 or 0 */ + for (i=1;i<=span->chan_count;i++) { + ftdm_safe_free(span->channels[i]->call_data); + } + ftdm_safe_free(span->signal_data); + + ftdm_log(FTDM_LOG_DEBUG, "Finished stopping span %s\n", span->name); + + return FTDM_SUCCESS; +} + +static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_sangoma_isdn_span_config) +{ + sngisdn_span_data_t *span_data; + + ftdm_log(FTDM_LOG_INFO, "Configuring ftmod_sangoma_isdn span = %s\n", span->name); + + span_data = ftdm_calloc(1, sizeof(sngisdn_span_data_t)); + span_data->ftdm_span = span; + span->signal_data = span_data; + + unsigned i; + for (i=1;i <= span->chan_count; i++) { + sngisdn_chan_data_t *chan_data = ftdm_calloc(1, sizeof(sngisdn_chan_data_t)); + chan_data->ftdmchan = span->channels[i]; + span->channels[i]->call_data = chan_data; + } + + if (ftmod_isdn_parse_cfg(ftdm_parameters, span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "Failed to parse configuration\n"); + return FTDM_FAIL; + } + + if (sng_isdn_stack_cfg(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "Sangoma ISDN Stack configuration failed\n"); + return FTDM_FAIL; + } + + + span->start = ftdm_sangoma_isdn_start; + span->stop = ftdm_sangoma_isdn_stop; + span->signal_type = FTDM_SIGTYPE_ISDN; +#if 0 + span->signal_data = NULL; +#endif + span->outgoing_call = ftdm_sangoma_isdn_outgoing_call; + span->channel_request = NULL; + span->signal_cb = sig_cb; + span->get_channel_sig_status = ftdm_sangoma_isdn_get_sig_status; + span->set_channel_sig_status = ftdm_sangoma_isdn_set_sig_status; + span->state_map = &sangoma_isdn_state_map; + ftdm_set_flag(span, FTDM_SPAN_USE_CHAN_QUEUE); + + ftdm_log(FTDM_LOG_INFO, "Finished configuring ftmod_sangoma_isdn span = %s\n", span->name); + return FTDM_SUCCESS; +} + +static FIO_SIG_LOAD_FUNCTION(ftdm_sangoma_isdn_init) +{ + unsigned i; + ftdm_log(FTDM_LOG_INFO, "Loading ftmod_sangoma_isdn...\n"); + + memset(&g_sngisdn_data, 0, sizeof(g_sngisdn_data)); + + /* set callbacks */ + g_sngisdn_event_interface.cc.sng_con_ind = sngisdn_rcv_con_ind; + g_sngisdn_event_interface.cc.sng_con_cfm = sngisdn_rcv_con_cfm; + g_sngisdn_event_interface.cc.sng_cnst_ind = sngisdn_rcv_cnst_ind; + g_sngisdn_event_interface.cc.sng_disc_ind = sngisdn_rcv_disc_ind; + g_sngisdn_event_interface.cc.sng_rel_ind = sngisdn_rcv_rel_ind; + g_sngisdn_event_interface.cc.sng_dat_ind = sngisdn_rcv_dat_ind; + g_sngisdn_event_interface.cc.sng_sshl_ind = sngisdn_rcv_sshl_ind; + g_sngisdn_event_interface.cc.sng_sshl_cfm = sngisdn_rcv_sshl_cfm; + g_sngisdn_event_interface.cc.sng_rmrt_ind = sngisdn_rcv_rmrt_ind; + g_sngisdn_event_interface.cc.sng_rmrt_cfm = sngisdn_rcv_rmrt_cfm; + g_sngisdn_event_interface.cc.sng_flc_ind = sngisdn_rcv_flc_ind; + g_sngisdn_event_interface.cc.sng_fac_ind = sngisdn_rcv_fac_ind; + g_sngisdn_event_interface.cc.sng_sta_cfm = sngisdn_rcv_sta_cfm; + g_sngisdn_event_interface.cc.sng_srv_ind = sngisdn_rcv_srv_ind; + g_sngisdn_event_interface.cc.sng_srv_ind = sngisdn_rcv_srv_cfm; + g_sngisdn_event_interface.cc.sng_rst_ind = sngisdn_rcv_rst_cfm; + g_sngisdn_event_interface.cc.sng_rst_ind = sngisdn_rcv_rst_ind; + g_sngisdn_event_interface.cc.sng_rst_cfm = sngisdn_rcv_rst_cfm; + + g_sngisdn_event_interface.lg.sng_log = sngisdn_rcv_sng_log; + g_sngisdn_event_interface.sta.sng_phy_sta_ind = sngisdn_rcv_phy_ind; + g_sngisdn_event_interface.sta.sng_q921_sta_ind = sngisdn_rcv_q921_ind; + g_sngisdn_event_interface.sta.sng_q921_trc_ind = sngisdn_rcv_q921_trace; + g_sngisdn_event_interface.sta.sng_q931_sta_ind = sngisdn_rcv_q931_ind; + g_sngisdn_event_interface.sta.sng_q931_trc_ind = sngisdn_rcv_q931_trace; + g_sngisdn_event_interface.sta.sng_cc_sta_ind = sngisdn_rcv_cc_ind; + + for(i=1;i<=MAX_VARIANTS;i++) { + ftdm_mutex_create(&g_sngisdn_data.ccs[i].request_mutex); + } + /* initalize sng_isdn library */ + sng_isdn_init(&g_sngisdn_event_interface); + + /* crash on assert fail */ + ftdm_global_set_crash_policy(FTDM_CRASH_ON_ASSERT); + return FTDM_SUCCESS; +} + +static FIO_SIG_UNLOAD_FUNCTION(ftdm_sangoma_isdn_unload) +{ + unsigned i; + ftdm_log(FTDM_LOG_INFO, "Starting ftmod_sangoma_isdn unload...\n"); + + sng_isdn_free(); + + for(i=1;i<=MAX_VARIANTS;i++) { + ftdm_mutex_destroy(&g_sngisdn_data.ccs[i].request_mutex); + } + + ftdm_log(FTDM_LOG_INFO, "Finished ftmod_sangoma_isdn unload!\n"); + return FTDM_SUCCESS; +} + +static FIO_API_FUNCTION(ftdm_sangoma_isdn_api) +{ + ftdm_status_t status = FTDM_SUCCESS; + char *mycmd = NULL, *argv[10] = { 0 }; + int argc = 0; + + if (data) { + mycmd = ftdm_strdup(data); + argc = ftdm_separate_string(mycmd, ' ', argv, (sizeof(argv) / sizeof(argv[0]))); + } + + /*ftdm_log(FTDM_LOG_DEBUG, "Sangoma argc:%d argv[0]:%s argv[1]:%s argv[2]:%s \n", argc, argv[0], argv[1], argv[2]);*/ + if (argc <= 0) { + ftdm_log(FTDM_LOG_ERROR, "No parameters provided\n"); + goto done; + } + + if (!strcasecmp(argv[0], "trace")) { + char *trace_opt; + + ftdm_span_t *span; + + if (argc < 3) { + ftdm_log(FTDM_LOG_ERROR, "Usage: ftdm sangoma_isdn trace \n"); + status = FTDM_FAIL; + goto done; + } + trace_opt = argv[1]; + + status = ftdm_span_find_by_name(argv[2], &span); + if (FTDM_SUCCESS != status) { + stream->write_function(stream, "-ERR failed to find span by name %s\n", argv[2]); + goto done; + } + if (!strcasecmp(trace_opt, "q921")) { + sng_isdn_activate_trace(span, SNGISDN_TRACE_Q921); + } else if (!strcasecmp(trace_opt, "q931")) { + sng_isdn_activate_trace(span, SNGISDN_TRACE_Q931); + } else if (!strcasecmp(trace_opt, "disable")) { + sng_isdn_activate_trace(span, SNGISDN_TRACE_DISABLE); + } else { + stream->write_function(stream, "-ERR invalid trace option \n"); + } + } +done: + ftdm_safe_free(mycmd); + return status; +} + +static FIO_IO_LOAD_FUNCTION(ftdm_sangoma_isdn_io_init) +{ + memset(&g_sngisdn_io_interface, 0, sizeof(g_sngisdn_io_interface)); + + g_sngisdn_io_interface.name = "sangoma_isdn"; + g_sngisdn_io_interface.api = ftdm_sangoma_isdn_api; + + *fio = &g_sngisdn_io_interface; + + return FTDM_SUCCESS; +} + +ftdm_module_t ftdm_module = +{ + "sangoma_isdn", /* char name[256]; */ + ftdm_sangoma_isdn_io_init, /* fio_io_load_t */ + NULL, /* fio_io_unload_t */ + ftdm_sangoma_isdn_init, /* fio_sig_load_t */ + NULL, /* fio_sig_configure_t */ + ftdm_sangoma_isdn_unload, /* fio_sig_unload_t */ + ftdm_sangoma_isdn_span_config /* fio_configure_span_signaling_t */ +}; + + +/* For Emacs: + * Local Variables: + * mode:c + * indent-tabs-mode:t + * tab-width:4 + * c-basic-offset:4 + * End: + * For VIM: + * vim:set softtabstop=4 shiftwidth=4 tabstop=4: + */ + +/******************************************************************************/ + + diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h new file mode 100644 index 0000000000..d3877defd3 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h @@ -0,0 +1,259 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * Moises Silva + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef __FTMOD_SNG_ISDN_H__ +#define __FTMOD_SNG_ISDN_H__ + +#include +#include +#include +#include +#include +#include + +#include "private/ftdm_core.h" + +#include + +#define MAX_SPANS_PER_NFAS_LINK 8 /* TODO: Confirm this value */ +#define NUM_E1_CHANNELS_PER_SPAN 32 +#define NUM_T1_CHANNELS_PER_SPAN 24 +#define NUM_BRI_CHANNELS_PER_SPAN 2 + +/* Should never have DEBUG_MODE defined when used in production */ +#if 0 +#undef DEBUG_MODE +#define FORCE_SEFGAULT +#else +#define DEBUG_MODE +#define FORCE_SEGFAULT *(int *) 0 = 0; +#endif + +/* TODO: rename all *_cc_* to *_an_* */ + +typedef struct sngisdn_glare_data { + int16_t suId; + uint32_t suInstId; + uint32_t spInstId; + int16_t dChan; + ConEvnt setup; + uint8_t ces; +}sngisdn_glare_data_t; + + +/* Channel specific data */ +typedef struct sngisdn_chan_data { + ftdm_channel_t *ftdmchan; + uint32_t flags; + uint8_t ces; /* not used for now */ + uint8_t dchan_id; + uint32_t suInstId; /* instance ID generated locally */ + uint32_t spInstId; /* instance ID generated by stack */ + + uint8_t globalFlg; + sngisdn_glare_data_t glare; +} sngisdn_chan_data_t; + +/* Span specific data */ +typedef struct sngisdn_span_data { + ftdm_span_t *ftdm_span; + uint8_t link_id; + uint8_t switchtype; + uint8_t signalling; /* SNGISDN_SIGNALING_CPE or SNGISDN_SIGNALING_NET */ + uint8_t cc_id; + uint8_t dchan_id; + uint8_t span_id; + uint8_t tei; + uint8_t keep_link_up; + uint8_t trace_flags; +} sngisdn_span_data_t; + +/* dchan_data can have more than 1 span when running NFAS */ +typedef struct sngisdn_dchan_data { + uint8_t num_spans; + sngisdn_span_data_t *spans[MAX_L1_LINKS+1]; + uint16_t num_chans; + /* worst case for number of channel is when using NFAS, and NFAS is only used on T1, + so we can use MAX_SPANS_PER_NFAS_LINK*NUM_T1_CHANNELS_PER_SPAN instead of + MAX_SPANS_PER_NFAS_LINK*NUM_E1_CHANNELS_PER_SPAN + */ + /* Never seen NFAS on E1 yet, so use NUM_T1_CHANNELS_PER_SPAN */ + /* b-channels are arranged by physical id's not logical */ + sngisdn_chan_data_t *channels[MAX_SPANS_PER_NFAS_LINK*NUM_T1_CHANNELS_PER_SPAN]; +}sngisdn_dchan_data_t; + +typedef struct sngisdn_cc { + /* TODO: use flags instead of config_done and activation_done */ + uint8_t config_done; + uint8_t activation_done; + uint8_t switchtype; + ftdm_trunk_type_t trunktype; + uint32_t last_suInstId; + ftdm_mutex_t *request_mutex; + sngisdn_chan_data_t *active_spInstIds[MAX_INSTID]; + sngisdn_chan_data_t *active_suInstIds[MAX_INSTID]; +}sngisdn_cc_t; + +/* Global sngisdn data */ +typedef struct ftdm_sngisdn_data { + uint8_t gen_config_done; + uint8_t num_cc; /* 1 ent per switchtype */ + struct sngisdn_cc ccs[MAX_VARIANTS+1]; + uint8_t num_dchan; + sngisdn_dchan_data_t dchans[MAX_L1_LINKS+1]; +}ftdm_sngisdn_data_t; + +typedef enum { + FLAG_RESET_RX = (1 << 0), + FLAG_RESET_TX = (1 << 1), + FLAG_REMOTE_REL = (1 << 2), + FLAG_LOCAL_REL = (1 << 3), + FLAG_REMOTE_ABORT = (1 << 4), + FLAG_LOCAL_ABORT = (1 << 4), + FLAG_GLARE = (1 << 5), + FLAG_INFID_RESUME = (1 << 17), + FLAG_INFID_PAUSED = (1 << 18), + FLAG_CKT_MN_BLOCK_RX = (1 << 19), + FLAG_CKT_MN_BLOCK_TX = (1 << 20), + FLAG_CKT_MN_UNBLK_RX = (1 << 21), + FLAG_CKT_MN_UNBLK_TX = (1 << 22), + FLAG_GRP_HW_BLOCK_RX = (1 << 23), + FLAG_GRP_HW_BLOCK_TX = (1 << 24), + FLAG_GRP_MN_BLOCK_RX = (1 << 25), + FLAG_GRP_MN_BLOCK_TX = (1 << 28), + FLAG_GRP_HW_UNBLK_RX = (1 << 27), + FLAG_GRP_HW_UNBLK_TX = (1 << 28), + FLAG_GRP_MN_UNBLK_RX = (1 << 29), + FLAG_GRP_MN_UNBLK_TX = (1 << 30) +} sngisdn_flag_t; + + +typedef enum { + SNGISDN_SWITCH_INVALID = 0, /* invalid */ + SNGISDN_SWITCH_NI2 , /* national isdn-2 */ + SNGISDN_SWITCH_5ESS, /* att 5ess */ + SNGISDN_SWITCH_4ESS, /* att 4ess */ + SNGISDN_SWITCH_DMS100, /* nt dms100 */ + SNGISDN_SWITCH_EUROISDN,/* etsi */ + SNGISDN_SWITCH_QSIG, /* etsi qsig */ + SNGISDN_SWITCH_INSNET, /* int - net */ +} sngisdn_switchtype_t; + +typedef enum { + SNGISDN_SIGNALING_INVALID = 0, /* invalid */ + SNGISDN_SIGNALING_CPE , /* customer side emulation */ + SNGISDN_SIGNALING_NET, /* network side emulation */ +} sngisdn_signalingtype_t; + +typedef enum { + SNGISDN_TRACE_DISABLE = 0, + SNGISDN_TRACE_Q921 = 1, + SNGISDN_TRACE_Q931 = 2, +} sngisdn_tracetype_t; + + +#define sngisdn_set_flag(obj, flag) ((obj)->flags |= (flag)) +#define sngisdn_clear_flag(obj, flag) ((obj)->flags &= ~(flag)) +#define sngisdn_test_flag(obj, flag) ((obj)->flags & flag) + +#define sngisdn_set_trace_flag(obj, flag) ((obj)->trace_flags |= (flag)) +#define sngisdn_clear_trace_flag(obj, flag) ((obj)->trace_flags &= ~(flag)) +#define sngisdn_test_trace_flag(obj, flag) ((obj)->trace_flags & flag) + +/* TODO implement these 2 functions */ +#define ISDN_FUNC_TRACE_ENTER(a) +#define ISDN_FUNC_TRACE_EXIT(a) + +/* Configuration functions */ +ftdm_status_t ftmod_isdn_parse_cfg(ftdm_conf_parameter_t *ftdm_parameters, ftdm_span_t *span); + +/* Support functions */ +uint32_t get_unique_suInstId(uint8_t cc_id); +void clear_call_data(sngisdn_chan_data_t *sngisdn_info); +void stack_hdr_init(Header *hdr); +void stack_pst_init(Pst *pst); +ftdm_status_t get_ftdmchan_by_spInstId(uint8_t cc_id, uint32_t spInstId, sngisdn_chan_data_t **sngisdn_data); +ftdm_status_t get_ftdmchan_by_suInstId(uint8_t cc_id, uint32_t suInstId, sngisdn_chan_data_t **sngisdn_data); + +ftdm_status_t check_for_state_change(ftdm_channel_t *ftdmchan); + +/* Outbound Call Control functions */ +void sngisdn_snd_setup(ftdm_channel_t *ftdmchan); +void sngisdn_snd_proceed(ftdm_channel_t *ftdmchan); +void sngisdn_snd_progress(ftdm_channel_t *ftdmchan); +void sngisdn_snd_alert(ftdm_channel_t *ftdmchan); +void sngisdn_snd_connect(ftdm_channel_t *ftdmchan); +void sngisdn_snd_disconnect(ftdm_channel_t *ftdmchan); +void sngisdn_snd_release(ftdm_channel_t *ftdmchan); +void sngisdn_snd_reset(ftdm_channel_t *ftdmchan); +void sngisdn_snd_con_complete(ftdm_channel_t *ftdmchan); + +/* Inbound Call Control functions */ +void sngisdn_rcv_con_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, ConEvnt *conEvnt, signed short dChan, uint8_t ces); +void sngisdn_rcv_con_cfm (signed short suId, uint32_t suInstId, uint32_t spInstId, CnStEvnt *cnStEvnt, signed short dChan, uint8_t ces); +void sngisdn_rcv_cnst_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, CnStEvnt *cnStEvnt, uint8_t evntType, signed short dChan, uint8_t ces); +void sngisdn_rcv_disc_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, DiscEvnt *discEvnt); +void sngisdn_rcv_rel_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, RelEvnt *relEvnt); +void sngisdn_rcv_dat_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, InfoEvnt *infoEvnt); +void sngisdn_rcv_sshl_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, SsHlEvnt *ssHlEvnt, uint8_t action); +void sngisdn_rcv_sshl_cfm (signed short suId, uint32_t suInstId, uint32_t spInstId, SsHlEvnt *ssHlEvnt, uint8_t action); +void sngisdn_rcv_rmrt_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, RmRtEvnt *rmRtEvnt, uint8_t action); +void sngisdn_rcv_rmrt_cfm (signed short suId, uint32_t suInstId, uint32_t spInstId, RmRtEvnt *rmRtEvnt, uint8_t action); +void sngisdn_rcv_flc_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, StaEvnt *staEvnt); +void sngisdn_rcv_fac_ind (signed short suId, uint32_t suInstId, uint32_t spInstId, FacEvnt *facEvnt, uint8_t evntType, signed short dChan, uint8_t ces); +void sngisdn_rcv_sta_cfm ( signed short suId, uint32_t suInstId, uint32_t spInstId, StaEvnt *staEvnt); +void sngisdn_rcv_srv_ind ( signed short suId, Srv *srvEvnt, signed short dChan, uint8_t ces); +void sngisdn_rcv_srv_cfm ( signed short suId, Srv *srvEvnt, signed short dChan, uint8_t ces); +void sngisdn_rcv_rst_cfm ( signed short suId, Rst *rstEvnt, signed short dChan, uint8_t ces, uint8_t evtType); +void sngisdn_rcv_rst_ind ( signed short suId, Rst *rstEvnt, signed short dChan, uint8_t ces, uint8_t evtType); + + +void sngisdn_rcv_phy_ind(SuId suId, Reason reason); +void sngisdn_rcv_q921_ind(BdMngmt *status); +void sngisdn_rcv_q921_trace(BdMngmt *trc, Buffer *mBuf); +void sngisdn_rcv_q931_ind(InMngmt *status); +void sngisdn_rcv_q931_trace(InMngmt *trc, Buffer *mBuf); +void sngisdn_rcv_cc_ind(CcMngmt *status); +void sngisdn_rcv_sng_log(uint8_t level, char *fmt,...); + +void handle_sng_log(uint8_t level, char *fmt,...); +void sngisdn_set_span_sig_status(ftdm_span_t *ftdmspan, ftdm_signaling_status_t status); + +/* Stack management functions */ +ftdm_status_t sng_isdn_stack_cfg(ftdm_span_t *span); +ftdm_status_t sng_isdn_stack_activate(ftdm_span_t *span); + + +#endif /* __FTMOD_SNG_ISDN_H__ */ + diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c new file mode 100644 index 0000000000..d0254fd714 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c @@ -0,0 +1,219 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ******************************************************************************/ + +#include "ftmod_sangoma_isdn.h" + +ftdm_status_t parse_switchtype(const char* switch_name, ftdm_span_t *span); +ftdm_status_t parse_signalling(const char* signalling, ftdm_span_t *span); + +extern ftdm_sngisdn_data_t g_sngisdn_data; + +ftdm_status_t parse_switchtype(const char* switch_name, ftdm_span_t *span) +{ + unsigned i; + + sngisdn_dchan_data_t *dchan_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) span->signal_data; + switch(span->trunk_type) { + case FTDM_TRUNK_T1: + if (!strcasecmp(switch_name, "ni2")) { + signal_data->switchtype = SNGISDN_SWITCH_NI2; + } else if (!strcasecmp(switch_name, "5ess")) { + signal_data->switchtype = SNGISDN_SWITCH_5ESS; + } else if (!strcasecmp(switch_name, "4ess")) { + signal_data->switchtype = SNGISDN_SWITCH_4ESS; + } else if (!strcasecmp(switch_name, "dms100")) { + signal_data->switchtype = SNGISDN_SWITCH_DMS100; + } else { + ftdm_log(FTDM_LOG_ERROR, "%s:Unsupported switchtype %s for trunktype:%s\n", span->name, switch_name, ftdm_trunk_type2str(span->trunk_type)); + return FTDM_FAIL; + } + break; + case FTDM_TRUNK_E1: + if (!strcasecmp(switch_name, "euroisdn") || strcasecmp(switch_name, "etsi")) { + signal_data->switchtype = SNGISDN_SWITCH_EUROISDN; + } else if (!strcasecmp(switch_name, "qsig")) { + signal_data->switchtype = SNGISDN_SWITCH_QSIG; + } else { + ftdm_log(FTDM_LOG_ERROR, "%s:Unsupported switchtype %s for trunktype:%s\n", span->name, switch_name, ftdm_trunk_type2str(span->trunk_type)); + return FTDM_FAIL; + } + break; + case FTDM_TRUNK_BRI: + case FTDM_TRUNK_BRI_PTMP: + if (!strcasecmp(switch_name, "euroisdn") || + !strcasecmp(switch_name, "etsi")) { + signal_data->switchtype = SNGISDN_SWITCH_EUROISDN; + } else if (!strcasecmp(switch_name, "insnet") || + !strcasecmp(switch_name, "ntt")) { + signal_data->switchtype = SNGISDN_SWITCH_INSNET; + } else { + ftdm_log(FTDM_LOG_ERROR, "%s:Unsupported switchtype %s for trunktype:%s\n", span->name, switch_name, ftdm_trunk_type2str(span->trunk_type)); + return FTDM_FAIL; + } + /* can be > 1 for some BRI variants */ + break; + default: + ftdm_log(FTDM_LOG_ERROR, "%s:Unsupported trunktype:%s\n", span->name, switch_name, ftdm_trunk_type2str(span->trunk_type)); + return FTDM_FAIL; + } + /* see if we have profile with this switch_type already */ + for (i=1; i <= g_sngisdn_data.num_cc; i++) { + if (g_sngisdn_data.ccs[i].switchtype == signal_data->switchtype && + g_sngisdn_data.ccs[i].trunktype == span->trunk_type) { + break; + } + } + /* need to create a new switch_type */ + if (i > g_sngisdn_data.num_cc) { + g_sngisdn_data.num_cc++; + g_sngisdn_data.ccs[i].switchtype = signal_data->switchtype; + g_sngisdn_data.ccs[i].trunktype = span->trunk_type; + ftdm_log(FTDM_LOG_DEBUG, "%s: New switchtype:%s cc_id:%u\n", span->name, switch_name, i); + } + + /* add this span to its ent_cc */ + signal_data->cc_id = i; + + /* create a new dchan */ /* for NFAS - no-dchan on b-channels only links */ + g_sngisdn_data.num_dchan++; + signal_data->dchan_id = g_sngisdn_data.num_dchan; + + dchan_data = &g_sngisdn_data.dchans[signal_data->dchan_id]; + dchan_data->num_spans++; + + signal_data->span_id = dchan_data->num_spans; + dchan_data->spans[signal_data->span_id] = signal_data; + + ftdm_log(FTDM_LOG_DEBUG, "%s: cc_id:%d dchan_id:%d span_id:%d\n", span->name, signal_data->cc_id, signal_data->dchan_id, signal_data->span_id); + + /* Add the channels to the span */ + for (i=1;i<=span->chan_count;i++) { + unsigned chan_id; + ftdm_channel_t *ftdmchan = span->channels[i]; + /* NFAS is not supported on E1, so span_id will always be 1 for E1 so this will work for E1 as well */ + chan_id = ((signal_data->span_id-1)*NUM_T1_CHANNELS_PER_SPAN)+ftdmchan->physical_chan_id; + dchan_data->channels[chan_id] = (sngisdn_chan_data_t*)ftdmchan->call_data; + dchan_data->num_chans++; + } + return FTDM_SUCCESS; +} + +ftdm_status_t parse_signalling(const char* signalling, ftdm_span_t *span) +{ + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) span->signal_data; + if (!strcasecmp(signalling, "net") || + !strcasecmp(signalling, "pri_net")|| + !strcasecmp(signalling, "bri_net")) { + + signal_data->signalling = SNGISDN_SIGNALING_NET; + } else if (!strcasecmp(signalling, "cpe") || + !strcasecmp(signalling, "pri_cpe")|| + !strcasecmp(signalling, "bri_cpe")) { + + signal_data->signalling = SNGISDN_SIGNALING_CPE; + } else { + ftdm_log(FTDM_LOG_ERROR, "Unsupported signalling %s\n", signalling); + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +ftdm_status_t ftmod_isdn_parse_cfg(ftdm_conf_parameter_t *ftdm_parameters, ftdm_span_t *span) +{ + unsigned paramindex; + const char *var, *val; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) span->signal_data; + /* Set defaults here */ + signal_data->keep_link_up = 1; + signal_data->tei = 0; + + + for (paramindex = 0; ftdm_parameters[paramindex].var; paramindex++) { + ftdm_log(FTDM_LOG_DEBUG, "Sangoma ISDN key=value, %s=%s\n", ftdm_parameters[paramindex].var, ftdm_parameters[paramindex].val); + var = ftdm_parameters[paramindex].var; + val = ftdm_parameters[paramindex].val; + + if (!strcasecmp(var, "switchtype")) { + if (parse_switchtype(val, span) != FTDM_SUCCESS) { + return FTDM_FAIL; + } + } else if (!strcasecmp(var, "signalling")) { + if (parse_signalling(val, span) != FTDM_SUCCESS) { + return FTDM_FAIL; + } + } else if (!strcasecmp(var, "tei")) { + uint8_t tei = atoi(val); + if (tei > 127) { + ftdm_log(FTDM_LOG_ERROR, "Invalid TEI %d, valid values are (0-127)", tei); + return FTDM_FAIL; + } + signal_data->tei = tei; + } else if (!strcasecmp(var, "keep_link_up")) { + if (!strcasecmp(val, "yes")) { + signal_data->keep_link_up = 1; + } else if (!strcasecmp(val, "no")) { + signal_data->keep_link_up = 0; + } else { + ftdm_log(FTDM_LOG_ERROR, "Invalid keep_link_up value, valid values are (yes/no)"); + return FTDM_FAIL; + } + } else { + ftdm_log(FTDM_LOG_WARNING, "Ignoring unknown parameter %s\n", ftdm_parameters[paramindex].var); + } + } + signal_data->link_id = span->span_id; + if (signal_data->switchtype == SNGISDN_SWITCH_INVALID) { + ftdm_log(FTDM_LOG_ERROR, "%s: switchtype not specified", span->name); + return FTDM_FAIL; + } + if (signal_data->signalling == SNGISDN_SIGNALING_INVALID) { + ftdm_log(FTDM_LOG_ERROR, "%s: signalling not specified", span->name); + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + + +/******************************************************************************/ +/* For Emacs: + * Local Variables: + * mode:c + * indent-tabs-mode:t + * tab-width:4 + * c-basic-offset:4 + * End: + * For VIM: + * vim:set softtabstop=4 shiftwidth=4 tabstop=4: + */ diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c new file mode 100644 index 0000000000..5299c91b44 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cntrl.c @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ******************************************************************************/ + +#include "ftmod_sangoma_isdn.h" + + +void sngisdn_set_chan_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status); + +void sngisdn_set_chan_sig_status(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) +{ + ftdm_sigmsg_t sig; + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Signalling link status changed to %s\n", ftdm_signaling_status2str(status)); + + memset(&sig, 0, sizeof(sig)); + sig.chan_id = ftdmchan->chan_id; + sig.span_id = ftdmchan->span_id; + sig.channel = ftdmchan; + sig.event_id = FTDM_SIGEVENT_SIGSTATUS_CHANGED; + sig.raw_data = &status; + ftdm_span_send_signal(ftdmchan->span, &sig); + return; +} + + + +void sngisdn_set_span_sig_status(ftdm_span_t *ftdmspan, ftdm_signaling_status_t status) +{ + unsigned i; + /* TODO: use channel iterator once it is implemented */ + + for (i=1;i<=ftdmspan->chan_count;i++) { + sngisdn_set_chan_sig_status(ftdmspan->channels[i], status); + } + return; +} + + + + + +/* For Emacs: + * Local Variables: + * mode:c + * indent-tabs-mode:t + * tab-width:4 + * c-basic-offset:4 + * End: + * For VIM: + * vim:set softtabstop=4 shiftwidth=4 tabstop=4: + */ + +/******************************************************************************/ + diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c new file mode 100644 index 0000000000..c44228d033 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c @@ -0,0 +1,1035 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "ftmod_sangoma_isdn.h" + +extern ftdm_sngisdn_data_t g_sngisdn_data; + +uint8_t sng_isdn_stack_switchtype(sngisdn_switchtype_t switchtype); + +ftdm_status_t sng_isdn_cfg_phy(ftdm_span_t *span); +ftdm_status_t sng_isdn_cfg_q921(ftdm_span_t *span); +ftdm_status_t sng_isdn_cfg_q931(ftdm_span_t *span); +ftdm_status_t sng_isdn_cfg_cc(ftdm_span_t *span); + +ftdm_status_t sng_isdn_stack_cfg_phy_gen(void); +ftdm_status_t sng_isdn_stack_cfg_q921_gen(void); +ftdm_status_t sng_isdn_stack_cfg_q931_gen(void); +ftdm_status_t sng_isdn_stack_cfg_cc_gen(void); + + +ftdm_status_t sng_isdn_stack_cfg_phy_psap(ftdm_span_t *span); +ftdm_status_t sng_isdn_stack_cfg_q921_msap(ftdm_span_t *span); +ftdm_status_t sng_isdn_stack_cfg_q921_dlsap(ftdm_span_t *span, uint8_t management); +ftdm_status_t sng_isdn_stack_cfg_q931_tsap(ftdm_span_t *span); +ftdm_status_t sng_isdn_stack_cfg_q931_dlsap(ftdm_span_t *span); +ftdm_status_t sng_isdn_stack_cfg_q931_lce(ftdm_span_t *span); + +ftdm_status_t sng_isdn_stack_cfg_cc_sap(ftdm_span_t *span); + +ftdm_status_t sng_isdn_stack_cfg(ftdm_span_t *span) +{ + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + + if (!g_sngisdn_data.gen_config_done) { + g_sngisdn_data.gen_config_done = 1; + ftdm_log(FTDM_LOG_DEBUG, "Starting general stack configuration\n"); + if(sng_isdn_stack_cfg_phy_gen()!= FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "Failed general physical configuration\n"); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "General stack physical done\n"); + + if(sng_isdn_stack_cfg_q921_gen()!= FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "Failed general q921 configuration\n"); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "General stack q921 done\n"); + + if(sng_isdn_stack_cfg_q931_gen()!= FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "Failed general q921 configuration\n"); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "General stack q931 done\n"); + + if(sng_isdn_stack_cfg_cc_gen()!= FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "Failed general CC configuration\n"); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "General stack CC done\n"); + ftdm_log(FTDM_LOG_INFO, "General stack configuration done\n"); + } + + /* TODO: for NFAS, should only call these function for spans with d-chans */ + if (sng_isdn_stack_cfg_phy_psap(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "%s:phy_psap configuration failed\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:phy_psap configuration done\n", span->name); + + if (sng_isdn_stack_cfg_q921_msap(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "%s:q921_msap configuration failed\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:q921_msap configuration done\n", span->name); + + if (sng_isdn_stack_cfg_q921_dlsap(span, 0) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "%s:q921_dlsap configuration failed\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:q921_dlsap configuration done\n", span->name); + + if (span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + if (sng_isdn_stack_cfg_q921_dlsap(span, 1) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "%s:q921_dlsap management configuration failed\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:q921_dlsap management configuration done\n", span->name); + } + + + if (sng_isdn_stack_cfg_q931_dlsap(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "%s:q931_dlsap configuration failed\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:q931_dlsap configuration done\n", span->name); + + if (sng_isdn_stack_cfg_q931_lce(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "%s:q931_lce configuration failed\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:q931_lce configuration done\n", span->name); + + if (!g_sngisdn_data.ccs[signal_data->cc_id].config_done) { + g_sngisdn_data.ccs[signal_data->cc_id].config_done = 1; + /* if BRI, need to configure dlsap_mgmt */ + if (sng_isdn_stack_cfg_q931_tsap(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "%s:q931_tsap configuration failed\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:q931_tsap configuration done\n", span->name); + + if (sng_isdn_stack_cfg_cc_sap(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "%s:cc_sap configuration failed\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:cc_sap configuration done\n", span->name); + } + + ftdm_log(FTDM_LOG_INFO, "%s:stack configuration done\n", span->name); + return FTDM_SUCCESS; +} + + + +ftdm_status_t sng_isdn_stack_cfg_phy_gen(void) +{ + /*local variables*/ + L1Mngmt cfg; /*configuration structure*/ + Pst pst; /*post structure*/ + + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTL1; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + /*fill in the specific fields of the header*/ + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTL1; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STGEN; + + stack_pst_init(&cfg.t.cfg.s.l1Gen.sm ); + cfg.t.cfg.s.l1Gen.sm.srcEnt = ENTL1; + cfg.t.cfg.s.l1Gen.sm.dstEnt = ENTSM; + + cfg.t.cfg.s.l1Gen.nmbLnks = MAX_L1_LINKS+1; + cfg.t.cfg.s.l1Gen.poolTrUpper = POOL_UP_TR; /* upper pool threshold */ + cfg.t.cfg.s.l1Gen.poolTrLower = POOL_LW_TR; /* lower pool threshold */ + + if (sng_isdn_phy_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +ftdm_status_t sng_isdn_stack_cfg_phy_psap(ftdm_span_t *span) +{ + /*local variables*/ + L1Mngmt cfg; /*configuration structure*/ + Pst pst; /*post structure*/ + + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTL1; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + /*fill in the specific fields of the header*/ + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTL1; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STPSAP; + + cfg.hdr.elmId.elmntInst1 = signal_data->link_id; + + cfg.t.cfg.s.l1PSAP.span = span->channels[1]->physical_span_id; + switch(span->trunk_type) { + case FTDM_TRUNK_E1: + cfg.t.cfg.s.l1PSAP.chan = 16; + cfg.t.cfg.s.l1PSAP.type = SNG_LINKTYPE_PRI; + break; + case FTDM_TRUNK_T1: + case FTDM_TRUNK_J1: + cfg.t.cfg.s.l1PSAP.chan = 24; + cfg.t.cfg.s.l1PSAP.type = SNG_LINKTYPE_PRI; + break; + case FTDM_TRUNK_BRI: + case FTDM_TRUNK_BRI_PTMP: + cfg.t.cfg.s.l1PSAP.chan = 3; + cfg.t.cfg.s.l1PSAP.type = SNG_LINKTYPE_BRI; + break; + default: + ftdm_log(FTDM_LOG_ERROR, "%s:Unsupported trunk type %d\n", span->name, span->trunk_type); + return FTDM_FAIL; + } + cfg.t.cfg.s.l1PSAP.spId = signal_data->link_id; + + if (sng_isdn_phy_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + + +ftdm_status_t sng_isdn_stack_cfg_q921_gen(void) +{ + BdMngmt cfg; + Pst pst; + + /* initalize the post structure */ + stack_pst_init(&pst); + /* insert the destination Entity */ + pst.dstEnt = ENTLD; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTLD; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STGEN; + /* fill in the Gen Conf structures internal pst struct */ + + stack_pst_init(&cfg.t.cfg.s.bdGen.sm); + + cfg.t.cfg.s.bdGen.sm.dstEnt = ENTSM; /* entity */ + + cfg.t.cfg.s.bdGen.nmbPLnks = MAX_L1_LINKS+1; + cfg.t.cfg.s.bdGen.nmbLDLnks = MAX_L1_LINKS+1; /* Not used in LAPD */ + cfg.t.cfg.s.bdGen.nmbDLCs = MAX_L1_LINKS+1; + cfg.t.cfg.s.bdGen.nmbDLCs = MAX_TEIS_PER_LINK*(MAX_L1_LINKS+1); + cfg.t.cfg.s.bdGen.nmbASPLnks = MAX_L1_LINKS+1; + +#ifdef LAPD_3_4 + cfg.t.cfg.s.bdGen.timeRes = 10; /* timer resolution */ +#endif + cfg.t.cfg.s.bdGen.poolTrUpper = POOL_UP_TR; /* upper pool threshold */ + cfg.t.cfg.s.bdGen.poolTrLower = POOL_LW_TR; /* lower pool threshold */ + + if (sng_isdn_q921_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +ftdm_status_t sng_isdn_stack_cfg_q921_msap(ftdm_span_t *span) +{ + BdMngmt cfg; + Pst pst; + + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + + /* initalize the post structure */ + stack_pst_init(&pst); + /* insert the destination Entity */ + pst.dstEnt = ENTLD; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTLD; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STMSAP; + + cfg.t.cfg.s.bdMSAP.lnkNmb = signal_data->link_id; + + cfg.t.cfg.s.bdMSAP.maxOutsFrms = 2; /* MAC window */ + cfg.t.cfg.s.bdMSAP.tQUpperTrs = 16; /* Tx Queue Upper Threshold */ + cfg.t.cfg.s.bdMSAP.tQLowerTrs = 8; /* Tx Queue Lower Threshold */ + cfg.t.cfg.s.bdMSAP.selector = 0; /* Selector 0 */ + /* TODO: check if bdMSAP parameters can be initialized by calling stack_pst_init */ + cfg.t.cfg.s.bdMSAP.mem.region = S_REG; /* Memory region */ + cfg.t.cfg.s.bdMSAP.mem.pool = S_POOL; /* Memory pool */ + cfg.t.cfg.s.bdMSAP.prior = PRIOR0; /* Priority */ + cfg.t.cfg.s.bdMSAP.route = RTESPEC; /* Route */ + cfg.t.cfg.s.bdMSAP.dstProcId = SFndProcId(); /* destination proc id */ + cfg.t.cfg.s.bdMSAP.dstEnt = ENTL1; /* entity */ + cfg.t.cfg.s.bdMSAP.dstInst = S_INST; /* instance */ + cfg.t.cfg.s.bdMSAP.t201Tmr = 5; /* T201 */ + cfg.t.cfg.s.bdMSAP.t202Tmr = 200; /* T202 */ + cfg.t.cfg.s.bdMSAP.bndRetryCnt = 2; /* bind retry counter */ + cfg.t.cfg.s.bdMSAP.tIntTmr = 200; /* bind retry timer */ + cfg.t.cfg.s.bdMSAP.n202 = 3; /* N202 */ + cfg.t.cfg.s.bdMSAP.lowTei = 64; /* Lowest dynamic TEI */ + + if (span->trunk_type == FTDM_TRUNK_BRI_PTMP && + signal_data->signalling == SNGISDN_SIGNALING_NET) { + cfg.t.cfg.s.bdMSAP.kpL1Up = FALSE; /* flag to keep l1 up or not */ + } else { + cfg.t.cfg.s.bdMSAP.kpL1Up = TRUE; /* flag to keep l1 up or not */ + } + + cfg.t.cfg.s.bdMSAP.type = sng_isdn_stack_switchtype(signal_data->switchtype); + + if (span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + cfg.t.cfg.s.bdMSAP.teiChkTmr = 20; /* Tei check timer */ + } else { + cfg.t.cfg.s.bdMSAP.teiChkTmr = 0; /* Tei check timer */ + } + + if (signal_data->signalling == SNGISDN_SIGNALING_NET) { + cfg.t.cfg.s.bdMSAP.logInt = 1; /* logical interface = 0 = user, 1= network */ + cfg.t.cfg.s.bdMSAP.setUpArb = PASSIVE; /* set up arbitration */ + } else { + cfg.t.cfg.s.bdMSAP.logInt = 0; /* logical interface = 0 = user, 1= network */ + cfg.t.cfg.s.bdMSAP.setUpArb = ACTIVE; /* set up arbitration */ + } + + + if (sng_isdn_q921_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +ftdm_status_t sng_isdn_stack_cfg_q921_dlsap(ftdm_span_t *span, uint8_t management) +{ + BdMngmt cfg; + Pst pst; + + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + /* initalize the post structure */ + stack_pst_init(&pst); + /* insert the destination Entity */ + pst.dstEnt = ENTLD; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + /*fill in the specific fields of the header*/ + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTLD; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STDLSAP; + + cfg.t.cfg.s.bdDLSAP.lnkNmb = signal_data->link_id; + + cfg.t.cfg.s.bdDLSAP.n201 = 1028; /* n201 */ + cfg.t.cfg.s.bdDLSAP.k = 7; /* k */ + cfg.t.cfg.s.bdDLSAP.n200 = 3; /* n200 */ + cfg.t.cfg.s.bdDLSAP.congTmr = 300; /* congestion timer */ + cfg.t.cfg.s.bdDLSAP.t200Tmr = 1; /* t1 changed from 25 */ + cfg.t.cfg.s.bdDLSAP.t203Tmr = 3; /* t3 changed from 50 */ + cfg.t.cfg.s.bdDLSAP.mod = 128; /* modulo */ + cfg.t.cfg.s.bdDLSAP.selector = 0; /* Selector 0 */ + cfg.t.cfg.s.bdDLSAP.mem.region = S_REG; /* Memory region */ + cfg.t.cfg.s.bdDLSAP.mem.pool = S_POOL; /* Memory pool */ + cfg.t.cfg.s.bdDLSAP.prior = PRIOR0; /* Priority */ + cfg.t.cfg.s.bdDLSAP.route = RTESPEC; /* Route */ + + if (management) { + cfg.t.cfg.s.bdDLSAP.sapi = MNGMT_SAPI; + cfg.t.cfg.s.bdDLSAP.teiAss = NON_AUTOMATIC; /* static tei assignment */ + cfg.t.cfg.s.bdDLSAP.noOfDlc = 1; + cfg.t.cfg.s.bdDLSAP.tei[0] = 0x7f; + } else { + cfg.t.cfg.s.bdDLSAP.sapi = Q930_SAPI; + if (span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + if (signal_data->signalling == SNGISDN_SIGNALING_NET) { + cfg.t.cfg.s.bdDLSAP.teiAss = AUTOMATIC; + cfg.t.cfg.s.bdDLSAP.noOfDlc = 8; + + cfg.t.cfg.s.bdDLSAP.tei[0] = 64; + cfg.t.cfg.s.bdDLSAP.tei[1] = 65; + cfg.t.cfg.s.bdDLSAP.tei[2] = 66; + cfg.t.cfg.s.bdDLSAP.tei[3] = 67; + cfg.t.cfg.s.bdDLSAP.tei[4] = 68; + cfg.t.cfg.s.bdDLSAP.tei[5] = 69; + cfg.t.cfg.s.bdDLSAP.tei[6] = 70; + cfg.t.cfg.s.bdDLSAP.tei[7] = 71; + } else { + cfg.t.cfg.s.bdDLSAP.teiAss = AUTOMATIC; + cfg.t.cfg.s.bdDLSAP.noOfDlc = 1; + } + } else { + /* Point to point configs */ + cfg.t.cfg.s.bdDLSAP.teiAss = NON_AUTOMATIC; + cfg.t.cfg.s.bdDLSAP.noOfDlc = 1; + cfg.t.cfg.s.bdDLSAP.tei[0] = signal_data->tei; + } + } + + if (sng_isdn_q921_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +ftdm_status_t sng_isdn_stack_cfg_q931_gen(void) +{ + InMngmt cfg; + Pst pst; + + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTIN; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + /*fill in the specific fields of the header*/ + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTIN; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STGEN; + + /* fill in the Gen Conf structures internal pst struct */ + stack_pst_init(&cfg.t.cfg.s.inGen.sm); + + cfg.t.cfg.s.inGen.nmbSaps = MAX_VARIANTS+1; /* Total number of variants supported */ + + cfg.t.cfg.s.inGen.nmbLnks = MAX_L1_LINKS+1; /* number of Data Link SAPs */ + cfg.t.cfg.s.inGen.nmbSigLnks = MAX_L1_LINKS+1; + + /* number of CESs */ + cfg.t.cfg.s.inGen.nmbCes = (MAX_L1_LINKS+1)*MAX_NUM_CES_PER_LINK; + /* number of global Call References can have 2 per channel when using HOLD/RESUME */ + cfg.t.cfg.s.inGen.nmbCalRef = MAX_NUM_CALLS; + /* number of bearer channels */ + cfg.t.cfg.s.inGen.nmbBearer = NUM_E1_CHANNELS_PER_SPAN*(MAX_L1_LINKS+1); + /* maximum number of routing entries */ + cfg.t.cfg.s.inGen.nmbRouts = 0; + /* number of profiles */ + cfg.t.cfg.s.inGen.nmbProfiles = 0; + /* upper pool threshold */ + cfg.t.cfg.s.inGen.poolTrUpper = INGEN_POOL_UP_TR; + /* time resolution */ + cfg.t.cfg.s.inGen.timeRes = 10; + + cfg.t.cfg.s.inGen.sm.dstEnt = ENTSM; + + if (sng_isdn_q931_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +/* Link between CC and q931 */ +ftdm_status_t sng_isdn_stack_cfg_q931_tsap(ftdm_span_t *span) +{ + InMngmt cfg; + Pst pst; + unsigned i; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTIN; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + /*fill in the specific fields of the header*/ + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTIN; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STTSAP; + + cfg.t.cfg.s.inTSAP.sapId = signal_data->cc_id; + + cfg.t.cfg.s.inTSAP.prior = PRIOR0; + cfg.t.cfg.s.inTSAP.route = RTESPEC; + + cfg.t.cfg.s.inTSAP.swtch = sng_isdn_stack_switchtype(signal_data->switchtype); + cfg.t.cfg.s.inTSAP.useSubAdr = 0; /* call routing on subaddress */ + cfg.t.cfg.s.inTSAP.adrPref = 0; /* use of prefix for int'l calls */ + cfg.t.cfg.s.inTSAP.nmbPrefDig = 0; /* number of digits used for prefix */ + + for (i = 0; i < IN_MAXPREFDIG; i++) + cfg.t.cfg.s.inTSAP.prefix[i] = 0; /* address prefix */ + + cfg.t.cfg.s.inTSAP.keyPad = 0; + cfg.t.cfg.s.inTSAP.wcRout = 0; + + for (i = 0; i < ADRLEN; i++) + cfg.t.cfg.s.inTSAP.wcMask[i] = 0; /* address prefix */ + + cfg.t.cfg.s.inTSAP.sidIns = FALSE; /* SID insertion Flag */ + cfg.t.cfg.s.inTSAP.sid.length = 0; /* SID */ + cfg.t.cfg.s.inTSAP.sidTon = 0; /* SID Type of Number */ + cfg.t.cfg.s.inTSAP.sidNPlan = 0; /* SID Numbering Plan */ + cfg.t.cfg.s.inTSAP.callId.len = 0; /* Default Call Identity */ + cfg.t.cfg.s.inTSAP.minAdrDig = 0; /* Minimum number of address digits */ + cfg.t.cfg.s.inTSAP.comptChck = FALSE; /* Validate compatibility */ + cfg.t.cfg.s.inTSAP.nmbApplProf = 0; /* Number of application profiles */ + cfg.t.cfg.s.inTSAP.profNmb[0] = 0; /* Application profiles */ + cfg.t.cfg.s.inTSAP.mem.region = S_REG; + cfg.t.cfg.s.inTSAP.mem.pool = S_POOL; + cfg.t.cfg.s.inTSAP.selector = 0; + + + if (sng_isdn_q931_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +ftdm_status_t sng_isdn_stack_cfg_q931_dlsap(ftdm_span_t *span) +{ + InMngmt cfg; + Pst pst; + + unsigned i; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTIN; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + /*fill in the specific fields of the header*/ + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTIN; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STDLSAP; + + cfg.hdr.response.selector=0; + + cfg.t.cfg.s.inDLSAP.sapId = signal_data->link_id; + cfg.t.cfg.s.inDLSAP.spId = signal_data->link_id; + cfg.t.cfg.s.inDLSAP.swtch = sng_isdn_stack_switchtype(signal_data->switchtype); + + cfg.t.cfg.s.inDLSAP.n201 = 1024; + cfg.t.cfg.s.inDLSAP.nmbRst = 2; + cfg.t.cfg.s.inDLSAP.tCbCfg = TRUE; + + cfg.t.cfg.s.inDLSAP.tCbId = signal_data->cc_id; + + /* TODO : NFAS configuration */ + cfg.t.cfg.s.inDLSAP.nfasInt = FALSE; /* pass this later */ + + if (!cfg.t.cfg.s.inDLSAP.nfasInt) { + cfg.t.cfg.s.inDLSAP.intId = 0; + cfg.t.cfg.s.inDLSAP.sigInt = 0; + cfg.t.cfg.s.inDLSAP.bupInt = 0; + cfg.t.cfg.s.inDLSAP.nmbNfasInt = 0; + cfg.t.cfg.s.inDLSAP.buIntPr = FALSE; + + for (i = 0; i < IN_MAX_NMB_INTRFS; i++) + cfg.t.cfg.s.inDLSAP.ctldInt[i] = IN_INT_NOT_CFGD; + + } else { + /* Need to get these parameters from NFAS */ + cfg.t.cfg.s.inDLSAP.intId = 0; + cfg.t.cfg.s.inDLSAP.sigInt = 0; + cfg.t.cfg.s.inDLSAP.bupInt = 1; + cfg.t.cfg.s.inDLSAP.nmbNfasInt = 2; + cfg.t.cfg.s.inDLSAP.buIntPr = 1; + + for (i = 0; i < IN_MAX_NMB_INTRFS; i++) + cfg.t.cfg.s.inDLSAP.ctldInt[i] = IN_INT_NOT_CFGD; + + /* For primary and backup interfaces, need to initialize this array */ + cfg.t.cfg.s.inDLSAP.ctldInt[0] = 0; /* This is primary if for NFAS */ + cfg.t.cfg.s.inDLSAP.ctldInt[1] = 1; + } + + cfg.t.cfg.s.inDLSAP.numRstInd = 255; + cfg.t.cfg.s.inDLSAP.ackOpt = TRUE; + cfg.t.cfg.s.inDLSAP.relOpt = TRUE; +#ifdef ISDN_SRV + cfg.t.cfg.s.inDLSAP.bcas = FALSE; + cfg.t.cfg.s.inDLSAP.maxBSrvCnt = 2; + cfg.t.cfg.s.inDLSAP.maxDSrvCnt = 2; +#endif /* ISDN_SRV */ + + if (signal_data->signalling == SNGISDN_SIGNALING_NET) { + cfg.t.cfg.s.inDLSAP.intType = NETWORK; + cfg.t.cfg.s.inDLSAP.clrGlr = FALSE; /* in case of glare, do not clear local call */ + cfg.t.cfg.s.inDLSAP.statEnqOpt = TRUE; + if (span->trunk_type == FTDM_TRUNK_BRI || + span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + cfg.t.cfg.s.inDLSAP.rstOpt = FALSE; + } else { + cfg.t.cfg.s.inDLSAP.rstOpt = TRUE; + } + } else { + cfg.t.cfg.s.inDLSAP.intType = USER; + cfg.t.cfg.s.inDLSAP.clrGlr = TRUE; /* in case of glare, clear local call */ + cfg.t.cfg.s.inDLSAP.statEnqOpt = FALSE; + cfg.t.cfg.s.inDLSAP.rstOpt = FALSE; + } + + for (i = 0; i < IN_MAXBCHNL; i++) + { + cfg.t.cfg.s.inDLSAP.bProf[i].profNmb = 0; + cfg.t.cfg.s.inDLSAP.bProf[i].valid = FALSE; + cfg.t.cfg.s.inDLSAP.bProf[i].state = IN_PROV_AVAIL; + } + + if (span->trunk_type == FTDM_TRUNK_BRI_PTMP && + signal_data->signalling == SNGISDN_SIGNALING_NET) { + cfg.t.cfg.s.inDLSAP.nmbCes = MAX_NUM_CES_PER_LINK; + } else { + cfg.t.cfg.s.inDLSAP.nmbCes=1; + } + + cfg.t.cfg.s.inDLSAP.useSubAdr = 0; /* call routing on subaddress */ + cfg.t.cfg.s.inDLSAP.adrPref = 0; /* use of prefix for international calls */ + cfg.t.cfg.s.inDLSAP.nmbPrefDig = 0; /* number of digits used for prefix */ + for (i = 0; i < IN_MAXPREFDIG; i++) + cfg.t.cfg.s.inDLSAP.prefix[i] = 0; /* address prefix */ + cfg.t.cfg.s.inDLSAP.keyPad = 0; + cfg.t.cfg.s.inDLSAP.wcRout = 0; + for (i = 0; i < ADRLEN; i++) + cfg.t.cfg.s.inDLSAP.wcMask[i] = 0; /* address prefix */ + + cfg.t.cfg.s.inDLSAP.sidIns = FALSE; /* SID insertion flag */ + cfg.t.cfg.s.inDLSAP.sid.length = 0; /* SID */ + cfg.t.cfg.s.inDLSAP.sidTon = 0; /* SID Type of Number */ + cfg.t.cfg.s.inDLSAP.sidNPlan = 0; /* SID Numbering Plan */ + cfg.t.cfg.s.inDLSAP.sidPresInd = FALSE; /* SID Presentation Indicator */ + cfg.t.cfg.s.inDLSAP.minAdrDig = 0; /* minimum number of address digits */ + cfg.t.cfg.s.inDLSAP.srvOpt = FALSE; + cfg.t.cfg.s.inDLSAP.callId.len = 0; /* default call id */ + cfg.t.cfg.s.inDLSAP.redirSubsc = FALSE; /* subscription to call redirection */ + cfg.t.cfg.s.inDLSAP.redirAdr.eh.pres = NOTPRSNT; /* redirAdr Numbering Plan */ + cfg.t.cfg.s.inDLSAP.forwSubsc = FALSE; /* programmed forwarding subscription */ + cfg.t.cfg.s.inDLSAP.cndSubsc = TRUE; /* calling adddress delivery service subscription */ + + /* TODO: Fill in these timers with proper values - eventually pass them */ + cfg.t.cfg.s.inDLSAP.tmr.t301.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t301.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t302.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t302.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t303.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t303.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t304.enb = TRUE; + cfg.t.cfg.s.inDLSAP.tmr.t304.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t305.enb = TRUE; + cfg.t.cfg.s.inDLSAP.tmr.t305.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t306.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t306.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t307.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t307.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t308.enb = TRUE; + cfg.t.cfg.s.inDLSAP.tmr.t308.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t310.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t310.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t312.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t312.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t313.enb = TRUE; + cfg.t.cfg.s.inDLSAP.tmr.t313.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t316.enb = TRUE; + cfg.t.cfg.s.inDLSAP.tmr.t316.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t316c.enb = TRUE; + cfg.t.cfg.s.inDLSAP.tmr.t316c.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t318.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t318.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t319.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t319.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t322.enb = TRUE; + cfg.t.cfg.s.inDLSAP.tmr.t322.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.t332.enb = FALSE; + cfg.t.cfg.s.inDLSAP.tmr.t332.val = 35; + cfg.t.cfg.s.inDLSAP.tmr.tRst.enb = TRUE; + cfg.t.cfg.s.inDLSAP.tmr.tRst.val = 8; + cfg.t.cfg.s.inDLSAP.tmr.tAns.enb = FALSE; /* non-standard timer */ + cfg.t.cfg.s.inDLSAP.tmr.t396.enb = FALSE; /* non-standard timer */ + cfg.t.cfg.s.inDLSAP.tmr.t397.enb = TRUE; /* non-standard timer */ + cfg.t.cfg.s.inDLSAP.tmr.tProg.enb= TRUE; + cfg.t.cfg.s.inDLSAP.tmr.tProg.val= 35; +#ifdef NI2 +#ifdef NI2_TREST + cfg.t.cfg.s.inDLSAP.tmr.tRest.enb= FALSE; + cfg.t.cfg.s.inDLSAP.tmr.tRest.val= 35; /* tRest timer for NI2 */ +#endif /* NI2_TREST */ +#endif /* NI2 */ + + cfg.t.cfg.s.inDLSAP.dstEnt = ENTLD; + cfg.t.cfg.s.inDLSAP.dstInst = S_INST; + cfg.t.cfg.s.inDLSAP.dstProcId = SFndProcId(); + cfg.t.cfg.s.inDLSAP.prior = PRIOR0; + cfg.t.cfg.s.inDLSAP.route = RTESPEC; + cfg.t.cfg.s.inDLSAP.selector = 0; + cfg.t.cfg.s.inDLSAP.mem.region = S_REG; + cfg.t.cfg.s.inDLSAP.mem.pool = S_POOL; + + switch (span->trunk_type) { + case FTDM_TRUNK_E1: + cfg.t.cfg.s.inDLSAP.dChannelNum = 16; + cfg.t.cfg.s.inDLSAP.nmbBearChan = NUM_E1_CHANNELS_PER_SPAN; + cfg.t.cfg.s.inDLSAP.firstBChanNum = 0; + cfg.t.cfg.s.inDLSAP.callRefLen = 2; + cfg.t.cfg.s.inDLSAP.teiAlloc = IN_STATIC; + cfg.t.cfg.s.inDLSAP.intCfg = IN_INTCFG_PTPT; + break; + case FTDM_TRUNK_T1: + case FTDM_TRUNK_J1: + /* if NFAS, could be 0 if no signalling */ + cfg.t.cfg.s.inDLSAP.dChannelNum = 24; + cfg.t.cfg.s.inDLSAP.nmbBearChan = NUM_T1_CHANNELS_PER_SPAN; + cfg.t.cfg.s.inDLSAP.firstBChanNum = 1; + cfg.t.cfg.s.inDLSAP.callRefLen = 2; + cfg.t.cfg.s.inDLSAP.teiAlloc = IN_STATIC; + cfg.t.cfg.s.inDLSAP.intCfg = IN_INTCFG_PTPT; + break; + case FTDM_TRUNK_BRI: + cfg.t.cfg.s.inDLSAP.dChannelNum = 0; /* Unused for BRI */ + cfg.t.cfg.s.inDLSAP.nmbBearChan = NUM_BRI_CHANNELS_PER_SPAN; + cfg.t.cfg.s.inDLSAP.firstBChanNum = 1; + cfg.t.cfg.s.inDLSAP.callRefLen = 1; + cfg.t.cfg.s.inDLSAP.teiAlloc = IN_STATIC; + cfg.t.cfg.s.inDLSAP.intCfg = IN_INTCFG_PTPT; + break; + case FTDM_TRUNK_BRI_PTMP: + cfg.t.cfg.s.inDLSAP.dChannelNum = 0; /* Unused for BRI */ + cfg.t.cfg.s.inDLSAP.nmbBearChan = NUM_BRI_CHANNELS_PER_SPAN; + cfg.t.cfg.s.inDLSAP.firstBChanNum = 1; + cfg.t.cfg.s.inDLSAP.callRefLen = 1; + cfg.t.cfg.s.inDLSAP.teiAlloc = IN_DYNAMIC; + cfg.t.cfg.s.inDLSAP.intCfg = IN_INTCFG_MULTI; + break; + default: + ftdm_log(FTDM_LOG_ERROR, "%s: Unsupported trunk_type\n", span->name); + return FTDM_FAIL; + } + + if (sng_isdn_q931_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +ftdm_status_t sng_isdn_stack_cfg_q931_lce(ftdm_span_t *span) +{ + InMngmt cfg; + Pst pst; + uint8_t i; + uint8_t numCes=1; + + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + if (span->trunk_type == FTDM_TRUNK_BRI_PTMP && signal_data->signalling == SNGISDN_SIGNALING_NET) { + numCes = 8; + } + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTIN; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + /*fill in the specific fields of the header*/ + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTIN; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STDLC; + + cfg.hdr.response.selector=0; + + cfg.t.cfg.s.inLCe.sapId = signal_data->link_id; + + + cfg.t.cfg.s.inLCe.lnkUpDwnInd = TRUE; + cfg.t.cfg.s.inLCe.tCon.enb = TRUE; + cfg.t.cfg.s.inLCe.tCon.val = 35; + cfg.t.cfg.s.inLCe.tDisc.enb = TRUE; + cfg.t.cfg.s.inLCe.tDisc.val = 35; + cfg.t.cfg.s.inLCe.t314.enb = FALSE; /* if segmentation enabled, set to TRUE */ + cfg.t.cfg.s.inLCe.t314.val = 35; + + cfg.t.cfg.s.inLCe.t332i.enb = FALSE; /* set to TRUE for NFAS */ + +#ifdef NFAS + cfg.t.cfg.s.inLCe.t332i.val = 35; +#else + cfg.t.cfg.s.inLCe.t332i.val = 0; +#endif + +#if (ISDN_NI1 || ISDN_NT || ISDN_ATT) + cfg.t.cfg.s.inLCe.tSpid.enb = TRUE; + cfg.t.cfg.s.inLCe.tSpid.val = 5; + + /* In case we want to support BRI - NORTH America, we will need to configure 8 spid's per CES */ + cfg.t.cfg.s.inLCe.spid.pres = NOTPRSNT; + cfg.t.cfg.s.inLCe.spid.len = 0; +#endif + cfg.t.cfg.s.inLCe.tRstAck.enb = TRUE; + cfg.t.cfg.s.inLCe.tRstAck.val = 10; + + + cfg.t.cfg.s.inLCe.usid = 0; + cfg.t.cfg.s.inLCe.tid = 0; + + for(i=0;isignal_data; + + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTCC; + + /*clear the configuration structure*/ + memset(&cfg, 0, sizeof(cfg)); + + /*fill in some general sections of the header*/ + stack_hdr_init(&cfg.hdr); + + /*fill in the specific fields of the header*/ + cfg.hdr.msgType = TCFG; + cfg.hdr.entId.ent = ENTCC; + cfg.hdr.entId.inst = S_INST; + cfg.hdr.elmId.elmnt = STTSAP; + + cfg.t.cfg.s.ccISAP.pst.srcProcId = SFndProcId(); + cfg.t.cfg.s.ccISAP.pst.srcEnt = ENTCC; + cfg.t.cfg.s.ccISAP.pst.srcInst = S_INST; + cfg.t.cfg.s.ccISAP.pst.dstEnt = ENTIN; + cfg.t.cfg.s.ccISAP.pst.dstInst = S_INST; + cfg.t.cfg.s.ccISAP.pst.dstProcId = SFndProcId(); + + cfg.t.cfg.s.ccISAP.pst.prior = PRIOR0; + cfg.t.cfg.s.ccISAP.pst.route = RTESPEC; + cfg.t.cfg.s.ccISAP.pst.region = S_REG; + cfg.t.cfg.s.ccISAP.pst.pool = S_POOL; + cfg.t.cfg.s.ccISAP.pst.selector = 0; + + cfg.t.cfg.s.ccISAP.suId = signal_data->cc_id; + cfg.t.cfg.s.ccISAP.spId = signal_data->cc_id; + + cfg.t.cfg.s.ccISAP.swtch = sng_isdn_stack_switchtype(signal_data->switchtype); + cfg.t.cfg.s.ccISAP.sapType = SNG_SAP_TYPE_ISDN; + + if (sng_isdn_cc_config(&pst, &cfg)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +/* TODO: see if we can move this to inside the library */ +void stack_pst_init(Pst *pst) +{ + memset(pst, 0, sizeof(Pst)); + /*fill in the post structure*/ + pst->dstProcId = SFndProcId(); + pst->dstInst = S_INST; + + pst->srcProcId = SFndProcId(); + pst->srcEnt = ENTSM; + pst->srcInst = S_INST; + + pst->prior = PRIOR0; + pst->route = RTESPEC; + pst->region = S_REG; + pst->pool = S_POOL; + pst->selector = 0; + return; +} + + + +void stack_hdr_init(Header *hdr) +{ + hdr->msgType = 0; + hdr->msgLen = 0; + hdr->entId.ent = 0; + hdr->entId.inst = 0; + hdr->elmId.elmnt = 0; + hdr->elmId.elmntInst1 = 0; + hdr->elmId.elmntInst2 = 0; + hdr->elmId.elmntInst3 = 0; + hdr->seqNmb = 0; + hdr->version = 0; + hdr->response.prior = PRIOR0; + hdr->response.route = RTESPEC; + hdr->response.mem.region = S_REG; + hdr->response.mem.pool = S_POOL; + hdr->transId = 0; + hdr->response.selector = 0; + return; +} + +uint8_t sng_isdn_stack_switchtype(sngisdn_switchtype_t switchtype) +{ + switch (switchtype) { + case SNGISDN_SWITCH_NI2: + return SW_NI2; + case SNGISDN_SWITCH_5ESS: + return SW_ATT5EP; + case SNGISDN_SWITCH_4ESS: + return SW_ATT4E; + case SNGISDN_SWITCH_DMS100: + return SW_NTDMS100P; + case SNGISDN_SWITCH_EUROISDN: + return SW_ETSI; + case SNGISDN_SWITCH_QSIG: + return SW_QSIG; + case SNGISDN_SWITCH_INSNET: + return SW_QSIG; + case SNGISDN_SWITCH_INVALID: + ftdm_log(FTDM_LOG_ERROR, "%s:Invalid switchtype:%d\n", switchtype); + break; + } + return 0; +} + +/* For Emacs: + * Local Variables: + * mode:c + * indent-tabs-mode:t + * tab-width:4 + * c-basic-offset:4 + * End: + * For VIM: + * vim:set softtabstop=4 shiftwidth=4 tabstop=4: + */ + +/******************************************************************************/ diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c new file mode 100644 index 0000000000..ab2f1a38d9 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c @@ -0,0 +1,316 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * Moises Silva + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "ftmod_sangoma_isdn.h" + +void stack_resp_hdr_init(Header *hdr); + +ftdm_status_t sng_isdn_cntrl_phy(ftdm_span_t *span); +ftdm_status_t sng_isdn_cntrl_q921(ftdm_span_t *span); +ftdm_status_t sng_isdn_cntrl_q931(ftdm_span_t *span); +ftdm_status_t sng_isdn_cntrl_cc(ftdm_span_t *span); +ftdm_status_t sng_isdn_cntrl_trace(ftdm_span_t *span, sngisdn_tracetype_t trace_opt); + +ftdm_status_t sng_isdn_cntrl_q931(ftdm_span_t *span, uint8_t action, uint8_t subaction); +ftdm_status_t sng_isdn_cntrl_q921(ftdm_span_t *span, uint8_t action, uint8_t subaction); + +extern ftdm_sngisdn_data_t g_sngisdn_data; + + +ftdm_status_t sng_isdn_stack_activate(ftdm_span_t *span) +{ + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + + if (sng_isdn_cntrl_q921(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "%s:Failed to activate stack q921\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:Stack q921 activated\n", span->name); + if (!g_sngisdn_data.ccs[signal_data->cc_id].activation_done) { + g_sngisdn_data.ccs[signal_data->cc_id].activation_done = 1; + if (sng_isdn_cntrl_cc(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "%s:Failed to activate stack CC\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:Stack CC activated\n", span->name); + } + + if (sng_isdn_cntrl_q931(span) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "%s:Failed to activate stack q931\n", span->name); + return FTDM_FAIL; + } + ftdm_log(FTDM_LOG_DEBUG, "%s:Stack q931 activated\n", span->name); + + ftdm_log(FTDM_LOG_INFO, "%s:Stack activated\n",span->name); + return FTDM_SUCCESS; +} + + +ftdm_status_t sng_isdn_cntrl_phy(ftdm_span_t *span) +{ + L1Mngmt cntrl; + Pst pst; + + ftdm_log(FTDM_LOG_ERROR, "%s:PHY control not implemented\n", span->name); + return FTDM_SUCCESS; + /* TODO: phy cntrl not implemented yet */ + + sng_isdn_phy_cntrl(&pst, &cntrl); + return FTDM_SUCCESS; +} + + +ftdm_status_t sng_isdn_cntrl_q921(ftdm_span_t *span) +{ + ftdm_status_t status; + status = sng_isdn_cntrl_q921(span, ABND_ENA, NOTUSED); + + /* Try to find an alternative for this */ + /* LAPD will call LdUiDatBndCfm before it received a LdLiMacBndCfm from L1, + so we need to give some time before activating q931, as q931 will send a + LdUiDatConReq when activated, and this requires the Mac SAP to be already + bound first */ + + if (status == FTDM_SUCCESS) { + ftdm_sleep(500); + } + return status; +} + +ftdm_status_t sng_isdn_cntrl_q931(ftdm_span_t *span) +{ + /* TODO: remove this function later, just call sng_isdn_cntrl_q931 directly */ + return sng_isdn_cntrl_q931(span, ABND_ENA, SAELMNT); +} + +ftdm_status_t sng_isdn_cntrl_cc(ftdm_span_t *span) +{ + CcMngmt cntrl;; + Pst pst; + + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTCC; + + /* initalize the control structure */ + memset(&cntrl, 0, sizeof(cntrl)); + + /* initalize the control header */ + stack_hdr_init(&cntrl.hdr); + + cntrl.hdr.msgType = TCNTRL; /* configuration */ + cntrl.hdr.entId.ent = ENTCC; /* entity */ + cntrl.hdr.entId.inst = S_INST; /* instance */ + cntrl.hdr.elmId.elmnt = STTSAP; /* physical sap */ + + cntrl.t.cntrl.action = ABND_ENA; + cntrl.t.cntrl.subAction = SAELMNT; + + cntrl.t.cntrl.sapId = signal_data->cc_id; + if (sng_isdn_cc_cntrl(&pst, &cntrl)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +ftdm_status_t sng_isdn_cntrl_trace(ftdm_span_t *span, sngisdn_tracetype_t trace_opt) +{ + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + switch (trace_opt) { + case SNGISDN_TRACE_DISABLE: + if (sngisdn_test_trace_flag(signal_data, SNGISDN_TRACE_Q921)) { + ftdm_log(FTDM_LOG_INFO, "s%d Disabling q921 trace\n", signal_data->link_id); + sngisdn_clear_trace_flag(signal_data, SNGISDN_TRACE_Q921); + + if (sng_isdn_cntrl_q921(span, ADISIMM, SAELMNT) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "s%d Failed to disable q921 trace\n"); + } + } + if (sngisdn_test_trace_flag(signal_data, SNGISDN_TRACE_Q931)) { + ftdm_log(FTDM_LOG_INFO, "s%d Disabling q931 trace\n", signal_data->link_id); + sngisdn_clear_trace_flag(signal_data, SNGISDN_TRACE_Q931); + + if (sng_isdn_cntrl_q931(span, ADISIMM, SATRC) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "s%d Failed to disable q931 trace\n"); + } + } + break; + case SNGISDN_TRACE_Q921: + if (!sngisdn_test_trace_flag(signal_data, SNGISDN_TRACE_Q921)) { + ftdm_log(FTDM_LOG_INFO, "s%d Enabling q921 trace\n", signal_data->link_id); + sngisdn_set_trace_flag(signal_data, SNGISDN_TRACE_Q921); + + if (sng_isdn_cntrl_q921(span, AENA, SATRC) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "s%d Failed to enable q921 trace\n"); + } + } + break; + case SNGISDN_TRACE_Q931: + if (!sngisdn_test_trace_flag(signal_data, SNGISDN_TRACE_Q931)) { + ftdm_log(FTDM_LOG_INFO, "s%d Enabling q931 trace\n", signal_data->link_id); + sngisdn_set_trace_flag(signal_data, SNGISDN_TRACE_Q931); + + if (sng_isdn_cntrl_q931(span, AENA, SATRC) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "s%d Failed to enable q931 trace\n"); + } + } + break; + } + return FTDM_SUCCESS; +} + + +ftdm_status_t sng_isdn_cntrl_q931(ftdm_span_t *span, uint8_t action, uint8_t subaction) +{ + InMngmt cntrl;; + Pst pst; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTIN; + + /* initalize the control structure */ + memset(&cntrl, 0, sizeof(cntrl)); + + /* initalize the control header */ + stack_hdr_init(&cntrl.hdr); + + cntrl.hdr.msgType = TCNTRL; /* configuration */ + cntrl.hdr.entId.ent = ENTIN; /* entity */ + cntrl.hdr.entId.inst = S_INST; /* instance */ + cntrl.hdr.elmId.elmnt = STDLSAP; /* physical sap */ + + cntrl.t.cntrl.action = action; + cntrl.t.cntrl.subAction = subaction; + + if (action == AENA && subaction == SATRC) { + cntrl.t.cntrl.trcLen = -1; /* Trace the entire message buffer */ + } + cntrl.t.cntrl.sapId = signal_data->link_id; + cntrl.t.cntrl.ces = 0; + + if(sng_isdn_q931_cntrl(&pst, &cntrl)) { + return FTDM_FAIL; + } + return FTDM_SUCCESS; + +} + +ftdm_status_t sng_isdn_cntrl_q921(ftdm_span_t *span, uint8_t action, uint8_t subaction) +{ + BdMngmt cntrl; + Pst pst; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; + + /* initalize the post structure */ + stack_pst_init(&pst); + + /* insert the destination Entity */ + pst.dstEnt = ENTLD; + + /* initalize the control structure */ + memset(&cntrl, 0, sizeof(cntrl)); + + /* initalize the control header */ + stack_hdr_init(&cntrl.hdr); + /* build control request */ + cntrl.hdr.msgType = TCNTRL; + cntrl.hdr.entId.ent = ENTLD; + cntrl.hdr.entId.inst = S_INST; + +#if (SMBD_LMINT3 || BD_LMINT3) + stack_resp_hdr_init(&cntrl.hdr); +#endif /* _LMINT3 */ + + cntrl.hdr.elmId.elmnt = STMSAP; + cntrl.t.cntrl.action = action; + cntrl.t.cntrl.subAction = subaction; + +#if (SMBD_LMINT3 || BD_LMINT3) + cntrl.t.cntrl.lnkNmb = signal_data->link_id; + cntrl.t.cntrl.sapi = NOTUSED; + cntrl.t.cntrl.tei = NOTUSED; +#else /* _LMINT3 */ + cntrl.hdr.elmId.elmntInst1 = signal_data->link_id; + cntrl.hdr.elmId.elmntInst2 = NOTUSED; + cntrl.hdr.elmId.elmntInst3 = NOTUSED; +#endif /* _LMINT3 */ + + cntrl.t.cntrl.logInt = NOTUSED; + cntrl.t.cntrl.trcLen = NOTUSED; + if (action == AENA && subaction == SATRC) { + cntrl.t.cntrl.trcLen = -1; /* Trace the entire message buffer */ + } + + SGetDateTime(&(cntrl.t.cntrl.dt)); + if(sng_isdn_q921_cntrl(&pst, &cntrl)) { + return FTDM_FAIL; + } + + return FTDM_SUCCESS; +} + + +void stack_resp_hdr_init(Header *hdr) +{ + hdr->response.selector = 0; + hdr->response.mem.region = RTESPEC; + hdr->response.mem.pool = S_POOL; + hdr->response.prior = PRIOR0; + hdr->response.route = RTESPEC; + + return; +} + + +/* For Emacs: + * Local Variables: + * mode:c + * indent-tabs-mode:t + * tab-width:4 + * c-basic-offset:4 + * End: + * For VIM: + * vim:set softtabstop=4 shiftwidth=4 tabstop=4: + */ + +/******************************************************************************/ diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_in.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_in.c new file mode 100644 index 0000000000..04430cf0f0 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_in.c @@ -0,0 +1,935 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "ftmod_sangoma_isdn.h" + +extern ftdm_status_t cpy_calling_num_from_sngisdn(ftdm_caller_data_t *ftdm, CgPtyNmb *cgPtyNmb); +extern ftdm_status_t cpy_called_num_from_sngisdn(ftdm_caller_data_t *ftdm, CdPtyNmb *cdPtyNmb); +extern ftdm_status_t cpy_called_name_from_sngisdn(ftdm_caller_data_t *ftdm, CgPtyNmb *cgPtyNmb); +extern ftdm_status_t cpy_calling_name_from_sngisdn(ftdm_caller_data_t *ftdm, ConEvnt *conEvnt); +extern void sngisdn_trace_q921(char* str, uint8_t* data, uint32_t data_len); +extern void sngisdn_trace_q931(char* str, uint8_t* data, uint32_t data_len); +extern void get_memory_info(void); + +extern ftdm_sngisdn_data_t g_sngisdn_data; + +#define MAX_DECODE_STR_LEN 2000 + +/* Remote side transmit a SETUP */ +void sngisdn_rcv_con_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, ConEvnt *conEvnt, int16_t dChan, uint8_t ces) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + uint8_t bchan_no = 0; + sngisdn_chan_data_t *sngisdn_info; + ftdm_channel_t *ftdmchan; + /*sngisdn_span_data_t *span_info;*/ + + ftdm_log(FTDM_LOG_DEBUG, "%s suId:%d suInstId:%d spInstId:%d dChan:%d ces:%d\n", __FUNCTION__, suId, suInstId, spInstId, dChan, ces); + + ftdm_assert(g_sngisdn_data.ccs[suId].activation_done != 0, "Con Ind on unconfigured cc\n"); + ftdm_assert(g_sngisdn_data.dchans[dChan].num_spans != 0, "Con Ind on unconfigured dchan\n"); + ftdm_assert(g_sngisdn_data.ccs[suId].active_spInstIds[spInstId] == NULL, "Con Ind on busy spInstId"); + + if (conEvnt->chanId.eh.pres != PRSNT_NODEF) { + /* TODO: Implement me */ + ftdm_log(FTDM_LOG_ERROR, "Incoming call without Channel Id not supported yet\n"); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + if (conEvnt->chanId.chanNmbSlotMap.pres) { + bchan_no = conEvnt->chanId.chanNmbSlotMap.val[0]; + } else if (conEvnt->chanId.infoChanSel.pres) { + bchan_no = conEvnt->chanId.infoChanSel.val; + } + + if (!bchan_no) { + ftdm_log(FTDM_LOG_ERROR, "Failed to obtain b-channel number from SETUP message\n"); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + if (g_sngisdn_data.dchans[dChan].channels[bchan_no] == NULL) { + ftdm_log(FTDM_LOG_ERROR, "Incoming call on unconfigured b-channel:%d\n", bchan_no); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + sngisdn_info = g_sngisdn_data.dchans[dChan].channels[bchan_no]; + ftdmchan = sngisdn_info->ftdmchan; + ftdm_mutex_lock(ftdmchan->mutex); + + /* check if there is a pending state change, give it a bit to clear */ + if (check_for_state_change(ftdmchan) != FTDM_SUCCESS) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to wait for pending state change\n"); + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Received SETUP\n"); + switch (ftdmchan->state){ + case FTDM_CHANNEL_STATE_DOWN: /* Proper state to receive a SETUP */ + sngisdn_info->suInstId = get_unique_suInstId(suId); + sngisdn_info->spInstId = spInstId; + g_sngisdn_data.ccs[suId].active_spInstIds[spInstId] = sngisdn_info; + g_sngisdn_data.ccs[suId].active_suInstIds[sngisdn_info->suInstId] = sngisdn_info; + + /* try to open the channel */ + if (ftdm_channel_open_chan(ftdmchan) != FTDM_SUCCESS) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to open channel"); + sngisdn_set_flag(sngisdn_info, FLAG_LOCAL_REL); + ftdmchan->caller_data.hangup_cause = FTDM_CAUSE_NORMAL_TEMPORARY_FAILURE; + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_CANCEL); + } else { + /* Fill in call information */ + cpy_calling_num_from_sngisdn(&ftdmchan->caller_data, &conEvnt->cgPtyNmb); + cpy_called_num_from_sngisdn(&ftdmchan->caller_data, &conEvnt->cdPtyNmb); + cpy_calling_name_from_sngisdn(&ftdmchan->caller_data, conEvnt); + + /* Get ani2 */ +#if 0 + /* TODO: confirm that this works in the field */ + if (conEvnt->niOperSysAcc.eh.pres) { + if (conEvnt->niOperSysAcc.typeAcc.pres) { + ftdmchan->caller_data.aniII = (uint8_t)conEvnt->niOperSysAcc.typeAcc.val; + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Received ANI: type of access:%x", conEvnt->niOperSysAcc.typeAcc.val); + } + if (conEvnt->niOperSysAcc.typeServ.pres) { + ftdmchan->caller_data.aniII = (uint8_t)conEvnt->niOperSysAcc.typeServ.val; + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Received ANI: type of service:%x", conEvnt->niOperSysAcc.typeServ.val); + } + } +#endif + + /* set the state of the channel to collecting...the rest is done by the chan monitor */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_COLLECT); + + } + break; + case FTDM_CHANNEL_STATE_DIALING: /* glare */ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "Received SETUP in DIALING state, glare, queueing incoming call\n"); + /* the flag the channel as having a collision */ + sngisdn_set_flag(sngisdn_info, FLAG_GLARE); + + /* save the SETUP for processing once the channel has gone to DOWN */ + memcpy(&sngisdn_info->glare.setup, conEvnt, sizeof(*conEvnt)); + sngisdn_info->glare.suId = suId; + sngisdn_info->glare.suInstId = suInstId; + sngisdn_info->glare.spInstId = spInstId; + sngisdn_info->glare.dChan = dChan; + sngisdn_info->glare.ces = ces; + break; + default: + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received SETUP in an invalid state (%s)\n", ftdm_channel_state2str(ftdmchan->state)); + break; + } + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +/* Remote side transmit a CONNECT or CONNECT ACK */ +void sngisdn_rcv_con_cfm (int16_t suId, uint32_t suInstId, uint32_t spInstId, CnStEvnt *cnStEvnt, int16_t dChan, uint8_t ces) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + sngisdn_chan_data_t *sngisdn_info; + ftdm_channel_t *ftdmchan; + + ftdm_log(FTDM_LOG_DEBUG, "%s suId:%d suInstId:%d spInstId:%d dChan:%d ces:%d\n", __FUNCTION__, suId, suInstId, spInstId, dChan, ces); + + + ftdm_assert(g_sngisdn_data.ccs[suId].activation_done != 0, "Con Ind on unconfigured cc\n"); + ftdm_assert(g_sngisdn_data.dchans[dChan].num_spans != 0, "Con Ind on unconfigured dchan\n"); + + if (get_ftdmchan_by_suInstId(suId, suInstId, &sngisdn_info) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "Could not find matching call suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + ftdmchan = (ftdm_channel_t*)sngisdn_info->ftdmchan; + + if (!sngisdn_info->spInstId) { + sngisdn_info->spInstId = spInstId; + g_sngisdn_data.ccs[suId].active_spInstIds[spInstId] = sngisdn_info; + } + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Received CONNECT/CONNECT ACK\n"); + ftdm_mutex_lock(ftdmchan->mutex); + + /* check if there is a pending state change, give it a bit to clear */ + if (check_for_state_change(ftdmchan) != FTDM_SUCCESS) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to wait for pending state change\n"); + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && + ((sngisdn_span_data_t*)ftdmchan->span->signal_data)->signalling == SNGISDN_SIGNALING_NET) { + + if(sngisdn_info->ces == CES_MNGMNT) { + /* We assign the call to the first TE */ + sngisdn_info->ces = ces; + } else { + /* We already assigned this call, do nothing */ + ftdm_mutex_unlock(ftdmchan->mutex); + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Call already assigned, ignoring connect\n"); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + } + + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_OUTBOUND)) { + switch(ftdmchan->state) { + case FTDM_CHANNEL_STATE_PROGRESS: + case FTDM_CHANNEL_STATE_PROGRESS_MEDIA: + case FTDM_CHANNEL_STATE_DIALING: + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_UP); + break; + default: + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received CONNECT/CONNECT ACK in an invalid state (%s)\n", + ftdm_channel_state2str(ftdmchan->state)); + + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + break; + } + } else { + switch(ftdmchan->state) { + case FTDM_CHANNEL_STATE_UP: + /* This is the only valid state we should get a CONNECT ACK on */ + /* do nothing */ + break; + default: + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received CONNECT/CONNECT ACK in an invalid state (%s)\n", ftdm_channel_state2str(ftdmchan->state)); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + break; + } + } + + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_cnst_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, CnStEvnt *cnStEvnt, uint8_t evntType, int16_t dChan, uint8_t ces) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + sngisdn_chan_data_t *sngisdn_info; + ftdm_channel_t *ftdmchan; + + ftdm_log(FTDM_LOG_DEBUG, "%s suId:%d suInstId:%d spInstId:%d dChan:%d ces:%d\n", __FUNCTION__, suId, suInstId, spInstId, dChan, ces); + + ftdm_assert(g_sngisdn_data.ccs[suId].activation_done != 0, "Con Ind on unconfigured cc\n"); + ftdm_assert(g_sngisdn_data.dchans[dChan].num_spans != 0, "Con Ind on unconfigured dchan\n"); + + if (get_ftdmchan_by_suInstId(suId, suInstId, &sngisdn_info) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_CRIT, "Could not find matching call suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + if (!sngisdn_info->spInstId) { + sngisdn_info->spInstId = spInstId; + g_sngisdn_data.ccs[suId].active_spInstIds[spInstId] = sngisdn_info; + } + + ftdmchan = (ftdm_channel_t*)sngisdn_info->ftdmchan; + ftdm_log_chan(ftdmchan, FTDM_LOG_INFO, "Received %s\n", + (evntType == MI_ALERTING)?"ALERT": + (evntType == MI_CALLPROC)?"PROCEED": + (evntType == MI_PROGRESS)?"PROGRESS":"UNKNOWN"); + ftdm_mutex_lock(ftdmchan->mutex); + + /* check if there is a pending state change, give it a bit to clear */ + if (check_for_state_change(ftdmchan) != FTDM_SUCCESS) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to wait for pending state change\n"); + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + switch(ftdmchan->state) { + case FTDM_CHANNEL_STATE_DIALING: + if (evntType == MI_PROGRESS) { + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); + } else { + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS); + } + break; + case FTDM_CHANNEL_STATE_PROGRESS: + if (evntType == MI_PROGRESS) { + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_PROGRESS_MEDIA); + } + break; + case FTDM_CHANNEL_STATE_PROGRESS_MEDIA: + /* Do nothing */ + break; + default: + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received ALERT/PROCEED/PROGRESS in an invalid state (%s)\n", + ftdm_channel_state2str(ftdmchan->state)); + + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + break; + } + + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_disc_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, DiscEvnt *discEvnt) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + sngisdn_chan_data_t *sngisdn_info; + ftdm_channel_t *ftdmchan = NULL; + + ftdm_log(FTDM_LOG_DEBUG, "%s suId:%d suInstId:%d spInstId:%d\n", __FUNCTION__, suId, suInstId, spInstId); + + ftdm_assert(spInstId != 0, "Received DISCONNECT with invalid id"); + + if (spInstId && get_ftdmchan_by_spInstId(suId, spInstId, &sngisdn_info) == FTDM_SUCCESS) { + ftdmchan = (ftdm_channel_t*)sngisdn_info->ftdmchan; + } else if (suInstId && get_ftdmchan_by_suInstId(suId, suInstId, &sngisdn_info) == FTDM_SUCCESS) { + ftdmchan = (ftdm_channel_t*)sngisdn_info->ftdmchan; + } else { + ftdm_log(FTDM_LOG_CRIT, "Could not find matching call suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + return; + } + + if (!sngisdn_info->spInstId) { + sngisdn_info->spInstId = spInstId; + g_sngisdn_data.ccs[suId].active_spInstIds[spInstId] = sngisdn_info; + } + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Received DISCONNECT\n"); + ftdm_mutex_lock(ftdmchan->mutex); + /* check if there is a pending state change, give it a bit to clear */ + if (check_for_state_change(ftdmchan) != FTDM_SUCCESS) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to wait for pending state change\n"); + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + switch (ftdmchan->state) { + case FTDM_CHANNEL_STATE_RING: + case FTDM_CHANNEL_STATE_DIALING: + case FTDM_CHANNEL_STATE_PROGRESS: + case FTDM_CHANNEL_STATE_PROGRESS_MEDIA: + case FTDM_CHANNEL_STATE_COLLECT: + case FTDM_CHANNEL_STATE_UP: + if (discEvnt->causeDgn[0].eh.pres && discEvnt->causeDgn[0].causeVal.pres) { + ftdmchan->caller_data.hangup_cause = discEvnt->causeDgn[0].causeVal.val; + } else { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_WARNING, "DISCONNECT did not have a cause code\n"); + ftdmchan->caller_data.hangup_cause = 0; + } + sngisdn_set_flag(sngisdn_info, FLAG_REMOTE_REL); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); + break; + default: + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received DISCONNECT in an invalid state (%s)\n", + ftdm_channel_state2str(ftdmchan->state)); + /* start reset procedure */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + break; + } + + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_rel_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, RelEvnt *relEvnt) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_DEBUG, "%s suId:%d suInstId:%d spInstId:%d\n", __FUNCTION__, suId, suInstId, spInstId); + + sngisdn_chan_data_t *sngisdn_info ; + ftdm_channel_t *ftdmchan = NULL; + + /* get the ftdmchan and ss7_chan_data from the circuit */ + if (suInstId && (get_ftdmchan_by_suInstId(suId, suInstId, &sngisdn_info) == FTDM_SUCCESS)) { + ftdmchan = sngisdn_info->ftdmchan; + } else if (spInstId && (get_ftdmchan_by_spInstId(suId, spInstId, &sngisdn_info) == FTDM_SUCCESS)) { + ftdmchan = sngisdn_info->ftdmchan; + } + + if (ftdmchan == NULL) { + ftdm_log(FTDM_LOG_CRIT, "Failed to find matching channel suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Received RELEASE/RELEASE COMPLETE\n"); + /* now that we have the right channel...put a lock on it so no-one else can use it */ + ftdm_mutex_lock(ftdmchan->mutex); + + /* check if there is a pending state change, give it a bit to clear */ + if (check_for_state_change(ftdmchan)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to wait for pending state change\n"); + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + }; + + /* check whether the ftdm channel is in a state to accept a call */ + switch (ftdmchan->state) { + case FTDM_CHANNEL_STATE_HANGUP_COMPLETE: + /* go to DOWN */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); + break; + case FTDM_CHANNEL_STATE_DOWN: + /* do nothing, just drop the message */ + break; + case FTDM_CHANNEL_STATE_PROGRESS: + case FTDM_CHANNEL_STATE_PROGRESS_MEDIA: + /* Remote side sent a SETUP, then a RELEASE COMPLETE to abort call - this is an abort */ + sngisdn_set_flag(sngisdn_info, FLAG_REMOTE_ABORT); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); + break; + case FTDM_CHANNEL_STATE_DIALING: + /* Remote side rejected our SETUP message on outbound call */ + sngisdn_set_flag(sngisdn_info, FLAG_REMOTE_ABORT); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); + break; + case FTDM_CHANNEL_STATE_UP: + sngisdn_set_flag(sngisdn_info, FLAG_REMOTE_ABORT); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); + break; + default: + /* Should just stop the call...but a reset is easier for now (since it does hangup the call) */ + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Received RELEASE in an invalid state (%s)\n", + ftdm_channel_state2str(ftdmchan->state)); + + /* go to RESTART */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + + break; + /**************************************************************************/ + } + + /* unlock the channel */ + ftdm_mutex_unlock(ftdmchan->mutex); + + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_dat_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, InfoEvnt *infoEvnt) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received DATA IND suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_sshl_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, SsHlEvnt *ssHlEvnt, uint8_t action) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received SSHL IND suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_sshl_cfm (int16_t suId, uint32_t suInstId, uint32_t spInstId, SsHlEvnt *ssHlEvnt, uint8_t action) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received SSHL CFM suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_rmrt_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, RmRtEvnt *rmRtEvnt, uint8_t action) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received RESUME/RETRIEVE ind suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_rmrt_cfm (int16_t suId, uint32_t suInstId, uint32_t spInstId, RmRtEvnt *rmRtEvnt, uint8_t action) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received RESUME/RETRIEVE CFM suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_flc_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, StaEvnt *staEvnt) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received FLOW CONTROL IND suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_fac_ind (int16_t suId, uint32_t suInstId, uint32_t spInstId, FacEvnt *facEvnt, uint8_t evntType, int16_t dChan, uint8_t ces) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received FACILITY IND suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_sta_cfm ( int16_t suId, uint32_t suInstId, uint32_t spInstId, StaEvnt *staEvnt) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_DEBUG, "%s suId:%d suInstId:%d spInstId:%d\n", __FUNCTION__, suId, suInstId, spInstId); + + sngisdn_chan_data_t *sngisdn_info ; + ftdm_channel_t *ftdmchan = NULL; + uint8_t call_state = 0; + + if (staEvnt->callSte.eh.pres && staEvnt->callSte.callGlblSte.pres) { + call_state = staEvnt->callSte.callGlblSte.val; + } + + /* get the ftdmchan and ss7_chan_data from the circuit */ + if (suInstId && (get_ftdmchan_by_suInstId(suId, suInstId, &sngisdn_info) == FTDM_SUCCESS)) { + ftdmchan = sngisdn_info->ftdmchan; + } else if (spInstId && (get_ftdmchan_by_spInstId(suId, spInstId, &sngisdn_info) == FTDM_SUCCESS)) { + ftdmchan = sngisdn_info->ftdmchan; + } + + if (ftdmchan == NULL) { + ftdm_log(FTDM_LOG_CRIT, "Failed to find matching channel suId:%d suInstId:%d spInstId:%d\n", suId, suInstId, spInstId); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + } + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Received STATUS CONFIRM\n"); + /* now that we have the right channel...put a lock on it so no-one else can use it */ + ftdm_mutex_lock(ftdmchan->mutex); + + /* check if there is a pending state change, give it a bit to clear */ + if (check_for_state_change(ftdmchan)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "Failed to wait for pending state change\n"); + ftdm_mutex_unlock(ftdmchan->mutex); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; + }; + + if (staEvnt->causeDgn[0].eh.pres && staEvnt->causeDgn[0].causeVal.pres) { + if (staEvnt->causeDgn[0].causeVal.val != 30) { + + if (staEvnt->callSte.eh.pres && staEvnt->callSte.callGlblSte.pres) { + call_state = staEvnt->callSte.callGlblSte.val; + /* Section 4.3.30 from INT Interface - Service Definition */ + ftdmchan->caller_data.hangup_cause = staEvnt->causeDgn[0].causeVal.val; + + + /* There is incompatibility between local and remote side call states some Q931 msgs probably got lost - initiate disconnect */ + ftdm_log_chan(ftdmchan, FTDM_LOG_WARNING, "Incompatible call states detected, remote side indicated state:%d our state:%s cause:%d\n", call_state, ftdm_channel_state2str(ftdmchan->state), staEvnt->causeDgn[0].causeVal.val); + + switch(call_state) { + /* Sere ITU-T Q931 for definition of call states */ + case 0: /* Remote switch thinks there are no calls on this channel */ + switch (ftdmchan->state) { + case FTDM_CHANNEL_STATE_COLLECT: + case FTDM_CHANNEL_STATE_DIALING: + sngisdn_set_flag(sngisdn_info, FLAG_REMOTE_ABORT); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_TERMINATING); + break; + case FTDM_CHANNEL_STATE_TERMINATING: + /* We are in the process of clearing local states, + just make sure we will not send any messages to remote switch */ + sngisdn_set_flag(sngisdn_info, FLAG_REMOTE_ABORT); + break; + case FTDM_CHANNEL_STATE_HANGUP: + /* This cannot happen, state_advance always sets + ftdmchan to STATE_HANGUP_COMPLETE when in STATE_HANGUP + and we called check_for_state_change earlier so something is very wrong here!!! */ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "How can we we in FTDM_CHANNEL_STATE_HANGUP after checking for state change?\n"); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + break; + case FTDM_CHANNEL_STATE_HANGUP_COMPLETE: + /* We were waiting for remote switch to send RELEASE COMPLETE + but this will not happen, so just clear local state */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_DOWN); + break; + case FTDM_CHANNEL_STATE_DOWN: + /* If our local state is down as well, then there is nothing to do */ + break; + default: + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); + break; + } + break; + case 8: /* Remote switch is in "Connect Request state" */ + switch (ftdmchan->state) { + case FTDM_CHANNEL_STATE_UP: + /* This is ok. We sent a Connect, and we are waiting for a connect ack */ + /* Do nothing */ + break; + case FTDM_CHANNEL_STATE_HANGUP_COMPLETE: + /* We hung up locally, but remote switch doesn't know send disconnect again*/ + sngisdn_snd_disconnect(ftdmchan); + break; + default: + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); + break; + } + break; + default: + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Don't know how to handle incompatible state. remote call state:%d our state:%s\n", call_state, ftdm_channel_state2str(ftdmchan->state)); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + break; + } + } else { + ftdmchan->caller_data.hangup_cause = staEvnt->causeDgn[0].causeVal.val; + /* We could not extract the call state */ + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "Incompatible call states detected, but could not determine call (cause:%d)\n", ftdmchan->caller_data.hangup_cause); + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + } + + } + /**************************************************************************/ + } + + /* unlock the channel */ + ftdm_mutex_unlock(ftdmchan->mutex); + + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_srv_ind ( int16_t suId, Srv *srvEvnt, int16_t dChan, uint8_t ces) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received SERVICE IND suId:%d dChan:%d ces:%d\n", suId, dChan, ces); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_srv_cfm ( int16_t suId, Srv *srvEvnt, int16_t dChan, uint8_t ces) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received SERVICE CFM suId:%d dChan:%d ces:%d\n", suId, dChan, ces); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_rst_ind (int16_t suId, Rst *rstEvnt, int16_t dChan, uint8_t ces, uint8_t evtType) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received RESTART IND suId:%d dChan:%d ces:%d\n", suId, dChan, ces); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + + +void sngisdn_rcv_rst_cfm ( int16_t suId, Rst *rstEvnt, int16_t dChan, uint8_t ces, uint8_t evtType) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "Received RESTART CFM suId:%d dChan:%d ces:%d\n", suId, dChan, ces); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_phy_ind(SuId suId, Reason reason) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "[SNGISDN PHY] D-chan %d : %s\n", suId, DECODE_LL1_REASON(reason)); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_q921_ind(BdMngmt *status) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + + unsigned j,k; + ftdm_span_t *ftdmspan = NULL; + + for(j=1;j<=g_sngisdn_data.num_dchan;j++) { + for(k=1;k<=g_sngisdn_data.dchans[j].num_spans;k++) { + if (g_sngisdn_data.dchans[j].spans[k]->link_id == status->t.usta.lnkNmb) { + ftdmspan = (ftdm_span_t*)g_sngisdn_data.dchans[j].spans[k]->ftdm_span; + } + } + } + if (ftdmspan == NULL) { + ftdm_log(FTDM_LOG_CRIT, "Received q921 status on unconfigured span\n", status->t.usta.lnkNmb); +#ifdef DEBUG_MODE + FORCE_SEGFAULT +#endif + return; + } + + switch (status->t.usta.alarm.category) { + case (LCM_CATEGORY_INTERFACE): + ftdm_log(FTDM_LOG_INFO, "[SNGISDN Q921] %s: %s: %s(%d): %s(%d)\n", + ftdmspan->name, + DECODE_LCM_CATEGORY(status->t.usta.alarm.category), + DECODE_LCM_EVENT(status->t.usta.alarm.event), status->t.usta.alarm.event, + DECODE_LCM_CAUSE(status->t.usta.alarm.cause), status->t.usta.alarm.cause); + break; + default: + ftdm_log(FTDM_LOG_INFO, "[SNGISDN Q921] %s: %s: %s(%d): %s(%d)\n", + ftdmspan->name, + DECODE_LCM_CATEGORY(status->t.usta.alarm.category), + DECODE_LLD_EVENT(status->t.usta.alarm.event), status->t.usta.alarm.event, + DECODE_LLD_CAUSE(status->t.usta.alarm.cause), status->t.usta.alarm.cause); + break; + } + + ISDN_FUNC_TRACE_EXIT(__FUNCTION__) + return; +} +void sngisdn_rcv_q931_ind(InMngmt *status) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + + + + ftdm_span_t *ftdmspan = NULL; + + if (status->t.usta.alarm.cause == 287) { + get_memory_info(); + return; + } + + switch (status->t.usta.alarm.category) { + case (LCM_CATEGORY_INTERFACE): + ftdm_log(FTDM_LOG_WARNING, "[SNGISDN Q931] s%d: %s: %s(%d): %s(%d)\n", + status->t.usta.suId, + DECODE_LCM_CATEGORY(status->t.usta.alarm.category), + DECODE_LCM_EVENT(status->t.usta.alarm.event), status->t.usta.alarm.event, + DECODE_LCM_CAUSE(status->t.usta.alarm.cause), status->t.usta.alarm.cause); + + /* clean this up later */ + + switch (status->t.usta.alarm.event) { + case LCM_EVENT_UP: + case LCM_EVENT_DOWN: + { + unsigned j,k; + for(j=1;j<=g_sngisdn_data.num_dchan;j++) { + for(k=1;k<=g_sngisdn_data.dchans[j].num_spans;k++) { + if (g_sngisdn_data.dchans[j].spans[k]->link_id == status->t.usta.suId) { + ftdmspan = (ftdm_span_t*)g_sngisdn_data.dchans[j].spans[k]->ftdm_span; + } + } + } + + if (ftdmspan == NULL) { + ftdm_log(FTDM_LOG_CRIT, "Received q931 LCM EVENT on unconfigured span (suId:%d)\n", status->t.usta.suId); + return; + } + + sngisdn_set_span_sig_status(ftdmspan, (status->t.usta.alarm.event == LCM_EVENT_UP)?FTDM_SIG_STATE_UP:FTDM_SIG_STATE_DOWN); + } + break; + } + break; + default: + ftdm_log(FTDM_LOG_DEBUG, "[SNGISDN Q931] s%d: %s: %s(%d): %s(%d)\n", + status->t.usta.suId, + DECODE_LCM_CATEGORY(status->t.usta.alarm.category), + DECODE_LCM_EVENT(status->t.usta.alarm.event), status->t.usta.alarm.event, + DECODE_LCM_CAUSE(status->t.usta.alarm.cause), status->t.usta.alarm.cause); + break; + } + + + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +void sngisdn_rcv_cc_ind(CcMngmt *status) +{ + ISDN_FUNC_TRACE_ENTER(__FUNCTION__); + ftdm_log(FTDM_LOG_INFO, "RECEIVED %s\n", __FUNCTION__); + ISDN_FUNC_TRACE_EXIT(__FUNCTION__); + return; +} + +#define Q931_TRC_EVENT(event) (event == TL3PKTTX)?"TX": \ + (event == TL3PKTRX)?"RX":"UNKNOWN" + +void sngisdn_rcv_q931_trace(InMngmt *trc, Buffer *mBuf) +{ + MsgLen mlen; + MsgLen i; + int16_t j; + Buffer *tmp; + Data *cptr; + uint8_t data; + uint8_t tdata[1000]; + char *data_str = ftdm_calloc(1,MAX_DECODE_STR_LEN); /* TODO Find a proper size */ + + ftdm_assert(mBuf != NULLP, "Received a Q931 trace with no buffer"); + mlen = ((SsMsgInfo*)(mBuf->b_rptr))->len; + + if (mlen != 0) { + tmp = mBuf->b_cont; + cptr = tmp->b_rptr; + data = *cptr++; + i = 0; + + for(j=0;jb_wptr) { + tmp = tmp->b_cont; + if (tmp) cptr = tmp->b_rptr; + } + data = *cptr++; + } + + sngisdn_trace_q931(data_str, tdata, mlen); + ftdm_log(FTDM_LOG_INFO, "[SNGISDN Q931] FRAME %s:%s\n", Q931_TRC_EVENT(trc->t.trc.evnt), data_str); + } + + ftdm_safe_free(data_str); + /* We do not need to free mBuf in this case because stack does it */ + /* SPutMsg(mBuf); */ + return; +} + + +#define Q921_TRC_EVENT(event) (event == TL2FRMRX)?"RX": \ + (event == TL2FRMTX)?"TX": \ + (event == TL2TMR)?"TMR EXPIRED":"UNKNOWN" + +void sngisdn_rcv_q921_trace(BdMngmt *trc, Buffer *mBuf) +{ + MsgLen mlen; + MsgLen i; + int16_t j; + Buffer *tmp; + Data *cptr; + uint8_t data; + uint8_t tdata[16]; + char *data_str = ftdm_calloc(1,200); /* TODO Find a proper size */ + + + if (trc->t.trc.evnt == TL2TMR) { + goto end_of_trace; + } + + ftdm_assert(mBuf != NULLP, "Received a Q921 trace with no buffer"); + mlen = ((SsMsgInfo*)(mBuf->b_rptr))->len; + + if (mlen != 0) { + tmp = mBuf->b_cont; + cptr = tmp->b_rptr; + data = *cptr++; + i = 0; + while (i < mlen) { + j = 0; + for(j=0;j<16;j++) { + if (ib_wptr) { + tmp = tmp->b_cont; + if (tmp) cptr = tmp->b_rptr; + } + i++; + if (it.trc.evnt), data_str); + } +end_of_trace: + ftdm_safe_free(data_str); + SPutMsg(mBuf); + return; +} + + + +void sngisdn_rcv_sng_log(uint8_t level, char *fmt,...) +{ + char *data; + int ret; + va_list ap; + + va_start(ap, fmt); + ret = ftdm_vasprintf(&data, fmt, ap); + if (ret == -1) { + return; + } + + switch (level) { + case SNG_LOGLEVEL_DEBUG: + ftdm_log(FTDM_LOG_DEBUG, "sng_isdn->%s", data); + break; + case SNG_LOGLEVEL_WARN: + ftdm_log(FTDM_LOG_INFO, "sng_isdn->%s", data); + break; + case SNG_LOGLEVEL_INFO: + ftdm_log(FTDM_LOG_INFO, "sng_isdn->%s", data); + break; + case SNG_LOGLEVEL_STATS: + ftdm_log(FTDM_LOG_INFO, "sng_isdn->%s", data); + break; + case SNG_LOGLEVEL_ERROR: + ftdm_log(FTDM_LOG_ERROR, "sng_isdn->%s", data); +#ifdef DEBUG_MODE + FORCE_SEGFAULT +#endif + break; + case SNG_LOGLEVEL_CRIT: + ftdm_log(FTDM_LOG_CRIT, "sng_isdn->%s", data); +#ifdef DEBUG_MODE + FORCE_SEGFAULT +#endif + break; + default: + ftdm_log(FTDM_LOG_INFO, "sng_isdn->%s", data); + break; + } + return; +} + +/* For Emacs: + * Local Variables: + * mode:c + * indent-tabs-mode:t + * tab-width:4 + * c-basic-offset:4 + * End: + * For VIM: + * vim:set softtabstop=4 shiftwidth=4 tabstop=4: + */ + +/******************************************************************************/ diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c new file mode 100644 index 0000000000..c5e986bea3 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c @@ -0,0 +1,433 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "ftmod_sangoma_isdn.h" + +extern ftdm_status_t cpy_calling_num_to_sngisdn(CgPtyNmb *cgPtyNmb, ftdm_caller_data_t *ftdm); +extern ftdm_status_t cpy_called_num_to_sngisdn(CdPtyNmb *cdPtyNmb, ftdm_caller_data_t *ftdm); +extern ftdm_status_t cpy_calling_name_to_sngisdn(ConEvnt *conEvnt, ftdm_channel_t *ftdmchan); + +void sngisdn_snd_setup(ftdm_channel_t *ftdmchan); +void sngisdn_snd_proceed(ftdm_channel_t *ftdmchan); +void sngisdn_snd_progress(ftdm_channel_t *ftdmchan); +void sngisdn_snd_connect(ftdm_channel_t *ftdmchan); +void sngisdn_snd_disconnect(ftdm_channel_t *ftdmchan); +void sngisdn_snd_release(ftdm_channel_t *ftdmchan); + + +void sngisdn_snd_setup(ftdm_channel_t *ftdmchan) +{ + ConEvnt conEvnt; + sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending SETUP\n"); + + sngisdn_info->suInstId = get_unique_suInstId(signal_data->cc_id); + sngisdn_info->spInstId = 0; + + memset(&conEvnt, 0, sizeof(conEvnt)); + + conEvnt.bearCap[0].eh.pres = PRSNT_NODEF; + conEvnt.bearCap[0].infoTranCap.pres = PRSNT_NODEF; + + conEvnt.bearCap[0].infoTranCap.val = IN_ITC_SPEECH; + + conEvnt.bearCap[0].codeStand0.pres = PRSNT_NODEF; + conEvnt.bearCap[0].codeStand0.val = IN_CSTD_CCITT; + conEvnt.bearCap[0].infoTranRate0.pres = PRSNT_NODEF; + conEvnt.bearCap[0].infoTranRate0.val = IN_ITR_64KBIT; + conEvnt.bearCap[0].tranMode.pres = PRSNT_NODEF; + conEvnt.bearCap[0].tranMode.val = IN_TM_CIRCUIT; + + conEvnt.chanId.eh.pres = PRSNT_NODEF; + conEvnt.chanId.prefExc.pres = PRSNT_NODEF; + conEvnt.chanId.prefExc.val = IN_PE_EXCLSVE; + conEvnt.chanId.dChanInd.pres = PRSNT_NODEF; + conEvnt.chanId.dChanInd.val = IN_DSI_NOTDCHAN; + conEvnt.chanId.intIdentPres.pres = PRSNT_NODEF; + conEvnt.chanId.intIdentPres.val = IN_IIP_IMPLICIT; + conEvnt.chanId.intIdent.pres = NOTPRSNT; + + if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || + ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + /* Trillium stack rejests lyr1Ident on BRI, but Netbricks always sends it. + Check with Trillium if this ever causes calls to fail in the field */ + + /* BRI only params */ + conEvnt.chanId.intType.pres = PRSNT_NODEF; + conEvnt.chanId.intType.val = IN_IT_BASIC; + conEvnt.chanId.infoChanSel.pres = PRSNT_NODEF; + conEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; + } else { + /* PRI only params */ + if (signal_data->switchtype == SNGISDN_SWITCH_EUROISDN) { + conEvnt.bearCap[0].usrInfoLyr1Prot.pres = PRSNT_NODEF; + conEvnt.bearCap[0].usrInfoLyr1Prot.val = IN_UIL1_G711ULAW; + } else { + conEvnt.bearCap[0].usrInfoLyr1Prot.pres = PRSNT_NODEF; + conEvnt.bearCap[0].usrInfoLyr1Prot.val = IN_UIL1_G711ALAW; + } + conEvnt.bearCap[0].lyr1Ident.pres = PRSNT_NODEF; + conEvnt.bearCap[0].lyr1Ident.val = IN_L1_IDENT; + + conEvnt.chanId.intType.pres = PRSNT_NODEF; + conEvnt.chanId.intType.val = IN_IT_OTHER; + conEvnt.chanId.chanMapType.pres = PRSNT_NODEF; + conEvnt.chanId.chanMapType.val = IN_CMT_BCHAN; + conEvnt.chanId.nmbMap.pres = PRSNT_NODEF; + conEvnt.chanId.nmbMap.val = IN_NM_CHNNMB; + conEvnt.chanId.codeStand1.pres = PRSNT_NODEF; + conEvnt.chanId.codeStand1.val = IN_CSTD_CCITT; + conEvnt.chanId.chanNmbSlotMap.pres = PRSNT_NODEF; + conEvnt.chanId.chanNmbSlotMap.len = 1; + conEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; + } + + conEvnt.progInd.eh.pres = PRSNT_NODEF; + conEvnt.progInd.location.pres = PRSNT_NODEF; + conEvnt.progInd.location.val = IN_LOC_USER; + conEvnt.progInd.codeStand0.pres = PRSNT_NODEF; + conEvnt.progInd.codeStand0.val = IN_CSTD_CCITT; + conEvnt.progInd.progDesc.pres = PRSNT_NODEF; + conEvnt.progInd.progDesc.val = IN_PD_NOTETEISDN; /* Not end-to-end ISDN */ + + if (signal_data->switchtype == SNGISDN_SWITCH_EUROISDN) { + conEvnt.sndCmplt.eh.pres = PRSNT_NODEF; + } + if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP && + signal_data->signalling == SNGISDN_SIGNALING_NET) { + sngisdn_info->ces = CES_MNGMNT; + } + + cpy_calling_num_to_sngisdn(&conEvnt.cgPtyNmb, &ftdmchan->caller_data); + cpy_called_num_to_sngisdn(&conEvnt.cdPtyNmb, &ftdmchan->caller_data); + cpy_calling_name_to_sngisdn(&conEvnt, ftdmchan); + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending con request on suId:%d suInstId:%u spInstId:%u\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); + + if (sng_isdn_con_request(signal_data->cc_id, sngisdn_info->suInstId, &conEvnt, signal_data->dchan_id, sngisdn_info->ces)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused SETUP request\n"); + } + return; +} + +/* Used only for BRI PTMP */ +void sngisdn_snd_con_complete(ftdm_channel_t *ftdmchan) +{ + CnStEvnt cnStEvnt; + + sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + memset(&cnStEvnt, 0, sizeof(cnStEvnt)); + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending CONNECT ACK\n"); + + cnStEvnt.chanId.eh.pres = PRSNT_NODEF; + cnStEvnt.chanId.prefExc.pres = PRSNT_NODEF; + cnStEvnt.chanId.prefExc.val = IN_PE_EXCLSVE; + cnStEvnt.chanId.dChanInd.pres = PRSNT_NODEF; + cnStEvnt.chanId.dChanInd.val = IN_DSI_NOTDCHAN; + cnStEvnt.chanId.intIdentPres.pres = PRSNT_NODEF; + cnStEvnt.chanId.intIdentPres.val = IN_IIP_IMPLICIT; + + if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || + ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + + /* BRI only params */ + cnStEvnt.chanId.intType.pres = PRSNT_NODEF; + cnStEvnt.chanId.intType.val = IN_IT_BASIC; + cnStEvnt.chanId.infoChanSel.pres = PRSNT_NODEF; + cnStEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; + } else { + cnStEvnt.chanId.intType.pres = PRSNT_NODEF; + cnStEvnt.chanId.intType.val = IN_IT_OTHER; + cnStEvnt.chanId.infoChanSel.pres = PRSNT_NODEF; + cnStEvnt.chanId.infoChanSel.val = IN_ICS_B1CHAN; + cnStEvnt.chanId.chanMapType.pres = PRSNT_NODEF; + cnStEvnt.chanId.chanMapType.val = IN_CMT_BCHAN; + cnStEvnt.chanId.nmbMap.pres = PRSNT_NODEF; + cnStEvnt.chanId.nmbMap.val = IN_NM_CHNNMB; + cnStEvnt.chanId.codeStand1.pres = PRSNT_NODEF; + cnStEvnt.chanId.codeStand1.val = IN_CSTD_CCITT; + cnStEvnt.chanId.chanNmbSlotMap.pres = PRSNT_NODEF; + cnStEvnt.chanId.chanNmbSlotMap.len = 1; + cnStEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; + } + + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending connect ACK on suId:%d suInstId:%u spInstId:%u ces:%d\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, sngisdn_info->ces); + + if(sng_isdn_con_comp(signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, &cnStEvnt, signal_data->dchan_id, sngisdn_info->ces)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused CONNECT ACK request\n"); + } + return; +} + + +void sngisdn_snd_proceed(ftdm_channel_t *ftdmchan) +{ + CnStEvnt cnStEvnt; + + sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + memset(&cnStEvnt, 0, sizeof(cnStEvnt)); + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending PROCEED\n"); + + cnStEvnt.chanId.eh.pres = PRSNT_NODEF; + cnStEvnt.chanId.prefExc.pres = PRSNT_NODEF; + cnStEvnt.chanId.prefExc.val = IN_PE_EXCLSVE; + cnStEvnt.chanId.dChanInd.pres = PRSNT_NODEF; + cnStEvnt.chanId.dChanInd.val = IN_DSI_NOTDCHAN; + cnStEvnt.chanId.intIdentPres.pres = PRSNT_NODEF; + cnStEvnt.chanId.intIdentPres.val = IN_IIP_IMPLICIT; + + if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || + ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + + /* BRI only params */ + cnStEvnt.chanId.intType.pres = PRSNT_NODEF; + cnStEvnt.chanId.intType.val = IN_IT_BASIC; + cnStEvnt.chanId.infoChanSel.pres = PRSNT_NODEF; + cnStEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; + } else { + cnStEvnt.chanId.intType.pres = PRSNT_NODEF; + cnStEvnt.chanId.intType.val = IN_IT_OTHER; + cnStEvnt.chanId.infoChanSel.pres = PRSNT_NODEF; + cnStEvnt.chanId.infoChanSel.val = IN_ICS_B1CHAN; + cnStEvnt.chanId.chanMapType.pres = PRSNT_NODEF; + cnStEvnt.chanId.chanMapType.val = IN_CMT_BCHAN; + cnStEvnt.chanId.nmbMap.pres = PRSNT_NODEF; + cnStEvnt.chanId.nmbMap.val = IN_NM_CHNNMB; + cnStEvnt.chanId.codeStand1.pres = PRSNT_NODEF; + cnStEvnt.chanId.codeStand1.val = IN_CSTD_CCITT; + cnStEvnt.chanId.chanNmbSlotMap.pres = PRSNT_NODEF; + cnStEvnt.chanId.chanNmbSlotMap.len = 1; + cnStEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; + } + + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending con status on suId:%d suInstId:%u spInstId:%u\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); + + if(sng_isdn_con_status(signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, &cnStEvnt, MI_CALLPROC, signal_data->dchan_id, sngisdn_info->ces)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused PROCEED request\n"); + } + return; +} + +void sngisdn_snd_progress(ftdm_channel_t *ftdmchan) +{ + CnStEvnt cnStEvnt; + + sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + memset(&cnStEvnt, 0, sizeof(cnStEvnt)); + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending PROGRESS\n"); + + + cnStEvnt.progInd.eh.pres = PRSNT_NODEF; + cnStEvnt.progInd.location.pres = PRSNT_NODEF; + cnStEvnt.progInd.location.val = IN_LOC_USER; + cnStEvnt.progInd.codeStand0.pres = PRSNT_NODEF; + cnStEvnt.progInd.codeStand0.val = IN_CSTD_CCITT; + cnStEvnt.progInd.progDesc.pres = PRSNT_NODEF; + cnStEvnt.progInd.progDesc.val = IN_PD_NOTETEISDN; + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending con status on suId:%d suInstId:%u spInstId:%u\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); + if(sng_isdn_con_status(signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId,&cnStEvnt, MI_PROGRESS, signal_data->dchan_id, sngisdn_info->ces)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused PROGRESS request\n"); + } + return; +} + +void sngisdn_snd_alert(ftdm_channel_t *ftdmchan) +{ + CnStEvnt cnStEvnt; + + sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending ALERT\n"); + + memset(&cnStEvnt, 0, sizeof(cnStEvnt)); + + cnStEvnt.progInd.eh.pres = PRSNT_NODEF; + cnStEvnt.progInd.location.pres = PRSNT_NODEF; + cnStEvnt.progInd.location.val = IN_LOC_USER; + cnStEvnt.progInd.codeStand0.pres = PRSNT_NODEF; + cnStEvnt.progInd.codeStand0.val = IN_CSTD_CCITT; + cnStEvnt.progInd.progDesc.pres = PRSNT_NODEF; + cnStEvnt.progInd.progDesc.val = IN_PD_NOTETEISDN; + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending con status on suId:%d suInstId:%u spInstId:%u\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); + + if(sng_isdn_con_status(signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId,&cnStEvnt, MI_ALERTING, signal_data->dchan_id, sngisdn_info->ces)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused ALERT request\n"); + } + return; +} + +void sngisdn_snd_connect(ftdm_channel_t *ftdmchan) +{ + CnStEvnt cnStEvnt; + + sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending CONNECT\n"); + + memset(&cnStEvnt, 0, sizeof(cnStEvnt)); + + + cnStEvnt.chanId.eh.pres = PRSNT_NODEF; + cnStEvnt.chanId.prefExc.pres = PRSNT_NODEF; + cnStEvnt.chanId.prefExc.val = IN_PE_EXCLSVE; + cnStEvnt.chanId.dChanInd.pres = PRSNT_NODEF; + cnStEvnt.chanId.dChanInd.val = IN_DSI_NOTDCHAN; + cnStEvnt.chanId.intIdentPres.pres = PRSNT_NODEF; + cnStEvnt.chanId.intIdentPres.val = IN_IIP_IMPLICIT; + + if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || + ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + + /* BRI only params */ + cnStEvnt.chanId.intType.pres = PRSNT_NODEF; + cnStEvnt.chanId.intType.val = IN_IT_BASIC; + cnStEvnt.chanId.infoChanSel.pres = PRSNT_NODEF; + cnStEvnt.chanId.infoChanSel.val = ftdmchan->physical_chan_id; + } else { + cnStEvnt.chanId.intType.pres = PRSNT_NODEF; + cnStEvnt.chanId.intType.val = IN_IT_OTHER; + cnStEvnt.chanId.infoChanSel.pres = PRSNT_NODEF; + cnStEvnt.chanId.infoChanSel.val = IN_ICS_B1CHAN; + cnStEvnt.chanId.chanMapType.pres = PRSNT_NODEF; + cnStEvnt.chanId.chanMapType.val = IN_CMT_BCHAN; + cnStEvnt.chanId.nmbMap.pres = PRSNT_NODEF; + cnStEvnt.chanId.nmbMap.val = IN_NM_CHNNMB; + cnStEvnt.chanId.codeStand1.pres = PRSNT_NODEF; + cnStEvnt.chanId.codeStand1.val = IN_CSTD_CCITT; + cnStEvnt.chanId.chanNmbSlotMap.pres = PRSNT_NODEF; + cnStEvnt.chanId.chanNmbSlotMap.len = 1; + cnStEvnt.chanId.chanNmbSlotMap.val[0] = ftdmchan->physical_chan_id; + } + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending con response on suId:%d suInstId:%u spInstId:%u\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); + if (sng_isdn_con_response(signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, &cnStEvnt, signal_data->dchan_id, sngisdn_info->ces)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused CONNECT request\n"); + } + return; +} + +void sngisdn_snd_disconnect(ftdm_channel_t *ftdmchan) +{ + DiscEvnt discEvnt; + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending DISCONNECT\n"); + + sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + memset(&discEvnt, 0, sizeof(discEvnt)); + + /* Fill discEvnt here */ + discEvnt.causeDgn[0].eh.pres = PRSNT_NODEF; + discEvnt.causeDgn[0].location.pres = PRSNT_NODEF; + discEvnt.causeDgn[0].location.val = IN_LOC_PRIVNETLU; + discEvnt.causeDgn[0].codeStand3.pres = PRSNT_NODEF; + discEvnt.causeDgn[0].codeStand3.val = IN_CSTD_CCITT; + discEvnt.causeDgn[0].causeVal.pres = PRSNT_NODEF; + discEvnt.causeDgn[0].causeVal.val = ftdmchan->caller_data.hangup_cause; + discEvnt.causeDgn[0].recommend.pres = NOTPRSNT; + discEvnt.causeDgn[0].dgnVal.pres = NOTPRSNT; + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending disc request on suId:%d suInstId:%u spInstId:%u\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); + if (sng_isdn_disc_request(signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, &discEvnt)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused DISCONNECT request\n"); + } + return; +} +void sngisdn_snd_release(ftdm_channel_t *ftdmchan) +{ + RelEvnt relEvnt; + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending RELEASE/RELEASE COMPLETE\n"); + + sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*) ftdmchan->call_data; + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + memset(&relEvnt, 0, sizeof(relEvnt)); + + /* Fill discEvnt here */ + relEvnt.causeDgn[0].eh.pres = PRSNT_NODEF; + relEvnt.causeDgn[0].location.pres = PRSNT_NODEF; + relEvnt.causeDgn[0].location.val = IN_LOC_PRIVNETLU; + relEvnt.causeDgn[0].codeStand3.pres = PRSNT_NODEF; + relEvnt.causeDgn[0].codeStand3.val = IN_CSTD_CCITT; + + relEvnt.causeDgn[0].causeVal.pres = PRSNT_NODEF; + relEvnt.causeDgn[0].causeVal.val = ftdmchan->caller_data.hangup_cause; + relEvnt.causeDgn[0].recommend.pres = NOTPRSNT; + relEvnt.causeDgn[0].dgnVal.pres = NOTPRSNT; + + ftdm_log_chan(ftdmchan, FTDM_LOG_DEBUG, "Sending release request on suId:%d suInstId:%u spInstId:%u\n", signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId); + + if (sng_isdn_release_request(signal_data->cc_id, sngisdn_info->suInstId, sngisdn_info->spInstId, &relEvnt)) { + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_CRIT, "stack refused RELEASE/RELEASE COMPLETE request\n"); + } + return; +} + + +void sngisdn_snd_reset(ftdm_channel_t *ftdmchan) +{ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_INFO, "Sending RESET\n"); + ftdm_log_chan(ftdmchan, FTDM_LOG_CRIT, "%s not implemented\n", __FUNCTION__); + /* TODO: implement me */ + return; +} + + + +/* For Emacs: + * Local Variables: + * mode:c + * indent-tabs-mode:t + * tab-width:4 + * c-basic-offset:4 + * End: + * For VIM: + * vim:set softtabstop=4 shiftwidth=4 tabstop=4: + */ + +/******************************************************************************/ diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c new file mode 100644 index 0000000000..b922efc809 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c @@ -0,0 +1,353 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "ftmod_sangoma_isdn.h" + +ftdm_status_t cpy_calling_num_from_sngisdn(ftdm_caller_data_t *ftdm, CgPtyNmb *cgPtyNmb); +ftdm_status_t cpy_called_num_from_sngisdn(ftdm_caller_data_t *ftdm, CdPtyNmb *cdPtyNmb); +ftdm_status_t cpy_redir_num_from_sngisdn(ftdm_caller_data_t *ftdm, RedirNmb *redirNmb); +ftdm_status_t cpy_calling_name_from_sngisdn(ftdm_caller_data_t *ftdm, ConEvnt *conEvnt); + +ftdm_status_t cpy_calling_num_to_sngisdn(CgPtyNmb *cgPtyNmb, ftdm_caller_data_t *ftdm); +ftdm_status_t cpy_called_num_to_sngisdn(CdPtyNmb *cdPtyNmb, ftdm_caller_data_t *ftdm); +ftdm_status_t cpy_redir_num_to_sngisdn(RedirNmb *redirNmb, ftdm_caller_data_t *ftdm); +ftdm_status_t cpy_calling_name_to_sngisdn(ConEvnt *conEvnt, ftdm_channel_t *ftdmchan); + +extern ftdm_sngisdn_data_t g_sngisdn_data; +void get_memory_info(void); + +void clear_call_data(sngisdn_chan_data_t *sngisdn_info) +{ + uint32_t cc_id = ((sngisdn_span_data_t*)sngisdn_info->ftdmchan->span->signal_data)->cc_id; + + g_sngisdn_data.ccs[cc_id].active_spInstIds[sngisdn_info->spInstId]=NULL; + g_sngisdn_data.ccs[cc_id].active_suInstIds[sngisdn_info->suInstId]=NULL; + + sngisdn_info->suInstId = 0; + sngisdn_info->spInstId = 0; + sngisdn_info->globalFlg = 0; + sngisdn_info->flags = 0; + return; +} + +uint32_t get_unique_suInstId(uint8_t cc_id) +{ + uint32_t suInstId; + ftdm_mutex_lock(g_sngisdn_data.ccs[cc_id].request_mutex); + suInstId = g_sngisdn_data.ccs[cc_id].last_suInstId; + + while(1) { + if (++suInstId == MAX_INSTID) { + suInstId = 1; + } + if (g_sngisdn_data.ccs[cc_id].active_suInstIds[suInstId] == NULL) { + g_sngisdn_data.ccs[cc_id].last_suInstId = suInstId; + ftdm_mutex_unlock(g_sngisdn_data.ccs[cc_id].request_mutex); + return suInstId; + } + } + /* Should never reach here */ + ftdm_mutex_unlock(g_sngisdn_data.ccs[cc_id].request_mutex); + return 0; +} + +ftdm_status_t get_ftdmchan_by_suInstId(uint8_t cc_id, uint32_t suInstId, sngisdn_chan_data_t **sngisdn_data) +{ + ftdm_assert_return(g_sngisdn_data.ccs[cc_id].activation_done, FTDM_FAIL, "Trying to find call on unconfigured CC\n"); + + if (g_sngisdn_data.ccs[cc_id].active_suInstIds[suInstId] == NULL) { + return FTDM_FAIL; + } + *sngisdn_data = g_sngisdn_data.ccs[cc_id].active_suInstIds[suInstId]; + return FTDM_SUCCESS; +} + +ftdm_status_t get_ftdmchan_by_spInstId(uint8_t cc_id, uint32_t spInstId, sngisdn_chan_data_t **sngisdn_data) +{ + ftdm_assert_return(g_sngisdn_data.ccs[cc_id].activation_done, FTDM_FAIL, "Trying to find call on unconfigured CC\n"); + + if (g_sngisdn_data.ccs[cc_id].active_spInstIds[spInstId] == NULL) { + return FTDM_FAIL; + } + *sngisdn_data = g_sngisdn_data.ccs[cc_id].active_spInstIds[spInstId]; + return FTDM_SUCCESS; +} + + +ftdm_status_t cpy_calling_num_from_sngisdn(ftdm_caller_data_t *ftdm, CgPtyNmb *cgPtyNmb) +{ + if (cgPtyNmb->eh.pres != PRSNT_NODEF) { + return FTDM_FAIL; + } + + if (cgPtyNmb->screenInd.pres == PRSNT_NODEF) { + ftdm->screen = cgPtyNmb->screenInd.val; + } + + if (cgPtyNmb->presInd0.pres == PRSNT_NODEF) { + ftdm->pres = cgPtyNmb->presInd0.val; + } + + if (cgPtyNmb->nmbPlanId.pres == PRSNT_NODEF) { + ftdm->cid_num.plan = cgPtyNmb->nmbPlanId.val; + } + if (cgPtyNmb->typeNmb1.pres == PRSNT_NODEF) { + ftdm->cid_num.type = cgPtyNmb->typeNmb1.val; + } + + if (cgPtyNmb->nmbDigits.pres == PRSNT_NODEF) { + ftdm_copy_string(ftdm->cid_num.digits, (const char*)cgPtyNmb->nmbDigits.val, cgPtyNmb->nmbDigits.len+1); + } + return FTDM_SUCCESS; +} + +ftdm_status_t cpy_called_num_from_sngisdn(ftdm_caller_data_t *ftdm, CdPtyNmb *cdPtyNmb) +{ + if (cdPtyNmb->eh.pres != PRSNT_NODEF) { + return FTDM_FAIL; + } + + if (cdPtyNmb->nmbPlanId.pres == PRSNT_NODEF) { + ftdm->cid_num.plan = cdPtyNmb->nmbPlanId.val; + } + + if (cdPtyNmb->typeNmb0.pres == PRSNT_NODEF) { + ftdm->cid_num.type = cdPtyNmb->typeNmb0.val; + } + + if (cdPtyNmb->nmbDigits.pres == PRSNT_NODEF) { + ftdm_copy_string(ftdm->dnis.digits, (const char*)cdPtyNmb->nmbDigits.val, cdPtyNmb->nmbDigits.len+1); + } + return FTDM_SUCCESS; +} + +ftdm_status_t cpy_redir_num_from_sngisdn(ftdm_caller_data_t *ftdm, RedirNmb *redirNmb) +{ + if (redirNmb->eh.pres != PRSNT_NODEF) { + return FTDM_FAIL; + } + + if (redirNmb->nmbPlanId.pres == PRSNT_NODEF) { + ftdm->rdnis.plan = redirNmb->nmbPlanId.val; + } + + if (redirNmb->typeNmb.pres == PRSNT_NODEF) { + ftdm->rdnis.type = redirNmb->typeNmb.val; + } + + if (redirNmb->nmbDigits.pres == PRSNT_NODEF) { + ftdm_copy_string(ftdm->rdnis.digits, (const char*)redirNmb->nmbDigits.val, redirNmb->nmbDigits.len+1); + } + return FTDM_SUCCESS; +} + +ftdm_status_t cpy_calling_name_from_sngisdn(ftdm_caller_data_t *ftdm, ConEvnt *conEvnt) +{ + if (conEvnt->display.eh.pres && conEvnt->display.dispInfo.pres == PRSNT_NODEF) { + ftdm_copy_string(ftdm->cid_name, (const char*)conEvnt->display.dispInfo.val, conEvnt->display.dispInfo.len+1); + } + + /* TODO check if caller name is contained in a Facility IE */ + return FTDM_SUCCESS; +} + +ftdm_status_t cpy_calling_num_to_sngisdn(CgPtyNmb *cgPtyNmb, ftdm_caller_data_t *ftdm) +{ + uint8_t len = strlen(ftdm->cid_num.digits); + if (!len) { + return FTDM_SUCCESS; + } + cgPtyNmb->eh.pres = PRSNT_NODEF; + + cgPtyNmb->screenInd.pres = PRSNT_NODEF; + cgPtyNmb->screenInd.val = ftdm->screen; + + cgPtyNmb->presInd0.pres = PRSNT_NODEF; + cgPtyNmb->presInd0.val = ftdm->pres; + + cgPtyNmb->nmbPlanId.pres = PRSNT_NODEF; + cgPtyNmb->nmbPlanId.val = ftdm->cid_num.plan; + + cgPtyNmb->typeNmb1.pres = PRSNT_NODEF; + cgPtyNmb->typeNmb1.val = ftdm->cid_num.type; + + cgPtyNmb->nmbDigits.pres = PRSNT_NODEF; + cgPtyNmb->nmbDigits.len = len; + + memcpy(cgPtyNmb->nmbDigits.val, ftdm->cid_num.digits, len); + + return FTDM_SUCCESS; +} + +ftdm_status_t cpy_called_num_to_sngisdn(CdPtyNmb *cdPtyNmb, ftdm_caller_data_t *ftdm) +{ + uint8_t len = strlen(ftdm->dnis.digits); + if (!len) { + return FTDM_SUCCESS; + } + cdPtyNmb->eh.pres = PRSNT_NODEF; + + cdPtyNmb->nmbPlanId.pres = PRSNT_NODEF; + cdPtyNmb->nmbPlanId.val = ftdm->dnis.plan; + + cdPtyNmb->typeNmb0.pres = PRSNT_NODEF; + cdPtyNmb->typeNmb0.val = ftdm->dnis.type; + + cdPtyNmb->nmbDigits.pres = PRSNT_NODEF; + cdPtyNmb->nmbDigits.len = len; + + memcpy(cdPtyNmb->nmbDigits.val, ftdm->dnis.digits, len); + return FTDM_SUCCESS; +} + +ftdm_status_t cpy_redir_num_to_sngisdn(RedirNmb *redirNmb, ftdm_caller_data_t *ftdm) +{ + uint8_t len = strlen(ftdm->rdnis.digits); + if (!len) { + return FTDM_SUCCESS; + } + + redirNmb->eh.pres = PRSNT_NODEF; + + redirNmb->nmbPlanId.pres = PRSNT_NODEF; + redirNmb->nmbPlanId.val = ftdm->rdnis.plan; + + redirNmb->typeNmb.pres = PRSNT_NODEF; + redirNmb->typeNmb.val = ftdm->rdnis.type; + + redirNmb->nmbDigits.pres = PRSNT_NODEF; + redirNmb->nmbDigits.len = len; + + memcpy(redirNmb->nmbDigits.val, ftdm->rdnis.digits, len); + + return FTDM_SUCCESS; +} + + +ftdm_status_t cpy_calling_name_to_sngisdn(ConEvnt *conEvnt, ftdm_channel_t *ftdmchan) +{ + uint8_t len; + ftdm_caller_data_t *ftdm = &ftdmchan->caller_data; + /* sngisdn_chan_data_t *sngisdn_info = ftdmchan->call_data; */ + sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*) ftdmchan->span->signal_data; + + len = strlen(ftdm->cid_name); + if (!len) { + return FTDM_SUCCESS; + } + + if (ftdmchan->span->trunk_type == FTDM_TRUNK_BRI || + ftdmchan->span->trunk_type == FTDM_TRUNK_BRI_PTMP) { + + conEvnt->usrUsr.eh.pres = PRSNT_NODEF; + conEvnt->usrUsr.protocolDisc.pres = PRSNT_NODEF; + conEvnt->usrUsr.protocolDisc.val = PD_IA5; /* IA5 chars */ + conEvnt->usrUsr.usrInfo.pres = PRSNT_NODEF; + conEvnt->usrUsr.usrInfo.len = len; + /* in sangoma_brid we used to send usr-usr info as !, + change to previous style if current one does not work */ + memcpy(conEvnt->usrUsr.usrInfo.val, ftdm->cid_name, len); + } else { + switch (signal_data->switchtype) { + case SNGISDN_SWITCH_NI2: + /* TODO: Need to send the caller ID as a facility IE */ + + break; + case SNGISDN_SWITCH_EUROISDN: + if (signal_data->signalling != SNGISDN_SIGNALING_NET) { + break; + } + /* follow through */ + case SNGISDN_SWITCH_5ESS: + case SNGISDN_SWITCH_4ESS: + case SNGISDN_SWITCH_DMS100: + conEvnt->display.eh.pres = PRSNT_NODEF; + conEvnt->display.dispInfo.pres = PRSNT_NODEF; + conEvnt->display.dispInfo.len = len; + memcpy(conEvnt->display.dispInfo.val, ftdm->cid_name, len); + break; + case SNGISDN_SWITCH_QSIG: + /* It seems like QSIG does not support Caller ID Name */ + break; + case SNGISDN_SWITCH_INSNET: + /* Don't know how to transmit caller ID name on INSNET */ + break; + } + } + return FTDM_SUCCESS; +} + + + +ftdm_status_t check_for_state_change(ftdm_channel_t *ftdmchan) +{ + +#if 0 + ftdm_log_chan_msg(ftdmchan, "Checking for pending state change\n"); +#endif + /* check to see if there are any pending state changes on the channel and give them a sec to happen*/ + ftdm_wait_for_flag_cleared(ftdmchan, FTDM_CHANNEL_STATE_CHANGE, 5000); + + /* check the flag to confirm it is clear now */ + if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE)) { + /* the flag is still up...so we have a problem */ + ftdm_log_chan_msg(ftdmchan, FTDM_LOG_ERROR, "FTDM_CHANNEL_STATE_CHANGE set for over 500ms\n"); + + /* move the state of the channel to RESTART to force a reset */ + ftdm_set_state_locked(ftdmchan, FTDM_CHANNEL_STATE_RESTART); + + return FTDM_FAIL; + } + return FTDM_SUCCESS; +} + +void get_memory_info(void) +{ + U32 availmen = 0; + SRegInfoShow(S_REG, &availmen); + return; +} + +/* For Emacs: + * Local Variables: + * mode:c + * indent-tabs-mode:t + * tab-width:4 + * c-basic-offset:4 + * End: + * For VIM: + * vim:set softtabstop=4 shiftwidth=4 tabstop=4: + */ + +/******************************************************************************/ diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c new file mode 100644 index 0000000000..0084704322 --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c @@ -0,0 +1,661 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "ftmod_sangoma_isdn.h" +#include "ftmod_sangoma_isdn_trace.h" + +#define OCTET(x) (ieData[x-1] & 0xFF) + +void print_hex_dump(char* str, uint32_t *str_len, uint8_t* data, uint32_t index_start, uint32_t index_end); +void sngisdn_trace_q921(char* str, uint8_t* data, uint32_t data_len); +void sngisdn_trace_q931(char* str, uint8_t* data, uint32_t data_len); +uint32_t sngisdn_decode_ie(char *str, uint32_t *str_len, uint8_t current_codeset, uint8_t *data, uint16_t index_start); + +uint8_t get_bits(uint8_t octet, uint8_t bitLo, uint8_t bitHi); +char* get_code_2_str(int code, struct code2str *pCodeTable); + +char* get_code_2_str(int code, struct code2str *pCodeTable) +{ + struct code2str* pCode2txt; + pCode2txt = pCodeTable; + while(pCode2txt) { + if(pCode2txt->code >= 0) { + if (pCode2txt->code == code) { + return pCode2txt->text; + } + pCode2txt++; + } else { + /* This is the default value from the table */ + return pCode2txt->text; + } + } + return (char*)"unknown"; +} + + +uint8_t get_bits(uint8_t octet, uint8_t bitLo, uint8_t bitHi) +{ + if (!bitLo || !bitHi) { + return 0; + } + if (bitLo > bitHi) { + return 0; + } + + bitLo--; + bitHi--; + + switch(bitHi - bitLo) { + case 0: + return (octet >> bitLo) & 0x01; + case 1: + return (octet >> bitLo) & 0x03; + case 2: + return (octet >> bitLo) & 0x07; + case 3: + return (octet >> bitLo) & 0x0F; + case 4: + return (octet >> bitLo) & 0x1F; + case 5: + return (octet >> bitLo) & 0x3F; + case 6: + return (octet >> bitLo) & 0x7F; + case 7: + return (octet >> bitLo) & 0xFF; + } + return 0; +} + +void sngisdn_trace_q921(char* str, uint8_t* data, uint32_t data_len) +{ + int str_len; + int i; + uint8_t sapi, cr, ea, tei, ns, nr, pf, p, cmd; + uint8_t frame_format = 0; + + str_len = 0; + + if(data_len >= 2) { + switch ((int)data[2] & 0x03) { + case 0: case 2: + frame_format = I_FRAME; + break; + case 1: + frame_format = S_FRAME; + break; + case 3: + frame_format = U_FRAME; + break; + } + } + + str_len+= sprintf(&str[str_len], " format: %s\n", + get_code_2_str(frame_format, dcodQ921FrameFormatTable)); + + for(i=0; i < data_len; i++) { + switch(i) { + case 0: // Octet 2 + sapi = (uint8_t)((data[i]>>2) & 0x3F); + cr = (uint8_t)((data[i]>>1) & 0x1); + ea = (uint8_t)(data[i] & 0x1); + str_len+= sprintf(&str[str_len], " sapi: %03d c/r: %01d ea: %01d\n", sapi, cr, ea); + break; + case 1: + tei = (uint8_t)((data[i]>>1) & 0x7F); + ea = (uint8_t)(data[i] & 0x1); + str_len+= sprintf(&str[str_len], " tei: %03d ea: %01d\n", tei, ea); + break; + case 2: + switch(frame_format) { + case I_FRAME: + ns = (uint8_t)((data[i]>>1) & 0x7F); + nr = (uint8_t)((data[i+1]>>1) & 0x7F); + p = (uint8_t)(data[i+1] & 0x01); + str_len+= sprintf(&str[str_len], " n(s): %03d\n n(r): %03d p: %01d\n", ns, nr, p); + break; + case S_FRAME: + nr = (uint8_t)((data[i+1]>>1) & 0x7F); + pf = (uint8_t)(data[i+1] & 0x01); + str_len+= sprintf(&str[str_len], " n(r): %03d p/f: %01d\n", nr, pf); + + cmd = (uint8_t)((data[i]>>2) & 0x03); + str_len+= sprintf(&str[str_len], " cmd: %s\n", get_code_2_str(cmd, dcodQ921SupervisoryCmdTable)); + + break; + case U_FRAME: + pf = (uint8_t)((data[i]>>4) & 0x01); + str_len+= sprintf(&str[str_len], " p/f: %01d\n", pf); + + cmd = (uint8_t)((data[i]>>2) & 0x03); + cmd |= (uint8_t)((data[i]>>5) & 0x07); + + str_len+= sprintf(&str[str_len], " cmd: %s\n", get_code_2_str(cmd, dcodQ921UnnumberedCmdTable)); + break; + } + break; + } + } + return; +} + +void sngisdn_trace_q931(char* str, uint8_t* data, uint32_t data_len) +{ + uint32_t str_len; + uint8_t prot_disc, callRefFlag; + uint16_t lenCallRef, c, i; + uint8_t current_codeset = 0; + + str_len = 0; + + /* Decode Protocol Discrimator */ + prot_disc = (uint8_t)data[0]; + str_len += sprintf(&str[str_len], " Prot Disc:%s (0x%02x)\n", get_code_2_str(prot_disc, dcodQ931ProtDiscTable), prot_disc); + + + + + /* Decode Call Reference */ + lenCallRef = (uint8_t) (data[1] & 0x0F); + + str_len += sprintf(&str[str_len], " Call Ref:"); + c=2; + callRefFlag = get_bits(data[c], 8,8); + for(i=0; i<(2*lenCallRef);i++) { + if(i==0) { + str_len += sprintf(&str[str_len], "%s%s", + get_code_2_str((uint8_t)(data[c] & 0x70), dcodQ931CallRefHiTable), + get_code_2_str((uint8_t)(data[c] & 0x0F), dcodQ931CallRefLoTable)); + } else { + str_len += sprintf(&str[str_len], "%s%s", + get_code_2_str((uint8_t)(data[c] & 0xF0), dcodQ931CallRefHiTable), + get_code_2_str((uint8_t)(data[c] & 0x0F), dcodQ931CallRefLoTable)); + } + + i=i+1; + c=c+1; + } + str_len += sprintf(&str[str_len], " (%s side)\n", callRefFlag?"Destination":"Origination"); + + /* Decode message type */ + str_len+= sprintf(&str[str_len], " Type:%s (0x%x)\n", get_code_2_str((int)(data[2+lenCallRef] & 0xFF), dcodQ931MsgTypeTable), (int)(data[2+lenCallRef] & 0xFF)); + + /* go through rest of data and look for important info */ + for(i=3+lenCallRef; i < data_len; i++) { + switch (data[i] & 0xF8) { + case Q931_LOCKING_SHIFT: + current_codeset = (data[i] & 0x7); + str_len+= sprintf(&str[str_len], "Codeset shift to %d (locking)\n", current_codeset); + continue; + case Q931_NON_LOCKING_SHIFT: + current_codeset = (data[i] & 0x7); + str_len+= sprintf(&str[str_len], "Codeset shift to %d (non-locking)\n", current_codeset); + continue; + } + i+= sngisdn_decode_ie(str, &str_len, current_codeset, data, i); + } + print_hex_dump(str, &str_len, (uint8_t*) data, 0, data_len); + return; +} + +uint32_t sngisdn_decode_ie(char *str, uint32_t *str_len, uint8_t current_codeset, uint8_t *data, uint16_t index_start) +{ + unsigned char* ieData; + uint8_t ieId; + uint32_t len = 0; + int index_end; + + ieData = (unsigned char*) &data[index_start]; + + ieId = OCTET(1); + len = OCTET(2); + index_end = index_start+len+1; + + *str_len += sprintf(&str[*str_len], " %s:", get_code_2_str(data[index_start], dcodQ931IEIDTable)); + switch(ieId) { + case PROT_Q931_IE_BEARER_CAP: + { + uint8_t codingStandard, infTransferCap, transferMode, infTransferRate, usrL1Prot; + + codingStandard = get_bits(OCTET(3),6,7); + infTransferCap = get_bits(OCTET(3),1,5); + transferMode = get_bits(OCTET(4),6,7); + infTransferRate = get_bits(OCTET(4),1,5); + usrL1Prot = get_bits(OCTET(5),1,5); + + *str_len+= sprintf(&str[*str_len], "Coding:%s(%d) TransferCap:%s(%d) TransferRate:%s(%d) L1Prot:%s(%d)\n", + get_code_2_str(codingStandard, dcodQ931BcCodingStandardTable), codingStandard, + get_code_2_str(infTransferCap, dcodQ931BcInfTransferCapTable), infTransferCap, + get_code_2_str(infTransferRate, dcodQ931BcInfTransferRateTable), infTransferRate, + get_code_2_str(usrL1Prot, dcodQ931BcusrL1ProtTable), usrL1Prot); + } + break; + case PROT_Q931_IE_CAUSE: + { + uint8_t codingStandard, location, cause,diagOct = 5; + codingStandard = get_bits(OCTET(3),6,7); + location = get_bits(OCTET(3),1,4); + + cause = get_bits(OCTET(4),1,7); + + *str_len+= sprintf(&str[*str_len], "coding:%s(%d) location:%s(%d) val:%s(%d)\n", + get_code_2_str(codingStandard, dcodQ931BcCodingStandardTable), codingStandard, + get_code_2_str(location,dcodQ931IelocationTable), location, + get_code_2_str(cause, dcodQ931CauseCodeTable), + cause); + switch(cause) { + case PROT_Q931_RELEASE_CAUSE_IE_NOT_EXIST: + while(diagOct++ < len) { + *str_len+= sprintf(&str[*str_len], " %d:IE %s(0x%02x)\n", + diagOct, + get_code_2_str(OCTET(diagOct), dcodQ931IEIDTable), + OCTET(diagOct)); + } + break; + case PROT_Q931_RELEASE_CAUSE_WRONG_CALL_STATE: + while(diagOct++ < len) { + *str_len+= sprintf(&str[*str_len], " %d:Message %s(0x%02x)\n", + diagOct, + get_code_2_str(OCTET(diagOct), dcodQ931MsgTypeTable), + OCTET(diagOct)); + } + break; + case PROT_Q931_RECOVERY_ON_TIMER_EXPIRE: + *str_len+= sprintf(&str[*str_len], " Timer T\n"); + while(diagOct++ < len) { + if(OCTET(diagOct) >= ' ' && OCTET(diagOct) < 0x7f) { + *str_len+= sprintf(&str[*str_len], "%c", OCTET(diagOct)); + } else { + *str_len+= sprintf(&str[*str_len], "."); + } + } + break; + default: + while(diagOct++ < len) { + *str_len+= sprintf(&str[*str_len], " %d: 0x%02x\n", + diagOct, + OCTET(diagOct)); + } + break; + } + } + break; + case PROT_Q931_IE_CHANNEL_ID: + { + uint8_t infoChannelSelection=0; + uint8_t prefExclusive=0; + uint8_t ifaceIdPresent=0; + uint8_t ifaceIdentifier = 0; /* octet_3_1 */ + uint8_t chanType=0, numberMap=0, codingStandard=0; + uint8_t channelNo = 0; + + infoChannelSelection = get_bits(OCTET(3),1,2); + prefExclusive = get_bits(OCTET(3),4,4); + ifaceIdPresent = get_bits(OCTET(3),7,7); + + if (ifaceIdPresent) { + ifaceIdentifier= get_bits(OCTET(4),1,7); + chanType = get_bits(OCTET(5),1,4); + numberMap = get_bits(OCTET(5),5,5); + codingStandard = get_bits(OCTET(5),6,7); + channelNo = get_bits(OCTET(6),1,7); + } else { + chanType = get_bits(OCTET(4),1,4); + numberMap = get_bits(OCTET(4),5,5); + codingStandard = get_bits(OCTET(4),6,7); + channelNo = get_bits(OCTET(5),1,7); + } + + if (numberMap) { + *str_len+= sprintf(&str[*str_len], " MAP\n"); + } else { + *str_len+= sprintf(&str[*str_len], "No:%d ", channelNo); + } + + *str_len+= sprintf(&str[*str_len], "Type:%s(%d) %s ", get_code_2_str(chanType,dcodQ931ChanTypeTable), chanType, (numberMap)? "Map":""); + *str_len+= sprintf(&str[*str_len], "%s/%s \n", + (prefExclusive)? "Exclusive":"Preferred", + (ifaceIdPresent)? "Explicit":"Implicit"); + } + break; + case PROT_Q931_IE_CALLING_PARTY_NUMBER: + { + uint8_t plan, type, screening = 0, presentation = 0, callingNumOct, j; + uint8_t screeningEnabled = 0, presentationEnabled = 0; + char callingNumDigits[32]; + memset(callingNumDigits, 0, sizeof(callingNumDigits)); + + plan = get_bits(OCTET(3),1,4); + type = get_bits(OCTET(3),5,7); + + if(!get_bits(OCTET(3),8,8)) { + screening = get_bits(OCTET(4),1,2); + presentation = get_bits(OCTET(4),6,7); + screeningEnabled = 1; + presentationEnabled = 1; + callingNumOct = 4; + } else { + callingNumOct = 3; + } + if(len >= sizeof(callingNumDigits)) { + len = sizeof(callingNumDigits)-1; + } + j = 0; + while(callingNumOct++ <= len+1) { + callingNumDigits[j++]=ia5[get_bits(OCTET(callingNumOct),1,4)][get_bits(OCTET(callingNumOct),5,8)]; + } + callingNumDigits[j]='\0'; + *str_len+= sprintf(&str[*str_len], "%s(l:%d) plan:%s(%d) type:%s(%d)", + + callingNumDigits, j, + get_code_2_str(plan, dcodQ931NumberingPlanTable), plan, + get_code_2_str(type, dcodQ931TypeofNumberTable), type); + + if (presentationEnabled||screeningEnabled) { + *str_len+= sprintf(&str[*str_len], "scr:%s(%d) pres:%s(%d)\n", + get_code_2_str(screening, dcodQ931ScreeningTable), screening, + get_code_2_str(presentation, dcodQ931PresentationTable), presentation); + } else { + *str_len+= sprintf(&str[*str_len], "\n"); + } + } + break; + + case PROT_Q931_IE_CALLED_PARTY_NUMBER: + { + uint8_t plan, type, calledNumOct,j; + char calledNumDigits[32]; + memset(calledNumDigits, 0, sizeof(calledNumDigits)); + plan = get_bits(OCTET(3),1,4); + type = get_bits(OCTET(3),5,7); + + if(len >= sizeof(calledNumDigits)) { + len = sizeof(calledNumDigits)-1; + } + calledNumOct = 3; + j = 0; + while(calledNumOct++ <= len+1) { + calledNumDigits[j++]=ia5[get_bits(OCTET(calledNumOct),1,4)][get_bits(OCTET(calledNumOct),5,8)]; + } + calledNumDigits[j]='\0'; + *str_len+= sprintf(&str[*str_len], "%s(l:%d) plan:%s(%d) type:%s(%d)\n", + calledNumDigits, j, + get_code_2_str(plan, dcodQ931NumberingPlanTable), plan, + get_code_2_str(type, dcodQ931TypeofNumberTable), type); + } + break; + case PROT_Q931_IE_REDIRECTING_NUMBER: //rdnis + { + uint8_t plan, type, screening = 0, presentation = 0, reason = 0, rdnisOct,j; + uint8_t screeningEnabled = 0, presentationEnabled = 0, reasonEnabled = 0; + char rdnis_string[32]; + memset(rdnis_string, 0, sizeof(rdnis_string)); + rdnisOct = 5; + plan = get_bits(OCTET(3),1,4); + type = get_bits(OCTET(3),5,7); + + if(!get_bits(OCTET(3),8,8)) { //Oct 3a exists + rdnisOct++; + screening = get_bits(OCTET(4),1,2); + presentation = get_bits(OCTET(4),6,7); + screeningEnabled = 1; + presentationEnabled = 1; + if (!get_bits(OCTET(4),8,8)) { //Oct 3b exists + rdnisOct++; + reason = get_bits(OCTET(5),1,4); + reasonEnabled = 1; + } + } + + if(len >= sizeof(rdnis_string)) { + len = sizeof(rdnis_string)-1; + } + + j = 0; + while(rdnisOct++ <= len+1) { + rdnis_string[j++]=ia5[get_bits(OCTET(rdnisOct),1,4)][get_bits(OCTET(rdnisOct),5,8)]; + } + + rdnis_string[j]='\0'; + *str_len+= sprintf(&str[*str_len], "%s(l:%d) plan:%s(%d) type:%s(%d)", + rdnis_string, j, + get_code_2_str(plan, dcodQ931NumberingPlanTable), plan, + get_code_2_str(type, dcodQ931TypeofNumberTable), type); + + if(presentationEnabled || screeningEnabled) { + *str_len+= sprintf(&str[*str_len], "scr:%s(%d) pres:%s(%d)", + get_code_2_str(screening, dcodQ931ScreeningTable), screening, + get_code_2_str(presentation, dcodQ931PresentationTable), presentation); + } + + if(reasonEnabled) { + *str_len+= sprintf(&str[*str_len], "reason:%s(%d)", + get_code_2_str(reason, dcodQ931ReasonTable), reason); + } + *str_len+= sprintf(&str[*str_len], "\n"); + } + break; + case PROT_Q931_IE_USER_USER: + { + uint8_t protDiscr = 0x00, j, uui_stringOct; + char uui_string[32]; + memset(uui_string, 0, sizeof(uui_string)); + protDiscr = OCTET(3); + uui_stringOct = 3; + if (protDiscr != 0x04) { /* Non-IA5 */ + *str_len+= sprintf(&str[*str_len], "%s (0x%02x)\n", + get_code_2_str(protDiscr, dcodQ931UuiProtDiscrTable), protDiscr); + } else { + j = 0; + + if(len >= sizeof(uui_string)) { + len = sizeof(uui_string)-1; + } + while(uui_stringOct++ <= len+1) { + uui_string[j++]=ia5[get_bits(OCTET(uui_stringOct),1,4)][get_bits(OCTET(uui_stringOct),5,8)]; + } + uui_string[j]='\0'; + *str_len+= sprintf(&str[*str_len], " %s (0x%02x) <%s>\n", + get_code_2_str(protDiscr, dcodQ931UuiProtDiscrTable), protDiscr, + uui_string); + } + } + break; + case PROT_Q931_IE_DISPLAY: + { + uint8_t displayStrOct=2, j; + char displayStr[82]; + memset(displayStr, 0, sizeof(displayStr)); + + if(get_bits(OCTET(3),8,8)) { + displayStrOct++; + } + j = 0; + if(len >= sizeof(displayStr)) { + len = sizeof(displayStr)-1; + } + while(displayStrOct++ <= len+1) { + displayStr[j++]=ia5[get_bits(OCTET(displayStrOct),1,4)][get_bits(OCTET(displayStrOct),5,8)]; + } + displayStr[j]='\0'; + *str_len+= sprintf(&str[*str_len], "%s(l:%d)\n", + displayStr, len); + } + break; + case PROT_Q931_IE_RESTART_IND: + { + uint8_t indClass; + indClass = get_bits(OCTET(3),1,3); + *str_len+= sprintf(&str[*str_len], "class:%s(%d)\n", + get_code_2_str(indClass,dcodQ931RestartIndClassTable), indClass); + } + break; + case PROT_Q931_IE_PROGRESS_IND: + { + uint8_t codingStandard, location, progressDescr; + codingStandard = get_bits(OCTET(3),6,7); + location = get_bits(OCTET(3),1,4); + progressDescr = get_bits(OCTET(4),1,7); + *str_len+= sprintf(&str[*str_len], "coding:%s(%d) location:%s(%d) descr:%s(%d)\n", + get_code_2_str(codingStandard,dcodQ931BcCodingStandardTable), codingStandard, + get_code_2_str(location,dcodQ931IelocationTable), location, + get_code_2_str(progressDescr,dcodQ931IeprogressDescrTable), progressDescr); + } + break; + case PROT_Q931_IE_KEYPAD_FACILITY: + { + uint8_t keypadFacilityStrOct = 3, j; + char keypadFacilityStr[82]; + memset(keypadFacilityStr, 0, sizeof(keypadFacilityStr)); + + j = 0; + if(len >= sizeof(keypadFacilityStr)) { + len = sizeof(keypadFacilityStr)-1; + } + while(keypadFacilityStrOct++ < len+1) { + keypadFacilityStr[j++]=ia5[get_bits(OCTET(keypadFacilityStrOct),1,4)][get_bits(OCTET(keypadFacilityStrOct),5,8)]; + } + keypadFacilityStr[j]='\0'; + *str_len+= sprintf(&str[*str_len], " digits:%s(l:%d)\n", + keypadFacilityStr, len); + } + break; + case PROT_Q931_IE_FACILITY: + { + uint8_t protProfile; + protProfile = get_bits(OCTET(3),1,5); + *str_len+= sprintf(&str[*str_len], "Prot profile:%s(%d)\n", + get_code_2_str(protProfile,dcodQ931IeFacilityProtProfileTable), protProfile); + } + break; + case PROT_Q931_IE_GENERIC_DIGITS: + { + uint8_t encoding,type; + int value = 0; + + encoding = get_bits(OCTET(3),6,8); + type = get_bits(OCTET(3),1,5); + + *str_len+= sprintf(&str[*str_len], "encoding:%s(%d) type:%s(%d) ", + get_code_2_str(encoding,dcodQ931GenDigitsEncodingTable), encoding, + get_code_2_str(encoding,dcodQ931GenDigitsTypeTable), type); + + if (len > 1) { + uint32_t j=0; + + while(++j < len) { + switch(encoding) { + case 0: /* BCD even */ + case 1: /* BCD odd */ + { + uint8_t byte = OCTET(j+3); + value = (get_bits(byte,1,4)*10) + get_bits(byte,5,8) + (value*10); + } + break; + case 2: /* IA 5 */ + value = value*10 + OCTET(j+3)-'0'; + *str_len+= sprintf(&str[*str_len], "%c", OCTET(j+3)); + break; + case 3: + /* Don't know how to decode binary encoding yet */ + *str_len+= sprintf(&str[*str_len], "Binary encoded"); + break; + } + } + *str_len+= sprintf(&str[*str_len], " "); + switch(type) { + case 4: /* info digits */ + *str_len+= sprintf(&str[*str_len], "ani2:%s(%d)", get_code_2_str(value,dcodQ931LineInfoTable), value); + break; + case 5: /* Callid */ + *str_len+= sprintf(&str[*str_len], "Caller ID not implemented\n"); + break; + } + } + *str_len+= sprintf(&str[*str_len], "\n"); + print_hex_dump(str, str_len, (uint8_t*) data, index_start, index_end); + } + break; + case PROT_Q931_IE_SENDING_COMPLETE: + /* No need to decode sending complete IE, as no additional info is available except that sending is done */ + break; + case PROT_Q931_IE_CALLED_PARTY_SUBADDRESS: + case PROT_Q931_IE_REDIRECTION_NUMBER: + case PROT_Q931_IE_NOTIFICATION_IND: + case PROT_Q931_IE_DATE_TIME: + case PROT_Q931_IE_INFORMATION_REQUEST: + case PROT_Q931_IE_SIGNAL: + case PROT_Q931_IE_SWITCHOOK: + case PROT_Q931_IE_FEATURE_ACT: + case PROT_Q931_IE_FEATURE_IND: + case PROT_Q931_IE_INFORMATION_RATE: + case PROT_Q931_IE_END_TO_END_TRANSIT_DELAY: + case PROT_Q931_IE_TRANSIT_DELAY_SELECT_IND: + case PROT_Q931_IE_PACKET_LAYER_BINARY_PARAMS: + case PROT_Q931_IE_PACKET_LAYER_WINDOW_SIZE: + case PROT_Q931_IE_PACKET_LAYER_SIZE: + case PROT_Q931_IE_TRANSIT_NETWORK_SELECTION: + case PROT_Q931_IE_LOW_LAYER_COMPAT: + case PROT_Q931_IE_HIGH_LAYER_COMPAT: + case PROT_Q931_IE_ESCAPE_FOR_EXTENSION: + case PROT_Q931_IE_CALL_IDENTITY: + case PROT_Q931_IE_CALL_STATE: + case PROT_Q931_IE_SEGMENTED_MESSAGE: + case PROT_Q931_IE_NETWORK_SPF_FACILITY: + case PROT_Q931_IE_CALLING_PARTY_SUBADDRESS: + default: + { + *str_len += sprintf(&str[*str_len], "Undecoded"); + print_hex_dump((char*)str, str_len, data, index_start, index_end); + } + break; + } + + return len+1; +} + +void print_hex_dump(char* str, uint32_t *str_len, uint8_t* data, uint32_t index_start, uint32_t index_end) +{ + int k; + *str_len += sprintf(&str[*str_len], " [ "); + for(k=index_start; k <= index_end; k++) { + if (k && !(k%32)) { + *str_len += sprintf(&str[*str_len], "\n "); + } + *str_len += sprintf(&str[*str_len], "%02x ", data[k]); + } + *str_len += sprintf(&str[*str_len], "]\n"); + return; +} + + diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.h b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.h new file mode 100644 index 0000000000..869b235f2a --- /dev/null +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.h @@ -0,0 +1,540 @@ +/* + * Copyright (c) 2010, Sangoma Technologies + * David Yat Sin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of the original author; nor the names of any contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef __FTMOD_SANGOMA_ISDN_TRACE_H__ +#define __FTMOD_SANGOMA_ISDN_TRACE_H__ + +#define MX_CODE_TXT_LEN 70 +#define Q931_LOCKING_SHIFT 0x90 +#define Q931_NON_LOCKING_SHIFT 0x98 + +#define PROT_Q931_RELEASE_CAUSE_MISDIALED_TRUNK_PREFIX 5 +#define PROT_Q931_RELEASE_CAUSE_INVALID_NUMBER_FORMAT 28 +#define PROT_Q931_RELEASE_CAUSE_NO_CHAN_AVAIL 34 +#define PROT_Q931_RELEASE_CAUSE_DEST_OUT_OF_ORDER 27 +#define PROT_Q931_RELEASE_CAUSE_IE_NOT_EXIST 99 +#define PROT_Q931_RECOVERY_ON_TIMER_EXPIRE 102 +#define PROT_Q931_RELEASE_CAUSE_WRONG_CALL_STATE 101 + + +#define PROT_Q931_IE_SEGMENTED_MESSAGE 0x00 +#define PROT_Q931_IE_BEARER_CAP 0x04 +#define PROT_Q931_IE_CAUSE 0x08 +#define PROT_Q931_IE_CALL_IDENTITY 0x10 +#define PROT_Q931_IE_CALL_STATE 0x14 +#define PROT_Q931_IE_CHANNEL_ID 0x18 +#define PROT_Q931_IE_FACILITY 0x1c +#define PROT_Q931_IE_PROGRESS_IND 0x1e +#define PROT_Q931_IE_NETWORK_SPF_FACILITY 0x20 +#define PROT_Q931_IE_NOTIFICATION_IND 0x27 +#define PROT_Q931_IE_DISPLAY 0x28 +#define PROT_Q931_IE_DATE_TIME 0x29 +#define PROT_Q931_IE_KEYPAD_FACILITY 0x2c +#define PROT_Q931_IE_INFORMATION_REQUEST 0x32 +#define PROT_Q931_IE_SIGNAL 0x34 +#define PROT_Q931_IE_SWITCHOOK 0x36 +#define PROT_Q931_IE_GENERIC_DIGITS 0x37 +#define PROT_Q931_IE_FEATURE_ACT 0x38 +#define PROT_Q931_IE_FEATURE_IND 0x39 +#define PROT_Q931_IE_INFORMATION_RATE 0x40 +#define PROT_Q931_IE_END_TO_END_TRANSIT_DELAY 0x42 +#define PROT_Q931_IE_TRANSIT_DELAY_SELECT_IND 0x43 +#define PROT_Q931_IE_PACKET_LAYER_BINARY_PARAMS 0x44 +#define PROT_Q931_IE_PACKET_LAYER_WINDOW_SIZE 0x45 +#define PROT_Q931_IE_PACKET_LAYER_SIZE 0x46 +#define PROT_Q931_IE_CALLING_PARTY_NUMBER 0x6c +#define PROT_Q931_IE_CALLING_PARTY_SUBADDRESS 0x6d +#define PROT_Q931_IE_CALLED_PARTY_NUMBER 0x70 +#define PROT_Q931_IE_CALLED_PARTY_SUBADDRESS 0x71 +#define PROT_Q931_IE_REDIRECTING_NUMBER 0x74 +#define PROT_Q931_IE_REDIRECTION_NUMBER 0x76 +#define PROT_Q931_IE_TRANSIT_NETWORK_SELECTION 0x78 +#define PROT_Q931_IE_RESTART_IND 0x79 +#define PROT_Q931_IE_LOW_LAYER_COMPAT 0x7c +#define PROT_Q931_IE_HIGH_LAYER_COMPAT 0x7d +#define PROT_Q931_IE_USER_USER 0x7e +#define PROT_Q931_IE_SENDING_COMPLETE 0xa1 +#define PROT_Q931_IE_ESCAPE_FOR_EXTENSION 0x7f +#define PROT_Q931_IE_SENDING_COMPLETE 0xa1 + +#define NULL_CHAR 0 + + +struct code2str +{ + int code; + char text[MX_CODE_TXT_LEN]; +}; + +enum { + I_FRAME = 1, /* Information frame */ + S_FRAME, /* Supervisory frame */ + U_FRAME, /* Unnumbered frame */ +}; + +char ia5[16][8]={{NULL_CHAR,NULL_CHAR,' ','0','@','P','`','p'}, + {NULL_CHAR,NULL_CHAR,'!','1','A','Q','a','q'}, + {NULL_CHAR,NULL_CHAR,'"','2','B','R','b','r'}, + {NULL_CHAR,NULL_CHAR,'#','3','C','S','c','s'}, + {NULL_CHAR,NULL_CHAR,'$','4','D','T','d','t'}, + {NULL_CHAR,NULL_CHAR,'%','5','E','U','e','u'}, + {NULL_CHAR,NULL_CHAR,'&','6','F','V','f','v'}, + {NULL_CHAR,NULL_CHAR,'\'','7','G','W','g','w'}, + {NULL_CHAR,NULL_CHAR,'(','8','H','X','h','x'}, + {NULL_CHAR,NULL_CHAR,')','9','I','Y','i','y'}, + {NULL_CHAR,NULL_CHAR,'*',':','J','Z','j','z'}, + {NULL_CHAR,NULL_CHAR,'+',';','K','[','k','{'}, + {NULL_CHAR,NULL_CHAR,',','<','L','\\','l','|'}, + {NULL_CHAR,NULL_CHAR,'-','=','M',']','m','}'}, + {NULL_CHAR,NULL_CHAR,'.','>','N','^','n','~'}, + {NULL_CHAR,NULL_CHAR,'/','?','O','_','o',NULL_CHAR}}; + +/* Based on Table 4 - pg 15 of Q.921 Recommendation */ +struct code2str dcodQ921FrameFormatTable[] = { + {I_FRAME, "Information"}, + {S_FRAME, "Supervisory"}, + {U_FRAME, "Unnumbered"}, + {-1, "?"}, +}; + + +/* Based on Table 5 - pg 15 of Q.921 Recommendation */ +struct code2str dcodQ921SupervisoryCmdTable[] = { + {0, "RR - receive ready"}, + {1, "RNR - receive not ready"}, + {2, "REJ - reject"}, + {-1, "Unknown"}, +}; + +/* Based on Table 5 - pg 15 of Q.921 Recommendation */ +struct code2str dcodQ921UnnumberedCmdTable[] = { + {0x0F, "SABME - set async balanced mode extended"}, + {0x03, "DM - disconnected mode"}, + {0x00, "UI - unnumbered information"}, + {0x08, "DISC - disconnect"}, + {0x0C, "UA - unnumbered acknowledgement"}, + {0x11, "FRMR - frame reject"}, + {0x17, "XID - Exchange Identification)"}, + {-1, "Unknown"}, +}; + +struct code2str dcodQ931ProtDiscTable[] = { + {0x08, "Q.931/I.451"}, + {0x09, "Q.2931"}, + {-1, "Unknown"}, +}; + +struct code2str dcodQ931CallRefHiTable[] = { + {0, "0"}, + {16, "1"}, + {32, "2"}, + {48, "3"}, + {64, "4"}, + {80, "5"}, + {96, "6"}, + {112, "7"}, + {128, "8"}, + {144, "9"}, + {160, "A"}, + {176, "B"}, + {192, "C"}, + {208, "D"}, + {224, "E"}, + {240, "F"}, + {-1,"?"}, +}; + +struct code2str dcodQ931CallRefLoTable[] = { + {0, "0"}, + {1, "1"}, + {2, "2"}, + {3, "3"}, + {4, "4"}, + {5, "5"}, + {6, "6"}, + {7, "7"}, + {8, "8"}, + {9, "9"}, + {10, "A"}, + {11, "B"}, + {12, "C"}, + {13, "D"}, + {14, "E"}, + {15, "F"}, + {-1,"?"}, +}; + +struct code2str dcodQ931MsgTypeTable[] = { + {1, "Alerting"}, + {2, "Call Proceeding"}, + {3, "Progress"}, + {5, "Setup"}, + {7, "Connect"}, + {13, "Setup Ack"}, + {15, "Connect Ack"}, + {32, "User Info"}, + {33, "Suspend Rej"}, + {34, "Resume Rej"}, + {37, "Suspend"}, + {38, "Resume"}, + {45, "Suspend Ack"}, + {46, "Resume Ack"}, + {69, "Disconnect"}, + {70, "Restart"}, + {77, "Release"}, + {78, "Release Ack"}, + {90, "Release Compl"}, + {96, "Segment"}, + {98, "Facility"}, + {110, "Notify"}, + {117, "Status Enquiry"}, + {121, "Congest Cntrl"}, + {123, "Information"}, + {125, "Status"}, + {-1, "Unknown"}, +}; + +struct code2str dcodQ931CauseCodeTable[] = { + {1, "Unallocated (unassigned) number"}, + {2, "No route to specified network"}, + {3, "No route to destination"}, + {4, "Send special information tone"}, + {5, "Misdialed trunk prefix"}, + {6, "Channel Unacceptable"}, + {7, "Call awarded and channel established"}, + {8, "Pre-emption"}, + {9, "Pre-emption-circuit reserved"}, + {16, "Normal call clearing"}, + {17, "User Busy"}, + {18, "No User Responding"}, + {19, "No Answer from User"}, + {20, "Subscriber Absent"}, + {21, "Call Rejected"}, + {22, "Number Changed"}, + {26, "Non-Selected User Clearing"}, + {27, "Destination Out-of-Order"}, + {28, "Invalid Number Format"}, + {29, "Facility Rejected"}, + {30, "Response to Status Enquiry"}, + {31, "Normal, Unspecified"}, + {34, "No Circuit/Channel Available"}, + {38, "Network Out-of-Order"}, + {39, "Permanent Frame Mode OOS"}, + {40, "Permanent Frame Mode Operational"}, + {41, "Temporary Failure"}, + {42, "Switching Equipment Congestion"}, + {43, "Access Information Discarded"}, + {44, "Requested Circuit/Channel not available"}, + {47, "Resource Unavailable, Unspecified"}, + {49, "Quality of Service not available"}, + {50, "Requested facility not subscribed"}, + {53, "Outgoing calls barred within CUG"}, + {55, "Incoming calls barred within CUG"}, + {57, "Bearer capability not authorized"}, + {58, "Bearer capability not presently available"}, + {62, "Inconsistency in access inf and subscriber"}, + {63, "Service or Option not available"}, + {65, "Bearer capability not implemented"}, + {66, "Channel type not implemented"}, + {69, "Requested facility not implemented"}, + {70, "Only restricted digital BC available"}, + {79, "Service or option not implemented"}, + {81, "Invalid call reference value"}, + {82, "Identified channel does not exist"}, + {83, "Suspended call exists"}, + {84, "Call identity in use"}, + {85, "No call suspended"}, + {86, "Call already cleared"}, + {87, "User not member of CUG"}, + {88, "Incompatible destination"}, + {90, "Non existent CUG"}, + {91, "Invalid transit network selection"}, + {95, "Invalid message, unspecified"}, + {96, "Mandatory IE missing"}, + {97, "Message type non-existent, not implemented"}, + {98, "Message not compatible with call state"}, + {99, "An IE or parameter does not exist"}, + {100, "Invalid IE contents"}, + {101, "Message not compatible with call state"}, + {102, "Recovery on timer expired"}, + {103, "Parameter non-existent, not impl"}, + {110, "Message with unrecognized parameter"}, + {111, "Protocol error, unspecified"}, + {127, "Interworking, unspecified"}, + {-1, "Unknown"}, +}; + +struct code2str dcodQ931IEIDTable[] = { + {PROT_Q931_IE_SEGMENTED_MESSAGE, "Segmented Message"}, + {PROT_Q931_IE_BEARER_CAP, "Bearer Capability"}, + {PROT_Q931_IE_CAUSE, "Cause"}, + {PROT_Q931_IE_CALL_IDENTITY, "Call Identity"}, + {PROT_Q931_IE_CALL_STATE, "Call State"}, + {PROT_Q931_IE_CHANNEL_ID, "Channel Id"}, + {PROT_Q931_IE_FACILITY, "Facility"}, + {PROT_Q931_IE_PROGRESS_IND, "Progress Indicator"}, + {PROT_Q931_IE_NETWORK_SPF_FACILITY, "Network Specific Facilities"}, + {PROT_Q931_IE_NOTIFICATION_IND, "Notification Indicator"}, + {PROT_Q931_IE_DISPLAY, "Display"}, + {PROT_Q931_IE_DATE_TIME, "Date/Time"}, + {PROT_Q931_IE_KEYPAD_FACILITY, "Keypad Facility"}, + {PROT_Q931_IE_INFORMATION_REQUEST, "Information Request"}, + {PROT_Q931_IE_SIGNAL, "Signal"}, + {PROT_Q931_IE_SWITCHOOK, "Switchhook"}, + {PROT_Q931_IE_GENERIC_DIGITS, "Generic Digits"}, + {PROT_Q931_IE_FEATURE_ACT, "Feature Activation"}, + {PROT_Q931_IE_FEATURE_IND, "Feature Indication"}, + {PROT_Q931_IE_INFORMATION_RATE, "Information Rate"}, + {PROT_Q931_IE_END_TO_END_TRANSIT_DELAY, "End-to-end Transit Delay"}, + {PROT_Q931_IE_TRANSIT_DELAY_SELECT_IND, "Transit Delay Selection and Indication"}, + {PROT_Q931_IE_PACKET_LAYER_BINARY_PARAMS, "Packet layer binary parameters"}, + {PROT_Q931_IE_PACKET_LAYER_WINDOW_SIZE, "Packet layer Window Size"}, + {PROT_Q931_IE_PACKET_LAYER_SIZE, "Packet layer Size"}, + {PROT_Q931_IE_CALLING_PARTY_NUMBER, "Calling Party Number"}, + {PROT_Q931_IE_CALLING_PARTY_SUBADDRESS, "Calling Party Subaddress"}, + {PROT_Q931_IE_CALLED_PARTY_NUMBER, "Called Party Number"}, + {PROT_Q931_IE_CALLED_PARTY_SUBADDRESS, "Called Party Subaddress"}, + {PROT_Q931_IE_REDIRECTING_NUMBER, "Redirecting Number"}, + {PROT_Q931_IE_REDIRECTION_NUMBER, "Redirection Number"}, + {PROT_Q931_IE_TRANSIT_NETWORK_SELECTION, "Transit Network Selection"}, + {PROT_Q931_IE_RESTART_IND, "Restart Indicator"}, + {PROT_Q931_IE_LOW_LAYER_COMPAT, "Low-Layer Compatibility"}, + {PROT_Q931_IE_HIGH_LAYER_COMPAT, "High-Layer Compatibility"}, + {PROT_Q931_IE_USER_USER, "User-User"}, + {PROT_Q931_IE_SENDING_COMPLETE, "Sending complete"}, + {PROT_Q931_IE_ESCAPE_FOR_EXTENSION, "Escape for extension"}, + {-1,"Unknown"}, +}; + +struct code2str dcodQ931NumberingPlanTable[] = { + {0, "unknown"}, + {1, "isdn"}, + {3, "data"}, + {4, "telex"}, + {8, "national"}, + {9, "private"}, + {15, "reserved"}, + {-1, "invalid"}, +}; + +struct code2str dcodQ931TypeofNumberTable[] = { + {0, "unknown"}, + {1, "international"}, + {2, "national"}, + {3, "network spf"}, + {4, "subscriber"}, + {6, "abbreviated"}, + {7, "reserved"}, + {-1, "invalid" }, +}; + +struct code2str dcodQ931PresentationTable[] = { + {0, "allowed"}, + {1, "restricted"}, + {2, "not available"}, + {-1, "invalid" }, +}; + +struct code2str dcodQ931ScreeningTable[] = { + {0, "user, not screened"}, + {1, "user, passed"}, + {2, "user, failed"}, + {3, "network, provided"}, + {-1, "invalid" }, +}; + +struct code2str dcodQ931ReasonTable[] = { + {0x0, "Unknown"}, + {0x1, "Call forwarding busy"}, + {0x2, "Call forwarding no reply"}, + {0x4, "Call deflection"}, + {0x9, "Called DTE out of order"}, + {0xA, "Call forwarding by the called DTE"}, + {0xF, "Call forwarding unconditional"}, + {-1, "reserved" }, +}; + +struct code2str dcodQ931BcCodingStandardTable[] = { + {0x0, "ITU-T"}, + {0x1, "ISO/IEC"}, + {0x2, "National"}, + {0x3, "Defined standard"}, + {-1, "unknown"}, +}; + +struct code2str dcodQ931BcInfTransferCapTable[] = { + {0x00, "Speech"}, + {0x08, "Unrestricted digital"}, + {0x09, "Restricted digital"}, + {0x10, "3.1Khz audio"}, + {0x11, "Unrestricted digital w/ tones"}, + {0x18, "Video"}, + {-1, "reserved"}, +}; + +struct code2str dcodQ931BcInfTransferRateTable[] = { + {0x00, "n/a"}, /* for packet-mode calls */ + {0x10, "64 Kbit/s"}, + {0x11, "2x64 Kbit/s"}, + {0x13, "384 Kbit/s"}, + {0x15, "1536 Kbit/s"}, + {0x17, "1920 Kbit/s"}, + {0x18, "Multirate"}, + {-1, "reserved"}, +}; + + +struct code2str dcodQ931BcusrL1ProtTable[] = { + {0x01, "ITU-T rate/V.110/I.460/X.30"}, + {0x02, "G.711 u-Law"}, + {0x03, "G.711 A-Law"}, + {0x04, "G.721/I.460"}, + {0x05, "H.221/H.242"}, + {0x06, "H.223/H.245"}, + {0x07, "Non-ITU-T rate"}, + {0x08, "V.120"}, + {0x09, "X.31 HDLC"}, + {-1, "reserved"}, +}; + +struct code2str dcodQ931UuiProtDiscrTable[] = { + {0x00, "User-specific"}, + {0x01, "OSI high layer prot"}, + {0x02, "Recommendation X.244"}, + {0x03, "System management"}, + {0x04, "IA5 Chars"}, + {0x05, "X.208/X.209"}, + {0x07, "V.120"}, + {0x08, "Q.931/I.451"}, + {0x10, "X.25"}, + {-1,"reserved"}, +}; + +struct code2str dcodQ931ChanTypeTable[] = { + {0x3,"B-chans"}, + {0x6,"H0-chans"}, + {0x8,"H11-chans"}, + {0x9,"H12-chans"}, + {-1,"reserved"}, +}; + +struct code2str dcodQ931RestartIndClassTable[] = { + {0x0 ,"Indicated in channel IE"}, + {0x6 ,"Single interface"}, + {0x7 ,"All interfaces"}, + {-1, "reserved"}, +}; + +struct code2str dcodQ931IelocationTable[] = { + {0x0, "User"}, + {0x1, "Private network, local user"}, + {0x2, "Public network, local user"}, + {0x3, "Transit network"}, + {0x4, "Public network, remote user"}, + {0x5, "Private network, remote user"}, + {0xA, "Beyond interworking point"}, + {-1, "reserved"}, +}; + +struct code2str dcodQ931IeprogressDescrTable[] = { + {0x01, "Further info maybe available"}, + {0x02, "Destination is non-ISDN"}, + {0x03, "Origination address is non-ISDN"}, + {0x04, "Call returned to ISDN"}, + {0x08, "In-band data ready"}, + {-1, "reserved"}, +}; + +struct code2str dcodQ931IeFacilityProtProfileTable[] = { + {0x11, "Remote Operations Protocol"}, + {0x12, "CMIP Protocol"}, + {0x13, "ACSE Protocol"}, + {0x16, "GAT Protocol"}, + {0x1F, "Networking Extensions"}, + {-1, "reserved"}, +}; + +//from www.voip-info.org/wiki/ANI2 - NANPA +struct code2str dcodQ931LineInfoTable[] = { + {0, "Plain Old Telephone Service(POTS)" }, + {1, "Multiparty line"}, + {2, "ANI Failure"}, + {6, "Station Level Rating"}, + {7, "Special Operator Handling Required"}, + {20, "Automatic Identified Outward Dialing (AIOD)"}, + {23, "Coin or Non-coin"}, + {24, "Toll free service, POTS originated for non-pay station"}, + {25, "Toll free service, POTS originated for pay station"}, + {27, "Pay station with coin control"}, + {29, "Prison-Inmate service"}, + {30, "Intercept - blank"}, + {31, "Intercept - trouble"}, + {32, "Intercept - regular"}, + {34, "Telco operator handled call"}, + {52, "Outward Wide Area Telecommunications Service(OUTWATS)"}, + {60, "TRS call - from unrestricted line"}, + {61, "Cellular-Wireless PCS Type 1"}, + {62, "Cellular-Wireless PCS Type 2"}, + {63, "Cellular-Wireless PCS Type Roaming"}, + {66, "TRS call - from hotel/motel"}, + {67, "TRS call - from restricted line"}, + {70, "Line connected to pay station"}, + {93, "Private virtual network call"}, + {-1, "Unassigned"}, +}; + + +struct code2str dcodQ931GenDigitsEncodingTable[] = { + {0, "BCD even"}, + {1, "BCD odd"}, + {2, "IA5"}, + {3, "Binary"}, + {-1, "Invalid"}, +}; + + +struct code2str dcodQ931GenDigitsTypeTable[] = { + { 0, "Account Code"}, + { 1, "Auth Code"}, + { 2, "Customer ID" }, + { 3, "Universal Access"}, + { 4, "Info Digits"}, + { 5, "Callid"}, + { 6, "Opart"}, + { 7, "TCN"}, + { 9, "Adin"}, + {-1, "Invalid"}, +}; + +#endif /* __FTMOD_SANGOMA_ISDN_TRACE_H__ */ + From 6496db07b6dc40e87ffb04aadd0e40e59b05ac4e Mon Sep 17 00:00:00 2001 From: Michael S Collins Date: Wed, 30 Jun 2010 12:08:50 -0700 Subject: [PATCH 52/62] Change last references of 9999 to 9664 for MOH --- conf/dialplan/default.xml | 4 ++-- conf/ivr_menus/demo_ivr.xml | 2 +- conf/yaml/extensions.yaml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/conf/dialplan/default.xml b/conf/dialplan/default.xml index f5a8f24d1a..42c84added 100644 --- a/conf/dialplan/default.xml +++ b/conf/dialplan/default.xml @@ -397,7 +397,7 @@ - + @@ -412,7 +412,7 @@ - + diff --git a/conf/ivr_menus/demo_ivr.xml b/conf/ivr_menus/demo_ivr.xml index 5cb03ded93..d9aefaadb5 100644 --- a/conf/ivr_menus/demo_ivr.xml +++ b/conf/ivr_menus/demo_ivr.xml @@ -21,7 +21,7 @@ - + diff --git a/conf/yaml/extensions.yaml b/conf/yaml/extensions.yaml index d6ccdf0f65..f74fcf2e3d 100644 --- a/conf/yaml/extensions.yaml +++ b/conf/yaml/extensions.yaml @@ -1,4 +1,4 @@ default: - ${destination_number} =~ (9999): + ${destination_number} =~ (9664): set: foo=bar playback: ${hold_music} From 6eca1286aa5f2243ca0d5217f8808a627a7bfb78 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Wed, 30 Jun 2010 15:11:34 -0400 Subject: [PATCH 53/62] freetdm: add config profiles and sangoma isdn xml section --- libs/freetdm/mod_freetdm/mod_freetdm.c | 132 ++++++++++++++++++ .../ftmod_sangoma_isdn_stack_cntrl.c | 26 ++-- 2 files changed, 145 insertions(+), 13 deletions(-) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index 4d8f8b3d00..6224c7aea0 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -2266,6 +2266,47 @@ static ftdm_conf_node_t *get_ss7_config_node(switch_xml_t cfg, const char *confn return rootnode; } +static int add_profile_parameters(switch_xml_t cfg, const char *profname, ftdm_conf_parameter_t *parameters, int len) +{ + switch_xml_t profnode, profile, param; + int paramindex = 0; + + profnode = switch_xml_child(cfg, "config_profiles"); + if (!profnode) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "cannot find profile '%s', there is no 'config_profiles' XML section\n", profname); + return 0; + } + + /* search the profile */ + for (profile = switch_xml_child(profnode, "profile"); profile; profile = profile->next) { + char *name = (char *) switch_xml_attr(profile, "name"); + if (!name) { + continue; + } + if (!strcasecmp(name, profname)) { + break; + } + } + + if (!profile) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "failed to find profile '%s'\n", profname); + return 0; + } + + for (param = switch_xml_child(profile, "param"); param; param = param->next) { + char *var = (char *) switch_xml_attr_soft(param, "name"); + char *val = (char *) switch_xml_attr_soft(param, "value"); + if (!var || !val) { + continue; + } + parameters[paramindex].var = var; + parameters[paramindex].val = val; + paramindex++; + } + + return paramindex; +} + static switch_status_t load_config(void) { const char *cf = "freetdm.conf"; @@ -2303,6 +2344,97 @@ static switch_status_t load_config(void) } } + if ((spans = switch_xml_child(cfg, "sangoma_isdn_spans"))) { + for (myspan = switch_xml_child(spans, "span"); myspan; myspan = myspan->next) { + ftdm_status_t zstatus = FTDM_FAIL; + const char *context = "default"; + const char *dialplan = "XML"; + ftdm_conf_parameter_t spanparameters[30]; + char *id = (char *) switch_xml_attr(myspan, "id"); + char *name = (char *) switch_xml_attr(myspan, "name"); + char *configname = (char *) switch_xml_attr(myspan, "cfgprofile"); + ftdm_span_t *span = NULL; + uint32_t span_id = 0; + unsigned paramindex = 0; + + if (!name && !id) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "sangoma isdn span missing required attribute 'id' or 'name', skipping ...\n"); + continue; + } + + if (!configname) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "sangoma isdn span missing required attribute, skipping ...\n"); + continue; + } + + if (name) { + zstatus = ftdm_span_find_by_name(name, &span); + } else { + if (switch_is_number(id)) { + span_id = atoi(id); + zstatus = ftdm_span_find(span_id, &span); + } + + if (zstatus != FTDM_SUCCESS) { + zstatus = ftdm_span_find_by_name(id, &span); + } + } + + if (zstatus != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "Error finding FreeTDM span id:%s name:%s\n", switch_str_nil(id), switch_str_nil(name)); + continue; + } + + if (!span_id) { + span_id = ftdm_span_get_id(span); + } + + memset(spanparameters, 0, sizeof(spanparameters)); + paramindex = 0; + + if (configname) { + paramindex = add_profile_parameters(cfg, configname, spanparameters, ftdm_array_len(spanparameters)); + if (paramindex) { + ftdm_log(FTDM_LOG_DEBUG, "Added %d parameters from profile %s for span %d\n", paramindex, configname, span_id); + } + } + + for (param = switch_xml_child(myspan, "param"); param; param = param->next) { + char *var = (char *) switch_xml_attr_soft(param, "name"); + char *val = (char *) switch_xml_attr_soft(param, "value"); + + if (ftdm_array_len(spanparameters) == paramindex) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Too many parameters for ss7 span, ignoring any parameter after %s\n", var); + break; + } + + if (!strcasecmp(var, "context")) { + context = val; + } else if (!strcasecmp(var, "dialplan")) { + dialplan = val; + } else { + spanparameters[paramindex].var = var; + spanparameters[paramindex].val = val; + paramindex++; + } + } + + if (ftdm_configure_span_signaling(span, + "sangoma_isdn", + on_clear_channel_signal, + spanparameters) != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "Error configuring Sangoma ISDN FreeTDM span %d\n", span_id); + continue; + } + SPAN_CONFIG[span_id].span = span; + switch_copy_string(SPAN_CONFIG[span_id].context, context, sizeof(SPAN_CONFIG[span_id].context)); + switch_copy_string(SPAN_CONFIG[span_id].dialplan, dialplan, sizeof(SPAN_CONFIG[span_id].dialplan)); + switch_copy_string(SPAN_CONFIG[span_id].type, "Sangoma (ISDN)", sizeof(SPAN_CONFIG[span_id].type)); + ftdm_log(FTDM_LOG_DEBUG, "Configured Sangoma ISDN FreeTDM span %d\n", span_id); + ftdm_span_start(span); + } + } + switch_core_hash_init(&globals.ss7_configs, module_pool); if ((spans = switch_xml_child(cfg, "sangoma_ss7_spans"))) { for (myspan = switch_xml_child(spans, "span"); myspan; myspan = myspan->next) { diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c index ab2f1a38d9..d02314a82f 100644 --- a/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c +++ b/libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c @@ -37,11 +37,11 @@ void stack_resp_hdr_init(Header *hdr); -ftdm_status_t sng_isdn_cntrl_phy(ftdm_span_t *span); -ftdm_status_t sng_isdn_cntrl_q921(ftdm_span_t *span); -ftdm_status_t sng_isdn_cntrl_q931(ftdm_span_t *span); -ftdm_status_t sng_isdn_cntrl_cc(ftdm_span_t *span); -ftdm_status_t sng_isdn_cntrl_trace(ftdm_span_t *span, sngisdn_tracetype_t trace_opt); +ftdm_status_t sng_isdn_activate_phy(ftdm_span_t *span); +ftdm_status_t sng_isdn_activate_q921(ftdm_span_t *span); +ftdm_status_t sng_isdn_activate_q931(ftdm_span_t *span); +ftdm_status_t sng_isdn_activate_cc(ftdm_span_t *span); +ftdm_status_t sng_isdn_activate_trace(ftdm_span_t *span, sngisdn_tracetype_t trace_opt); ftdm_status_t sng_isdn_cntrl_q931(ftdm_span_t *span, uint8_t action, uint8_t subaction); ftdm_status_t sng_isdn_cntrl_q921(ftdm_span_t *span, uint8_t action, uint8_t subaction); @@ -53,21 +53,21 @@ ftdm_status_t sng_isdn_stack_activate(ftdm_span_t *span) { sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; - if (sng_isdn_cntrl_q921(span) != FTDM_SUCCESS) { + if (sng_isdn_activate_q921(span) != FTDM_SUCCESS) { ftdm_log(FTDM_LOG_CRIT, "%s:Failed to activate stack q921\n", span->name); return FTDM_FAIL; } ftdm_log(FTDM_LOG_DEBUG, "%s:Stack q921 activated\n", span->name); if (!g_sngisdn_data.ccs[signal_data->cc_id].activation_done) { g_sngisdn_data.ccs[signal_data->cc_id].activation_done = 1; - if (sng_isdn_cntrl_cc(span) != FTDM_SUCCESS) { + if (sng_isdn_activate_cc(span) != FTDM_SUCCESS) { ftdm_log(FTDM_LOG_CRIT, "%s:Failed to activate stack CC\n", span->name); return FTDM_FAIL; } ftdm_log(FTDM_LOG_DEBUG, "%s:Stack CC activated\n", span->name); } - if (sng_isdn_cntrl_q931(span) != FTDM_SUCCESS) { + if (sng_isdn_activate_q931(span) != FTDM_SUCCESS) { ftdm_log(FTDM_LOG_CRIT, "%s:Failed to activate stack q931\n", span->name); return FTDM_FAIL; } @@ -78,7 +78,7 @@ ftdm_status_t sng_isdn_stack_activate(ftdm_span_t *span) } -ftdm_status_t sng_isdn_cntrl_phy(ftdm_span_t *span) +ftdm_status_t sng_isdn_activate_phy(ftdm_span_t *span) { L1Mngmt cntrl; Pst pst; @@ -92,7 +92,7 @@ ftdm_status_t sng_isdn_cntrl_phy(ftdm_span_t *span) } -ftdm_status_t sng_isdn_cntrl_q921(ftdm_span_t *span) +ftdm_status_t sng_isdn_activate_q921(ftdm_span_t *span) { ftdm_status_t status; status = sng_isdn_cntrl_q921(span, ABND_ENA, NOTUSED); @@ -109,13 +109,13 @@ ftdm_status_t sng_isdn_cntrl_q921(ftdm_span_t *span) return status; } -ftdm_status_t sng_isdn_cntrl_q931(ftdm_span_t *span) +ftdm_status_t sng_isdn_activate_q931(ftdm_span_t *span) { /* TODO: remove this function later, just call sng_isdn_cntrl_q931 directly */ return sng_isdn_cntrl_q931(span, ABND_ENA, SAELMNT); } -ftdm_status_t sng_isdn_cntrl_cc(ftdm_span_t *span) +ftdm_status_t sng_isdn_activate_cc(ftdm_span_t *span) { CcMngmt cntrl;; Pst pst; @@ -149,7 +149,7 @@ ftdm_status_t sng_isdn_cntrl_cc(ftdm_span_t *span) return FTDM_SUCCESS; } -ftdm_status_t sng_isdn_cntrl_trace(ftdm_span_t *span, sngisdn_tracetype_t trace_opt) +ftdm_status_t sng_isdn_activate_trace(ftdm_span_t *span, sngisdn_tracetype_t trace_opt) { sngisdn_span_data_t *signal_data = (sngisdn_span_data_t*)span->signal_data; switch (trace_opt) { From 84f2249eccbd4558cfcd75e98cd11dcd0dc3ba79 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Wed, 30 Jun 2010 15:39:02 -0400 Subject: [PATCH 54/62] freetdm: make array len macro public --- libs/freetdm/src/include/ftdm_os.h | 3 +++ libs/freetdm/src/include/private/ftdm_core.h | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/freetdm/src/include/ftdm_os.h b/libs/freetdm/src/include/ftdm_os.h index 8308e70705..5026bb7236 100644 --- a/libs/freetdm/src/include/ftdm_os.h +++ b/libs/freetdm/src/include/ftdm_os.h @@ -67,6 +67,9 @@ extern "C" { /*! \brief check for zero length string buffer */ #define ftdm_strlen_zero_buf(s) (*s == '\0') +/*! \brief array len helper */ +#define ftdm_array_len(array) sizeof(array)/sizeof(array[0]) + /*! \brief The memory handler. Do not use directly this variable, use the memory macros and ftdm_global_set_memory_handler to override */ FT_DECLARE_DATA extern ftdm_memory_handler_t g_ftdm_mem_handler; diff --git a/libs/freetdm/src/include/private/ftdm_core.h b/libs/freetdm/src/include/private/ftdm_core.h index 560f0c4184..77e0e29587 100644 --- a/libs/freetdm/src/include/private/ftdm_core.h +++ b/libs/freetdm/src/include/private/ftdm_core.h @@ -589,8 +589,6 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_queue_dtmf(ftdm_channel_t *ftdmchan, cons */ #define ftdm_socket_close(it) if (it > -1) { close(it); it = -1;} -#define ftdm_array_len(array) sizeof(array)/sizeof(array[0]) - #define ftdm_channel_lock(chan) ftdm_mutex_lock(chan->mutex) #define ftdm_channel_unlock(chan) ftdm_mutex_unlock(chan->mutex) #define ftdm_log_chan_ex(fchan, file, func, line, level, format, ...) ftdm_log(file, func, line, level, "[s%dc%d][%d:%d] " format, fchan->span_id, fchan->chan_id, fchan->physical_span_id, fchan->physical_chan_id, __VA_ARGS__) From 09bd04734c3d084bdc1c27332ff9754eb120916b Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 16:24:55 -0500 Subject: [PATCH 55/62] prune check --- src/switch_core_sqldb.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 2e16c9cf5e..14652e3d62 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -225,6 +225,7 @@ SWITCH_DECLARE(void) switch_cache_db_detach(void) void *val; char *key; switch_cache_db_handle_t *dbh = NULL; + int prune = 0; snprintf(thread_str, sizeof(thread_str) - 1, "%lu", (unsigned long) (intptr_t) switch_thread_self()); switch_mutex_lock(sql_manager.dbh_mutex); @@ -237,6 +238,7 @@ SWITCH_DECLARE(void) switch_cache_db_detach(void) if (strstr(dbh->name, thread_str)) { if (dbh->type == SCDB_TYPE_CORE_DB) { switch_set_flag(dbh, CDF_PRUNE); + prune++; } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG10, "Detach cached DB handle %s [%s]\n", thread_str, switch_cache_db_type_name(dbh->type)); @@ -249,6 +251,11 @@ SWITCH_DECLARE(void) switch_cache_db_detach(void) } switch_mutex_unlock(sql_manager.dbh_mutex); + + if (prune) { + sql_close(switch_epoch_time_now(NULL)); + } + } SWITCH_DECLARE(switch_status_t) _switch_cache_db_get_db_handle(switch_cache_db_handle_t **dbh, From 9c7fb0d4ca39e49800a4c852c7fe9c1566bc4801 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 20:09:06 -0500 Subject: [PATCH 56/62] support stacked [] pairs in origiante --- src/switch_ivr_originate.c | 64 +++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index e7d4badd02..1edc491be5 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -2223,7 +2223,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } if (cid_name_override) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_name", cid_name_override); + if (!cid_tmp) { + switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_name", cid_name_override); + } } else { cid_name_override = switch_event_get_header(var_event, "origination_caller_id_name"); } @@ -2233,7 +2235,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } if (cid_num_override) { - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_number", cid_num_override); + if (!cid_tmp) { + switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_caller_id_number", cid_num_override); + } } else { cid_num_override = switch_event_get_header(var_event, "origination_caller_id_number"); } @@ -2309,7 +2313,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } if (p == end) { - end = NULL; + end = strchr(p, '['); } p++; @@ -2327,8 +2331,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess const char *current_variable; char variable_buffer[512] = ""; switch_event_t *local_var_event = NULL, *originate_var_event = NULL, *event = NULL; + char *check_a = NULL, *check_b = NULL; end = NULL; + chan_type = peer_names[i]; while (chan_type && *chan_type && *chan_type == ' ') { @@ -2338,6 +2344,16 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess vdata = chan_type; end = switch_find_end_paren(vdata, '[', ']'); + check_a = end; + + while (check_a && (check_b = strchr(check_a, '['))) { + if ((check_b = switch_find_end_paren(check_b, '[', ']'))) { + check_a = check_b; + } + } + + if (check_a) end = check_a; + if (end) { vdata++; *end++ = '\0'; @@ -2525,20 +2541,44 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess if (vdata) { char *var_array[1024] = { 0 }; int var_count = 0; + char *next; + switch_event_create_plain(&local_var_event, SWITCH_EVENT_CHANNEL_DATA); + + + for (;;) { + if ((next = strchr(vdata, ']'))) { + char *pnext; + *next++ = '\0'; - if ((var_count = switch_separate_string(vdata, '|', var_array, (sizeof(var_array) / sizeof(var_array[0]))))) { - int x = 0; - for (x = 0; x < var_count; x++) { - char *inner_var_array[2] = { 0 }; - int inner_var_count; - if ((inner_var_count = - switch_separate_string(var_array[x], '=', - inner_var_array, (sizeof(inner_var_array) / sizeof(inner_var_array[0])))) == 2) { - switch_event_add_header_string(local_var_event, SWITCH_STACK_BOTTOM, inner_var_array[0], inner_var_array[1]); + if ((pnext = strchr(next, '['))) { + next = pnext + 1; } } + + if ((var_count = switch_separate_string(vdata, '|', var_array, (sizeof(var_array) / sizeof(var_array[0]))))) { + int x = 0; + for (x = 0; x < var_count; x++) { + char *inner_var_array[2] = { 0 }; + int inner_var_count; + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "local variable string %d = [%s]\n", + x, var_array[x]); + if ((inner_var_count = + switch_separate_string(var_array[x], '=', + inner_var_array, (sizeof(inner_var_array) / sizeof(inner_var_array[0])))) == 2) { + switch_event_add_header_string(local_var_event, SWITCH_STACK_BOTTOM, inner_var_array[0], inner_var_array[1]); + + } + } + } + + if (next) { + vdata = next; + } else { + break; + } + } } From 462e62547e74ba93806fabfe032353ecfca798b6 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 20:41:21 -0500 Subject: [PATCH 57/62] add new util function to parse of vars in parens from strings --- src/include/switch_event.h | 1 + src/switch_event.c | 79 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/src/include/switch_event.h b/src/include/switch_event.h index d5438b28ed..1864e397e6 100644 --- a/src/include/switch_event.h +++ b/src/include/switch_event.h @@ -285,6 +285,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_free_subclass_detailed(const char * SWITCH_DECLARE(switch_status_t) switch_event_serialize(switch_event_t *event, char **str, switch_bool_t encode); SWITCH_DECLARE(switch_status_t) switch_event_serialize_json(switch_event_t *event, char **str); SWITCH_DECLARE(switch_status_t) switch_event_create_json(switch_event_t **event, const char *json); +SWITCH_DECLARE(switch_status_t) switch_event_create_brackets(char *data, char a, char b, char c, switch_event_t **event, char **new_data); #ifndef SWIG /*! diff --git a/src/switch_event.c b/src/switch_event.c index c5b22f8868..130032c0ed 100644 --- a/src/switch_event.c +++ b/src/switch_event.c @@ -1047,6 +1047,85 @@ SWITCH_DECLARE(switch_status_t) switch_event_serialize(switch_event_t *event, ch return SWITCH_STATUS_SUCCESS; } + +SWITCH_DECLARE(switch_status_t) switch_event_create_brackets(char *data, char a, char b, char c, switch_event_t **event, char **new_data) +{ + char *vdata, *vdatap; + char *end, *check_a, *check_b; + switch_event_t *e = *event; + char *var_array[1024] = { 0 }; + int var_count = 0; + char *next; + + vdata = strdup(data); + vdatap = vdata; + + end = switch_find_end_paren(vdata, a, b); + + check_a = end; + + while (check_a && (check_b = strchr(check_a, a))) { + if ((check_b = switch_find_end_paren(check_b, a, b))) { + check_a = check_b; + } + } + + if (check_a) end = check_a; + + if (end) { + vdata++; + *end++ = '\0'; + } else { + vdata = NULL; + return SWITCH_STATUS_FALSE; + } + + if (!e) { + switch_event_create_plain(&e, SWITCH_EVENT_CHANNEL_DATA); + } + + + for (;;) { + if ((next = strchr(vdata, b))) { + char *pnext; + *next++ = '\0'; + + if ((pnext = strchr(next, a))) { + next = pnext + 1; + } + } + + if ((var_count = switch_separate_string(vdata, c, var_array, (sizeof(var_array) / sizeof(var_array[0]))))) { + int x = 0; + for (x = 0; x < var_count; x++) { + char *inner_var_array[2] = { 0 }; + int inner_var_count; + + if ((inner_var_count = switch_separate_string(var_array[x], '=', + inner_var_array, (sizeof(inner_var_array) / sizeof(inner_var_array[0])))) == 2) { + switch_event_add_header_string(e, SWITCH_STACK_BOTTOM, inner_var_array[0], inner_var_array[1]); + } + } + } + + if (next) { + vdata = next; + } else { + break; + } + + } + + *event = e; + *new_data = strdup(end); + free(vdatap); + + return SWITCH_STATUS_SUCCESS; + +} + + + SWITCH_DECLARE(switch_status_t) switch_event_create_json(switch_event_t **event, const char *json) { switch_event_t *new_event; From 5b11c81731b7d1f49e9f75787d99df025e465d0a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 21:32:17 -0500 Subject: [PATCH 58/62] fix sql stmt --- src/switch_core_sqldb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 14652e3d62..678e352a2e 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -1153,7 +1153,10 @@ static void core_event_handler(switch_event_t *event) new_sql() = switch_mprintf("update channels set call_uuid='%q' where uuid='%s' and hostname='%q'", switch_event_get_header_nil(event, "channel-call-uuid"), switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); - new_sql() = switch_mprintf("insert into calls values ('%s', '%s', '%ld', '%s','%q','%q','%q','%q','%s','%q','%q','%q','%q','%s','%q')", + new_sql() = switch_mprintf("insert into calls (cal_uuid,call_created,call_created_epoch,function,caller_cid_name," + "caller_cid_num,caller_dest_num,caller_chan_name,caller_uuid,callee_cid_name," + "callee_cid_num,callee_dest_num,callee_chan_name,callee_uuid,hostname) " + "values ('%s', '%s', '%ld', '%s','%q','%q','%q','%q','%s','%q','%q','%q','%q','%s','%q')", switch_event_get_header_nil(event, "channel-call-uuid"), switch_event_get_header_nil(event, "event-date-local"), (long) switch_epoch_time_now(NULL), From 7f9beb96cc173ab05377d70156aebf874e185d3a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 21:46:38 -0500 Subject: [PATCH 59/62] revamp fifo with a ringall strategy so you can see the stupid callers' caller id .... --- src/mod/applications/mod_fifo/mod_fifo.c | 706 ++++++++++++++++++++--- 1 file changed, 633 insertions(+), 73 deletions(-) diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index 52a922644e..bc6159172d 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -39,11 +39,203 @@ SWITCH_MODULE_DEFINITION(mod_fifo, mod_fifo_load, mod_fifo_shutdown, NULL); static switch_status_t load_config(int reload, int del_all); #define MAX_PRI 10 +typedef enum { + NODE_STRATEGY_INVALID = -1, + NODE_STRATEGY_RINGALL = 0, + NODE_STRATEGY_ENTERPRISE +} outbound_strategy_t; + +static outbound_strategy_t default_strategy = NODE_STRATEGY_ENTERPRISE; + + +typedef struct { + int nelm; + int idx; + switch_event_t **data; + switch_memory_pool_t *pool; + switch_mutex_t *mutex; +} fifo_queue_t; + +switch_status_t fifo_queue_create(fifo_queue_t **queue, int size, switch_memory_pool_t *pool) +{ + fifo_queue_t *q; + + q = switch_core_alloc(pool, sizeof(*q)); + q->pool = pool; + q->nelm = size - 1; + q->data = switch_core_alloc(pool, size * sizeof(switch_event_t *)); + switch_mutex_init(&q->mutex, SWITCH_MUTEX_NESTED, pool); + + *queue = q; + + return SWITCH_STATUS_SUCCESS; +} + + +static void change_pos(switch_event_t *event, int pos) +{ + const char *uuid = switch_event_get_header(event, "unique-id"); + switch_core_session_t *session; + switch_channel_t *channel; + char tmp[30] = ""; + + if (zstr(uuid)) return; + + if (!(session = switch_core_session_locate(uuid))) { + return; + } + + channel = switch_core_session_get_channel(session); + + switch_snprintf(tmp, sizeof(tmp), "%d", pos); + switch_channel_set_variable(channel, "fifo_position", tmp); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "fifo_position", tmp); + + switch_core_session_rwunlock(session); + + +} + +static switch_status_t fifo_queue_push(fifo_queue_t *queue, switch_event_t *ptr) +{ + switch_mutex_lock(queue->mutex); + + if (queue->idx == queue->nelm) { + switch_mutex_unlock(queue->mutex); + return SWITCH_STATUS_FALSE; + } + + queue->data[queue->idx++] = ptr; + + + switch_mutex_unlock(queue->mutex); + + return SWITCH_STATUS_SUCCESS; + +} + +static int fifo_queue_size(fifo_queue_t *queue) +{ + int s; + switch_mutex_lock(queue->mutex); + s = queue->idx; + switch_mutex_unlock(queue->mutex); + + return s; +} + +static switch_status_t fifo_queue_pop(fifo_queue_t *queue, switch_event_t **pop, switch_bool_t remove) +{ + int i; + + switch_mutex_lock(queue->mutex); + + if (queue->idx == 0) { + switch_mutex_unlock(queue->mutex); + *pop = NULL; + return SWITCH_STATUS_FALSE; + } + + *pop = queue->data[0]; + + if (remove) { + for (i = 1; i < queue->idx; i++) { + queue->data[i-1] = queue->data[i]; + queue->data[i] = NULL; + change_pos(queue->data[i-1], i); + } + + queue->idx--; + } + + switch_mutex_unlock(queue->mutex); + + return SWITCH_STATUS_SUCCESS; + +} + + +static switch_status_t fifo_queue_pop_nameval(fifo_queue_t *queue, const char *name, const char *val, switch_event_t **pop, switch_bool_t remove) +{ + int i, j; + + switch_mutex_lock(queue->mutex); + + if (queue->idx == 0 || zstr(name) || zstr(val)) { + switch_mutex_unlock(queue->mutex); + return SWITCH_STATUS_FALSE; + } + + for (j = 0; j < queue->idx; j++) { + const char *j_val = switch_event_get_header(queue->data[j], name); + if (j_val && val && !strcmp(j_val, val)) { + *pop = queue->data[j]; + break; + } + } + + if (j == queue->idx) { + switch_mutex_unlock(queue->mutex); + return SWITCH_STATUS_FALSE; + } + + if (remove) { + for (i = j+1; i < queue->idx; i++) { + queue->data[i-1] = queue->data[i]; + queue->data[i] = NULL; + change_pos(queue->data[i-1], i); + } + + queue->idx--; + } + + switch_mutex_unlock(queue->mutex); + + return SWITCH_STATUS_SUCCESS; +} + + +static switch_status_t fifo_queue_popfly(fifo_queue_t *queue, const char *uuid) +{ + int i, j; + + switch_mutex_lock(queue->mutex); + + if (queue->idx == 0 || zstr(uuid)) { + switch_mutex_unlock(queue->mutex); + return SWITCH_STATUS_FALSE; + } + + for (j = 0; j < queue->idx; j++) { + const char *j_uuid = switch_event_get_header(queue->data[j], "unique-id"); + if (j_uuid && !strcmp(j_uuid, uuid)) break; + } + + if (j == queue->idx) { + switch_mutex_unlock(queue->mutex); + return SWITCH_STATUS_FALSE; + } + + for (i = j+1; i < queue->idx; i++) { + queue->data[i-1] = queue->data[i]; + queue->data[i] = NULL; + change_pos(queue->data[i-1], i); + } + + queue->idx--; + + switch_mutex_unlock(queue->mutex); + + return SWITCH_STATUS_SUCCESS; + +} + + + struct fifo_node { char *name; switch_mutex_t *mutex; - switch_queue_t *fifo_list[MAX_PRI]; - switch_hash_t *caller_hash; + fifo_queue_t *fifo_list[MAX_PRI]; switch_hash_t *consumer_hash; int caller_count; int consumer_count; @@ -54,7 +246,9 @@ struct fifo_node { switch_memory_pool_t *pool; int has_outbound; int ready; + int busy; int is_static; + outbound_strategy_t outbound_strategy; }; typedef struct fifo_node fifo_node_t; @@ -66,6 +260,33 @@ struct callback { }; typedef struct callback callback_t; +static const char *strat_parse(outbound_strategy_t s) +{ + switch (s) { + case NODE_STRATEGY_RINGALL: + return "ringall"; + case NODE_STRATEGY_ENTERPRISE: + return "enterprise"; + default: + break; + } + + return "invalid"; +} + +static outbound_strategy_t parse_strat(const char *name) +{ + if (!strcasecmp(name, "ringall")) { + return NODE_STRATEGY_RINGALL; + } + + if (!strcasecmp(name, "enterprise")) { + return NODE_STRATEGY_ENTERPRISE; + } + + return NODE_STRATEGY_INVALID; +} + static int sql2str_callback(void *pArg, int argc, char **argv, char **columnNames) { callback_t *cbt = (callback_t *) pArg; @@ -161,7 +382,7 @@ static int node_consumer_wait_count(fifo_node_t *node) int i, len = 0; for (i = 0; i < MAX_PRI; i++) { - len += switch_queue_size(node->fifo_list[i]); + len += fifo_queue_size(node->fifo_list[i]); } return len; @@ -169,24 +390,10 @@ static int node_consumer_wait_count(fifo_node_t *node) static void node_remove_uuid(fifo_node_t *node, const char *uuid) { - int i, len = 0, done = 0; - void *pop = NULL; + int i = 0; for (i = 0; i < MAX_PRI; i++) { - if (!(len = switch_queue_size(node->fifo_list[i]))) { - continue; - } - while (len) { - if (switch_queue_trypop(node->fifo_list[i], &pop) == SWITCH_STATUS_SUCCESS && pop) { - if (!done && !strcmp((char *) pop, uuid)) { - free(pop); - done++; - } else { - switch_queue_push(node->fifo_list[i], pop); - } - } - len--; - } + fifo_queue_popfly(node->fifo_list[i], uuid); } if (!node_consumer_wait_count(node)) { @@ -265,7 +472,7 @@ static switch_status_t consumer_read_frame_callback(switch_core_session_t *sessi break; } for (x = 0; x < MAX_PRI; x++) { - total += switch_queue_size(node->fifo_list[x]); + total += fifo_queue_size(node->fifo_list[x]); } } @@ -303,13 +510,15 @@ switch_cache_db_handle_t *fifo_get_db_handle(void) options.odbc_options.user = globals.odbc_user; options.odbc_options.pass = globals.odbc_pass; - if (switch_cache_db_get_db_handle(&dbh, SCDB_TYPE_ODBC, &options) != SWITCH_STATUS_SUCCESS) + if (switch_cache_db_get_db_handle(&dbh, SCDB_TYPE_ODBC, &options) != SWITCH_STATUS_SUCCESS) { dbh = NULL; + } return dbh; } else { options.core_db_options.db_path = globals.dbname; - if (switch_cache_db_get_db_handle(&dbh, SCDB_TYPE_CORE_DB, &options) != SWITCH_STATUS_SUCCESS) + if (switch_cache_db_get_db_handle(&dbh, SCDB_TYPE_CORE_DB, &options) != SWITCH_STATUS_SUCCESS) { dbh = NULL; + } return dbh; } } @@ -392,13 +601,13 @@ static fifo_node_t *create_node(const char *name, uint32_t importance, switch_mu node = switch_core_alloc(pool, sizeof(*node)); node->pool = pool; - + node->outbound_strategy = default_strategy; node->name = switch_core_strdup(node->pool, name); for (x = 0; x < MAX_PRI; x++) { - switch_queue_create(&node->fifo_list[x], SWITCH_CORE_QUEUE_LEN, node->pool); + fifo_queue_create(&node->fifo_list[x], SWITCH_CORE_QUEUE_LEN, node->pool); switch_assert(node->fifo_list[x]); } - switch_core_hash_init(&node->caller_hash, node->pool); + switch_core_hash_init(&node->consumer_hash, node->pool); switch_thread_rwlock_create(&node->rwlock, node->pool); switch_mutex_init(&node->mutex, SWITCH_MUTEX_NESTED, node->pool); @@ -471,6 +680,179 @@ struct call_helper { switch_memory_pool_t *pool; }; +#define MAX_ROWS 2048 +struct callback_helper { + int need; + switch_memory_pool_t *pool; + struct call_helper *rows[MAX_ROWS]; + int rowcount; +}; + + + +static void *SWITCH_THREAD_FUNC ringall_thread_run(switch_thread_t *thread, void *obj) +{ + struct callback_helper *cbh = (struct callback_helper *) obj; + char *node_name; + int i = 0; + int timeout = 0; + char sql[256] = ""; + switch_stream_handle_t stream = { 0 }; + fifo_node_t *node = NULL; + char *originate_string; + switch_event_t *ovars = NULL; + switch_status_t status; + switch_core_session_t *session = NULL; + switch_call_cause_t cause = SWITCH_CAUSE_NONE; + char *app_name = NULL, *arg = NULL; + switch_caller_extension_t *extension = NULL; + switch_channel_t *channel; + char *cid_name = NULL, *cid_num = NULL, *id = NULL; + switch_event_t *pop = NULL; + fifo_queue_t *q = NULL; + int x = 0; + + if (!cbh->rowcount) { + goto end; + } + + node_name = cbh->rows[0]->node_name; + + switch_mutex_lock(globals.mutex); + node = switch_core_hash_find(globals.fifo_hash, node_name); + switch_mutex_unlock(globals.mutex); + + if (node) { + switch_mutex_lock(node->mutex); + node->busy = 1; + node->ring_consumer_count++; + switch_mutex_unlock(node->mutex); + } else { + goto end; + } + + SWITCH_STANDARD_STREAM(stream); + + switch_event_create(&ovars, SWITCH_EVENT_REQUEST_PARAMS); + switch_assert(ovars); + + + for (i = 0; i < cbh->rowcount; i++) { + struct call_helper *h = cbh->rows[i]; + char *parsed = NULL; + + switch_event_create_brackets(h->originate_string, '{', '}', ',', &ovars, &parsed); + + if (!h->timeout) h->timeout = 60; + if (timeout < h->timeout) timeout = h->timeout; + + stream.write_function(&stream, "[leg_timeout=%d,fifo_outbound_uuid=%s]%s,", h->timeout, h->uuid, parsed ? parsed : h->originate_string); + switch_safe_free(parsed); + + switch_snprintf(sql, sizeof(sql), "update fifo_outbound set use_count=use_count+1 where uuid='%s'", h->uuid); + fifo_execute_sql(sql, globals.sql_mutex); + } + + + originate_string = (char *) stream.data; + + if (originate_string) { + end_of(originate_string) = '\0'; + } + + if (!timeout) timeout = 60; + + for (x = 0; x < MAX_PRI; x++) { + q = node->fifo_list[x]; + switch_mutex_lock(q->mutex); + + if (fifo_queue_pop_nameval(q, "variable_fifo_vip", "true", &pop, SWITCH_FALSE) == SWITCH_STATUS_SUCCESS && pop) { + goto found; + } + switch_mutex_unlock(q->mutex); + q = NULL; + } + + if (!pop) { + for (x = 0; x < MAX_PRI; x++) { + q = node->fifo_list[x]; + switch_mutex_lock(q->mutex); + + if (fifo_queue_pop(node->fifo_list[x], &pop, SWITCH_FALSE) == SWITCH_STATUS_SUCCESS && pop) { + goto found; + } + } + switch_mutex_unlock(q->mutex); + q = NULL; + } + + found: + + + if (!q) goto end; + + if (!pop) { + if (q) switch_mutex_unlock(q->mutex); + goto end; + } + + if ((cid_name = switch_event_get_header(pop, "caller-caller-id-name"))) { + switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "origination_caller_id_name", cid_name); + } + + if ((cid_num = switch_event_get_header(pop, "caller-caller-id-number"))) { + switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "origination_caller_id_number", cid_num); + } + + if ((id = switch_event_get_header(pop, "unique-id"))) { + switch_event_add_header_string(ovars, SWITCH_STACK_BOTTOM, "fifo_bridge_uuid", id); + } + + switch_mutex_unlock(q->mutex); + + status = switch_ivr_originate(NULL, &session, &cause, originate_string, timeout, NULL, NULL, NULL, NULL, ovars, SOF_NONE, NULL); + free(originate_string); + + if (status != SWITCH_STATUS_SUCCESS) { + for (i = 0; i < cbh->rowcount; i++) { + struct call_helper *h = cbh->rows[i]; + switch_snprintf(sql, sizeof(sql), + "update fifo_outbound set use_count=use_count-1, outbound_fail_count=outbound_fail_count+1, next_avail=%ld + lag where uuid='%s'", + (long) switch_epoch_time_now(NULL), h->uuid); + fifo_execute_sql(sql, globals.sql_mutex); + } + goto end; + } + + channel = switch_core_session_get_channel(session); + switch_channel_set_variable(channel, "fifo_pop_order", NULL); + + switch_core_event_hook_add_state_change(session, hanguphook); + app_name = "fifo"; + arg = switch_core_session_sprintf(session, "%s out wait", node_name); + extension = switch_caller_extension_new(session, app_name, arg); + switch_caller_extension_add_application(session, extension, app_name, arg); + switch_channel_set_caller_extension(channel, extension); + switch_channel_set_state(channel, CS_EXECUTE); + switch_core_session_rwunlock(session); + + end: + + switch_event_destroy(&ovars); + if (node) { + switch_mutex_lock(node->mutex); + if (node->ring_consumer_count-- < 0) { + node->ring_consumer_count = 0; + } + node->busy = 0; + switch_mutex_unlock(node->mutex); + } + + switch_core_destroy_memory_pool(&cbh->pool); + + return NULL; +} + static void *SWITCH_THREAD_FUNC o_thread_run(switch_thread_t *thread, void *obj) { struct call_helper *h = (struct call_helper *) obj; @@ -565,7 +947,29 @@ static void *SWITCH_THREAD_FUNC o_thread_run(switch_thread_t *thread, void *obj) return NULL; } -static int place_call_callback(void *pArg, int argc, char **argv, char **columnNames) +static int place_call_ringall_callback(void *pArg, int argc, char **argv, char **columnNames) +{ + struct callback_helper *cbh = (struct callback_helper *) pArg; + struct call_helper *h; + + h = switch_core_alloc(cbh->pool, sizeof(*h)); + h->pool = cbh->pool; + h->uuid = switch_core_strdup(h->pool, argv[0]); + h->node_name = switch_core_strdup(h->pool, argv[1]); + h->originate_string = switch_core_strdup(h->pool, argv[2]); + h->timeout = atoi(argv[5]); + + cbh->rows[cbh->rowcount++] = h; + + cbh->need--; + + if (cbh->rowcount == MAX_ROWS) return -1; + + return cbh->need ? 0 : -1; + +} + +static int place_call_enterprise_callback(void *pArg, int argc, char **argv, char **columnNames) { int *need = (int *) pArg; @@ -596,18 +1000,50 @@ static int place_call_callback(void *pArg, int argc, char **argv, char **columnN static void find_consumers(fifo_node_t *node) { - int need = node_consumer_wait_count(node); char *sql; + + sql = switch_mprintf("select uuid, fifo_name, originate_string, simo_count, use_count, timeout, lag, " "next_avail, expires, static, outbound_call_count, outbound_fail_count, hostname " "from fifo_outbound where taking_calls = 1 and " "(fifo_name = '%q') and (use_count < simo_count) and (next_avail = 0 or next_avail <= %ld) " "order by next_avail", node->name, (long) switch_epoch_time_now(NULL)); - switch_assert(sql); - fifo_execute_sql_callback(globals.sql_mutex, sql, place_call_callback, &need); - free(sql); + switch(node->outbound_strategy) { + case NODE_STRATEGY_ENTERPRISE: + { + int need = node_consumer_wait_count(node); + fifo_execute_sql_callback(globals.sql_mutex, sql, place_call_enterprise_callback, &need); + + } + break; + case NODE_STRATEGY_RINGALL: + { + switch_thread_t *thread; + switch_threadattr_t *thd_attr = NULL; + struct callback_helper *cbh; + switch_memory_pool_t *pool; + + switch_core_new_memory_pool(&pool); + cbh = switch_core_alloc(pool, sizeof(*cbh)); + cbh->pool = pool; + cbh->need = node_consumer_wait_count(node); + fifo_execute_sql_callback(globals.sql_mutex, sql, place_call_ringall_callback, cbh); + + switch_threadattr_create(&thd_attr, cbh->pool); + switch_threadattr_detach_set(thd_attr, 1); + switch_threadattr_stacksize_set(thd_attr, SWITCH_THREAD_STACKSIZE); + switch_thread_create(&thread, thd_attr, ringall_thread_run, cbh, cbh->pool); + + } + break; + default: + break; + } + + + switch_safe_free(sql); } static void *SWITCH_THREAD_FUNC node_thread_run(switch_thread_t *thread, void *obj) @@ -626,7 +1062,7 @@ static void *SWITCH_THREAD_FUNC node_thread_run(switch_thread_t *thread, void *o for (hi = switch_hash_first(NULL, globals.fifo_hash); hi; hi = switch_hash_next(hi)) { switch_hash_this(hi, &var, NULL, &val); if ((node = (fifo_node_t *) val)) { - if (node->has_outbound && node->ready) { + if (node->has_outbound && node->ready && !node->busy) { switch_mutex_lock(node->mutex); ppl_waiting = node_consumer_wait_count(node); consumer_total = node->consumer_count; @@ -759,7 +1195,7 @@ static void pres_event_handler(switch_event_t *event) static uint32_t fifo_add_outbound(const char *node_name, const char *url, uint32_t priority) { fifo_node_t *node; - char *str; + switch_event_t *call_event; if (priority >= MAX_PRI) { priority = MAX_PRI - 1; @@ -773,10 +1209,13 @@ static uint32_t fifo_add_outbound(const char *node_name, const char *url, uint32 switch_mutex_unlock(globals.mutex); - str = switch_mprintf("dial:%s", url); - switch_queue_push(node->fifo_list[priority], (void *) str); + switch_event_create(&call_event, SWITCH_EVENT_CHANNEL_DATA); + switch_event_add_header_string(call_event, SWITCH_STACK_BOTTOM, "dial-url", url); + + fifo_queue_push(node->fifo_list[priority], call_event); + call_event = NULL; - return switch_queue_size(node->fifo_list[priority]); + return fifo_queue_size(node->fifo_list[priority]); } @@ -970,6 +1409,7 @@ SWITCH_STANDARD_APP(fifo_function) int freq = 30; int ftmp = 0; int to = 60; + switch_event_t *call_event; if (orbit_exten) { char *ot; @@ -998,8 +1438,6 @@ SWITCH_STANDARD_APP(fifo_function) switch_mutex_lock(node->mutex); node->caller_count++; - switch_core_hash_insert(node->caller_hash, uuid, session); - if ((pri = switch_channel_get_variable(channel, "fifo_priority"))) { p = atoi(pri); } @@ -1020,8 +1458,13 @@ SWITCH_STANDARD_APP(fifo_function) switch_event_fire(&event); } - switch_queue_push(node->fifo_list[p], (void *) strdup(uuid)); - switch_snprintf(tmp, sizeof(tmp), "%d", switch_queue_size(node->fifo_list[p])); + switch_event_create(&call_event, SWITCH_EVENT_CHANNEL_DATA); + switch_channel_event_set_data(channel, call_event); + + + fifo_queue_push(node->fifo_list[p], call_event); + call_event = NULL; + switch_snprintf(tmp, sizeof(tmp), "%d", fifo_queue_size(node->fifo_list[p])); switch_channel_set_variable(channel, "fifo_position", tmp); if (!pri) { @@ -1136,7 +1579,6 @@ SWITCH_STANDARD_APP(fifo_function) switch_mutex_lock(node->mutex); node_remove_uuid(node, uuid); node->caller_count--; - switch_core_hash_delete(node->caller_hash, uuid); switch_mutex_unlock(node->mutex); send_presence(node); check_cancel(node); @@ -1154,10 +1596,9 @@ SWITCH_STANDARD_APP(fifo_function) goto done; } else { /* consumer */ - void *pop = NULL; + switch_event_t *pop = NULL; switch_frame_t *read_frame; switch_status_t status; - char *uuid; switch_core_session_t *other_session; switch_input_args_t args = { 0 }; const char *pop_order = NULL; @@ -1173,8 +1614,10 @@ SWITCH_STANDARD_APP(fifo_function) char buf[5] = ""; const char *strat_str = switch_channel_get_variable(channel, "fifo_strategy"); fifo_strategy_t strat = STRAT_WAITING_LONGER; - char *url = NULL; - + const char *url = NULL; + const char *caller_uuid = NULL; + switch_event_t *call_event; + if (!zstr(strat_str)) { if (!strcasecmp(strat_str, "more_ppl")) { strat = STRAT_MORE_PPL; @@ -1247,7 +1690,7 @@ SWITCH_STANDARD_APP(fifo_function) int x = 0, winner = -1; switch_time_t longest = (0xFFFFFFFFFFFFFFFFULL / 2); uint32_t importance = 0, waiting = 0, most_waiting = 0; - + pop = NULL; if (moh && do_wait) { @@ -1296,20 +1739,50 @@ SWITCH_STANDARD_APP(fifo_function) } if (node) { - if (custom_pop) { + const char *varval; + + if ((varval = switch_channel_get_variable(channel, "fifo_bridge_uuid"))) { for (x = 0; x < MAX_PRI; x++) { - if (switch_queue_trypop(node->fifo_list[pop_array[x]], &pop) == SWITCH_STATUS_SUCCESS && pop) { + if (fifo_queue_pop_nameval(node->fifo_list[pop_array[x]], "unique-id", varval, &pop, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS && pop) { break; } } - } else { + } + + if (!pop && (varval = switch_channel_get_variable(channel, "fifo_target_skill"))) { for (x = 0; x < MAX_PRI; x++) { - if (switch_queue_trypop(node->fifo_list[x], &pop) == SWITCH_STATUS_SUCCESS && pop) { + if (fifo_queue_pop_nameval(node->fifo_list[pop_array[x]], "variable_fifo_skill", + varval, &pop, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS && pop) { break; } } } + if (!pop) { + for (x = 0; x < MAX_PRI; x++) { + if (fifo_queue_pop_nameval(node->fifo_list[pop_array[x]], "variable_fifo_vip", "true", + &pop, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS && pop) { + break; + } + } + } + + if (!pop) { + if (custom_pop) { + for (x = 0; x < MAX_PRI; x++) { + if (fifo_queue_pop(node->fifo_list[pop_array[x]], &pop, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS && pop) { + break; + } + } + } else { + for (x = 0; x < MAX_PRI; x++) { + if (fifo_queue_pop(node->fifo_list[x], &pop, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS && pop) { + break; + } + } + } + } + if (pop && !node_consumer_wait_count(node)) { switch_mutex_lock(node->mutex); node->start_waiting = 0; @@ -1331,14 +1804,16 @@ SWITCH_STANDARD_APP(fifo_function) continue; } - uuid = (char *) pop; + call_event = (switch_event_t *) pop; pop = NULL; + + url = switch_event_get_header(call_event, "dial-url"); + caller_uuid = switch_event_get_header(call_event, "unique-id"); - if (!strncasecmp(uuid, "dial:", 5)) { + if (url) { switch_call_cause_t cause = SWITCH_CAUSE_NONE; const char *o_announce = NULL; - url = uuid + 5; - + if ((o_announce = switch_channel_get_variable(channel, "fifo_outbound_announce"))) { switch_ivr_play_file(session, NULL, o_announce, NULL); } @@ -1367,12 +1842,11 @@ SWITCH_STANDARD_APP(fifo_function) switch_event_fire(&event); } url = NULL; - free(uuid); - uuid = strdup(switch_core_session_get_uuid(other_session)); + caller_uuid = switch_core_session_strdup(session, switch_core_session_get_uuid(other_session)); } } else { - if ((other_session = switch_core_session_locate(uuid))) { + if ((other_session = switch_core_session_locate(caller_uuid))) { switch_channel_t *other_channel = switch_core_session_get_channel(other_session); if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, FIFO_EVENT) == SWITCH_STATUS_SUCCESS) { switch_channel_event_set_data(other_channel, event); @@ -1427,7 +1901,6 @@ SWITCH_STANDARD_APP(fifo_function) switch_mutex_lock(node->mutex); node->caller_count--; - switch_core_hash_delete(node->caller_hash, uuid); switch_mutex_unlock(node->mutex); send_presence(node); check_cancel(node); @@ -1460,7 +1933,7 @@ SWITCH_STANDARD_APP(fifo_function) switch_time_exp_lt(&tm, ts); switch_strftime_nocheck(date, &retsize, sizeof(date), "%Y-%m-%d %T", &tm); switch_channel_set_variable(channel, "fifo_status", "TALKING"); - switch_channel_set_variable(channel, "fifo_target", uuid); + switch_channel_set_variable(channel, "fifo_target", caller_uuid); switch_channel_set_variable(channel, "fifo_timestamp", date); switch_channel_set_variable(other_channel, "fifo_status", "TALKING"); @@ -1512,12 +1985,13 @@ SWITCH_STANDARD_APP(fifo_function) switch_mutex_lock(node->mutex); node->caller_count--; - switch_core_hash_delete(node->caller_hash, uuid); switch_mutex_unlock(node->mutex); send_presence(node); check_cancel(node); switch_core_session_rwunlock(other_session); - switch_safe_free(uuid); + if (call_event) { + switch_event_destroy(&call_event); + } if (!do_wait || !switch_channel_ready(channel)) { break; @@ -1626,7 +2100,6 @@ SWITCH_STANDARD_APP(fifo_function) switch_thread_rwlock_wrlock(node->rwlock); node->ready = 0; switch_mutex_lock(node->mutex); - switch_core_hash_destroy(&node->caller_hash); switch_core_hash_destroy(&node->consumer_hash); switch_mutex_unlock(node->mutex); switch_thread_rwlock_unlock(node->rwlock); @@ -1680,8 +2153,8 @@ static int xml_callback(void *pArg, int argc, char **argv, char **columnNames) switch_xml_set_attr_d(x_out, "lag", argv[6]); switch_xml_set_attr_d(x_out, "outbound-call-count", argv[10]); switch_xml_set_attr_d(x_out, "outbound-fail-count", argv[11]); - switch_xml_set_attr_d(x_out, "taking-calls", argv[12]); - switch_xml_set_attr_d(x_out, "status", argv[13]); + switch_xml_set_attr_d(x_out, "taking-calls", argv[13]); + switch_xml_set_attr_d(x_out, "status", argv[14]); switch_xml_set_attr_d(x_out, "next-available", expires); switch_xml_set_txt_d(x_out, argv[2]); @@ -1764,6 +2237,82 @@ static int xml_hash(switch_xml_t xml, switch_hash_t *hash, char *container, char return cc_off; } + +static int xml_caller(switch_xml_t xml, fifo_node_t *node, char *container, char *tag, int cc_off, int verbose) +{ + switch_xml_t x_tmp, x_caller, x_cp, variables; + int i, x; + switch_core_session_t *session; + switch_channel_t *channel; + + x_tmp = switch_xml_add_child_d(xml, container, cc_off++); + switch_assert(x_tmp); + + for (x = 0; x < MAX_PRI; x++) { + fifo_queue_t *q = node->fifo_list[x]; + + switch_mutex_lock(q->mutex); + + for (i = 0; i < q->idx; i++) { + + int c_off = 0, d_off = 0; + const char *status; + const char *ts; + const char *uuid = switch_event_get_header(q->data[i], "unique-id"); + + if (!uuid) { + continue; + } + + if (!(session = switch_core_session_locate(uuid))) { + continue; + } + + channel = switch_core_session_get_channel(session); + x_caller = switch_xml_add_child_d(x_tmp, tag, c_off++); + switch_assert(x_caller); + + switch_xml_set_attr_d(x_caller, "uuid", switch_core_session_get_uuid(session)); + + if ((status = switch_channel_get_variable(channel, "fifo_status"))) { + switch_xml_set_attr_d(x_caller, "status", status); + } + + if ((ts = switch_channel_get_variable(channel, "fifo_timestamp"))) { + switch_xml_set_attr_d(x_caller, "timestamp", ts); + } + + if ((ts = switch_channel_get_variable(channel, "fifo_target"))) { + switch_xml_set_attr_d(x_caller, "target", ts); + } + + if ((ts = switch_channel_get_variable(channel, "fifo_position"))) { + switch_xml_set_attr_d(x_caller, "position", ts); + } + + if (!(x_cp = switch_xml_add_child_d(x_caller, "caller_profile", d_off++))) { + abort(); + } + if (verbose) { + d_off += switch_ivr_set_xml_profile_data(x_cp, switch_channel_get_caller_profile(channel), d_off); + + if (!(variables = switch_xml_add_child_d(x_caller, "variables", c_off++))) { + abort(); + } + + switch_ivr_set_xml_chan_vars(variables, channel, c_off); + } + + switch_core_session_rwunlock(session); + session = NULL; + } + + switch_mutex_unlock(q->mutex); + } + + return cc_off; +} + static void list_node(fifo_node_t *node, switch_xml_t x_report, int *off, int verbose) { switch_xml_t x_fifo; @@ -1784,8 +2333,10 @@ static void list_node(fifo_node_t *node, switch_xml_t x_report, int *off, int ve switch_snprintf(tmp, sizeof(buffer), "%u", node->importance); switch_xml_set_attr_d(x_fifo, "importance", tmp); + switch_xml_set_attr_d(x_fifo, "outbound_strategy", strat_parse(node->outbound_strategy)); + cc_off = xml_outbound(x_fifo, node, "outbound", "member", cc_off, verbose); - cc_off = xml_hash(x_fifo, node->caller_hash, "callers", "caller", cc_off, verbose); + cc_off = xml_caller(x_fifo, node, "callers", "caller", cc_off, verbose); cc_off = xml_hash(x_fifo, node->consumer_hash, "consumers", "consumer", cc_off, verbose); } @@ -1965,6 +2516,10 @@ static switch_status_t load_config(int reload, int del_all) var = (char *) switch_xml_attr_soft(param, "name"); val = (char *) switch_xml_attr_soft(param, "value"); + if (!strcasecmp(var, "outbound-strategy") && !zstr(val)) { + default_strategy = parse_strat(val); + } + if (!strcasecmp(var, "odbc-dsn") && !zstr(val)) { if (switch_odbc_available()) { globals.odbc_dsn = switch_core_strdup(globals.pool, val); @@ -2024,7 +2579,7 @@ static switch_status_t load_config(int reload, int del_all) if ((fifos = switch_xml_child(cfg, "fifos"))) { for (fifo = switch_xml_child(fifos, "fifo"); fifo; fifo = fifo->next) { - const char *name; + const char *name, *outbound_strategy; const char *importance; int imp = 0; int simo_i = 1; @@ -2033,6 +2588,7 @@ static switch_status_t load_config(int reload, int del_all) fifo_node_t *node; name = switch_xml_attr(fifo, "name"); + outbound_strategy = switch_xml_attr(fifo, "outbound_strategy"); if ((importance = switch_xml_attr(fifo, "importance"))) { if ((imp = atoi(importance)) < 0) { @@ -2055,6 +2611,10 @@ static switch_status_t load_config(int reload, int del_all) switch_mutex_lock(node->mutex); + if (outbound_strategy) { + node->outbound_strategy = parse_strat(outbound_strategy); + } + for (member = switch_xml_child(fifo, "member"); member; member = member->next) { const char *simo = switch_xml_attr_soft(member, "simo"); const char *lag = switch_xml_attr_soft(member, "lag"); @@ -2113,7 +2673,8 @@ static switch_status_t load_config(int reload, int del_all) if (reload) { switch_hash_index_t *hi; - void *val, *pop; + void *val; + switch_event_t *pop; fifo_node_t *node; switch_mutex_lock(globals.mutex); top: @@ -2131,13 +2692,12 @@ static switch_status_t load_config(int reload, int del_all) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "%s removed.\n", node->name); switch_thread_rwlock_wrlock(node->rwlock); for (x = 0; x < MAX_PRI; x++) { - while (switch_queue_trypop(node->fifo_list[x], &pop) == SWITCH_STATUS_SUCCESS) { - free(pop); + while (fifo_queue_pop(node->fifo_list[x], &pop, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { + switch_event_destroy(&pop); } } switch_core_hash_delete(globals.fifo_hash, node->name); - switch_core_hash_destroy(&node->caller_hash); switch_core_hash_destroy(&node->consumer_hash); switch_thread_rwlock_unlock(node->rwlock); switch_core_destroy_memory_pool(&node->pool); @@ -2361,7 +2921,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_fifo_load) SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_fifo_shutdown) { switch_hash_index_t *hi; - void *val, *pop; + void *val; + switch_event_t *pop = NULL; fifo_node_t *node; switch_memory_pool_t *pool = globals.pool; switch_mutex_t *mutex = globals.mutex; @@ -2385,13 +2946,12 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_fifo_shutdown) switch_thread_rwlock_wrlock(node->rwlock); for (x = 0; x < MAX_PRI; x++) { - while (switch_queue_trypop(node->fifo_list[x], &pop) == SWITCH_STATUS_SUCCESS) { - free(pop); + while (fifo_queue_pop(node->fifo_list[x], &pop, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { + switch_event_destroy(&pop); } } switch_core_hash_delete(globals.fifo_hash, node->name); - switch_core_hash_destroy(&node->caller_hash); switch_core_hash_destroy(&node->consumer_hash); switch_thread_rwlock_unlock(node->rwlock); switch_core_destroy_memory_pool(&node->pool); From 34fe9e34c9b1d637f3098dde0c7659ed730e31fb Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 22:13:20 -0500 Subject: [PATCH 60/62] tweaks --- src/mod/applications/mod_fifo/mod_fifo.c | 9 ++++++--- src/switch_core_sqldb.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index bc6159172d..04bbe950ba 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -662,7 +662,8 @@ static switch_status_t hanguphook(switch_core_session_t *session) if (state == CS_HANGUP || state == CS_ROUTING) { if ((uuid = switch_channel_get_variable(channel, "fifo_outbound_uuid"))) { switch_snprintf(sql, sizeof(sql), - "update fifo_outbound set use_count=use_count-1, outbound_call_count=outbound_call_count+1, next_avail=%ld + lag where uuid='%s'", + "update fifo_outbound set use_count=use_count-1, " + "outbound_call_count=outbound_call_count+1, next_avail=%ld + lag where uuid='%s' and use_count > 0", (long) switch_epoch_time_now(NULL), uuid); fifo_execute_sql(sql, globals.sql_mutex); @@ -817,7 +818,8 @@ static void *SWITCH_THREAD_FUNC ringall_thread_run(switch_thread_t *thread, void for (i = 0; i < cbh->rowcount; i++) { struct call_helper *h = cbh->rows[i]; switch_snprintf(sql, sizeof(sql), - "update fifo_outbound set use_count=use_count-1, outbound_fail_count=outbound_fail_count+1, next_avail=%ld + lag where uuid='%s'", + "update fifo_outbound set use_count=use_count-1, outbound_fail_count=outbound_fail_count+1, " + "next_avail=%ld + lag where uuid='%s' and use_count > 0", (long) switch_epoch_time_now(NULL), h->uuid); fifo_execute_sql(sql, globals.sql_mutex); } @@ -908,7 +910,8 @@ static void *SWITCH_THREAD_FUNC o_thread_run(switch_thread_t *thread, void *obj) if (status != SWITCH_STATUS_SUCCESS) { switch_snprintf(sql, sizeof(sql), - "update fifo_outbound set use_count=use_count-1, outbound_fail_count=outbound_fail_count+1, next_avail=%ld + lag where uuid='%s'", + "update fifo_outbound set use_count=use_count-1, " + "outbound_fail_count=outbound_fail_count+1, next_avail=%ld + lag where uuid='%s' and use_count > 0", (long) switch_epoch_time_now(NULL), h->uuid); fifo_execute_sql(sql, globals.sql_mutex); goto end; diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 678e352a2e..e9849502be 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -1153,7 +1153,7 @@ static void core_event_handler(switch_event_t *event) new_sql() = switch_mprintf("update channels set call_uuid='%q' where uuid='%s' and hostname='%q'", switch_event_get_header_nil(event, "channel-call-uuid"), switch_event_get_header_nil(event, "unique-id"), switch_core_get_variable("hostname")); - new_sql() = switch_mprintf("insert into calls (cal_uuid,call_created,call_created_epoch,function,caller_cid_name," + new_sql() = switch_mprintf("insert into calls (call_uuid,call_created,call_created_epoch,function,caller_cid_name," "caller_cid_num,caller_dest_num,caller_chan_name,caller_uuid,callee_cid_name," "callee_cid_num,callee_dest_num,callee_chan_name,callee_uuid,hostname) " "values ('%s', '%s', '%ld', '%s','%q','%q','%q','%q','%s','%q','%q','%q','%q','%s','%q')", From 9db5abefdb637f7c1d7909a8c6adb46299e3e9d8 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 22:20:06 -0500 Subject: [PATCH 61/62] doh --- src/mod/applications/mod_fifo/mod_fifo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index 04bbe950ba..0881868cc1 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -45,7 +45,7 @@ typedef enum { NODE_STRATEGY_ENTERPRISE } outbound_strategy_t; -static outbound_strategy_t default_strategy = NODE_STRATEGY_ENTERPRISE; +static outbound_strategy_t default_strategy = NODE_STRATEGY_RINGALL; typedef struct { From 636283c387af09ab020cac7e376d01afe6960ab1 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 30 Jun 2010 22:29:40 -0500 Subject: [PATCH 62/62] doh2 --- src/mod/applications/mod_fifo/mod_fifo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index 0881868cc1..29dbac9b3b 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -831,7 +831,7 @@ static void *SWITCH_THREAD_FUNC ringall_thread_run(switch_thread_t *thread, void switch_core_event_hook_add_state_change(session, hanguphook); app_name = "fifo"; - arg = switch_core_session_sprintf(session, "%s out wait", node_name); + arg = switch_core_session_sprintf(session, "%s out nowait", node_name); extension = switch_caller_extension_new(session, app_name, arg); switch_caller_extension_add_application(session, extension, app_name, arg); switch_channel_set_caller_extension(channel, extension);