From c39fbb295f6b9bc01baa5dbfc578e12022c088ae Mon Sep 17 00:00:00 2001 From: Eliot Gable Date: Mon, 4 Jan 2016 12:19:43 +0000 Subject: [PATCH 01/68] FS-8704: Add min-members, wait-min-members-timeout, wait-mod-timeout, wait-min-members-timeout-message, wait-mod-timeout-message, endconf-mod-exit-message, and endconf-message parameters and functionality to mod_conference. --- .../mod_conference/conference_api.c | 35 ++++- .../mod_conference/conference_loop.c | 22 ++- .../mod_conference/conference_member.c | 18 ++- .../mod_conference/mod_conference.c | 140 ++++++++++++++++-- .../mod_conference/mod_conference.h | 8 + 5 files changed, 206 insertions(+), 17 deletions(-) diff --git a/src/mod/applications/mod_conference/conference_api.c b/src/mod/applications/mod_conference/conference_api.c index 72422436fc..544700ffdb 100644 --- a/src/mod/applications/mod_conference/conference_api.c +++ b/src/mod/applications/mod_conference/conference_api.c @@ -89,7 +89,7 @@ api_command_t conference_api_sub_commands[] = { {"pin", (void_fn_t) & conference_api_sub_pin, CONF_API_SUB_ARGS_SPLIT, "pin", ""}, {"nopin", (void_fn_t) & conference_api_sub_pin, CONF_API_SUB_ARGS_SPLIT, "nopin", ""}, {"get", (void_fn_t) & conference_api_sub_get, CONF_API_SUB_ARGS_SPLIT, "get", ""}, - {"set", (void_fn_t) & conference_api_sub_set, CONF_API_SUB_ARGS_SPLIT, "set", " "}, + {"set", (void_fn_t) & conference_api_sub_set, CONF_API_SUB_ARGS_SPLIT, "set", " "}, {"file-vol", (void_fn_t) & conference_api_sub_file_vol, CONF_API_SUB_ARGS_SPLIT, "file-vol", ""}, {"floor", (void_fn_t) & conference_api_sub_floor, CONF_API_SUB_MEMBER_TARGET, "floor", ""}, {"vid-floor", (void_fn_t) & conference_api_sub_vid_floor, CONF_API_SUB_MEMBER_TARGET, "vid-floor", " [force]"}, @@ -2594,6 +2594,15 @@ switch_status_t conference_api_sub_get(conference_obj_t *conference, } else if (strcasecmp(argv[2], "count_ghosts") == 0) { stream->write_function(stream, "%d", conference->count_ghosts); + } else if (strcasecmp(argv[2], "min_members") == 0) { + stream->write_function(stream, "%d", + conference->min_members); + } else if (strcasecmp(argv[2], "wait_min_members_timeout") == 0) { + stream->write_function(stream, "%d", + conference->wait_min_members_timeout); + } else if (strcasecmp(argv[2], "wait_mod_timeout") == 0) { + stream->write_function(stream, "%d", + conference->wait_mod_timeout); } else if (strcasecmp(argv[2], "max_members") == 0) { stream->write_function(stream, "%d", conference->max_members); @@ -2648,6 +2657,30 @@ switch_status_t conference_api_sub_set(conference_obj_t *conference, } else { ret_status = SWITCH_STATUS_FALSE; } + } else if (strcasecmp(argv[2], "min_members") == 0) { + int new_min = atoi(argv[3]); + if (new_min >= 0 && (!conference->count || conference_utils_test_flag(conference, CFLAG_WAIT_MIN_MEMBERS))) { + stream->write_function(stream, "%d", conference->min_members); + conference->min_members = new_min; + } else { + ret_status = SWITCH_STATUS_FALSE; + } + } else if (strcasecmp(argv[2], "wait_min_members_timeout") == 0) { + int32_t new_min = atoll(argv[3]); + if (new_min >= 0 && (!conference->count || conference_utils_test_flag(conference, CFLAG_WAIT_MIN_MEMBERS))) { + stream->write_function(stream, "%d", conference->wait_min_members_timeout); + conference->wait_min_members_timeout = new_min; + } else { + ret_status = SWITCH_STATUS_FALSE; + } + } else if (strcasecmp(argv[2], "wait_mod_timeout") == 0) { + int32_t new_timeout = atoll(argv[3]); + if (new_timeout >= 0 && conference_utils_test_flag(conference, CFLAG_WAIT_MOD)) { + stream->write_function(stream, "%d", conference->wait_mod_timeout); + conference->wait_mod_timeout = new_timeout; + } else { + ret_status = SWITCH_STATUS_FALSE; + } } else if (strcasecmp(argv[2], "sound_prefix") == 0) { stream->write_function(stream, "%s",conference->sound_prefix); conference->sound_prefix = switch_core_strdup(conference->pool, argv[3]); diff --git a/src/mod/applications/mod_conference/conference_loop.c b/src/mod/applications/mod_conference/conference_loop.c index c31fb6ddcd..2d753e77aa 100644 --- a/src/mod/applications/mod_conference/conference_loop.c +++ b/src/mod/applications/mod_conference/conference_loop.c @@ -960,7 +960,8 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob /* skip frames that are not actual media or when we are muted or silent */ if ((conference_utils_member_test_flag(member, MFLAG_TALKING) || member->energy_level == 0 || conference_utils_test_flag(member->conference, CFLAG_AUDIO_ALWAYS)) && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) && !conference_utils_test_flag(member->conference, CFLAG_WAIT_MOD) - && (member->conference->count > 1 || (member->conference->record_count && member->conference->count >= member->conference->min_recording_participants))) { + && (!conference_utils_test_flag(member->conference, CFLAG_WAIT_MIN_MEMBERS) || (member->conference->record_count && member->conference->count >= member->conference->min_recording_participants))) { + switch_audio_resampler_t *read_resampler = member->read_resampler; void *data; uint32_t datalen; @@ -1368,6 +1369,25 @@ void conference_loop_output(conference_member_t *member) switch_cond_next(); } + if (member->conference->wait_min_members_timeout && switch_epoch_time_now(NULL) - member->join_time >= member->conference->wait_min_members_timeout && + conference_utils_test_flag(member->conference, CFLAG_WAIT_MIN_MEMBERS)) + { + if (!zstr(member->conference->wait_min_members_timeout_message)) { + conference_member_play_file(member, member->conference->wait_min_members_timeout_message, 0, SWITCH_TRUE); + } + member->loop_loop = SWITCH_FALSE; + break; + } + if (member->conference->wait_mod_timeout && switch_epoch_time_now(NULL) - member->join_time >= member->conference->wait_mod_timeout && + conference_utils_test_flag(member->conference, CFLAG_WAIT_MOD)) + { + if (!zstr(member->conference->wait_mod_timeout_message)) { + conference_member_play_file(member, member->conference->wait_mod_timeout_message, 0, SWITCH_TRUE); + } + member->loop_loop = SWITCH_FALSE; + break; + } + } /* Rinse ... Repeat */ end: diff --git a/src/mod/applications/mod_conference/conference_member.c b/src/mod/applications/mod_conference/conference_member.c index 9f3fd8a89f..ee228fce01 100644 --- a/src/mod/applications/mod_conference/conference_member.c +++ b/src/mod/applications/mod_conference/conference_member.c @@ -724,6 +724,9 @@ switch_status_t conference_member_add(conference_obj_t *conference, conference_m conference->count_ghosts++; } else { conference->count++; + if (conference->min_members && conference->count >= conference->min_members) { + conference_utils_clear_flag_locked(conference, CFLAG_WAIT_MIN_MEMBERS); + } } if (conference_utils_member_test_flag(member, MFLAG_ENDCONF)) { @@ -808,7 +811,7 @@ switch_status_t conference_member_add(conference_obj_t *conference, conference_m conference_utils_clear_flag(conference, CFLAG_WAIT_MOD); } - if (conference->count > 1) { + if (!conference_utils_test_flag(conference, CFLAG_WAIT_MIN_MEMBERS)) { if ((conference->moh_sound && !conference_utils_test_flag(conference, CFLAG_WAIT_MOD)) || (conference_utils_test_flag(conference, CFLAG_WAIT_MOD) && !switch_true(switch_channel_get_variable(channel, "conference_permanent_wait_mod_moh")))) { /* stop MoH if any */ @@ -820,9 +823,9 @@ switch_status_t conference_member_add(conference_obj_t *conference, conference_m if (conference_utils_test_flag(conference, CFLAG_ENTER_SOUND) && !conference_utils_member_test_flag(member, MFLAG_SILENT)) { if (!zstr(enter_sound)) { conference_file_play(conference, (char *)enter_sound, CONF_DEFAULT_LEADIN, - switch_core_session_get_channel(member->session), 0); + switch_core_session_get_channel(member->session), !conference_utils_test_flag(conference, CFLAG_WAIT_MOD) ? 0 : 1); } else { - conference_file_play(conference, conference->enter_sound, CONF_DEFAULT_LEADIN, switch_core_session_get_channel(member->session), 0); + conference_file_play(conference, conference->enter_sound, CONF_DEFAULT_LEADIN, switch_core_session_get_channel(member->session), !conference_utils_test_flag(conference, CFLAG_WAIT_MOD) ? 0 : 1); } } } @@ -1185,6 +1188,13 @@ switch_status_t conference_member_del(conference_obj_t *conference, conference_m if (!--conference->end_count) { //conference_utils_set_flag_locked(conference, CFLAG_DESTRUCT); conference->endconference_time = switch_epoch_time_now(NULL); + if (conference_utils_member_test_flag(member, MFLAG_MOD) && !zstr(conference->endconf_mod_exit_message)) { + conference_file_play(conference, conference->endconf_mod_exit_message, 0, channel, 0); + } else { + if (!zstr(conference->endconf_message)) { + conference_file_play(conference, conference->endconf_message, 0, channel, 0); + } + } } } @@ -1202,7 +1212,7 @@ switch_status_t conference_member_del(conference_obj_t *conference, conference_m if (!exit_sound && conference->exit_sound && conference_utils_test_flag(conference, CFLAG_EXIT_SOUND) && !conference_utils_member_test_flag(member, MFLAG_SILENT)) { conference_file_play(conference, conference->exit_sound, 0, channel, 0); } - if (conference->count == 1 && conference->alone_sound && !conference_utils_test_flag(conference, CFLAG_WAIT_MOD) && !conference_utils_member_test_flag(member, MFLAG_GHOST)) { + if (!conference_utils_test_flag(conference, CFLAG_WAIT_MIN_MEMBERS) && conference->alone_sound && !conference_utils_test_flag(conference, CFLAG_WAIT_MOD) && !conference_utils_member_test_flag(member, MFLAG_GHOST)) { conference_file_stop(conference, FILE_STOP_ASYNC); conference_file_play(conference, conference->alone_sound, 0, channel, 0); } diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index b62061967b..142a49640e 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -313,14 +313,14 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob if (conference->perpetual_sound && !conference->async_fnode) { conference_file_play(conference, conference->perpetual_sound, CONF_DEFAULT_LEADIN, NULL, 1); - } else if (conference->moh_sound && ((nomoh == 0 && conference->count == 1) + } else if (conference->moh_sound && ((nomoh == 0 && conference_utils_test_flag(conference, CFLAG_WAIT_MIN_MEMBERS)) || conference_utils_test_flag(conference, CFLAG_WAIT_MOD)) && !conference->async_fnode && !conference->fnode) { conference_file_play(conference, conference->moh_sound, CONF_DEFAULT_LEADIN, NULL, 1); } /* Find if no one talked for more than x number of second */ - if (conference->terminate_on_silence && conference->count > 1) { + if (conference->terminate_on_silence && !conference_utils_test_flag(conference, CFLAG_WAIT_MIN_MEMBERS)) { int is_talking = 0; for (imember = conference->members; imember; imember = imember->next) { @@ -1097,6 +1097,21 @@ void conference_xlist(conference_obj_t *conference, switch_xml_t x_conference, i switch_xml_set_attr_d(x_conference, "enter_sound", "true"); } + if (conference->min_members > 0) { + switch_snprintf(i, sizeof(i), "%d", conference->min_members); + switch_xml_set_attr_d(x_conference, "min_members", ival); + } + + if (conference->wait_min_members_timeout > 0) { + switch_snprintf(i, sizeof(i), "%d", conference->wait_min_members_timeout); + switch_xml_set_attr_d(x_conference, "wait_min_members_timeout", ival); + } + + if (conference->wait_mod_timeout > 0) { + switch_snprintf(i, sizeof(i), "%d", conference->wait_mod_timeout); + switch_xml_set_attr_d(x_conference, "wait_mod_timeout", ival); + } + if (conference->max_members > 0) { switch_snprintf(i, sizeof(i), "%d", conference->max_members); switch_xml_set_attr_d(x_conference, "max_members", ival); @@ -1808,9 +1823,12 @@ SWITCH_STANDARD_APP(conference_function) /* if the conference exists, get the pointer to it */ if (!conference) { - const char *max_members_str; - const char *endconference_grace_time_str; - const char *auto_record_str; + const char *max_members_str = NULL; + const char *endconference_grace_time_str = NULL; + const char *auto_record_str = NULL; + const char *min_members_str = NULL; + const char *wait_min_members_timeout_str = NULL; + const char *wait_mod_timeout_str = NULL; /* no conference yet, so check for join-only flag */ if (flags_str) { @@ -1823,9 +1841,9 @@ SWITCH_STANDARD_APP(conference_function) } if (mflags[MFLAG_JOIN_ONLY]) { - switch_event_t *event; - switch_xml_t jos_xml; - char *val; + switch_event_t *event = NULL; + switch_xml_t jos_xml = NULL; + char *val = NULL; /* send event */ switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT); switch_channel_event_set_basic_data(channel, event); @@ -1884,9 +1902,48 @@ SWITCH_STANDARD_APP(conference_function) /* Set the minimum number of members (once you go above it you cannot go below it) */ conference->min = 1; + /* check for variable used to specify override for min_members */ + if (!zstr(min_members_str = switch_channel_get_variable(channel, "conference_min_members"))) { + uint32_t min_members_val = 0; + errno = 0; /* sanity first */ + min_members_val = strtol(min_members_str, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ + if (errno == ERANGE || errno == EINVAL || (int32_t) min_members_val < 0) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "conference_min_members variable %s is invalid, not setting a limit\n", min_members_str); + } else { + conference->min_members = min_members_val; + } + } + + /* check for variable used to specify override for wait_min_members_timeout */ + if (!zstr(wait_min_members_timeout_str = switch_channel_get_variable(channel, "conference_wait_min_members_timeout"))) { + int32_t wait_min_members_timeout_val = 0; + errno = 0; /* sanity first */ + wait_min_members_timeout_val = strtol(wait_min_members_timeout_str, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ + if (errno == ERANGE || errno == EINVAL || (int32_t) wait_min_members_timeout_val < 0) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "conference_wait_min_members_timeout variable %s is invalid, not setting a limit\n", wait_min_members_timeout_str); + } else { + conference->wait_min_members_timeout = wait_min_members_timeout_val; + } + } + + /* check for variable used to specify override for wait_min_members_timeout */ + if (!zstr(wait_mod_timeout_str = switch_channel_get_variable(channel, "conference_wait_mod_timeout"))) { + int32_t wait_mod_timeout_val = 0; + errno = 0; /* sanity first */ + wait_mod_timeout_val = strtol(wait_mod_timeout_str, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ + if (errno == ERANGE || errno == EINVAL || (int32_t) wait_mod_timeout_val < 0) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "conference_wait_mod_timeout variable %s is invalid, not setting a limit\n", wait_mod_timeout_str); + } else { + conference->wait_mod_timeout = wait_mod_timeout_val; + } + } + /* check for variable used to specify override for max_members */ if (!zstr(max_members_str = switch_channel_get_variable(channel, "conference_max_members"))) { - uint32_t max_members_val; + uint32_t max_members_val = 0; errno = 0; /* sanity first */ max_members_val = strtol(max_members_str, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ if (errno == ERANGE || errno == EINVAL || (int32_t) max_members_val < 0 || max_members_val == 1) { @@ -1899,7 +1956,7 @@ SWITCH_STANDARD_APP(conference_function) /* check for variable to override endconference_grace_time profile value */ if (!zstr(endconference_grace_time_str = switch_channel_get_variable(channel, "conference_endconference_grace_time"))) { - uint32_t grace_time_val; + uint32_t grace_time_val = 0; errno = 0; /* sanity first */ grace_time_val = strtol(endconference_grace_time_str, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ if (errno == ERANGE || errno == EINVAL || (int32_t) grace_time_val < 0) { @@ -1915,6 +1972,10 @@ SWITCH_STANDARD_APP(conference_function) /* Indicate the conference is dynamic */ conference_utils_set_flag_locked(conference, CFLAG_DYNAMIC); + if (conference->min_members) { + conference_utils_set_flag_locked(conference, CFLAG_WAIT_MIN_MEMBERS); + } + /* acquire a read lock on the thread so it can't leave without us */ if (switch_thread_rwlock_tryrdlock(conference->rwlock) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_CRIT, "Read Lock Fail\n"); @@ -1948,7 +2009,7 @@ SWITCH_STANDARD_APP(conference_function) int pin_retries = conference->pin_retries; int pin_valid = 0; switch_status_t status = SWITCH_STATUS_SUCCESS; - char *supplied_pin_value; + char *supplied_pin_value = NULL; /* Answer the channel */ switch_channel_answer(channel); @@ -2368,6 +2429,13 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co char *perpetual_sound = NULL; char *moh_sound = NULL; char *outcall_templ = NULL; + char *wait_min_members_timeout_message = NULL; + char *wait_mod_timeout_message = NULL; + char *endconf_mod_exit_message = NULL; + char *endconf_message = NULL; + uint32_t min_members = 0; + int32_t wait_min_members_timeout = 0; + int32_t wait_mod_timeout = 0; char *video_layout_name = NULL; char *video_layout_group = NULL; char *video_canvas_size = NULL; @@ -2592,6 +2660,14 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co kicked_sound = val; } else if (!strcasecmp(var, "join-only-sound") && !zstr(val)) { join_only_sound = val; + } else if (!strcasecmp(var, "wait-min-members-timeout-message") && !zstr(val)) { + wait_min_members_timeout_message = val; + } else if (!strcasecmp(var, "wait-mod-timeout-message") && !zstr(val)) { + wait_mod_timeout_message = val; + } else if (!strcasecmp(var, "endconf-mod-exit-message") && !zstr(val)) { + endconf_mod_exit_message = val; + } else if (!strcasecmp(var, "endconf-message") && !zstr(val)) { + endconf_message = val; } else if (!strcasecmp(var, "pin") && !zstr(val)) { pin = val; } else if (!strcasecmp(var, "moderator-pin") && !zstr(val)) { @@ -2649,6 +2725,27 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co } else if (!strcasecmp(var, "sound-prefix") && !zstr(val)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "override sound-prefix with: %s\n", val); sound_prefix = val; + } else if (!strcasecmp(var, "min-members") && !zstr(val)) { + errno = 0; /* sanity first */ + min_members = strtol(val, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ + if (errno == ERANGE || errno == EINVAL || (int32_t) min_members < 0) { + min_members = 0; /* set to 0 to disable min counts */ + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "min-members %s is invalid, not setting a limit\n", val); + } + } else if (!strcasecmp(var, "wait-min-members-timeout") && !zstr(val)) { + errno = 0; /* sanity first */ + wait_min_members_timeout = strtoll(val, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ + if (errno == ERANGE || errno == EINVAL || (int32_t) wait_min_members_timeout < 0) { + wait_min_members_timeout = 0; /* set to 0 to disable timeout waiting for min_members */ + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "wait-min-members-timeout %s is invalid, not setting a limit\n", val); + } + } else if (!strcasecmp(var, "wait-mod-timeout") && !zstr(val)) { + errno = 0; /* sanity first */ + wait_mod_timeout = strtoll(val, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ + if (errno == ERANGE || errno == EINVAL || (int32_t) wait_mod_timeout < 0) { + wait_mod_timeout = 0; /* set to 0 to disable timeout waiting for moderator */ + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "wait-mod-timeout %s is invalid, not setting a limit\n", val); + } } else if (!strcasecmp(var, "max-members") && !zstr(val)) { errno = 0; /* sanity first */ max_members = strtol(val, NULL, 0); /* base 0 lets 0x... for hex 0... for octal and base 10 otherwise through */ @@ -3027,6 +3124,22 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co conference->is_unlocked_sound = switch_core_strdup(conference->pool, is_unlocked_sound); } + if (!zstr(wait_min_members_timeout_message)) { + conference->wait_min_members_timeout_message = switch_core_strdup(conference->pool, wait_min_members_timeout_message); + } + + if (!zstr(wait_mod_timeout_message)) { + conference->wait_mod_timeout_message = switch_core_strdup(conference->pool, wait_mod_timeout_message); + } + + if (!zstr(endconf_mod_exit_message)) { + conference->endconf_mod_exit_message = switch_core_strdup(conference->pool, endconf_mod_exit_message); + } + + if (!zstr(endconf_message)) { + conference->endconf_message = switch_core_strdup(conference->pool, endconf_message); + } + if (!zstr(energy_level)) { conference->energy_level = atoi(energy_level); if (conference->energy_level < 0) { @@ -3048,6 +3161,11 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co } } + /* its going to be 0 by default, set to a value otherwise so this should be safe */ + conference->min_members = min_members; + conference->wait_min_members_timeout = wait_min_members_timeout; + conference->wait_mod_timeout = wait_mod_timeout; + if (!zstr(maxmember_sound)) { conference->maxmember_sound = switch_core_strdup(conference->pool, maxmember_sound); } diff --git a/src/mod/applications/mod_conference/mod_conference.h b/src/mod/applications/mod_conference/mod_conference.h index 0554bfd53c..f4a13776f0 100644 --- a/src/mod/applications/mod_conference/mod_conference.h +++ b/src/mod/applications/mod_conference/mod_conference.h @@ -247,6 +247,7 @@ typedef enum { CFLAG_PERSONAL_CANVAS, CFLAG_REFRESH_LAYOUT, CFLAG_VIDEO_MUTE_EXIT_CANVAS, + CFLAG_WAIT_MIN_MEMBERS, ///////////////////////////////// CFLAG_MAX } conference_flag_t; @@ -552,6 +553,13 @@ typedef struct conference_obj { int auto_record_canvas; char *record_filename; char *outcall_templ; + char *wait_min_members_timeout_message; + char *wait_mod_timeout_message; + char *endconf_mod_exit_message; + char *endconf_message; + uint32_t min_members; + int32_t wait_min_members_timeout; + int32_t wait_mod_timeout; char *video_layout_name; char *video_layout_group; char *video_canvas_bgcolor; From 23e333a9fc3dad4b227659f2a31fb65321970f1e Mon Sep 17 00:00:00 2001 From: Eliot Gable Date: Mon, 4 Jan 2016 12:46:41 +0000 Subject: [PATCH 02/68] FS-8706: Fix a segfault where no response status was set previously, and try to prevent future ones by setting default response status of 500. --- src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c index a71726c357..3ef840ea87 100644 --- a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c +++ b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c @@ -534,6 +534,7 @@ static abyss_bool http_directory_auth(TSession *r, char *domain_name) ResponseAddField(r, "freeswitch-user", (box ? box : user)); ResponseAddField(r, "freeswitch-domain", domain_name); + ResponseStatus(r, 200); rval = TRUE; goto done; } @@ -707,6 +708,11 @@ abyss_bool auth_hook(TSession * r) char *domain_name, *e; abyss_bool ret = FALSE; + /* Default to 500 status to avoid assert. It should be + overridden later if we actually handle it or if the + default handler in abyss handles it. */ + ResponseStatus(r, 500); + if (globals.enable_websocket && !strncmp(r->requestInfo.uri, "/socket", 7)) { // Chrome has no Authorization support yet // https://code.google.com/p/chromium/issues/detail?id=123862 @@ -827,6 +833,11 @@ abyss_bool handler_hook(TSession * r) return FALSE; } + /* Default to 500 status to avoid assert. It should be + overridden later if we actually handle it or if the + default handler in abyss handles it. */ + ResponseStatus(r, 500); + stream.data = r; stream.write_function = http_stream_write; stream.raw_write_function = http_stream_raw_write; From 320d5f2015976fed9ca282dfeeb2bd3e977e6f76 Mon Sep 17 00:00:00 2001 From: William King Date: Tue, 26 Jan 2016 20:05:47 -0800 Subject: [PATCH 03/68] Applied the Sangoma patch to FS version 1.2 in order to port to FS v1.6+ Sourced from: http://gitlab.sangoma.com/projects/CORE/repos/freetdm/browse/public_freeswitch/sangoma-FS-1.2.patch --- libs/apr/include/apr_network_io.h | 7 +++++++ libs/apr/network_io/os2/sockopt.c | 10 ++++++++++ libs/apr/network_io/unix/sockopt.c | 10 ++++++++++ libs/apr/network_io/win32/sockopt.c | 10 ++++++++++ src/include/switch_apr.h | 6 ++++++ src/include/switch_core.h | 13 +++++++++++++ src/include/switch_types.h | 1 + src/mod/endpoints/mod_sofia/mod_sofia.c | 14 ++++++++++++++ src/switch_apr.c | 5 +++++ src/switch_core.c | 22 ++++++++++++++++++++++ 10 files changed, 98 insertions(+) diff --git a/libs/apr/include/apr_network_io.h b/libs/apr/include/apr_network_io.h index 24708c55ae..1d65f1cb09 100644 --- a/libs/apr/include/apr_network_io.h +++ b/libs/apr/include/apr_network_io.h @@ -631,6 +631,13 @@ APR_DECLARE(apr_status_t) apr_socket_timeout_set(apr_socket_t *sock, APR_DECLARE(apr_status_t) apr_socket_opt_get(apr_socket_t *sock, apr_int32_t opt, apr_int32_t *on); +/** + * Get Socket fd for the socket passed + * @param sock The socket to quesry for the socket fd + */ +APR_DECLARE(int) apr_socket_fd_get(apr_socket_t *sock); + + /** * Query socket timeout for the specified socket * @param sock The socket to query diff --git a/libs/apr/network_io/os2/sockopt.c b/libs/apr/network_io/os2/sockopt.c index 101a952d98..85ff35331a 100644 --- a/libs/apr/network_io/os2/sockopt.c +++ b/libs/apr/network_io/os2/sockopt.c @@ -110,6 +110,16 @@ APR_DECLARE(apr_status_t) apr_socket_opt_get(apr_socket_t *sock, } +APR_DECLARE(int) apr_socket_fd_get(apr_socket_t *sock) +{ + if (sock) { + return sock->socketdes; + } else { + return 0; + } +} + + APR_DECLARE(apr_status_t) apr_socket_atmark(apr_socket_t *sock, int *atmark) { int oobmark; diff --git a/libs/apr/network_io/unix/sockopt.c b/libs/apr/network_io/unix/sockopt.c index 3fc932f42f..344b0484b4 100644 --- a/libs/apr/network_io/unix/sockopt.c +++ b/libs/apr/network_io/unix/sockopt.c @@ -344,6 +344,16 @@ apr_status_t apr_socket_opt_get(apr_socket_t *sock, } +int apr_socket_fd_get(apr_socket_t *sock) +{ + if (sock) { + return sock->socketdes; + } else { + return 0; + } +} + + apr_status_t apr_socket_atmark(apr_socket_t *sock, int *atmark) { #ifndef BEOS_R5 diff --git a/libs/apr/network_io/win32/sockopt.c b/libs/apr/network_io/win32/sockopt.c index c8e670fa79..05ba19c9b8 100644 --- a/libs/apr/network_io/win32/sockopt.c +++ b/libs/apr/network_io/win32/sockopt.c @@ -244,6 +244,16 @@ APR_DECLARE(apr_status_t) apr_socket_opt_get(apr_socket_t *sock, } +APR_DECLARE(int) apr_socket_fd_get(apr_socket_t *sock) +{ + if (sock) { + return sock->socketdes; + } else { + return 0; + } +} + + APR_DECLARE(apr_status_t) apr_socket_atmark(apr_socket_t *sock, int *atmark) { u_long oobmark; diff --git a/src/include/switch_apr.h b/src/include/switch_apr.h index 5ab5d35e7e..82a25f3b00 100644 --- a/src/include/switch_apr.h +++ b/src/include/switch_apr.h @@ -1103,6 +1103,12 @@ SWITCH_DECLARE(switch_status_t) switch_socket_accept(switch_socket_t ** new_sock */ SWITCH_DECLARE(switch_status_t) switch_socket_connect(switch_socket_t *sock, switch_sockaddr_t *sa); +/** + * Get socket fd for the switch socket passed + * @param sock The socket we wish to have fd + */ +SWITCH_DECLARE(int) switch_socket_fd_get(switch_socket_t *sock); + SWITCH_DECLARE(uint16_t) switch_sockaddr_get_port(switch_sockaddr_t *sa); SWITCH_DECLARE(const char *) switch_get_addr(char *buf, switch_size_t len, switch_sockaddr_t *in); SWITCH_DECLARE(switch_status_t) switch_getnameinfo(char **hostname, switch_sockaddr_t *sa, int32_t flags); diff --git a/src/include/switch_core.h b/src/include/switch_core.h index 16669672e8..59430a1c6a 100644 --- a/src/include/switch_core.h +++ b/src/include/switch_core.h @@ -2652,6 +2652,19 @@ SWITCH_DECLARE(switch_status_t) switch_core_del_registration(const char *user, c */ SWITCH_DECLARE(switch_status_t) switch_core_expire_registration(int force); +/*! + \brief Get RTP port range start value + \param[in] void + \param[out] RTP port range start value +*/ +SWITCH_DECLARE(uint16_t) switch_core_get_rtp_port_range_start_port(void); + +/*! + \brief Get RTP port range end value + \param[in] void + \param[out] RTP port range end value +*/ +SWITCH_DECLARE(uint16_t) switch_core_get_rtp_port_range_end_port(void); SWITCH_DECLARE(char *) switch_say_file_handle_get_variable(switch_say_file_handle_t *sh, const char *var); SWITCH_DECLARE(char *) switch_say_file_handle_get_path(switch_say_file_handle_t *sh); diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 1f2005dba9..eab47a69dd 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1049,6 +1049,7 @@ typedef enum { SWITCH_MESSAGE_INDICATE_UNBRIDGE, SWITCH_MESSAGE_INDICATE_TRANSFER, SWITCH_MESSAGE_INDICATE_RINGING, + SWITCH_MESSAGE_INDICATE_ALERTING, SWITCH_MESSAGE_INDICATE_MEDIA, SWITCH_MESSAGE_INDICATE_3P_MEDIA, SWITCH_MESSAGE_INDICATE_NOMEDIA, diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 2434b443e5..bb5d44b50a 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -2122,6 +2122,20 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi } } break; + case SWITCH_MESSAGE_INDICATE_ALERTING: + { + 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(tech_pvt); + nua_respond(tech_pvt->nh, SIP_180_RINGING, + SIPTAG_CONTACT_STR(tech_pvt->reply_contact), + 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), + SIPTAG_HEADER_STR("X-FS-Support: " FREESWITCH_SUPPORT)), TAG_END()); + } + break; case SWITCH_MESSAGE_INDICATE_RINGING: { switch_ring_ready_t ring_ready_val = msg->numeric_arg; diff --git a/src/switch_apr.c b/src/switch_apr.c index 8407d42713..51db39727d 100644 --- a/src/switch_apr.c +++ b/src/switch_apr.c @@ -908,6 +908,11 @@ SWITCH_DECLARE(const char *) switch_get_addr(char *buf, switch_size_t len, switc return buf; } +SWITCH_DECLARE(int) switch_socket_fd_get(switch_socket_t *sock) +{ + return apr_socket_fd_get(sock); +} + SWITCH_DECLARE(uint16_t) switch_sockaddr_get_port(switch_sockaddr_t *sa) { return sa->port; diff --git a/src/switch_core.c b/src/switch_core.c index 2d342fb33b..7ab24c7b8a 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -3275,6 +3275,28 @@ SWITCH_DECLARE(int) switch_stream_system(const char *cmd, switch_stream_handle_t } +SWITCH_DECLARE(uint16_t) switch_core_get_rtp_port_range_start_port() +{ + uint16_t start_port = 0; + + /* By default pass rtp port range start value as zero in order to get actual + * RTP port range start value as configured */ + start_port = (uint16_t)switch_rtp_set_start_port((switch_port_t)start_port); + + return start_port; +} + +SWITCH_DECLARE(uint16_t) switch_core_get_rtp_port_range_end_port() +{ + uint16_t end_port = 0; + + /* By default pass rtp port range end value as zero in order to get actual + * RTP port range end value as configured */ + end_port = (uint16_t)switch_rtp_set_end_port((switch_port_t)end_port); + + return end_port; +} + /* For Emacs: * Local Variables: * mode:c From a1ee1a03bf0b9ff045e3a1b94f479e86c37f1274 Mon Sep 17 00:00:00 2001 From: Phil Lavin Date: Thu, 24 Mar 2016 18:34:13 +0000 Subject: [PATCH 04/68] FS-8978: [mod_redis] Fix limit counter not decrementing on hangup The limit counter value is not automatically decremented in Redis when the call is hung up. This results in it only ever counting up and the limit being eventually hit. The linked list is moved on too early. When `limit_pvt` is checked, it is `NULL`. This means the `decr` command is never sent to Redis. --- src/mod/applications/mod_hiredis/mod_hiredis.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.c b/src/mod/applications/mod_hiredis/mod_hiredis.c index 09a538e15a..2af3cd3598 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.c +++ b/src/mod/applications/mod_hiredis/mod_hiredis.c @@ -197,13 +197,14 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release) while (tmp) { profile = switch_core_hash_find(mod_hiredis_globals.profiles, limit_pvt->realm); hashkey = switch_mprintf("decr %s", tmp->limit_key); - limit_pvt = tmp->next; if ( limit_pvt && (limit_pvt->interval > 0) && (hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", tmp->realm, hashkey, response); } + limit_pvt = tmp->next; + tmp = limit_pvt; switch_safe_free(response); switch_safe_free(hashkey); From fe6182260b2d16dd02217e54fed1bce2c8233fcc Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 31 Mar 2016 19:25:56 -0500 Subject: [PATCH 05/68] FS-9013 #resolve [Add vad talk time logging channel vars] --- src/include/switch_core_media.h | 1 + src/include/switch_rtp.h | 2 ++ src/switch_core_media.c | 26 +++++++++++++++++ src/switch_rtp.c | 52 ++++++++++++++++++++++++++------- 4 files changed, 70 insertions(+), 11 deletions(-) diff --git a/src/include/switch_core_media.h b/src/include/switch_core_media.h index 82a0373e39..0d93ec4d58 100644 --- a/src/include/switch_core_media.h +++ b/src/include/switch_core_media.h @@ -278,6 +278,7 @@ SWITCH_DECLARE(void) switch_core_media_resume(switch_core_session_t *session); SWITCH_DECLARE(void) switch_core_media_init(void); SWITCH_DECLARE(void) switch_core_media_deinit(void); SWITCH_DECLARE(void) switch_core_media_set_stats(switch_core_session_t *session); +SWITCH_DECLARE(void) switch_core_media_sync_stats(switch_core_session_t *session); SWITCH_DECLARE(void) switch_core_session_wake_video_thread(switch_core_session_t *session); SWITCH_DECLARE(void) switch_core_session_clear_crypto(switch_core_session_t *session); diff --git a/src/include/switch_rtp.h b/src/include/switch_rtp.h index f222ce028c..440b5cc9a4 100644 --- a/src/include/switch_rtp.h +++ b/src/include/switch_rtp.h @@ -311,6 +311,8 @@ SWITCH_DECLARE(uint8_t) switch_rtp_ready(switch_rtp_t *rtp_session); */ SWITCH_DECLARE(void) switch_rtp_destroy(switch_rtp_t **rtp_session); +SWITCH_DECLARE(switch_status_t) switch_rtp_sync_stats(switch_rtp_t *rtp_session); + /*! \brief Acvite ICE on an RTP session \return SWITCH_STATUS_SUCCESS diff --git a/src/switch_core_media.c b/src/switch_core_media.c index 0ad27cd4eb..777c664d88 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -1535,6 +1535,30 @@ static void set_stats(switch_core_session_t *session, switch_media_type_t type, } } +SWITCH_DECLARE(void) switch_core_media_sync_stats(switch_core_session_t *session) +{ + switch_media_handle_t *smh; + switch_rtp_engine_t *a_engine, *v_engine; + + switch_assert(session); + + if (!(smh = session->media_handle)) { + return; + } + + a_engine = &smh->engines[SWITCH_MEDIA_TYPE_AUDIO]; + v_engine = &smh->engines[SWITCH_MEDIA_TYPE_VIDEO]; + + if (a_engine->rtp_session) { + switch_rtp_sync_stats(a_engine->rtp_session); + } + + if (v_engine->rtp_session) { + switch_rtp_sync_stats(v_engine->rtp_session); + } + +} + SWITCH_DECLARE(void) switch_core_media_set_stats(switch_core_session_t *session) { @@ -1542,6 +1566,8 @@ SWITCH_DECLARE(void) switch_core_media_set_stats(switch_core_session_t *session) return; } + switch_core_media_sync_stats(session); + set_stats(session, SWITCH_MEDIA_TYPE_AUDIO, "audio"); set_stats(session, SWITCH_MEDIA_TYPE_VIDEO, "video"); } diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 683820015b..a351af68cd 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -203,6 +203,9 @@ struct switch_rtp_vad_data { uint8_t start_count; uint8_t scan_freq; time_t next_scan; + switch_time_t start_talking; + switch_time_t stop_talking; + switch_time_t total_talk_time; int fire_events; }; @@ -4446,6 +4449,29 @@ SWITCH_DECLARE(uint8_t) switch_rtp_ready(switch_rtp_t *rtp_session) return ret; } +SWITCH_DECLARE(switch_status_t) switch_rtp_sync_stats(switch_rtp_t *rtp_session) +{ + if (!rtp_session) { + return SWITCH_STATUS_FALSE; + } + + if (rtp_session->flags[SWITCH_RTP_FLAG_VAD]) { + switch_channel_t *channel = switch_core_session_get_channel(rtp_session->vad_data.session); + + switch_channel_set_variable_printf(channel, "vad_total_talk_time_ms", "%u", (uint32_t)rtp_session->vad_data.total_talk_time / 1000); + switch_channel_set_variable_printf(channel, "vad_total_talk_time_sec", "%u", (uint32_t)rtp_session->vad_data.total_talk_time / 1000000); + } + + do_mos(rtp_session, SWITCH_TRUE); + + if (rtp_session->stats.inbound.error_log && !rtp_session->stats.inbound.error_log->stop) { + rtp_session->stats.inbound.error_log->stop = switch_micro_time_now(); + } + + return SWITCH_STATUS_SUCCESS; +} + + SWITCH_DECLARE(void) switch_rtp_destroy(switch_rtp_t **rtp_session) { void *pop; @@ -4468,10 +4494,8 @@ SWITCH_DECLARE(void) switch_rtp_destroy(switch_rtp_t **rtp_session) READ_DEC((*rtp_session)); WRITE_DEC((*rtp_session)); - do_mos(*rtp_session, SWITCH_TRUE); - - if ((*rtp_session)->stats.inbound.error_log && !(*rtp_session)->stats.inbound.error_log->stop) { - (*rtp_session)->stats.inbound.error_log->stop = switch_micro_time_now(); + if ((*rtp_session)->flags[SWITCH_RTP_FLAG_VAD]) { + switch_rtp_disable_vad(*rtp_session); } switch_mutex_lock((*rtp_session)->flag_mutex); @@ -4533,10 +4557,6 @@ SWITCH_DECLARE(void) switch_rtp_destroy(switch_rtp_t **rtp_session) } } - if ((*rtp_session)->flags[SWITCH_RTP_FLAG_VAD]) { - switch_rtp_disable_vad(*rtp_session); - } - #ifdef ENABLE_SRTP if ((*rtp_session)->flags[SWITCH_RTP_FLAG_SECURE_SEND]) { for(x = 0; x < 2; x++) { @@ -7314,7 +7334,7 @@ static int rtp_common_write(switch_rtp_t *rtp_session, uint32_t len = sizeof(decoded); time_t now = switch_epoch_time_now(NULL); send = 0; - + if (rtp_session->vad_data.scan_freq && rtp_session->vad_data.next_scan <= now) { rtp_session->vad_data.bg_count = rtp_session->vad_data.bg_level = 0; rtp_session->vad_data.next_scan = now + rtp_session->vad_data.scan_freq; @@ -7355,7 +7375,7 @@ static int rtp_common_write(switch_rtp_t *rtp_session, } else { if (score > rtp_session->vad_data.bg_level && !switch_test_flag(&rtp_session->vad_data, SWITCH_VAD_FLAG_TALKING)) { uint32_t diff = score - rtp_session->vad_data.bg_level; - + if (rtp_session->vad_data.hangover_hits) { rtp_session->vad_data.hangover_hits--; } @@ -7363,6 +7383,9 @@ static int rtp_common_write(switch_rtp_t *rtp_session, if (diff >= rtp_session->vad_data.diff_level || ++rtp_session->vad_data.hangunder_hits >= rtp_session->vad_data.hangunder) { switch_set_flag(&rtp_session->vad_data, SWITCH_VAD_FLAG_TALKING); + + rtp_session->vad_data.start_talking = switch_time_now(); + if (!(rtp_session->rtp_bugs & RTP_BUG_NEVER_SEND_MARKER)) { send_msg->header.m = 1; } @@ -7384,10 +7407,14 @@ static int rtp_common_write(switch_rtp_t *rtp_session, } if (switch_test_flag(&rtp_session->vad_data, SWITCH_VAD_FLAG_TALKING)) { if (++rtp_session->vad_data.hangover_hits >= rtp_session->vad_data.hangover) { + rtp_session->vad_data.stop_talking = switch_time_now(); + rtp_session->vad_data.total_talk_time += (rtp_session->vad_data.stop_talking - rtp_session->vad_data.start_talking); + switch_clear_flag(&rtp_session->vad_data, SWITCH_VAD_FLAG_TALKING); + rtp_session->vad_data.hangover_hits = rtp_session->vad_data.hangunder_hits = rtp_session->vad_data.cng_count = 0; if (switch_test_flag(&rtp_session->vad_data, SWITCH_VAD_FLAG_EVENTS_NOTALK)) { - + if ((rtp_session->vad_data.fire_events & VAD_FIRE_NOT_TALK)) { switch_event_t *event; if (switch_event_create(&event, SWITCH_EVENT_NOTALK) == SWITCH_STATUS_SUCCESS) { @@ -7672,6 +7699,9 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_enable_vad(switch_rtp_t *rtp_session, rtp_session->vad_data.start = 0; rtp_session->vad_data.next_scan = switch_epoch_time_now(NULL); rtp_session->vad_data.scan_freq = 0; + if (switch_test_flag(&rtp_session->vad_data, SWITCH_VAD_FLAG_TALKING)) { + rtp_session->vad_data.start_talking = switch_time_now(); + } switch_rtp_set_flag(rtp_session, SWITCH_RTP_FLAG_VAD); switch_set_flag(&rtp_session->vad_data, SWITCH_VAD_FLAG_CNG); return SWITCH_STATUS_SUCCESS; From 3ac9d2f5c729d84a1768337437b0f84c5f95aef8 Mon Sep 17 00:00:00 2001 From: Ken Rice Date: Fri, 1 Apr 2016 08:39:41 -0500 Subject: [PATCH 06/68] spec file update for asm build requirements for libyuv --- freeswitch.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/freeswitch.spec b/freeswitch.spec index 0032b05039..376454749b 100644 --- a/freeswitch.spec +++ b/freeswitch.spec @@ -153,6 +153,8 @@ BuildRequires: sqlite-devel BuildRequires: ldns-devel BuildRequires: libedit-devel BuildRequires: perl +BuildRequires: nasm +BuildRequires: yasm %if 0%{?fedora} >= 8 || 0%{?rhel} >= 6 BuildRequires: perl-ExtUtils-Embed %endif From ff0cec80f1330ae7391e3db9c680d42105608737 Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Fri, 1 Apr 2016 10:38:16 -0400 Subject: [PATCH 07/68] FS-9004 [mod_http_cache] added download-timeout param to prevent http_get from waiting unbounded time for downloading to finish. Prevented prefetch threads from blocking if another thread is already downloading the same URL. --- .../rayo/autoload_configs/http_cache.conf.xml | 4 ++ .../autoload_configs/http_cache.conf.xml | 4 ++ .../conf/autoload_configs/http_cache.conf.xml | 4 +- .../mod_http_cache/mod_http_cache.c | 48 +++++++++++++------ 4 files changed, 44 insertions(+), 16 deletions(-) diff --git a/conf/rayo/autoload_configs/http_cache.conf.xml b/conf/rayo/autoload_configs/http_cache.conf.xml index 54b343255e..5d70ec6a3a 100644 --- a/conf/rayo/autoload_configs/http_cache.conf.xml +++ b/conf/rayo/autoload_configs/http_cache.conf.xml @@ -13,5 +13,9 @@ + + + + diff --git a/conf/vanilla/autoload_configs/http_cache.conf.xml b/conf/vanilla/autoload_configs/http_cache.conf.xml index cd6ec119b4..f8cc9368d7 100644 --- a/conf/vanilla/autoload_configs/http_cache.conf.xml +++ b/conf/vanilla/autoload_configs/http_cache.conf.xml @@ -13,5 +13,9 @@ + + + + diff --git a/src/mod/applications/mod_http_cache/conf/autoload_configs/http_cache.conf.xml b/src/mod/applications/mod_http_cache/conf/autoload_configs/http_cache.conf.xml index 3cb24348c6..1de040ccf0 100644 --- a/src/mod/applications/mod_http_cache/conf/autoload_configs/http_cache.conf.xml +++ b/src/mod/applications/mod_http_cache/conf/autoload_configs/http_cache.conf.xml @@ -9,7 +9,9 @@ - + + diff --git a/src/mod/applications/mod_http_cache/mod_http_cache.c b/src/mod/applications/mod_http_cache/mod_http_cache.c index cd32a6ca69..4a4d3b244c 100644 --- a/src/mod/applications/mod_http_cache/mod_http_cache.c +++ b/src/mod/applications/mod_http_cache/mod_http_cache.c @@ -1,6 +1,6 @@ /* * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application - * Copyright (C) 2005-2015, Anthony Minessale II + * Copyright (C) 2005-2016, Anthony Minessale II * * Version: MPL 1.1 * @@ -53,6 +53,8 @@ SWITCH_STANDARD_API(http_cache_remove); SWITCH_STANDARD_API(http_cache_prefetch); #define DOWNLOAD_NEEDED "download" +#define DOWNLOAD 1 +#define PREFETCH 2 typedef struct url_cache url_cache_t; @@ -201,6 +203,8 @@ struct url_cache { int enable_file_formats; /** How long to wait, in seconds, for TCP connection. If 0, use default value of 300 seconds */ long connect_timeout; + /** How long to wait, in nanoseconds, for download of file. If 0, use default value of 300 seconds (300 * 10^6 ns) */ + long download_timeout_ns; }; static url_cache_t gcache; @@ -614,7 +618,7 @@ static void url_cache_clear(url_cache_t *cache, switch_core_session_t *session) * @param profile optional profile * @param session the (optional) session requesting the URL * @param url The URL - * @param download If true, the file will be downloaded if it does not exist in the cache. + * @param download If DOWNLOAD, the file will be downloaded if it does not exist in the cache. If PREFETCH, the file will be downloaded if not in cache and not being downloaded by another thread. * @param refresh If true, existing cache entry is invalidated * @param pool The pool to use for allocating the filename * @return The filename or NULL if there is an error @@ -643,6 +647,9 @@ static char *url_cache_get(url_cache_t *cache, http_profile_t *profile, switch_c switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "Cached URL manually expired.\n"); url_cache_remove_soft(cache, session, u); /* will get permanently deleted upon replacement */ u = NULL; + } else if (u->status == CACHED_URL_RX_IN_PROGRESS && switch_time_now() >= (u->download_time + cache->download_timeout_ns)) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "Download of URL has timed out.\n"); + u = NULL; } } @@ -675,7 +682,7 @@ static char *url_cache_get(url_cache_t *cache, http_profile_t *profile, switch_c switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "Failed to download URL %s\n", url); cache->errors++; } - } else if (!u || (u->status == CACHED_URL_RX_IN_PROGRESS && !download)) { + } else if (!u || (u->status == CACHED_URL_RX_IN_PROGRESS && download != DOWNLOAD)) { filename = DOWNLOAD_NEEDED; } else { /* Wait until file is downloaded */ @@ -683,7 +690,7 @@ static char *url_cache_get(url_cache_t *cache, http_profile_t *profile, switch_c switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "Waiting for URL %s to be available\n", url); u->waiters++; url_cache_unlock(cache, session); - while(u->status == CACHED_URL_RX_IN_PROGRESS) { + while(u->status == CACHED_URL_RX_IN_PROGRESS && switch_time_now() < (u->download_time + cache->download_timeout_ns)) { switch_sleep(10 * 1000); /* 10 ms */ } url_cache_lock(cache, session); @@ -1174,7 +1181,7 @@ SWITCH_STANDARD_API(http_cache_prefetch) } /* send to thread pool */ - url = strdup(cmd); + url = switch_mprintf("{prefetch=true}%s", cmd); if (switch_queue_trypush(gcache.prefetch_queue, url) != SWITCH_STATUS_SUCCESS) { switch_safe_free(url); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "Failed to queue prefetch request\n"); @@ -1188,7 +1195,7 @@ SWITCH_STANDARD_API(http_cache_prefetch) #define HTTP_GET_SYNTAX "{param=val}" /** - * Get a file from the cache, download if it isn' cached + * Get a file from the cache, download if it isn't cached */ SWITCH_STANDARD_API(http_cache_get) { @@ -1199,6 +1206,8 @@ SWITCH_STANDARD_API(http_cache_get) char *filename; switch_event_t *params = NULL; char *url; + int refresh = SWITCH_FALSE; + int download = DOWNLOAD; if (zstr(cmd)) { stream->write_function(stream, "USAGE: %s\n", HTTP_GET_SYNTAX); @@ -1219,9 +1228,13 @@ SWITCH_STANDARD_API(http_cache_get) } if (params) { profile = url_cache_http_profile_find(&gcache, switch_event_get_header(params, "profile")); + if (switch_true(switch_event_get_header(params, "prefetch"))) { + download = PREFETCH; + } + refresh = switch_true(switch_event_get_header(params, "refresh")); } - filename = url_cache_get(&gcache, profile, session, url, 1, params ? switch_true(switch_event_get_header(params, "refresh")) : SWITCH_FALSE, pool); + filename = url_cache_get(&gcache, profile, session, url, download, refresh, pool); if (filename) { stream->write_function(stream, "%s", filename); @@ -1485,7 +1498,8 @@ static switch_status_t do_config(url_cache_t *cache) cache->ssl_verifyhost = 1; cache->ssl_verifypeer = 1; cache->enable_file_formats = 0; - cache->connect_timeout = 0; + cache->connect_timeout = 300; + cache->download_timeout_ns = 300 * 1000 * 1000; /* get params */ settings = switch_xml_child(cfg, "settings"); @@ -1523,8 +1537,17 @@ static switch_status_t do_config(url_cache_t *cache) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Setting ssl-verifypeer to %s\n", val); cache->ssl_verifypeer = !switch_false(val); /* only disable if explicitly set to false */ } else if (!strcasecmp(var, "connect-timeout")) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Setting connect-timeout to %s\n", val); - cache->connect_timeout = atoi(val); + int int_val = atoi(val); + if (int_val > 0) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Setting connect-timeout to %s\n", val); + cache->connect_timeout = int_val; + } + } else if (!strcasecmp(var, "download-timeout")) { + int int_val = atoi(val); + if (int_val > 0) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Setting download-timeout to %s\n", val); + cache->download_timeout_ns = int_val * 1000 * 1000; + } } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Unsupported param: %s\n", var); } @@ -1635,11 +1658,6 @@ static switch_status_t do_config(url_cache_t *cache) status = SWITCH_STATUS_TERM; goto done; } - if (cache->connect_timeout < 0) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "connect-timeout must be >= 0\n"); - status = SWITCH_STATUS_TERM; - goto done; - } cache->max_url = max_urls; cache->default_max_age = (default_max_age_sec * 1000 * 1000); /* convert from seconds to nanoseconds */ From 86965a363d0571b820f5da38a6c4c2df65e3e4e5 Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Fri, 1 Apr 2016 11:08:00 -0400 Subject: [PATCH 08/68] FS-9004 [mod_http_cache] set http get timeout on thread that is actively downloading with the value from the download-timeout configuration. --- .../applications/mod_http_cache/mod_http_cache.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/mod/applications/mod_http_cache/mod_http_cache.c b/src/mod/applications/mod_http_cache/mod_http_cache.c index 4a4d3b244c..ca47505d59 100644 --- a/src/mod/applications/mod_http_cache/mod_http_cache.c +++ b/src/mod/applications/mod_http_cache/mod_http_cache.c @@ -203,8 +203,8 @@ struct url_cache { int enable_file_formats; /** How long to wait, in seconds, for TCP connection. If 0, use default value of 300 seconds */ long connect_timeout; - /** How long to wait, in nanoseconds, for download of file. If 0, use default value of 300 seconds (300 * 10^6 ns) */ - long download_timeout_ns; + /** How long to wait, in seconds, for download of file. If 0, use default value of 300 seconds */ + long download_timeout; }; static url_cache_t gcache; @@ -625,6 +625,7 @@ static void url_cache_clear(url_cache_t *cache, switch_core_session_t *session) */ static char *url_cache_get(url_cache_t *cache, http_profile_t *profile, switch_core_session_t *session, const char *url, int download, int refresh, switch_memory_pool_t *pool) { + switch_time_t download_timeout_ns = cache->download_timeout * 1000 * 1000; char *filename = NULL; cached_url_t *u = NULL; if (zstr(url)) { @@ -647,7 +648,7 @@ static char *url_cache_get(url_cache_t *cache, http_profile_t *profile, switch_c switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "Cached URL manually expired.\n"); url_cache_remove_soft(cache, session, u); /* will get permanently deleted upon replacement */ u = NULL; - } else if (u->status == CACHED_URL_RX_IN_PROGRESS && switch_time_now() >= (u->download_time + cache->download_timeout_ns)) { + } else if (u->status == CACHED_URL_RX_IN_PROGRESS && switch_time_now() >= (u->download_time + download_timeout_ns)) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "Download of URL has timed out.\n"); u = NULL; } @@ -690,7 +691,7 @@ static char *url_cache_get(url_cache_t *cache, http_profile_t *profile, switch_c switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "Waiting for URL %s to be available\n", url); u->waiters++; url_cache_unlock(cache, session); - while(u->status == CACHED_URL_RX_IN_PROGRESS && switch_time_now() < (u->download_time + cache->download_timeout_ns)) { + while(u->status == CACHED_URL_RX_IN_PROGRESS && switch_time_now() < (u->download_time + download_timeout_ns)) { switch_sleep(10 * 1000); /* 10 ms */ } url_cache_lock(cache, session); @@ -1090,6 +1091,9 @@ static switch_status_t http_get(url_cache_t *cache, http_profile_t *profile, cac if (cache->connect_timeout > 0) { switch_curl_easy_setopt(curl_handle, CURLOPT_CONNECTTIMEOUT, cache->connect_timeout); } + if (cache->download_timeout > 0) { + switch_curl_easy_setopt(curl_handle, CURLOPT_TIMEOUT, cache->download_timeout); + } if (!cache->ssl_verifypeer) { switch_curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0L); } else { @@ -1499,7 +1503,7 @@ static switch_status_t do_config(url_cache_t *cache) cache->ssl_verifypeer = 1; cache->enable_file_formats = 0; cache->connect_timeout = 300; - cache->download_timeout_ns = 300 * 1000 * 1000; + cache->download_timeout = 300; /* get params */ settings = switch_xml_child(cfg, "settings"); @@ -1546,7 +1550,7 @@ static switch_status_t do_config(url_cache_t *cache) int int_val = atoi(val); if (int_val > 0) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Setting download-timeout to %s\n", val); - cache->download_timeout_ns = int_val * 1000 * 1000; + cache->download_timeout = int_val; } } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Unsupported param: %s\n", var); From 48dcab82d746ef0a04817b373fe7b66b0d3ef605 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 1 Apr 2016 10:49:46 -0500 Subject: [PATCH 09/68] FS-9000 tweaks --- src/include/switch_core_video.h | 12 +++- .../mod_conference/conference_api.c | 26 ++++--- .../mod_conference/conference_video.c | 25 +++++-- .../mod_conference/mod_conference.h | 3 + src/switch_core_video.c | 68 ++++++++++++++++++- 5 files changed, 115 insertions(+), 19 deletions(-) diff --git a/src/include/switch_core_video.h b/src/include/switch_core_video.h index c836c05a22..068a138107 100644 --- a/src/include/switch_core_video.h +++ b/src/include/switch_core_video.h @@ -97,7 +97,13 @@ typedef struct switch_png_s { int h; } switch_png_t; - +typedef enum { + SRM_NONE = 0, // No rotation. + SRM_90 = 90, // Rotate 90 degrees clockwise. + SRM_180 = 180, // Rotate 180 degrees. + SRM_270 = 270, // Rotate 270 degrees clockwise. +} switch_image_rotation_mode_t; + /*!\brief Open a descriptor, allocating storage for the underlying image * @@ -209,7 +215,7 @@ SWITCH_DECLARE(void) switch_img_patch_rect(switch_image_t *IMG, int X, int Y, sw */ SWITCH_DECLARE(void) switch_img_copy(switch_image_t *img, switch_image_t **new_img); - +SWITCH_DECLARE(void) switch_img_rotate_copy(switch_image_t *img, switch_image_t **new_img, switch_image_rotation_mode_t mode); /*!\brief Flip the image vertically (top for bottom) * @@ -220,7 +226,7 @@ SWITCH_DECLARE(void) switch_img_copy(switch_image_t *img, switch_image_t **new_i * * \return 0 if the requested rectangle is valid, nonzero otherwise. */ -SWITCH_DECLARE(void) switch_img_flip(switch_image_t *img); +SWITCH_DECLARE(void) switch_img_rotate(switch_image_t **img, switch_image_rotation_mode_t mode); /*!\brief Close an image descriptor * diff --git a/src/mod/applications/mod_conference/conference_api.c b/src/mod/applications/mod_conference/conference_api.c index 4ec801a093..a0089f78e8 100644 --- a/src/mod/applications/mod_conference/conference_api.c +++ b/src/mod/applications/mod_conference/conference_api.c @@ -658,29 +658,37 @@ switch_status_t conference_api_sub_kick(conference_member_t *member, switch_stre switch_status_t conference_api_sub_vid_flip(conference_member_t *member, switch_stream_handle_t *stream, void *data) { - switch_event_t *event; + char *arg = (char *) data; if (member == NULL) { return SWITCH_STATUS_GENERR; } - if (conference_utils_member_test_flag(member, MFLAG_FLIP_VIDEO)) { + if (conference_utils_member_test_flag(member, MFLAG_FLIP_VIDEO) && !arg) { conference_utils_member_clear_flag_locked(member, MFLAG_FLIP_VIDEO); + conference_utils_member_clear_flag_locked(member, MFLAG_ROTATE_VIDEO); } else { conference_utils_member_set_flag_locked(member, MFLAG_FLIP_VIDEO); + + if (arg) { + if (!strcasecmp(arg, "rotate")) { + conference_utils_member_set_flag_locked(member, MFLAG_ROTATE_VIDEO); + } else if (switch_is_number(arg)) { + int num = atoi(arg); + + if (num == 0 || num == 90 || num == 180 || num == 270) { + member->flip = num; + } + } + } else { + member->flip = 180; + } } if (stream != NULL) { stream->write_function(stream, "OK flipped %u\n", member->id); } - if (member->conference && test_eflag(member->conference, EFLAG_KICK_MEMBER)) { - if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) { - conference_member_add_event_data(member, event); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "vid-flip-member"); - switch_event_fire(&event); - } - } return SWITCH_STATUS_SUCCESS; } diff --git a/src/mod/applications/mod_conference/conference_video.c b/src/mod/applications/mod_conference/conference_video.c index bf6c22a196..998486400e 100644 --- a/src/mod/applications/mod_conference/conference_video.c +++ b/src/mod/applications/mod_conference/conference_video.c @@ -499,6 +499,7 @@ void conference_video_scale_and_patch(mcu_layer_t *layer, switch_image_t *ximg, switch_img_fit(&layer->logo_img, ew, eh, layer->logo_fit); switch_img_find_position(layer->logo_pos, ew, eh, layer->logo_img->d_w, layer->logo_img->d_h, &ex, &ey); + switch_img_patch(IMG, layer->logo_img, layer->x_pos + ex + layer->geometry.border, layer->y_pos + ey + layer->geometry.border); if (layer->logo_text_img) { int tx = 0, ty = 0; @@ -3728,12 +3729,26 @@ switch_status_t conference_video_thread_callback(switch_core_session_t *session, conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) && switch_queue_size(member->video_queue) < member->conference->video_fps.fps * 2 && !member->conference->playing_video_file) { - switch_img_copy(frame->img, &img_copy); - - if (conference_utils_member_test_flag(member, MFLAG_FLIP_VIDEO)) { - switch_img_flip(img_copy); - } + if (conference_utils_member_test_flag(member, MFLAG_FLIP_VIDEO) || conference_utils_member_test_flag(member, MFLAG_ROTATE_VIDEO)) { + if (conference_utils_member_test_flag(member, MFLAG_ROTATE_VIDEO)) { + if (member->flip_count++ > (int)(member->conference->video_fps.fps / 2)) { + member->flip += 90; + if (member->flip > 270) { + member->flip = 0; + } + member->flip_count = 0; + } + + switch_img_rotate_copy(frame->img, &img_copy, member->flip); + } else { + switch_img_rotate_copy(frame->img, &img_copy, member->flip); + } + + } else { + switch_img_copy(frame->img, &img_copy); + } + if (switch_queue_trypush(member->video_queue, img_copy) != SWITCH_STATUS_SUCCESS) { switch_img_free(&img_copy); } diff --git a/src/mod/applications/mod_conference/mod_conference.h b/src/mod/applications/mod_conference/mod_conference.h index 863bf39ff8..9feb4e9e31 100644 --- a/src/mod/applications/mod_conference/mod_conference.h +++ b/src/mod/applications/mod_conference/mod_conference.h @@ -209,6 +209,7 @@ typedef enum { MFLAG_SECOND_SCREEN, MFLAG_SILENT, MFLAG_FLIP_VIDEO, + MFLAG_ROTATE_VIDEO, /////////////////////////// MFLAG_MAX } member_flag_t; @@ -780,6 +781,8 @@ struct conference_member { int force_bw_in; int max_bw_out; int reset_media; + int flip; + int flip_count; }; typedef enum { diff --git a/src/switch_core_video.c b/src/switch_core_video.c index 706b873658..794e37affc 100644 --- a/src/switch_core_video.c +++ b/src/switch_core_video.c @@ -228,10 +228,36 @@ SWITCH_DECLARE(int) switch_img_set_rect(switch_image_t *img, #endif } -SWITCH_DECLARE(void) switch_img_flip(switch_image_t *img) +SWITCH_DECLARE(void) switch_img_rotate(switch_image_t **img, switch_image_rotation_mode_t mode) { + switch_image_t *tmp_img; + + switch_assert(img); + #ifdef SWITCH_HAVE_VPX - vpx_img_flip((vpx_image_t *)img); + + if ((*img)->fmt != SWITCH_IMG_FMT_I420) return; + + if (mode == SRM_90 || mode == SRM_270) { + tmp_img = switch_img_alloc(NULL, (*img)->fmt, (*img)->d_h, (*img)->d_w, 1); + } else { + tmp_img = switch_img_alloc(NULL, (*img)->fmt, (*img)->d_w, (*img)->d_h, 1); + } + + switch_assert(tmp_img); + + I420Rotate((*img)->planes[SWITCH_PLANE_Y], (*img)->stride[SWITCH_PLANE_Y], + (*img)->planes[SWITCH_PLANE_U], (*img)->stride[SWITCH_PLANE_U], + (*img)->planes[SWITCH_PLANE_V], (*img)->stride[SWITCH_PLANE_V], + tmp_img->planes[SWITCH_PLANE_Y], tmp_img->stride[SWITCH_PLANE_Y], + tmp_img->planes[SWITCH_PLANE_U], tmp_img->stride[SWITCH_PLANE_U], + tmp_img->planes[SWITCH_PLANE_V], tmp_img->stride[SWITCH_PLANE_V], + (*img)->d_w, (*img)->d_h, mode); + + + switch_img_free(img); + *img = tmp_img; + #endif } @@ -429,6 +455,44 @@ SWITCH_DECLARE(void) switch_img_copy(switch_image_t *img, switch_image_t **new_i #endif } + +SWITCH_DECLARE(void) switch_img_rotate_copy(switch_image_t *img, switch_image_t **new_img, switch_image_rotation_mode_t mode) +{ + switch_assert(img); + switch_assert(new_img); + +#ifdef SWITCH_HAVE_YUV + if (img->fmt != SWITCH_IMG_FMT_I420) abort(); + + if (*new_img != NULL) { + if (img->fmt != (*new_img)->fmt || img->d_w != (*new_img)->d_w || img->d_h != (*new_img)->d_w) { + switch_img_free(new_img); + } + } + + if (*new_img == NULL) { + if (mode == SRM_90 || mode == SRM_270) { + *new_img = switch_img_alloc(NULL, img->fmt, img->d_h, img->d_w, 1); + } else { + *new_img = switch_img_alloc(NULL, img->fmt, img->d_w, img->d_h, 1); + } + } + + switch_assert(*new_img); + + + I420Rotate(img->planes[SWITCH_PLANE_Y], img->stride[SWITCH_PLANE_Y], + img->planes[SWITCH_PLANE_U], img->stride[SWITCH_PLANE_U], + img->planes[SWITCH_PLANE_V], img->stride[SWITCH_PLANE_V], + (*new_img)->planes[SWITCH_PLANE_Y], (*new_img)->stride[SWITCH_PLANE_Y], + (*new_img)->planes[SWITCH_PLANE_U], (*new_img)->stride[SWITCH_PLANE_U], + (*new_img)->planes[SWITCH_PLANE_V], (*new_img)->stride[SWITCH_PLANE_V], + img->d_w, img->d_h, mode); +#else + return; +#endif +} + SWITCH_DECLARE(switch_image_t *) switch_img_copy_rect(switch_image_t *img, uint32_t x, uint32_t y, uint32_t w, uint32_t h) { #ifdef SWITCH_HAVE_VPX From 4e96a9e6bb345d08360cf861c62ebe3346b6453a Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Sat, 2 Apr 2016 16:57:39 -0400 Subject: [PATCH 10/68] FS-9000: fix compile on bsd and with libyuv disabled --- src/switch_core_video.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/switch_core_video.c b/src/switch_core_video.c index 794e37affc..4a32027fed 100644 --- a/src/switch_core_video.c +++ b/src/switch_core_video.c @@ -230,11 +230,11 @@ SWITCH_DECLARE(int) switch_img_set_rect(switch_image_t *img, SWITCH_DECLARE(void) switch_img_rotate(switch_image_t **img, switch_image_rotation_mode_t mode) { +#ifdef SWITCH_HAVE_YUV switch_image_t *tmp_img; switch_assert(img); -#ifdef SWITCH_HAVE_VPX if ((*img)->fmt != SWITCH_IMG_FMT_I420) return; @@ -252,7 +252,7 @@ SWITCH_DECLARE(void) switch_img_rotate(switch_image_t **img, switch_image_rotati tmp_img->planes[SWITCH_PLANE_Y], tmp_img->stride[SWITCH_PLANE_Y], tmp_img->planes[SWITCH_PLANE_U], tmp_img->stride[SWITCH_PLANE_U], tmp_img->planes[SWITCH_PLANE_V], tmp_img->stride[SWITCH_PLANE_V], - (*img)->d_w, (*img)->d_h, mode); + (*img)->d_w, (*img)->d_h, (int)mode); switch_img_free(img); @@ -487,7 +487,7 @@ SWITCH_DECLARE(void) switch_img_rotate_copy(switch_image_t *img, switch_image_t (*new_img)->planes[SWITCH_PLANE_Y], (*new_img)->stride[SWITCH_PLANE_Y], (*new_img)->planes[SWITCH_PLANE_U], (*new_img)->stride[SWITCH_PLANE_U], (*new_img)->planes[SWITCH_PLANE_V], (*new_img)->stride[SWITCH_PLANE_V], - img->d_w, img->d_h, mode); + img->d_w, img->d_h, (int)mode); #else return; #endif From e97c74e46ed01184f2536aad046df03381c9f0f2 Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Sat, 2 Apr 2016 23:03:01 +0100 Subject: [PATCH 11/68] [verto_communicator] FS-9015 Minor fixes in Polish translation --- .../src/locales/locale-pl.json | Bin 13730 -> 13720 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/html5/verto/verto_communicator/src/locales/locale-pl.json b/html5/verto/verto_communicator/src/locales/locale-pl.json index 9b5f84f3c37fa60c8ac8afdccb534a5f87360fb7..5cc63ff8ea95305f2d3a31e4f01db6aec450108e 100644 GIT binary patch delta 1292 zcmah}Ur1A76#u@v&8t)Aa!z-hb9d#RnKq}8^bllgL0Dv#DQQGgZ#8wB_$P4)Nfh)T zrkx&q(8%bm7vV-hScES@50cP>57DF4LqbUpy-2_BZfb!M<9<8$JO6&?ch0#_`eys4 zLpi-nV?%5hXD6R&d^NMRLUvxPmq;OgxQ3~$54ue@2))W;EWyTkoJAmau`!%U$bGmC z^KQsvOy&Vv$nnyg=>@+@7tB?r5q2zfV^(<^y*3}>Dt$FSqaUVXTC{wrI$`*!Y!u!i zl87#I6@|46iYO&sTwzCko7+`Bz zJ5m~N^vl{@w5Nt8Y2I2*Q`wKXrq||tld==62Tlogokggnpq!fW3jVtD<(BJ{d2>>B zdzw}dL%v*vTJ!C47$x;HjTUTfn#}K_$5s~wb6sRFD5MV#8_=Z@ffRu+h3=B$B%GA+N|M;Glh!=Cn1fI&+VW_PX@gyt*KVf`XmNx*GGfzo_@N+Ymuxc zp^gAiKcgkpMQ414?oHMUj|dti#&!s@h+!D%cYU{{nfJw6VzkFOhMG)e^SLU!Xml$A zY*AYEJLrAcr$6|ex1wL=ne@5*ioD&G=8Dtx=ZqRe(KkRu50H!5606b%NIj4eki*7# z9%qu#)WJept2ou%0YC%b%jf`%#3l)5MX`g1so1tr+=^XOxCjp3@ivf7I*R{Iq&9Yj zx+|l!Qu)9kdVtwPIolC6O8DD(2fg#Z#7?%j6q>F2$pw;o@;Ks-u^8?1IH|sR85;_{ zZmVhFRok_t(ukED+2sg81Xuy?8g(A}n3YDaF$xAs%-zuGX9Kr+dRSI#9ZDDxVu;a? zl0}&s_=%!`QCbMPNezbb#0O*uAAuAR5r9%=CTz4A3}A#(wf7jx6yYjDi9G~Mr>)z6Otx6kp4{17R-!BGfn>E2^6xONzRgo$RUiGK-ThecP8aH$R delta 1277 zcmah}Nla5w6n*dWYw1AeQhq4)Q)MWGGH8ek6|F;zMnPPVV1ia#2oxwnn}#k-Fow7= z1UN3#G{&eK-MIKh-D!+VClVJfT#$%M6HQ#XQ15M-77l4%f8M+2-gEBo-u2X-)O>8A z=jlR^igNkpfG+YPF2=>M7!$h4iD@xKCrObIF_{#nr7qHRk|9iH9W_Zi#*B$5`5Z7l z$!_V@$t6wO3Hr}bxTKg`m}$mr*<+c*9yKDnFk{(@E2=L0a9?e~2lauB8Z)LcxuZu+ z76WGJ%VMU)Ao))gBgKW8L}bPJB7&u`*cA4gy_mPS@M_Dh&WZo}XM~BOaKt>xW`&x> zL35{@WKzg!3K}Ph5fNvV#!d5_g4?zx^jZhCM$t{VohMcn*)`01gSJh{(OCml zJe9E8Jb#Vj^u1N41eSeA(diGlb&`{%6{q4w`G*-(wUO}`6xnCEt01vraT$*^RoRjy z2$lV1_16Fo8)vA=gh)}grzLkegQeg@`zbo%G#QS$n#=HoVmKG_*>vhsmfA<7fp66T zTn$AdNeYywm7~)f*-Q1!Q%9L%9WRo`=a5MW9wV-CQp=Od101KWj?#|ZF{f9-UR${> zO~f3Rh5ZGL?mEBGTRWm)d0WBE6FDMuEQS5J6?UMo{iBzec&hnAm8zqICt{$k9QW!5 z{%E(yr-|@gvsIucQPD4U5iRGAF2}snyxv-`FSfxY77T=8TgOhb;15Da(rlj;k8f<`;CC z-Bp^g+}tU#+hxVxHoH8Gu9o)%4Mu~CSsJ^em!yeFv$)&dj-3tZ`&8(Ct`Je zi{eTW<2c#TuyED2SfLWK9CK}9C;M|_hG Date: Mon, 4 Apr 2016 10:34:39 -0400 Subject: [PATCH 12/68] FS-9015: [verto_communicator] save in UTF-8 --- .../src/locales/locale-pl.json | Bin 13720 -> 7125 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/html5/verto/verto_communicator/src/locales/locale-pl.json b/html5/verto/verto_communicator/src/locales/locale-pl.json index 5cc63ff8ea95305f2d3a31e4f01db6aec450108e..cd07cde25ba57d1bc2917efbdd601fbd75d412a5 100644 GIT binary patch literal 7125 zcma)B&5qhi7T!n7JCw4$nPi{M$Up&}2HRts=B77RHFkH5!A8cu3|!4(T8Zv6wDK6) zU1gW%z2-ahV{Dp^vWXIW>eTuD&UY$*zJA5no6rs?JhJ+sea)l3HJQBmz~0O@+qZ0) zY^&t>mF-wnifoZ4%*v|$E>G?Y<`u_>r!R{`lBeR`o3~Qalm~$|>gbBbmNS}pq;kH$ zUp;+^1USG#6~NvLfHVWBtRPEj}%h?SXC6r$<&62X)o{>92qON3#rE*@_?GQ9DZ-nJ!wv!7tkSI3b}5f>pof~cwg=p$bFGx@nq06y(l|lP zShZg_k%g7@d6LexUCVQ~Pml2dzG{U>AvM$TR~(Go-43p<{ck?e5-QN35-5Du|8h9b}q_o zg@|^JgudkjLnTge-0ia>7f*jF^X`)JJY4MqgCaxAP&=gJ_<%A-GoGJUrQ0qOqj6&O z_$2D;JFCBe9eD623V0Zz!~+V2tUy&@JKVTSlWK*gKtf{K!8NP5mB7!(&-B~kAhw-k z=_`7(Fm#=WJAqDL>WU>9%FfiA z5tE%1P2GWXEiCu9Om@MU`O{g*qp95|ZFALV@8`fS0$Mgrv$D7=@=Ir$PJMRj(lx`` zWD@j!&K+s?T4qujW?iMB3EVY zy-qH$UQ}nN0*_l)s$E9MhvN7(PqQ--&-K(uakDhZvqFESOCp62Q$Fo+Usm(%_)o+_u|#B~+;6)_@pFW8)rwe93Hk@iQWs|^n!AtoTHBh|vM zOW#izEWawe?I@7^0suq7o)L1izrOUlGS27v`%Rf_ld3lTETi<(j|$xBN)6eyH7csfY`(9i-*uW(#P>XsDIJ$JAOiqeF%0qX%SF{8Wla0#wzN zShDS|SU!C@T?Hofu1h!it`qt;CX}l%<*LXlV0c{>m@+yP2I?W}aFA(?z8Ox}3aWDq-+QrGHcSIOIGEdma2(mr zP%^dwR5I|?WP@2<>|_A7pK7aIm^e+!5?BQPlC4!JHKL1u+2ApODm$FyF6=`+CU&Y%4luR!@I( zk%R(F1Buh0#(W|viifgZ=-+;&zEqbHzSwZ6&DR1D%DeQwE@6XaW-yawVx5$Gma?@b z4z;PVKGp%>ilh?F`L0MC< znH8}$wkdHLHYCE25PeQtUYjbP6pBJu3+2deaz-E!bI8 z&XWn2a zoT&w(`y%vKJ_%8RkZVjX^;%SBf>9$Ew}@g5m`$+nF4Y0Z!2@H;gxE4d1MDZ$te=P8vp&c08qcL?by`3RJqsRSiL!EKEbIfc|@iu@K5>{4aVrdPW(i z*6$5}?b<&T|H1Rm3U8#RY$*j)u!gms2oDq)V*9I#PVP2phImB>eW2v1b=T9~fyhyA z@McEL>`vU4l(7ajX=+|TW<4{13eY{@ons6|An_h%bI&#rQ!!S}kQM61}kEstSKJVwF_F=r7$$wn$a!+^!T+b;tX0kA(69qQ$RI6IZ0A!?DfEm zfwObVRu3iW{~8$nXC%XOcbjM%xK?bw33Bs#ckNE_3hK;c@##lE)x7_>EbL7#$o}?R zc4T3>Yc$Uf*uYRYgq#-?OJSqAE!$Ci(bg^cy`zz&j4I<033XKcqIECX_1l}*um1b` G)&Bv+A>j=G literal 13720 zcmb`OT~k}h5r&U0T&_x0et_>(dz(#szc(oa20Pe@AOXAf1%(Z^F<&lYErB?{+V@G` zXPQ>e%sB@M*Om$_i8DR@-Ea4d|M%a2H-B#a)C~3dshKt}^z*WL)*Lh|&1(9*mp-lP z^Gm&cYJN#i?lzyBtLA6D|I{4o-B-!Am| zLvyL`w)J~7cr&{2dlYe|0 z9ExsuX|7rKQhXkN{w{fu?p)G-8<>A#m7%1>`!Aa{$&W@J4;Fd$GwF0HAKwwb>(Ve0 zxF!7(0q)W0_cD3llL0(jORpz)9?9;v`UbE3EU!P&{I7;;%G11>#gL(zbv~1SHvwAffqDFR(dk{ zoT3@8?BWcs{MgDoxvucVNwUpU)*({2^uktMmMQH*oSh~a&% zOuTJ1d-^>QA6RVh{x4FLY|C!nwHG=mBc@-@m)hsIC8gX?@}O-zuz!cCbcPHQ`FO5B z_qJ=r3ULFUkLAf$N6^@NY3s{EAL^sOCYqnFjW&4eFlndOY^|M%)~v|WCPGqUN$XmAour&e+M>H1T`U z%2+kEs3r%hUt>ufHEb#xH_cnoi+o;sQ%&tv@-FZw$YXWR+y1;3J#D~xjwOeBj_OCP ze4ld3vh;&*m%o3HWw~D$_n_v9ILCfOhf{wo@A0S$y=+U? zU3om{!7Cy$lUwzEEsfZt8bb*bV9A zQW=d{KV3j!TRyj4^a5k8LDLud_p(~;GLWgG_rVKar5wJKW!hcgyc_l_)2ALBUH&^CFz=FE5;CaYT(Kh@ss58v%xE4ZN7GJFHRcizX! zSKn1h@XXSJu`<`-W{TG6Xf~xYkXSoc$NC>xlkXW342s52$+|AVwm3LSe)K`|50y0> zz4pnoh(_PKoTt9}PsC#j$2R@6x-rwT>qm;E8n4FM9EtXG5ODzxj(Fdlqldn=4}Ct@ z9Qm?bPd%asKUNIRT6H)4=*L&)7(4vN(Q|+9$k&0*Bg+T&rc2rv@1K;%n2eA^`eUi2 zI8Iftiz8^>EJ<@aRfN5HMC>Q~9jCs$&w^xvUo)Gp$!pJ&6n!h&okQLq)E!7zZACJI zdFk0Bl3nH%S^Owz?P)J|2wJ%x1%lX>UE))XCjvu&D3-+&vF9?B`*e0cXUSd&D zYcxkqrNoOfV^pe`&vkVqUA2l{gDK0U@DDYeSoo1TMQ*TOqr{BvG0693z$~Oj=wY*| zdR*`Z=rW%*2921pkaNC@b8yp@V)s(-9;suhxtF%^bBf0_RJv;Jt>vE`5p+9OR zvjM}(?0Tv9^cyA3l4tN3bctA-+*(J5Z?V^|c3{R7bAzeqc6VYi9i^WDJAoW#Le$i( z!Rou zBR|;`$mWs9LLJuSl5gGLNp z5%JbLhJWoy54QuKpq-`sk7k$=L}yd)27m3oeqSDBcp~QgAT7^XJ~geWQ6=!lHpTHB zs$gD)=XHB%O)okW{C{6`@e=aGSnu3sd53~$TMZuS8RiJx^&P8_A;6OxiDujDaxV@K zd?|`d*}V_1YoAdpYddy7OY1;5L+OaKhSFb|E|sgsNlWy+HdV0BvRw6CQoK~Qb6sF1 zGVr^~U;n7=lxI9g9xv`}W4Mkd%30PV^;Q?kGh~68vYu(7oKsl`!xWwg5R*Zs?o<)v z&U^n^D^r21$X1~01HGJ+l8?iI*xp7Siu)Z7mA$zEm3o$!wp zd9dx^&#w%udb(HD7!uibw9+cd@b0{Bq=;l{Ue^%x!Gyy0pbO4(DQ61QB0KN0v!jwn z!>Oyux17qHQ>~oIo3Y`O&Z@|4$j&|NT*}(<(O6(1pLq61VyreA`*c$3nJ~R?L92{B+8?0lt|?PkANZpL;Q< zFSEPIWQSw@T*y)&np?f=^FgM^^cr2%^O_PTu$;!mUdP(Ad%yF_LXpeezICpyqbgQJ z_TNz^Vg6O>Vfp;;nV`G2bW_i>#ZbAy(N4{OU2BLe&W?yt=JUBcoH$Y&)?`!H$3)g- zLUApmetUN=KDxwVR@- zem+3{OM4Cbd{0u6b8Y&-)U=xt2s@uzw&#WQ>~dQ? z(n0N~Y!k@*xj4O2-fANf%hv3IAI1va5A|)tc6&C-bf3&tYm*ZLGCkIPE(+wi+JE*X z*+{F$%4p1HL2lS4^vi7Ht=57lPW7Hs1AihvrT2Qb4NuPlns2$yR zT(}=#w_H3@EOOzM%INoEz9bAq4z-GUnJhRO%o6&dirU#HasFPh%>9dbw4|U{6E+1-RvuW*3gh*G)=x(hfV zUL#h?v7h9V%pNwH_x&J^{zxr(7!K1d&YW0K>(cTo(f(J`7ItSU3+lJb)UWGW zdtH+guI$ zdEu@66n}_mi+e?hDBBYRB0NWO)JW!9%;0iV7u`UO=DMWjt`GC2ui}e2AQjC#w%u{o zI$=7@34-||(_;FY9eo#fjF_3xF>vF(TT&v!b=8HPttT?7b!N_U37MIGpL*%l(axky zOCI%ocA6#r=+=!JZt|VCbkjAdimXd@9w&U~9QZWOCc^9U+*6`<_sdy|7(;^oUH9~@ zKc~i2Vv)p0$xAKgfc5K1`+eFrdFperAIabORLXnSdS@(a^Vow_ftRs!?s@!A3!B84 zZC$r*`?~KBrHv!mAA57ppnYejo`Lw$2q2$i;j@X`}g&V#$ zxu#chUgEZz*XO_LZ+S;W?Dtbd();QCWhr``w-Uo$Jnl Date: Mon, 4 Apr 2016 02:31:46 +0100 Subject: [PATCH 13/68] FS-9016 Avmd segfaults on NULL read codec Now it will simply exit. Also added more descriptive and clear error reporting. --- .../mod_avmd/avmd_desa2_tweaked.c | 3 +- .../mod_avmd/avmd_desa2_tweaked.h | 3 +- src/mod/applications/mod_avmd/mod_avmd.c | 79 +++++++++++++++---- 3 files changed, 66 insertions(+), 19 deletions(-) diff --git a/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c b/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c index e7665a53b3..880a514be5 100644 --- a/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c +++ b/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c @@ -20,8 +20,7 @@ double -avmd_desa2_tweaked(circ_buffer_t *b, size_t i, - switch_core_session_t *session) +avmd_desa2_tweaked(circ_buffer_t *b, size_t i) { double d; double n; diff --git a/src/mod/applications/mod_avmd/avmd_desa2_tweaked.h b/src/mod/applications/mod_avmd/avmd_desa2_tweaked.h index 3013f345ac..167e241c9d 100644 --- a/src/mod/applications/mod_avmd/avmd_desa2_tweaked.h +++ b/src/mod/applications/mod_avmd/avmd_desa2_tweaked.h @@ -35,8 +35,7 @@ * from this partial result using * 0.5 * acos(n/d) */ -double avmd_desa2_tweaked(circ_buffer_t *b, size_t i, - switch_core_session_t *session); +double avmd_desa2_tweaked(circ_buffer_t *b, size_t i); #endif /* __AVMD_DESA2_TWEAKED_H__ */ diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index a92736bbfd..3324fadf7f 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -208,24 +208,62 @@ static void init_avmd_session_data(avmd_session_t *avmd_session, static switch_bool_t avmd_callback(switch_media_bug_t * bug, void *user_data, switch_abc_type_t type) { - avmd_session_t *avmd_session; - switch_codec_t *read_codec; - switch_frame_t *frame; + avmd_session_t *avmd_session; + switch_codec_t *read_codec; + switch_frame_t *frame; + switch_core_session_t *fs_session; avmd_session = (avmd_session_t *) user_data; if (avmd_session == NULL) { + switch_log_printf( + SWITCH_CHANNEL_LOG, + SWITCH_LOG_ERROR, + "No avmd session assigned!\n" + ); + return SWITCH_FALSE; + } + fs_session = avmd_session->session; + if (fs_session == NULL) { + switch_log_printf( + SWITCH_CHANNEL_LOG, + SWITCH_LOG_ERROR, + "No FreeSWITCH session assigned!\n" + ); return SWITCH_FALSE; } switch (type) { case SWITCH_ABC_TYPE_INIT: - read_codec = switch_core_session_get_read_codec(avmd_session->session); - avmd_session->rate = read_codec->implementation->samples_per_second; + read_codec = switch_core_session_get_read_codec(fs_session); + if (read_codec == NULL) { + switch_log_printf( + SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_WARNING, + "No codec assigned, default session rate to 8000 samples/s\n" + ); + avmd_session->rate = 8000; + } else { + if (read_codec->implementation == NULL) { + switch_log_printf( + SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_WARNING, + "No codec implementation assigned, default session rate to 8000 samples/s\n" + ); + avmd_session->rate = 8000; + } else { + avmd_session->rate = read_codec->implementation->samples_per_second; + } + } avmd_session->start_time = switch_micro_time_now(); /* avmd_session->vmd_codec.channels = * read_codec->implementation->number_of_channels; */ + switch_log_printf( + SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_INFO, + "Avmd session started, [%u] samples/s\n", avmd_session->rate + ); break; case SWITCH_ABC_TYPE_READ_REPLACE: @@ -368,8 +406,14 @@ SWITCH_STANDARD_APP(avmd_start_function) avmd_session_t *avmd_session; switch_media_bug_flag_t flags = 0; - if (session == NULL) + if (session == NULL) { + switch_log_printf( + SWITCH_CHANNEL_LOG, + SWITCH_LOG_ERROR, + "No FreeSWITCH session assigned!\n" + ); return; + } channel = switch_core_session_get_channel(session); @@ -500,7 +544,8 @@ SWITCH_STANDARD_API(avmd_api_main) /* No command? Display usage */ if (zstr(cmd)) { - stream->write_function(stream, "-USAGE: %s\n", AVMD_SYNTAX); + stream->write_function(stream, "-ERR, bad command!\n" + "-USAGE: %s\n\n", AVMD_SYNTAX); return SWITCH_STATUS_SUCCESS; } @@ -512,7 +557,8 @@ SWITCH_STANDARD_API(avmd_api_main) /* If we don't have the expected number of parameters * display usage */ if (argc != AVMD_PARAMS) { - stream->write_function(stream, "-USAGE: %s\n", AVMD_SYNTAX); + stream->write_function(stream, "-ERR, avmd takes [%u] parameters!\n" + "-USAGE: %s\n\n", AVMD_PARAMS, AVMD_SYNTAX); goto end; } @@ -524,7 +570,8 @@ SWITCH_STANDARD_API(avmd_api_main) /* If the session was not found exit */ if (fs_session == NULL) { - stream->write_function(stream, "-USAGE: %s\n", AVMD_SYNTAX); + stream->write_function(stream, "-ERR, no FreeSWITCH session for uuid [%s]!" + "\n-USAGE: %s\n\n", uuid, AVMD_SYNTAX); goto end; } @@ -541,7 +588,7 @@ SWITCH_STANDARD_API(avmd_api_main) switch_channel_set_private(channel, "_avmd_", NULL); switch_core_media_bug_remove(fs_session, &bug); switch_safe_free(ccmd); - stream->write_function(stream, "+OK\n"); + stream->write_function(stream, "+OK\n[%s] stopped.\n", uuid); goto end; } @@ -557,7 +604,8 @@ SWITCH_STANDARD_API(avmd_api_main) /* If we don't see the expected start exit */ if (strcasecmp(command, "start") != 0) { - stream->write_function(stream, "-USAGE: %s\n", AVMD_SYNTAX); + stream->write_function(stream, "-ERR, did you mean\n" + "api avmd %s start ?\n-USAGE: %s\n\n", uuid, AVMD_SYNTAX); goto end; } @@ -595,9 +643,10 @@ SWITCH_STANDARD_API(avmd_api_main) switch_log_printf( SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, - "Failure hooking to stream\n" + "Failed to add media bug!\n" ); - + stream->write_function(stream, + "-ERR, [%s] failed to add media bug!\n\n", uuid); goto end; } @@ -605,7 +654,7 @@ SWITCH_STANDARD_API(avmd_api_main) switch_channel_set_private(channel, "_avmd_", bug); /* Everything went according to plan! Notify the user */ - stream->write_function(stream, "+OK\n"); + stream->write_function(stream, "+OK, start\n\n"); end: @@ -667,7 +716,7 @@ static void avmd_process(avmd_session_t *session, switch_frame_t *frame) /*for (pos = session->pos; pos < (GET_CURRENT_POS(b) - P); pos++) { */ if ((sample_n % sine_len_i) == 0) { /* Get a desa2 frequency estimate every sine len */ - omega = avmd_desa2_tweaked(b, pos + sample_n, session->session); + omega = avmd_desa2_tweaked(b, pos + sample_n); if (omega < -0.999999 || omega > 0.999999) { #ifdef AVMD_DEBUG From 94fd5db4979f237d9ce186b7ea47ea69ec71b8d9 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 4 Apr 2016 14:31:41 -0400 Subject: [PATCH 14/68] FS-8883: fix compile due to unused result failure on gnu compiler with --disable-debug --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 4765fb8d67..57216dbbe4 100644 --- a/configure.ac +++ b/configure.ac @@ -411,6 +411,7 @@ elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then AC_SUBST([AM_MOD_AVMD_CXXFLAGS], [-std=gnu99]) # FS-8809, needed for MAP_POPULATE if test "$ac_cv_gcc_supports_w_no_unused_result" = yes; then APR_ADDTO(SWITCH_AM_CFLAGS, -Werror) + APR_ADDTO(SWITCH_AM_CFLAGS, -Wno-unused-result) fi if test "${enable_64}" = "yes"; then case "$host" in From 2ae2af2020c137813dd5799da53c8f4617dafeb9 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 4 Apr 2016 14:41:13 -0400 Subject: [PATCH 15/68] FS-8779: fix the include for Windows builds that point to in tree lib --- src/mod/formats/mod_shout/mod_shout.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mod/formats/mod_shout/mod_shout.c b/src/mod/formats/mod_shout/mod_shout.c index 60275ff3e7..8372a03b7f 100644 --- a/src/mod/formats/mod_shout/mod_shout.c +++ b/src/mod/formats/mod_shout/mod_shout.c @@ -35,7 +35,11 @@ #include #include "mpg123.h" #include +#ifdef WIN32 +#include +#else #include +#endif #include #define OUTSCALE 8192 * 2 From eadb3f890f6e7ba3b3ca23c6feb144fb35d304ce Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 4 Apr 2016 14:41:13 -0400 Subject: [PATCH 16/68] FS-8780: fix the include for Windows builds that point to in tree lib --- libs/libzrtp/include/zrtp_config.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libs/libzrtp/include/zrtp_config.h b/libs/libzrtp/include/zrtp_config.h index 0e2ee73b71..b4631c2007 100644 --- a/libs/libzrtp/include/zrtp_config.h +++ b/libs/libzrtp/include/zrtp_config.h @@ -21,7 +21,7 @@ # define ZRTP_PLATFORM ZP_ANDROID # elif defined(__FreeBSD__) # define ZRTP_PLATFORM ZP_BSD -# elif defined(linux) || defined(__linux) +# elif defined(linux) || defined(__linux__) || defined(__linux) # include # define ZRTP_PLATFORM ZP_LINUX # elif defined(__MACOSX__) || defined (__APPLE__) || defined (__MACH__) @@ -88,7 +88,13 @@ */ #define ZRTP_BYTE_ORDER ZBO_BIG_ENDIAN -#elif defined(ARM) || defined(_ARM_) || defined(ARMV4) || defined(__arm__) +#elif defined(__AARCH64EB__) +/* + * aarch64, big endian + */ +#define ZRTP_BYTE_ORDER ZBO_BIG_ENDIAN + +#elif defined(ARM) || defined(_ARM_) || defined(ARMV4) || defined(__arm__) || defined(__AARCH64EL__) /* * ARM, default to little endian */ From f71ed897f8440996042e086e3a1577744e9fb736 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 4 Apr 2016 15:42:53 -0400 Subject: [PATCH 17/68] FS-8562: [mod_sofia] add update support for Mitel user agents --- src/mod/endpoints/mod_sofia/mod_sofia.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 32a86e502c..3bf5b4968d 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -1829,7 +1829,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)), TAG_END()); } else if (ua && ((switch_stristr("aastra", ua) && !switch_stristr("Intelligate", ua)) || (switch_stristr("cisco/spa50", ua) || switch_stristr("cisco/spa525", ua)) || - switch_stristr("Yealink", ua) || + switch_stristr("Yealink", ua) || switch_stristr("Mitel", ua) || switch_stristr("Panasonic", ua))) { snprintf(message, sizeof(message), "P-Asserted-Identity: \"%s\" ", name, number, tech_pvt->profile->printable_sipip); From 0763f694ffa4543e77aa26f1c9345f0c27e2358d Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 4 Apr 2016 16:07:38 -0400 Subject: [PATCH 18/68] FS-8294: [freetdm] pass in modinstdir to freetdm configure --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 57216dbbe4..ad55efe6dd 100644 --- a/configure.ac +++ b/configure.ac @@ -1903,7 +1903,7 @@ AC_SUBST(OUR_DISABLED_INSTALL_MODS) AC_SUBST(OUR_DISABLED_UNINSTALL_MODS) AC_SUBST(AM_MAKEFLAGS) -ac_configure_args="$ac_configure_args CONFIGURE_CFLAGS='$CFLAGS $CPPFLAGS' CONFIGURE_CXXFLAGS='$CXXFLAGS $CPPFLAGS' CONFIGURE_LDFLAGS='$LDFLAGS' " +ac_configure_args="$ac_configure_args --with-modinstdir=${modulesdir} CONFIGURE_CFLAGS='$CFLAGS $CPPFLAGS' CONFIGURE_CXXFLAGS='$CXXFLAGS $CPPFLAGS' CONFIGURE_LDFLAGS='$LDFLAGS' " # --prefix='$prefix' --exec_prefix='$exec_prefix' --libdir='$libdir' --libexecdir='$libexecdir' --bindir='$bindir' --sbindir='$sbindir' \ # --localstatedir='$localstatedir' --datadir='$datadir'" From f32edbb936a6e9655db0c1b98205fbf724b64a23 Mon Sep 17 00:00:00 2001 From: Mike Jerris Date: Mon, 4 Apr 2016 17:00:25 -0400 Subject: [PATCH 19/68] FS-8875: [mod_avmd] fix windows build from this change --- src/mod/applications/mod_avmd/avmd_desa2_tweaked.c | 5 +---- src/mod/applications/mod_avmd/mod_avmd.2015.vcxproj | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c b/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c index 880a514be5..0b75b9eed1 100644 --- a/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c +++ b/src/mod/applications/mod_avmd/avmd_desa2_tweaked.c @@ -1,6 +1,6 @@ #ifndef __AVMD_DESA2_TWEAKED_H__ - +#include #include #ifdef WIN32 #include @@ -16,9 +16,6 @@ #include "avmd_fast_acosf.h" #endif -#include - - double avmd_desa2_tweaked(circ_buffer_t *b, size_t i) { diff --git a/src/mod/applications/mod_avmd/mod_avmd.2015.vcxproj b/src/mod/applications/mod_avmd/mod_avmd.2015.vcxproj index 5c38bf2a21..af115acd8c 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.2015.vcxproj +++ b/src/mod/applications/mod_avmd/mod_avmd.2015.vcxproj @@ -126,7 +126,7 @@ - + @@ -136,7 +136,7 @@ - + @@ -154,4 +154,4 @@ - + \ No newline at end of file From 1aa2bf8d77d83ff94a951695bd55ab5a0a09873d Mon Sep 17 00:00:00 2001 From: William King Date: Mon, 4 Apr 2016 22:04:22 -0500 Subject: [PATCH 20/68] FS-8978 part two --- src/mod/applications/mod_hiredis/mod_hiredis.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.c b/src/mod/applications/mod_hiredis/mod_hiredis.c index 2af3cd3598..d3b5ab7e11 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.c +++ b/src/mod/applications/mod_hiredis/mod_hiredis.c @@ -198,14 +198,12 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release) profile = switch_core_hash_find(mod_hiredis_globals.profiles, limit_pvt->realm); hashkey = switch_mprintf("decr %s", tmp->limit_key); - if ( limit_pvt && (limit_pvt->interval > 0) && (hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS)) { + if ( tmp && (tmp->interval > 0) && (hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", tmp->realm, hashkey, response); } - limit_pvt = tmp->next; - - tmp = limit_pvt; + tmp = tmp->next; switch_safe_free(response); switch_safe_free(hashkey); } From 439be5d122ea8d331549e2d4f713777733e7be19 Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Tue, 5 Apr 2016 14:53:01 +0100 Subject: [PATCH 21/68] [avmd] FS-9019 Extend syntax description Add commands to syntax description. --- src/mod/applications/mod_avmd/mod_avmd.c | 124 +++++++---------------- 1 file changed, 37 insertions(+), 87 deletions(-) diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index 3324fadf7f..e2ce545edd 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -19,16 +19,14 @@ * * Contributor(s): * + * Piotr Gregor : * Eric des Courtis * * mod_avmd.c -- Advanced Voicemail Detection Module * - * This module detects voicemail beeps using a generalized approach. - * - * Modifications: - * Piotr Gregor : - * FS-8808, FS-8809, FS-8810, FS-8852, FS-8853, FS-8854, FS-8855, - * FS-8860, FS-8861, FS-8875 + * This module detects single frequency tones (used in voicemail to denote + * the moment caller's voice is started to be recorded, aka. beep sounds, + * beeps) using modified DESA-2 algorithm. */ #include @@ -99,7 +97,7 @@ #endif /*! Syntax of the API call. */ -#define AVMD_SYNTAX " " +#define AVMD_SYNTAX " " /*! Number of expected parameters in api call. */ #define AVMD_PARAMS 2 @@ -113,10 +111,9 @@ /* Prototypes */ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avmd_shutdown); -SWITCH_STANDARD_API(avmd_api_main); - SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load); SWITCH_MODULE_DEFINITION(mod_avmd, mod_avmd_load, mod_avmd_shutdown, NULL); +SWITCH_STANDARD_API(avmd_api_main); SWITCH_STANDARD_APP(avmd_start_function); /*! Status of the beep detection */ @@ -216,20 +213,14 @@ static switch_bool_t avmd_callback(switch_media_bug_t * bug, avmd_session = (avmd_session_t *) user_data; if (avmd_session == NULL) { - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, - "No avmd session assigned!\n" - ); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "No avmd session assigned!\n"); return SWITCH_FALSE; } fs_session = avmd_session->session; if (fs_session == NULL) { - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, - "No FreeSWITCH session assigned!\n" - ); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "No FreeSWITCH session assigned!\n"); return SWITCH_FALSE; } @@ -238,19 +229,13 @@ static switch_bool_t avmd_callback(switch_media_bug_t * bug, case SWITCH_ABC_TYPE_INIT: read_codec = switch_core_session_get_read_codec(fs_session); if (read_codec == NULL) { - switch_log_printf( - SWITCH_CHANNEL_SESSION_LOG(fs_session), - SWITCH_LOG_WARNING, - "No codec assigned, default session rate to 8000 samples/s\n" - ); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, + "No codec assigned, default session rate to 8000 samples/s\n"); avmd_session->rate = 8000; } else { if (read_codec->implementation == NULL) { - switch_log_printf( - SWITCH_CHANNEL_SESSION_LOG(fs_session), - SWITCH_LOG_WARNING, - "No codec implementation assigned, default session rate to 8000 samples/s\n" - ); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, + "No codec implementation assigned, default session rate to 8000 samples/s\n"); avmd_session->rate = 8000; } else { avmd_session->rate = read_codec->implementation->samples_per_second; @@ -259,11 +244,8 @@ static switch_bool_t avmd_callback(switch_media_bug_t * bug, avmd_session->start_time = switch_micro_time_now(); /* avmd_session->vmd_codec.channels = * read_codec->implementation->number_of_channels; */ - switch_log_printf( - SWITCH_CHANNEL_SESSION_LOG(fs_session), - SWITCH_LOG_INFO, - "Avmd session started, [%u] samples/s\n", avmd_session->rate - ); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session),SWITCH_LOG_INFO, + "Avmd session started, [%u] samples/s\n", avmd_session->rate); break; case SWITCH_ABC_TYPE_READ_REPLACE: @@ -308,9 +290,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) return SWITCH_STATUS_TERM; } - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_NOTICE, + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Advanced Voicemail detection enabled\n" ); @@ -321,48 +301,33 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) switch (ret) { case -1: - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Can't access file [%s], error [%s]\n", - ACOS_TABLE_FILENAME, err - ); + ACOS_TABLE_FILENAME, err); break; case -2: - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error creating file [%s], error [%s]\n", - ACOS_TABLE_FILENAME, err - ); + ACOS_TABLE_FILENAME, err); break; case -3: - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Access rights are OK but can't open file [%s], error [%s]\n", - ACOS_TABLE_FILENAME, err - ); + ACOS_TABLE_FILENAME, err); break; case -4: - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Access rights are OK but can't mmap file [%s], error [%s]\n", - ACOS_TABLE_FILENAME, err - ); + ACOS_TABLE_FILENAME, err); break; default: - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, + switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "Unknown error [%d] while initializing fast cos table [%s], " - "errno [%s]\n", ret, ACOS_TABLE_FILENAME, err - ); + "errno [%s]\n", ret, ACOS_TABLE_FILENAME, err); return SWITCH_STATUS_TERM; } return SWITCH_STATUS_TERM; @@ -375,18 +340,12 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) ); #endif - SWITCH_ADD_APP( - app_interface, - "avmd", - "Beep detection", - "Advanced detection of voicemail beeps", - avmd_start_function, - "[start] [stop]", - SAF_NONE - ); + SWITCH_ADD_APP(app_interface, "avmd","Beep detection", + "Advanced detection of voicemail beeps", avmd_start_function, + AVMD_SYNTAX, SAF_NONE); SWITCH_ADD_API(api_interface, "avmd", "Voicemail beep detection", - avmd_api_main, AVMD_SYNTAX); + avmd_api_main, AVMD_SYNTAX); /* indicate that the module should continue to be loaded */ return SWITCH_STATUS_SUCCESS; @@ -493,18 +452,12 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avmd_shutdown) if (res != 0) { switch (res) { case -1: - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, - "Failed unmap arc cosine table\n" - ); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "Failed unmap arc cosine table\n"); break; case -2: - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, - "Failed closing arc cosine table\n" - ); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "Failed closing arc cosine table\n"); break; default: break; @@ -512,11 +465,8 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avmd_shutdown) } #endif - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_NOTICE, - "Advanced Voicemail detection disabled\n" - ); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, + "Advanced Voicemail detection disabled\n"); return SWITCH_STATUS_SUCCESS; } From 4fa43a244208370e58d7280b43ca84c15c77c1b4 Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Tue, 5 Apr 2016 16:10:51 +0100 Subject: [PATCH 22/68] [avmd] FS-9023 Add console auto completion Now auto completion is enabled. --- src/mod/applications/mod_avmd/mod_avmd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index e2ce545edd..408e2632ec 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -291,8 +291,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) } switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, - "Advanced Voicemail detection enabled\n" - ); + "Advanced voicemail detection enabled\n"); #ifdef AVMD_FAST_MATH ret = init_fast_acosf(); @@ -335,7 +334,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) switch_log_printf( SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, - "Advanced Voicemail detection: fast math enabled, arc cosine table " + "Advanced voicemail detection: fast math enabled, arc cosine table " "is [%s]\n", ACOS_TABLE_FILENAME ); #endif @@ -347,6 +346,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) SWITCH_ADD_API(api_interface, "avmd", "Voicemail beep detection", avmd_api_main, AVMD_SYNTAX); + switch_console_set_complete("add avmd ::console::list_uuid ::[start:stop"); + /* indicate that the module should continue to be loaded */ return SWITCH_STATUS_SUCCESS; } @@ -466,7 +467,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avmd_shutdown) #endif switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, - "Advanced Voicemail detection disabled\n"); + "Advanced voicemail detection disabled\n"); return SWITCH_STATUS_SUCCESS; } From 73cc5ae3c1dae9cd009e8dba3e295a9fc7ecf6bf Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Wed, 6 Apr 2016 16:12:39 +0100 Subject: [PATCH 23/68] FS-9020 Avmd internal/external channel Implement checking of proper configuration of avmd session being started on internal/external channels. Check for read/write codec, CF_MEDIA_SET. --- src/include/switch_types.h | 2 + src/mod/applications/mod_avmd/avmd_options.h | 10 +-- src/mod/applications/mod_avmd/mod_avmd.c | 95 ++++++++++++++++---- 3 files changed, 85 insertions(+), 22 deletions(-) diff --git a/src/include/switch_types.h b/src/include/switch_types.h index e4f08f832f..931c41cf67 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1359,6 +1359,8 @@ CF_STOP_BROADCAST - Signal to stop broadcast CF_AUDIO_PAUSE - Audio is not ready to read/write CF_VIDEO_PAUSE - Video is not ready to read/write +CF_MEDIA_SET - Session has read codec assigned + */ diff --git a/src/mod/applications/mod_avmd/avmd_options.h b/src/mod/applications/mod_avmd/avmd_options.h index 4c2216cfd2..7ac38008b9 100644 --- a/src/mod/applications/mod_avmd/avmd_options.h +++ b/src/mod/applications/mod_avmd/avmd_options.h @@ -12,7 +12,7 @@ /* define/undefine this to enable/disable printing of avmd * intermediate computations to log */ -/*#define AVMD_DEBUG */ +/*#define AVMD_DEBUG*/ /* define/undef this to enable/disable reporting of beep * detection status after session ended */ @@ -38,11 +38,11 @@ * in the range x=[0,PI/2] */ #define AVMD_SIMPLIFIED_ESTIMATION -/* define/undefine to enable/disable avmd on incoming audio */ -#define AVMD_INBOUND_CHANNEL +/* define/undefine to enable/disable avmd on internal channel */ +/*#define AVMD_INBOUND_CHANNEL*/ -/* define/undefine to enable/disable avmd on outgoing audio */ -/*#define AVMD_OUTBOUND_CHANNEL*/ +/* define/undefine to enable/disable avmd on external channel */ +#define AVMD_OUTBOUND_CHANNEL #endif /* __AVMD_OPTIONS_H__ */ diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index 408e2632ec..70d568afb9 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -206,7 +206,12 @@ static switch_bool_t avmd_callback(switch_media_bug_t * bug, void *user_data, switch_abc_type_t type) { avmd_session_t *avmd_session; +#ifdef AVMD_OUTBOUND_CHANNEL switch_codec_t *read_codec; +#endif +#ifdef AVMD_INBOUND_CHANNEL + switch_codec_t *write_codec; +#endif switch_frame_t *frame; switch_core_session_t *fs_session; @@ -227,20 +232,39 @@ static switch_bool_t avmd_callback(switch_media_bug_t * bug, switch (type) { case SWITCH_ABC_TYPE_INIT: +#ifdef AVMD_OUTBOUND_CHANNEL read_codec = switch_core_session_get_read_codec(fs_session); if (read_codec == NULL) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, - "No codec assigned, default session rate to 8000 samples/s\n"); + "No read codec assigned, default session rate to 8000 samples/s\n"); avmd_session->rate = 8000; } else { if (read_codec->implementation == NULL) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, - "No codec implementation assigned, default session rate to 8000 samples/s\n"); + "No read codec implementation assigned, default session rate to 8000 samples/s\n"); avmd_session->rate = 8000; } else { avmd_session->rate = read_codec->implementation->samples_per_second; } } +#endif +#ifdef AVMD_INBOUND_CHANNEL + write_codec = switch_core_session_get_write_codec(fs_session); + if (write_codec == NULL) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, + "No write codec assigned, default session rate to 8000 samples/s\n"); + avmd_session->rate = 8000; + } else { + if (write_codec->implementation == NULL) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, + "No write codec implementation assigned, default session rate to 8000 samples/s\n"); + avmd_session->rate = 8000; + } else { + avmd_session->rate = write_codec->implementation->samples_per_second; + } + } +#endif + avmd_session->start_time = switch_micro_time_now(); /* avmd_session->vmd_codec.channels = * read_codec->implementation->number_of_channels; */ @@ -473,7 +497,8 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avmd_shutdown) } /*! \brief FreeSWITCH API handler function. - * This function handles API calls such as the ones from mod_event_socket and in some cases + * This function handles API calls such as the ones + * from mod_event_socket and in some cases * scripts such as LUA scripts. * * @author Eric des Courtis @@ -527,9 +552,56 @@ SWITCH_STANDARD_API(avmd_api_main) } /* Get current channel of the session to tag the session - * This indicates that our module is present */ + * This indicates that our module is present + * At this moment this cannot return NULL, it will either + * succeed or assert failed, but we make ourself secure anyway */ channel = switch_core_session_get_channel(fs_session); + if (channel == NULL) { + stream->write_function(stream, "-ERR, no channel for FreeSWITCH session [%s]!" + "\nPlease report this to the developers.\n\n", uuid); + goto end; + } +#ifdef AVMD_OUTBOUND_CHANNEL + if (SWITCH_CALL_DIRECTION_OUTBOUND != switch_channel_direction(channel)) { + stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" + "\nis not outbound.\n\n", uuid); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, + "Channel [%s] is not outbound!\n", switch_channel_get_name(channel)); + } else { + flags |= SMBF_READ_REPLACE; + } +#endif +#ifdef AVMD_INBOUND_CHANNEL + if (SWITCH_CALL_DIRECTION_INBOUND != switch_channel_direction(channel)) { + stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" + "\nis not inbound.\n\n", uuid); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, + "Channel [%s] is not inbound!\n", switch_channel_get_name(channel)); + } else { + flags |= SMBF_WRITE_REPLACE; + } +#endif + if(flags == 0) { + stream->write_function(stream, "-ERR, can't set direction for channel [%s]\n" + " for FreeSWITCH session [%s]. Please check avmd configuration.\n\n", + switch_channel_get_name(channel), uuid); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + "Can't set direction for channel [%s]\n", switch_channel_get_name(channel)); + goto end; + } + +#ifdef AVMD_OUTBOUND_CHANNEL + if (switch_channel_test_flag(channel, CF_MEDIA_SET) == 0) { + stream->write_function(stream, "-ERR, channel [%s] for FreeSWITCH session [%s]" + "\nhas no read codec assigned yet. Please try again.\n\n", + switch_channel_get_name(channel), uuid); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + "Failed to start session. Channel [%s] has no codec assigned yet.\n", + switch_channel_get_name(channel)); + goto end; + } +#endif /* Is this channel already set? */ bug = (switch_media_bug_t *) switch_channel_get_private(channel, "_avmd_"); /* If yes */ @@ -544,11 +616,8 @@ SWITCH_STANDARD_API(avmd_api_main) } /* We have already started */ - switch_log_printf( - SWITCH_CHANNEL_SESSION_LOG(session), - SWITCH_LOG_WARNING, - "Cannot run 2 at once on the same channel!\n" - ); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, + "Cannot run 2 at once on the same channel!\n"); goto end; } @@ -567,14 +636,6 @@ SWITCH_STANDARD_API(avmd_api_main) init_avmd_session_data(avmd_session, fs_session); -#ifdef AVMD_INBOUND_CHANNEL - flags |= SMBF_READ_REPLACE; -#endif -#ifdef AVMD_OUTBOUND_CHANNEL - flags |= SMBF_WRITE_REPLACE; -#endif - switch_assert(flags != 0); - /* Add a media bug that allows me to intercept the * reading leg of the audio stream */ status = switch_core_media_bug_add( From cc05abc0d4fcc40af68e2e6158256cb655ea3e12 Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Wed, 6 Apr 2016 23:01:34 +0100 Subject: [PATCH 24/68] FS-9027: [avmd] Check buffer Now buffer is checked for successful memory allocation dynamically with assertion omitted. --- src/mod/applications/mod_avmd/avmd_buffer.h | 2 - src/mod/applications/mod_avmd/mod_avmd.c | 65 ++++++++++----------- 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/src/mod/applications/mod_avmd/avmd_buffer.h b/src/mod/applications/mod_avmd/avmd_buffer.h index 61aff270b2..345a624ed6 100644 --- a/src/mod/applications/mod_avmd/avmd_buffer.h +++ b/src/mod/applications/mod_avmd/avmd_buffer.h @@ -11,7 +11,6 @@ #include -#include #ifndef INT16_MIN #define INT16_MIN (-32767-1) @@ -95,7 +94,6 @@ extern size_t next_power_of_2(size_t v); (bf)->buf_len = CALC_BUFF_LEN((fl), (bl)); \ (bf)->mask = (bf)->buf_len - 1; \ (bf)->buf = (BUFF_TYPE *) switch_core_session_alloc(s, (bf)->buf_len * sizeof(BUFF_TYPE)); \ - assert((bf)->buf != NULL); \ (bf)->pos = 0; \ (bf)->lpos = 0; \ (bf)->backlog = 0; \ diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index 70d568afb9..bd2ff7c45d 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -163,13 +163,18 @@ static void init_avmd_session_data(avmd_session_t *avmd_session, static void init_avmd_session_data(avmd_session_t *avmd_session, switch_core_session_t *fs_session) { - /*! This is a worst case sample rate estimate */ - avmd_session->rate = 48000; + /*! This is a worst case sample rate estimate */ + avmd_session->rate = 48000; INIT_CIRC_BUFFER(&avmd_session->b, (size_t)BEEP_LEN(avmd_session->rate), (size_t)FRAME_LEN(avmd_session->rate), fs_session); - + if (avmd_session->b.buf == NULL) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " Buffer error\n"); + return; + } avmd_session->session = fs_session; avmd_session->pos = 0; avmd_session->f = 0.0; @@ -179,13 +184,11 @@ static void init_avmd_session_data(avmd_session_t *avmd_session, avmd_session->samples_streak = SAMPLES_CONSECUTIVE_STREAK; #endif avmd_session->sample_count = 0; - INIT_SMA_BUFFER( &avmd_session->sma_b, BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate), fs_session ); - INIT_SMA_BUFFER( &avmd_session->sqa_b, BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate), @@ -269,7 +272,7 @@ static switch_bool_t avmd_callback(switch_media_bug_t * bug, /* avmd_session->vmd_codec.channels = * read_codec->implementation->number_of_channels; */ switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session),SWITCH_LOG_INFO, - "Avmd session started, [%u] samples/s\n", avmd_session->rate); + "Avmd session initialized, [%u] samples/s\n", avmd_session->rate); break; case SWITCH_ABC_TYPE_READ_REPLACE: @@ -411,14 +414,10 @@ SWITCH_STANDARD_APP(avmd_start_function) switch_core_media_bug_remove(session, &bug); return; } - /* We have already started */ switch_log_printf( SWITCH_CHANNEL_SESSION_LOG(session), - SWITCH_LOG_WARNING, - "Cannot run 2 at once on the same channel!\n" - ); - + SWITCH_LOG_WARNING, "Cannot run 2 at once on the same channel!\n"); return; } @@ -447,11 +446,8 @@ SWITCH_STANDARD_APP(avmd_start_function) ); if (status != SWITCH_STATUS_SUCCESS) { - switch_log_printf( - SWITCH_CHANNEL_SESSION_LOG(session), - SWITCH_LOG_ERROR, - "Failure hooking to stream\n" - ); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Failure hooking to stream\n"); return; } @@ -558,14 +554,14 @@ SWITCH_STANDARD_API(avmd_api_main) channel = switch_core_session_get_channel(fs_session); if (channel == NULL) { stream->write_function(stream, "-ERR, no channel for FreeSWITCH session [%s]!" - "\nPlease report this to the developers.\n\n", uuid); + "\nPlease report this to the developers\n\n", uuid); goto end; } #ifdef AVMD_OUTBOUND_CHANNEL if (SWITCH_CALL_DIRECTION_OUTBOUND != switch_channel_direction(channel)) { stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" - "\nis not outbound.\n\n", uuid); - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, + "\nis not outbound\n\n", uuid); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, "Channel [%s] is not outbound!\n", switch_channel_get_name(channel)); } else { flags |= SMBF_READ_REPLACE; @@ -575,7 +571,7 @@ SWITCH_STANDARD_API(avmd_api_main) if (SWITCH_CALL_DIRECTION_INBOUND != switch_channel_direction(channel)) { stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" "\nis not inbound.\n\n", uuid); - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, "Channel [%s] is not inbound!\n", switch_channel_get_name(channel)); } else { flags |= SMBF_WRITE_REPLACE; @@ -583,9 +579,9 @@ SWITCH_STANDARD_API(avmd_api_main) #endif if(flags == 0) { stream->write_function(stream, "-ERR, can't set direction for channel [%s]\n" - " for FreeSWITCH session [%s]. Please check avmd configuration.\n\n", + " for FreeSWITCH session [%s]. Please check avmd configuration\n\n", switch_channel_get_name(channel), uuid); - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Can't set direction for channel [%s]\n", switch_channel_get_name(channel)); goto end; } @@ -594,10 +590,11 @@ SWITCH_STANDARD_API(avmd_api_main) #ifdef AVMD_OUTBOUND_CHANNEL if (switch_channel_test_flag(channel, CF_MEDIA_SET) == 0) { stream->write_function(stream, "-ERR, channel [%s] for FreeSWITCH session [%s]" - "\nhas no read codec assigned yet. Please try again.\n\n", + "\nhas no read codec assigned yet. Please try again\n\n", switch_channel_get_name(channel), uuid); - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, - "Failed to start session. Channel [%s] has no codec assigned yet.\n", + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, + "Failed to start session. Channel [%s] has no codec assigned yet." + " Please try again\n", switch_channel_get_name(channel)); goto end; } @@ -611,12 +608,12 @@ SWITCH_STANDARD_API(avmd_api_main) switch_channel_set_private(channel, "_avmd_", NULL); switch_core_media_bug_remove(fs_session, &bug); switch_safe_free(ccmd); - stream->write_function(stream, "+OK\n[%s] stopped.\n", uuid); + stream->write_function(stream, "+OK, [%s] stopped\n", uuid); goto end; } /* We have already started */ - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, "Cannot run 2 at once on the same channel!\n"); goto end; @@ -651,12 +648,8 @@ SWITCH_STANDARD_API(avmd_api_main) /* If adding a media bug fails exit */ if (status != SWITCH_STATUS_SUCCESS) { - - switch_log_printf( - SWITCH_CHANNEL_SESSION_LOG(session), - SWITCH_LOG_ERROR, - "Failed to add media bug!\n" - ); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to add media bug!\n"); stream->write_function(stream, "-ERR, [%s] failed to add media bug!\n\n", uuid); goto end; @@ -665,7 +658,9 @@ SWITCH_STANDARD_API(avmd_api_main) /* Set the vmd tag to detect an existing vmd media bug */ switch_channel_set_private(channel, "_avmd_", bug); - /* Everything went according to plan! Notify the user */ + /* OK */ + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, + "Avmd session on channel [%s] started\n", switch_channel_get_name(channel)); stream->write_function(stream, "+OK, start\n\n"); @@ -845,7 +840,7 @@ static void avmd_process(avmd_session_t *session, switch_frame_t *frame) switch_event_fire(&event_copy); #ifdef AVMD_REPORT_STATUS - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session->session), SWITCH_LOG_NOTICE, + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session->session), SWITCH_LOG_INFO, "<<< AVMD - Beep Detected: f = [%f], variance = [%f] >>>\n", TO_HZ(session->rate, sma_digital_freq), v); #endif From 7dd77c781e7ac336515b28d5cd3060a44c06c6ef Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Thu, 7 Apr 2016 00:17:21 +0100 Subject: [PATCH 25/68] FS-9028: [avmd] Check SMA buffer Now SMA buffer is checked for successful memory allocation dynamically with assertion omitted. --- src/mod/applications/mod_avmd/avmd_sma_buf.h | 2 - src/mod/applications/mod_avmd/mod_avmd.c | 42 ++++++++++++++------ 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/mod/applications/mod_avmd/avmd_sma_buf.h b/src/mod/applications/mod_avmd/avmd_sma_buf.h index 0fcc451dab..2871cc9b7d 100644 --- a/src/mod/applications/mod_avmd/avmd_sma_buf.h +++ b/src/mod/applications/mod_avmd/avmd_sma_buf.h @@ -32,8 +32,6 @@ typedef struct { (void)memset((b), 0, sizeof(sma_buffer_t)); \ (b)->len = (l); \ (b)->data = (BUFF_TYPE *)switch_core_session_alloc((s), sizeof(BUFF_TYPE) * (l)); \ - assert((b)->data != NULL); \ - (void)memset((b)->data, 0, sizeof(BUFF_TYPE) * (l)); \ (b)->sma = 0.0; \ (b)->pos = 0; \ (b)->lpos = 0; \ diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index bd2ff7c45d..2715f8c24a 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -163,8 +163,10 @@ static void init_avmd_session_data(avmd_session_t *avmd_session, static void init_avmd_session_data(avmd_session_t *avmd_session, switch_core_session_t *fs_session) { - /*! This is a worst case sample rate estimate */ - avmd_session->rate = 48000; + size_t buf_sz; + + /*! This is a worst case sample rate estimate */ + avmd_session->rate = 48000; INIT_CIRC_BUFFER(&avmd_session->b, (size_t)BEEP_LEN(avmd_session->rate), (size_t)FRAME_LEN(avmd_session->rate), @@ -184,16 +186,32 @@ static void init_avmd_session_data(avmd_session_t *avmd_session, avmd_session->samples_streak = SAMPLES_CONSECUTIVE_STREAK; #endif avmd_session->sample_count = 0; - INIT_SMA_BUFFER( - &avmd_session->sma_b, - BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate), - fs_session - ); - INIT_SMA_BUFFER( - &avmd_session->sqa_b, - BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate), - fs_session - ); + + buf_sz = BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate); + if (buf_sz < 1) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA buffer size is 0!\n"); + return; + } + + INIT_SMA_BUFFER(&avmd_session->sma_b, buf_sz, fs_session); + if (avmd_session->sma_b.data == NULL) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA buffer error\n"); + return; + } + memset(avmd_session->sma_b.data, 0, sizeof(BUFF_TYPE) * buf_sz); + + INIT_SMA_BUFFER(&avmd_session->sqa_b, buf_sz, fs_session); + if (avmd_session->sqa_b.data == NULL) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA sqa buffer error\n"); + return; + } + memset(avmd_session->sqa_b.data, 0, sizeof(BUFF_TYPE) * buf_sz); } From 2197794e5569bc52d51dbec81f4ddab7944a6ffd Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Thu, 7 Apr 2016 02:09:14 +0100 Subject: [PATCH 26/68] FS-9031: [avmd] Check session initialization Now avmd session's initialization is checked for errors. Error reporting is improved. --- src/mod/applications/mod_avmd/mod_avmd.c | 174 +++++++++++++++-------- 1 file changed, 118 insertions(+), 56 deletions(-) diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index 2715f8c24a..eb1cfa37d6 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -151,7 +151,7 @@ typedef struct { static void avmd_process(avmd_session_t *session, switch_frame_t *frame); static switch_bool_t avmd_callback(switch_media_bug_t * bug, void *user_data, switch_abc_type_t type); -static void init_avmd_session_data(avmd_session_t *avmd_session, +static int init_avmd_session_data(avmd_session_t *avmd_session, switch_core_session_t *fs_session); @@ -160,7 +160,7 @@ static void init_avmd_session_data(avmd_session_t *avmd_session, * @param avmd_session A reference to a avmd session. * @param fs_session A reference to a FreeSWITCH session. */ -static void init_avmd_session_data(avmd_session_t *avmd_session, +static int init_avmd_session_data(avmd_session_t *avmd_session, switch_core_session_t *fs_session) { size_t buf_sz; @@ -172,10 +172,7 @@ static void init_avmd_session_data(avmd_session_t *avmd_session, (size_t)FRAME_LEN(avmd_session->rate), fs_session); if (avmd_session->b.buf == NULL) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), - SWITCH_LOG_ERROR, "Failed to init avmd session." - " Buffer error\n"); - return; + return -1; } avmd_session->session = fs_session; avmd_session->pos = 0; @@ -189,29 +186,21 @@ static void init_avmd_session_data(avmd_session_t *avmd_session, buf_sz = BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate); if (buf_sz < 1) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), - SWITCH_LOG_ERROR, "Failed to init avmd session." - " SMA buffer size is 0!\n"); - return; + return -2; } INIT_SMA_BUFFER(&avmd_session->sma_b, buf_sz, fs_session); if (avmd_session->sma_b.data == NULL) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), - SWITCH_LOG_ERROR, "Failed to init avmd session." - " SMA buffer error\n"); - return; + return -3; } memset(avmd_session->sma_b.data, 0, sizeof(BUFF_TYPE) * buf_sz); INIT_SMA_BUFFER(&avmd_session->sqa_b, buf_sz, fs_session); if (avmd_session->sqa_b.data == NULL) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), - SWITCH_LOG_ERROR, "Failed to init avmd session." - " SMA sqa buffer error\n"); - return; + return -4; } memset(avmd_session->sqa_b.data, 0, sizeof(BUFF_TYPE) * buf_sz); + return 0; } @@ -405,6 +394,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) */ SWITCH_STANDARD_APP(avmd_start_function) { + int res; switch_media_bug_t *bug; switch_status_t status; switch_channel_t *channel; @@ -412,11 +402,8 @@ SWITCH_STANDARD_APP(avmd_start_function) switch_media_bug_flag_t flags = 0; if (session == NULL) { - switch_log_printf( - SWITCH_CHANNEL_LOG, - SWITCH_LOG_ERROR, - "No FreeSWITCH session assigned!\n" - ); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "No FreeSWITCH session assigned!\n"); return; } @@ -442,7 +429,37 @@ SWITCH_STANDARD_APP(avmd_start_function) avmd_session = (avmd_session_t *)switch_core_session_alloc( session, sizeof(avmd_session_t)); - init_avmd_session_data(avmd_session, session); + res = init_avmd_session_data(avmd_session, session); + if (res != 0) { + switch (res) { + case -1: + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " Buffer error!\n"); + break; + case -2: + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA buffer size is 0!\n"); + break; + case -3: + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA buffer error\n"); + break; + case -4: + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA sqa buffer error\n"); + break; + default: + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " Unknown error\n"); + break; + } + return; + } #ifdef AVMD_INBOUND_CHANNEL flags |= SMBF_READ_REPLACE; @@ -520,6 +537,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avmd_shutdown) */ SWITCH_STANDARD_API(avmd_api_main) { + int res; switch_core_session_t *fs_session = NULL; switch_media_bug_t *bug; avmd_session_t *avmd_session; @@ -528,7 +546,7 @@ SWITCH_STANDARD_API(avmd_api_main) int argc; char *argv[AVMD_PARAMS]; char *ccmd = NULL; - char *uuid; + char *uuid, *uuid_dup; char *command; switch_core_media_flag_t flags = 0; @@ -572,13 +590,40 @@ SWITCH_STANDARD_API(avmd_api_main) channel = switch_core_session_get_channel(fs_session); if (channel == NULL) { stream->write_function(stream, "-ERR, no channel for FreeSWITCH session [%s]!" - "\nPlease report this to the developers\n\n", uuid); + "\n Please report this to the developers.\n\n", uuid); goto end; } + + /* Is this channel already set? */ + bug = (switch_media_bug_t *) switch_channel_get_private(channel, "_avmd_"); + /* If yes */ + if (bug != NULL) { + /* If we have a stop remove audio bug */ + if (strcasecmp(command, "stop") == 0) { + uuid_dup = switch_core_strdup(switch_core_session_get_pool(fs_session), uuid); + switch_channel_set_private(channel, "_avmd_", NULL); + switch_core_media_bug_remove(fs_session, &bug); + switch_safe_free(ccmd); + stream->write_function(stream, "+OK\n [%s] [%s] stopped.\n\n", + uuid_dup, switch_channel_get_name(channel)); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, + "Avmd on channel [%s] stopped!\n", switch_channel_get_name(channel)); + goto end; + } + + /* We have already started */ + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Avmd already started!\n"); + stream->write_function(stream, "-ERR, avmd for FreeSWITCH session [%s]" + "\n already started\n\n", uuid); + + goto end; + } + #ifdef AVMD_OUTBOUND_CHANNEL if (SWITCH_CALL_DIRECTION_OUTBOUND != switch_channel_direction(channel)) { stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" - "\nis not outbound\n\n", uuid); + "\n is not outbound.\n\n", uuid); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, "Channel [%s] is not outbound!\n", switch_channel_get_name(channel)); } else { @@ -588,7 +633,7 @@ SWITCH_STANDARD_API(avmd_api_main) #ifdef AVMD_INBOUND_CHANNEL if (SWITCH_CALL_DIRECTION_INBOUND != switch_channel_direction(channel)) { stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" - "\nis not inbound.\n\n", uuid); + "\n is not inbound.\n\n", uuid); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, "Channel [%s] is not inbound!\n", switch_channel_get_name(channel)); } else { @@ -608,39 +653,19 @@ SWITCH_STANDARD_API(avmd_api_main) #ifdef AVMD_OUTBOUND_CHANNEL if (switch_channel_test_flag(channel, CF_MEDIA_SET) == 0) { stream->write_function(stream, "-ERR, channel [%s] for FreeSWITCH session [%s]" - "\nhas no read codec assigned yet. Please try again\n\n", + "\n has no read codec assigned yet. Please try again.\n\n", switch_channel_get_name(channel), uuid); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to start session. Channel [%s] has no codec assigned yet." - " Please try again\n", - switch_channel_get_name(channel)); + " Please try again\n", switch_channel_get_name(channel)); goto end; } #endif - /* Is this channel already set? */ - bug = (switch_media_bug_t *) switch_channel_get_private(channel, "_avmd_"); - /* If yes */ - if (bug != NULL) { - /* If we have a stop remove audio bug */ - if (strcasecmp(command, "stop") == 0) { - switch_channel_set_private(channel, "_avmd_", NULL); - switch_core_media_bug_remove(fs_session, &bug); - switch_safe_free(ccmd); - stream->write_function(stream, "+OK, [%s] stopped\n", uuid); - goto end; - } - - /* We have already started */ - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, - "Cannot run 2 at once on the same channel!\n"); - - goto end; - } /* If we don't see the expected start exit */ if (strcasecmp(command, "start") != 0) { stream->write_function(stream, "-ERR, did you mean\n" - "api avmd %s start ?\n-USAGE: %s\n\n", uuid, AVMD_SYNTAX); + " api avmd %s start ?\n-USAGE: %s\n\n", uuid, AVMD_SYNTAX); goto end; } @@ -649,7 +674,44 @@ SWITCH_STANDARD_API(avmd_api_main) avmd_session = (avmd_session_t *) switch_core_session_alloc( fs_session, sizeof(avmd_session_t)); - init_avmd_session_data(avmd_session, fs_session); + res = init_avmd_session_data(avmd_session, fs_session); + if (res != 0) { + stream->write_function(stream, "-ERR, failed to initialize avmd session\n" + " for FreeSWITCH session [%s]\n", uuid); + switch (res) { + case -1: + stream->write_function(stream, "-ERR, buffer error\n\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " Buffer error!\n"); + break; + case -2: + stream->write_function(stream, "-ERR, SMA buffer size is 0\n\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA buffer size is 0!\n"); + break; + case -3: + stream->write_function(stream, "-ERR, SMA buffer error\n\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA buffer error\n"); + break; + case -4: + stream->write_function(stream, "-ERR, SMA sqa buffer error\n\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " SMA sqa buffer error\n"); + break; + default: + stream->write_function(stream, "-ERR, unknown error\n\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), + SWITCH_LOG_ERROR, "Failed to init avmd session." + " Unknown error\n"); + break; + } + goto end; + } /* Add a media bug that allows me to intercept the * reading leg of the audio stream */ @@ -677,10 +739,10 @@ SWITCH_STANDARD_API(avmd_api_main) switch_channel_set_private(channel, "_avmd_", bug); /* OK */ - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, - "Avmd session on channel [%s] started\n", switch_channel_get_name(channel)); - stream->write_function(stream, "+OK, start\n\n"); - + stream->write_function(stream, "+OK\n [%s] [%s] started!\n\n", + uuid, switch_channel_get_name(channel)); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, + "Avmd on channel [%s] started!\n", switch_channel_get_name(channel)); end: From 8baf10d2666e887f15152754d4553c77484cf7c8 Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Thu, 7 Apr 2016 02:09:14 +0100 Subject: [PATCH 27/68] FS-9031: [avmd] Check session initialization Now avmd session's initialization is checked for errors. Error reporting is improved. --- src/mod/applications/mod_avmd/mod_avmd.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index eb1cfa37d6..2aa315b3c6 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -656,8 +656,13 @@ SWITCH_STANDARD_API(avmd_api_main) "\n has no read codec assigned yet. Please try again.\n\n", switch_channel_get_name(channel), uuid); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, +<<<<<<< HEAD "Failed to start session. Channel [%s] has no codec assigned yet." " Please try again\n", switch_channel_get_name(channel)); +======= + "Failed to start session. Channel [%s] has no codec assigned yet.\n", + switch_channel_get_name(channel)); +>>>>>>> FS-9031: [avmd] Check session initialization goto end; } #endif @@ -680,24 +685,35 @@ SWITCH_STANDARD_API(avmd_api_main) " for FreeSWITCH session [%s]\n", uuid); switch (res) { case -1: +<<<<<<< HEAD stream->write_function(stream, "-ERR, buffer error\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." " Buffer error!\n"); break; case -2: +======= +>>>>>>> FS-9031: [avmd] Check session initialization stream->write_function(stream, "-ERR, SMA buffer size is 0\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." " SMA buffer size is 0!\n"); break; +<<<<<<< HEAD case -3: +======= + case -2: +>>>>>>> FS-9031: [avmd] Check session initialization stream->write_function(stream, "-ERR, SMA buffer error\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." " SMA buffer error\n"); break; +<<<<<<< HEAD case -4: +======= + case -3: +>>>>>>> FS-9031: [avmd] Check session initialization stream->write_function(stream, "-ERR, SMA sqa buffer error\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." @@ -738,11 +754,19 @@ SWITCH_STANDARD_API(avmd_api_main) /* Set the vmd tag to detect an existing vmd media bug */ switch_channel_set_private(channel, "_avmd_", bug); +<<<<<<< HEAD /* OK */ +======= + /* Everything went according to plan! Notify the user */ +>>>>>>> FS-9031: [avmd] Check session initialization stream->write_function(stream, "+OK\n [%s] [%s] started!\n\n", uuid, switch_channel_get_name(channel)); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, "Avmd on channel [%s] started!\n", switch_channel_get_name(channel)); +<<<<<<< HEAD +======= + +>>>>>>> FS-9031: [avmd] Check session initialization end: From 254b7067819eddcf08a2a882af8631d9f943e73d Mon Sep 17 00:00:00 2001 From: Niels Hanberg Date: Thu, 7 Apr 2016 19:21:43 +0200 Subject: [PATCH 28/68] FS-9038: Add translations to support danish - Initial try to translate to danish. All translations was made without knowing the full context. - Fix indentation - Add dansih as an available language --- .../src/locales/locale-da.json | 142 ++++++++++++++++++ .../src/vertoApp/vertoApp.module.js | 6 +- 2 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 html5/verto/verto_communicator/src/locales/locale-da.json diff --git a/html5/verto/verto_communicator/src/locales/locale-da.json b/html5/verto/verto_communicator/src/locales/locale-da.json new file mode 100644 index 0000000000..02c5506550 --- /dev/null +++ b/html5/verto/verto_communicator/src/locales/locale-da.json @@ -0,0 +1,142 @@ +{ + "TITLE_ACTIVE_CALL": "Ups, der er et aktivt opkald.", + "MESSAGE_ACTIVE_CALL_HANGUP": "Du er allerede i et opkald. Vil du lægge på?", + "MESSAGE_ACTIVE_CALL_BACK": "Det ser ud til du sidste gang var i et opkald. Vil du tilbage til det?", + "TITLE_INCOMING_CALL": "Indkommende kald", + "MESSAGE_INCOMING_CALL": "Fra ", + "MESSAGE_NO_HANGUP_CALL": "Der er ikke noget opkald at lægge på.", + "MESSAGE_ENTER_FILENAME": "Vær venlig at indtaste filnavnet", + "TITLE_ENABLE_VIDEO": "Vil du slå video til for dette opkald?", + "MESSAGE_ENABLE_VIDEO": "Video vil være slået til for de næste opkald.", + "TITLE_INSERT_BANNER": "Vær venlig at indsætte bannerteksten", + "TITLE_INSERT_CANVAS_ID": "Vær venlig at indsætte Canvas Id'et", + "TITLE_INSERT_LAYER": "Vær venlig at indsætte laget", + "TITLE_TRANSFER": "Viderestil gruppen?", + "MESSAGE_TRANSFER": "Til hvilken destination vil du viderestille opkaldet?", + "LABEL_TRANSFER": "Destination", + "MESSAGE_DISPLAY_SETTINGS": "Det er ikke muligt at vise eksempelvisnings indstillinger under et kald", + "BUTTON_END_CALL": "Afslut kald", + "BUTTON_CLOSE": "Luk", + "MESSAGE_PLAY": "Afspil", + "MESSAGE_STOP": "Stop", + "MESSAGE_RECORD": "Optag", + "MESSAGE_STOP_RECORD": "Stop med at optage", + "MESSAGE_SNAPSHOT": "Snapshot", + "MESSAGE_VIDEO_MODE": "Videotilstand", + "MESSAGE_MUTE_MIC": "Slå mikrofon til/fra", + "MESSAGE_MUTE_VIDEO": "Slå video til/fra", + "MESSAGE_FULLSCREEN": "Skift fuldskærmstilstand", + "MESSAGE_SCREENSHARE": "Skærmdeling", + "MESSAGE_OPEN_CLOSE_CHAT": "Åben/luk chat", + "MESSAGE_SPEAKER": "Højtaler", + "MESSAGE_POPUP": "Popup", + "CHAT_TITLE_MEMBERS": "Medlemmer", + "CHAT_TITLE": "Chat", + "CHAT_NO_MEMBERS": "Der er ingen medlemmer at vise.", + "CHAT_GENERAL": "Generel", + "CHAT_TITLE_KICK": "Fjern", + "CHAT_KICK": "Fjern", + "CHAT_TITLE_VIDEO_FLOOR": "Video niveau", + "CHAT_FLOOR": "Niveau", + "CHAT_TITLE_TRANSFER": "Viderestil", + "CHAT_TRANSFER": "Viderestil", + "CHAT_BANNER": "Banner", + "CHAT_TITLE_SET": "Sæt", + "CHAT_SET": "Sæt", + "CHAT_TITLE_RESET": "Nulstil", + "CHAT_RESET": "Nulstil", + "CHAT_CANVAS": "Canvas", + "CHAT_CANVAS_IN": "Canvas ind", + "CHAT_CANVAS_OUT": "Canvas ud", + "CHAT_PREV": "Forrige", + "CHAT_NEXT": "Næste", + "CHAT_LAYER": "Lag", + "CHAT_AUDIO_VIDEO": "Lyd/Video", + "CHAT_TITLE_MUTE_UNMUTE_MIC": "Slå mikrofon til/fra", + "CHAT_MUTE_MIC": "Slå mikrofon fra", + "CHAT_UNMUTE_MIC": "Slå mikrofon til", + "CHAT_TITLE_MUTE_UNMUTE_MIC": "Slå video til/fra", + "CHAT_NO_MESSAGES": "Der er ingen beskeder at vise.", + "CHAT_SEND_MESSAGE": "Send", + "CHAT_TYPE_MESSAGE": "Skriv din besked her...", + "TITLE_CONTRIBUTORS": "Bidragsydere", + "MESSAGE_CONNECTION_UNTRUSTED": "Denne forbindelse er ikke til at stole på.", + "MESSAGE_TOGGLE_NAVIGATION": "Vis/skjul navigation", + "BANDWIDTH_INFO": "Båndbredde information", + "BANDWIDTH_INFO_INCOMING": "Indkommende:", + "BANDWIDTH_INFO_OUTGOING": "Udgående:", + "BANDWIDTH_INFO_VIDEO_RES": "Video opløsning:", + "IN_CALL": "I opkald:", + "LAST_CALL": "Sidste opkald:", + "OPEN_NEW_WINDOW": "Åben nyt vindue", + "CHANGE_LOGIN_INFO": "Rediger loginoplysninger", + "LOGOUT": "Log ud", + "ABOUT": "Om", + "HELP": "Hjælp", + "CONTRIBUTORS": "Bidragsydere", + "TITLE_PREVIEW_SETTINGS": "Opsæt indstillinger for kamera og mikrofon", + "CAMERA__SETTNGS": "Kamera:", + "MIC_SETTINGS": "Mikrofon:", + "SAVE": "Gem", + "LOADING": "Henter", + "ERRORS" : "Fejl", + "CALLING_TO": "Ringer til ", + "CANCELLING": "Annullerer...", + "DETERMINING_SPEED": "Bestemmer din hastighed...", + "CALL_HISTORY": "Opkaldshistorik", + "CLEAR_CALL_HISTORY": "Ryd historik", + "NO_CALL_HISTORY": "Ingen opkaldshistorik.", + "ENTER_EXTENSION": "Skriv en udvidelse", + "CALL_EXTENSION": "Opkaldsudvidelse", + "LOGIN": "Log ind", + "LOGIN_INFORMATION": "Log ind oplysninger", + "SAVE_LOGIN_INFORMATION": "Gem log ind oplysninger", + "INVALID_LOGIN_FIELDS": "Kontroller felterne nedenfor og prøv igen.", + "NAME": "Navn", + "YOUR_NAME": "Dit navn", + "EMAIL": "Email", + "YOUR_EMAIL": "Din email", + "USER": "Bruger", + "PASSWORD": "Adgangskode", + "CALLER_ID": "Den ringende parts ID", + "HOSTNAME": "Hostname", + "WEBSOCKET_URL": "Websocket URL", + "SETTINGS": "Indstillinger", + "DEVICE_SETTINGS": "Enhedsindstillinger", + "SHARE_DEVICE": "Del enhed", + "SPEAKER": "Højtaler:", + "SPEAKER_FEATURE": "Din browser understøtter ikke denne funktion", + "PREVIEW_SETTINGS": "Vis indstillingerne", + "REFRESH_DEVICE_LIST": "Opdater enhedslisten", + "GENERAL_SETTINGS": "Generelle indstillinger:", + "USE_VIDEO": "Brug video", + "USE_STEREO_AUDIO": "Stereolyd", + "USE_STUN": "Brug STUN", + "SCALE_VIDEO": "Skalér video til at matche kameraopløsningen", + "ASK_BEFORE_RECOVER": "Spørg før genetablering af kald", + "BEST_FRAME_RATE": "Bedste billedhastighed:", + "AUDIO_SETTINGS": "Lydindstillinger:", + "ECHO_CANCEL": "Fjernelse af ekko", + "NOISE_SUPPRESSION": "Støjdæmpning", + "HIGHPASS_FILTER": "High-pass filter", + "VIDEO_SETTINGS": "Videoindstillinger:", + "REMOTE_ENCODER": "Dedikeret fjern-enkoder er aktiveret.", + "AUTO_SPEED_RES": "Bestem automatisk indstillinger for hastighed og opløsning", + "RECHECK_BANDWIDTH": "Tjek båndbredden før hvert udgående opkald", + "CHECK_NETWORK_SPEED": "Tjek netværkshastighed", + "VIDEO_QUALITY": "Videokvalitet:", + "MAX_INCOMING_BANDWIDTH": "Max indgående båndbredde:", + "MAX_OUTGOING_BANDWIDTH": "Max udgående båndbredde:", + "FACTORY_RESET": "Nulstil til fabriksindstillinger", + "SAVE_DEVICE_SETTINGS": "Gem enhedsindstillinger", + "BROWSER_COMPATIBILITY": "Tjek browser kompatibilitet.", + "REFRESH_MEDIA_DEVICES": "Opdater medieenhed.", + "BROWSER_WITHOUT_WEBRTC": "Fejk: browseren understøtter ikke WebRTC.", + "CHECK_PERMISSION_MEDIA": "Tjekker medie tilladelser", + "CHECK_PROVISIONING_CONF": "Konfiguration af provisionering.", + "CHECK_LOGIN": "Tjekker log ind oplysninger.", + "CHECK_CONNECTION_SPEED": "Tjek forbindelseshastighed.", + "ERROR_PERMISSION_MEDIA": "Fejl: Medie tilladelse nægtet", + "ERROR_PROVISIONING_CONF": "Fejl: Provisioneringen fejlede.", + "PLEASE_WAIT": "Vent venligst..." +} diff --git a/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js b/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js index 534d9104ed..14b39d7e55 100644 --- a/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js +++ b/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js @@ -67,7 +67,7 @@ prefix: 'locales/locale-', suffix: '.json' }) - .registerAvailableLanguageKeys(['en', 'it', 'pt', 'fr', 'de', 'es', 'pl', 'ru', 'sv', 'id', 'zh'], { + .registerAvailableLanguageKeys(['en', 'it', 'pt', 'fr', 'da', 'de', 'es', 'pl', 'ru', 'sv', 'id', 'zh'], { 'en': 'en', 'en_GB': 'en', 'en_US': 'en', @@ -79,6 +79,8 @@ 'pt': 'pt', 'pt_BR': 'pt', 'pt_PT': 'pt', + 'da': 'da', + 'da_DK': 'da', 'de': 'de', 'de_DE': 'de', 'es': 'es', @@ -90,7 +92,7 @@ 'sv': 'sv', 'sv_SV': 'sv', 'sv_FI': 'sv', - 'id': 'id', + 'id': 'id', 'id_ID': 'id', 'zh': 'zh', 'zh_CN': 'zh', From c442be0f40a93f58d55b535084b4387b6b75852b Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Thu, 7 Apr 2016 15:56:49 +0100 Subject: [PATCH 29/68] FS-9036: [avmd] Cast to unsigned Should fix warnings on Windoze. --- src/mod/applications/mod_avmd/avmd_options.h | 8 ++- src/mod/applications/mod_avmd/mod_avmd.c | 64 +++++++++----------- 2 files changed, 33 insertions(+), 39 deletions(-) diff --git a/src/mod/applications/mod_avmd/avmd_options.h b/src/mod/applications/mod_avmd/avmd_options.h index 7ac38008b9..74498e6512 100644 --- a/src/mod/applications/mod_avmd/avmd_options.h +++ b/src/mod/applications/mod_avmd/avmd_options.h @@ -2,7 +2,11 @@ * @brief Options controlling avmd module. * * @author Eric des Courtis - * @par Modifications: Piotr Gregor < piotrek.gregor gmail.com > + * + * Contributor(s): + * + * Piotr Gregor : + * Eric des Courtis */ @@ -30,7 +34,7 @@ #define AVMD_REQUIRE_CONTINUOUS_STREAK /* define number of samples to skip starting from the beginning - * of frame and after reset */ + * of the frame and after reset */ #define AVMD_SAMLPE_TO_SKIP_N 6 /* define/undefine this to enable/disable simplified estimation diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index 2aa315b3c6..54471f9f0e 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -83,7 +83,8 @@ * for 8kHz audio. All the frequencies above 0.25 sampling rate * will be aliased to some frequency below that threshold. * This is not a problem here as we are interested in detection - * of any sine wave instead of detection of particular frequency. + * of any constant amplitude anf frequency sine wave instead + * of detection of particular frequency. */ #define MAX_FREQUENCY (2500.0) /*! Maximum frequency as digital normalized frequency */ @@ -105,7 +106,7 @@ /*! FreeSWITCH CUSTOM event type. */ #define AVMD_EVENT_BEEP "avmd::beep" -#define AVMD_CHAR_BUF_LEN 10 +#define AVMD_CHAR_BUF_LEN 20 #define AVMD_BUF_LINEAR_LEN 160 @@ -184,7 +185,7 @@ static int init_avmd_session_data(avmd_session_t *avmd_session, #endif avmd_session->sample_count = 0; - buf_sz = BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate); + buf_sz = BEEP_LEN((uint32_t)avmd_session->rate) / (uint32_t)SINE_LEN(avmd_session->rate); if (buf_sz < 1) { return -2; } @@ -338,25 +339,21 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) "Can't access file [%s], error [%s]\n", ACOS_TABLE_FILENAME, err); break; - case -2: switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error creating file [%s], error [%s]\n", ACOS_TABLE_FILENAME, err); break; - case -3: switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Access rights are OK but can't open file [%s], error [%s]\n", ACOS_TABLE_FILENAME, err); break; - case -4: switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Access rights are OK but can't mmap file [%s], error [%s]\n", ACOS_TABLE_FILENAME, err); break; - default: switch_log_printf(SWITCH_CHANNEL_LOG,SWITCH_LOG_ERROR, "Unknown error [%d] while initializing fast cos table [%s], " @@ -604,19 +601,22 @@ SWITCH_STANDARD_API(avmd_api_main) switch_channel_set_private(channel, "_avmd_", NULL); switch_core_media_bug_remove(fs_session, &bug); switch_safe_free(ccmd); +#ifdef AVMD_REPORT_STATUS stream->write_function(stream, "+OK\n [%s] [%s] stopped.\n\n", uuid_dup, switch_channel_get_name(channel)); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, "Avmd on channel [%s] stopped!\n", switch_channel_get_name(channel)); +#endif goto end; } +#ifdef AVMD_REPORT_STATUS /* We have already started */ switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Avmd already started!\n"); stream->write_function(stream, "-ERR, avmd for FreeSWITCH session [%s]" "\n already started\n\n", uuid); - +#endif goto end; } @@ -656,13 +656,8 @@ SWITCH_STANDARD_API(avmd_api_main) "\n has no read codec assigned yet. Please try again.\n\n", switch_channel_get_name(channel), uuid); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, -<<<<<<< HEAD "Failed to start session. Channel [%s] has no codec assigned yet." " Please try again\n", switch_channel_get_name(channel)); -======= - "Failed to start session. Channel [%s] has no codec assigned yet.\n", - switch_channel_get_name(channel)); ->>>>>>> FS-9031: [avmd] Check session initialization goto end; } #endif @@ -685,35 +680,24 @@ SWITCH_STANDARD_API(avmd_api_main) " for FreeSWITCH session [%s]\n", uuid); switch (res) { case -1: -<<<<<<< HEAD stream->write_function(stream, "-ERR, buffer error\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." " Buffer error!\n"); break; case -2: -======= ->>>>>>> FS-9031: [avmd] Check session initialization stream->write_function(stream, "-ERR, SMA buffer size is 0\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." " SMA buffer size is 0!\n"); break; -<<<<<<< HEAD case -3: -======= - case -2: ->>>>>>> FS-9031: [avmd] Check session initialization stream->write_function(stream, "-ERR, SMA buffer error\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." " SMA buffer error\n"); break; -<<<<<<< HEAD case -4: -======= - case -3: ->>>>>>> FS-9031: [avmd] Check session initialization stream->write_function(stream, "-ERR, SMA sqa buffer error\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." @@ -754,20 +738,13 @@ SWITCH_STANDARD_API(avmd_api_main) /* Set the vmd tag to detect an existing vmd media bug */ switch_channel_set_private(channel, "_avmd_", bug); -<<<<<<< HEAD /* OK */ -======= - /* Everything went according to plan! Notify the user */ ->>>>>>> FS-9031: [avmd] Check session initialization +#ifdef AVMD_REPORT_STATUS stream->write_function(stream, "+OK\n [%s] [%s] started!\n\n", uuid, switch_channel_get_name(channel)); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, "Avmd on channel [%s] started!\n", switch_channel_get_name(channel)); -<<<<<<< HEAD -======= - ->>>>>>> FS-9031: [avmd] Check session initialization - +#endif end: if (fs_session) { @@ -787,6 +764,7 @@ end: */ static void avmd_process(avmd_session_t *session, switch_frame_t *frame) { + int res; switch_event_t *event; switch_status_t status; switch_event_t *event_copy; @@ -811,7 +789,7 @@ static void avmd_process(avmd_session_t *session, switch_frame_t *frame) if (session->state.beep_state == BEEP_DETECTED) return; /* Precompute values used heavily in the inner loop */ - sine_len_i = SINE_LEN(session->rate); + sine_len_i = (uint32_t) SINE_LEN(session->rate); //sine_len = (double)sine_len_i; //beep_len_i = BEEP_LEN(session->rate); @@ -921,7 +899,6 @@ static void avmd_process(avmd_session_t *session, switch_frame_t *frame) #else sma_digital_freq = 0.5 * acos(session->sma_b.sma); #endif /* AVMD_FAST_MATH */ - snprintf(buf, AVMD_CHAR_BUF_LEN, "%f", TO_HZ(session->rate, sma_digital_freq)); switch_channel_set_variable_printf(channel, "avmd_total_time", "[%d]", (int)(switch_micro_time_now() - session->start_time) / 1000); switch_channel_execute_on(channel, "execute_on_avmd_beep"); @@ -934,8 +911,21 @@ static void avmd_process(avmd_session_t *session, switch_frame_t *frame) switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Unique-ID", switch_core_session_get_uuid(session->session)); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "avmd"); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "frequency", buf); - snprintf(buf, AVMD_CHAR_BUF_LEN, "%f", v); + res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%f", + TO_HZ(session->rate, sma_digital_freq)); + if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session->session), SWITCH_LOG_ERROR, + "Frequency truncated [%s], [%d] attempted!\n", buf, res); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "frequency", "ERROR (TRUNCATED)"); + } + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "frequency", buf); + + res = snprintf(buf, AVMD_CHAR_BUF_LEN, "%f", v); + if (res < 0 || res > AVMD_CHAR_BUF_LEN - 1) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session->session), SWITCH_LOG_ERROR, + "Error, truncated [%s], [%d] attempeted!\n", buf, res); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "variance", "ERROR (TRUNCATED)"); + } switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "variance", buf); if ((switch_event_dup(&event_copy, event)) != SWITCH_STATUS_SUCCESS) return; From 29263bf7b9d7884e3dd8bbff0057c5023e28fbd1 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 7 Apr 2016 15:11:42 -0400 Subject: [PATCH 30/68] FS-8623: fix sun studio error trying to compile char[] with c++ compiler --- src/include/switch_types.h | 7 ------- src/switch_rtp.c | 6 +++++- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 931c41cf67..3ffae84a4d 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -948,13 +948,6 @@ typedef struct { #pragma pack(push, r1, 1) #endif -typedef struct switch_rtcp_sdes_unit_s { - unsigned char type; - unsigned char length; - char value[]; -} switch_rtcp_sdes_unit_t; - - #if SWITCH_BYTE_ORDER == __BIG_ENDIAN typedef struct switch_rtcp_hdr_s { unsigned version:2; /* protocol version */ diff --git a/src/switch_rtp.c b/src/switch_rtp.c index a351af68cd..2d94601340 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -129,7 +129,11 @@ typedef struct { #pragma pack(push, r1, 1) #endif - +typedef struct switch_rtcp_sdes_unit_s { + unsigned char type; + unsigned char length; + char value[]; +} switch_rtcp_sdes_unit_t; typedef struct { uint32_t ssrc; From 3976eb17d0b22e0c8735b90da5a5cc4342243088 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 7 Apr 2016 15:21:55 -0400 Subject: [PATCH 31/68] FS-8623: fix sun studio build errors building libvpx --- Makefile.am | 2 +- configure.ac | 10 ++++++++++ libs/libvpx/libs.mk | 4 ++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index c029be6542..68059b01b3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -533,7 +533,7 @@ libs/libzrtp/libzrtp.a: cd libs/libzrtp && $(MAKE) libs/libvpx/Makefile: - cd libs/libvpx && CC=$(CC) CXX=$(CXX) CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests --extra-cflags="-fvisibility=hidden" + cd libs/libvpx && CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests --extra-cflags="$(VISIBILITY_FLAG)" libs/libvpx/libvpx.a: libs/libvpx/Makefile @cd libs/libvpx && $(MAKE) diff --git a/configure.ac b/configure.ac index ad55efe6dd..8746b0c75f 100644 --- a/configure.ac +++ b/configure.ac @@ -451,6 +451,16 @@ if test "${enable_address_sanitizer}" = "yes"; then fi +case "${ax_cv_c_compiler_vendor}" in +sun) + VISIBILITY_FLAG=-xldscope=hidden +;; +*) + VISIBILITY_FLAG=-fvisibility=hidden +;; +esac +AC_SUBST(VISIBILITY_FLAG) + # # gcc visibility cflag checks # diff --git a/libs/libvpx/libs.mk b/libs/libvpx/libs.mk index e6fb068bf7..6129ff258b 100644 --- a/libs/libvpx/libs.mk +++ b/libs/libvpx/libs.mk @@ -107,7 +107,7 @@ ifeq ($(CONFIG_VP9_DECODER),yes) endif VP9_PREFIX=vp9/ -$(BUILD_PFX)$(VP9_PREFIX)%.c.o: CFLAGS += -Wextra +$(BUILD_PFX)$(VP9_PREFIX)%.c.o: # VP10 make file ifeq ($(CONFIG_VP10),yes) @@ -141,7 +141,7 @@ ifeq ($(CONFIG_VP10_DECODER),yes) endif VP10_PREFIX=vp10/ -$(BUILD_PFX)$(VP10_PREFIX)%.c.o: CFLAGS += -Wextra +$(BUILD_PFX)$(VP10_PREFIX)%.c.o: ifeq ($(CONFIG_ENCODERS),yes) CODEC_DOC_SECTIONS += encoder From 159f4a1396db1fe0c4dae70fd757697285370b9a Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 7 Apr 2016 16:07:01 -0400 Subject: [PATCH 32/68] FS-8623: fix sun studio build errors building libvpx --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 8746b0c75f..1ed2312d09 100644 --- a/configure.ac +++ b/configure.ac @@ -453,7 +453,7 @@ fi case "${ax_cv_c_compiler_vendor}" in sun) - VISIBILITY_FLAG=-xldscope=hidden + VISIBILITY_FLAG= ;; *) VISIBILITY_FLAG=-fvisibility=hidden From 22fd90e71e9294e728e7bc942cbda816e98bd377 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 7 Apr 2016 16:53:36 -0400 Subject: [PATCH 33/68] FS-8623: we really need this flag, but need to fix libvpx configure to let us pass it --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1ed2312d09..8746b0c75f 100644 --- a/configure.ac +++ b/configure.ac @@ -453,7 +453,7 @@ fi case "${ax_cv_c_compiler_vendor}" in sun) - VISIBILITY_FLAG= + VISIBILITY_FLAG=-xldscope=hidden ;; *) VISIBILITY_FLAG=-fvisibility=hidden From 3f5af35fd3d640fe1422b4eb308add9a4dfa09af Mon Sep 17 00:00:00 2001 From: Italo Rossi Date: Thu, 7 Apr 2016 17:54:05 -0300 Subject: [PATCH 34/68] FS-9025 - [mod_callcenter] bypass_media_after_bridge working for member channel --- src/mod/applications/mod_callcenter/mod_callcenter.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mod/applications/mod_callcenter/mod_callcenter.c b/src/mod/applications/mod_callcenter/mod_callcenter.c index 1df0afd557..0c2a24512c 100644 --- a/src/mod/applications/mod_callcenter/mod_callcenter.c +++ b/src/mod/applications/mod_callcenter/mod_callcenter.c @@ -1783,6 +1783,9 @@ static void *SWITCH_THREAD_FUNC outbound_agent_thread_run(switch_thread_t *threa /* This is used for the waiting caller to quit waiting for a agent */ switch_channel_set_variable(member_channel, "cc_agent_found", "true"); switch_channel_set_variable(member_channel, "cc_agent_uuid", agent_uuid); + if (switch_true(switch_channel_get_variable(member_channel, SWITCH_BYPASS_MEDIA_AFTER_BRIDGE_VARIABLE))) { + switch_channel_set_flag(member_channel, CF_BYPASS_MEDIA_AFTER_BRIDGE); + } switch_ivr_uuid_bridge(h->member_session_uuid, switch_core_session_get_uuid(agent_session)); switch_channel_wait_for_flag(agent_channel, CF_BRIDGED, SWITCH_TRUE, 1000, NULL); From e4add83915bdaf6cb75214d5aa67cb5f3875ffee Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 7 Apr 2016 18:40:42 -0500 Subject: [PATCH 35/68] swigall --- .../languages/mod_managed/freeswitch_wrap.cxx | 225 +- src/mod/languages/mod_managed/managed/swig.cs | 15571 ++++++++-------- 2 files changed, 7920 insertions(+), 7876 deletions(-) diff --git a/src/mod/languages/mod_managed/freeswitch_wrap.cxx b/src/mod/languages/mod_managed/freeswitch_wrap.cxx index 8f083afa17..c02addd90f 100644 --- a/src/mod/languages/mod_managed/freeswitch_wrap.cxx +++ b/src/mod/languages/mod_managed/freeswitch_wrap.cxx @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make @@ -5034,93 +5034,6 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_rtp_hdr_ext_t(void * jarg1) { } -SWIGEXPORT void SWIGSTDCALL CSharp_switch_rtcp_sdes_unit_t_type_set(void * jarg1, unsigned char jarg2) { - switch_rtcp_sdes_unit_s *arg1 = (switch_rtcp_sdes_unit_s *) 0 ; - unsigned char arg2 ; - - arg1 = (switch_rtcp_sdes_unit_s *)jarg1; - arg2 = (unsigned char)jarg2; - if (arg1) (arg1)->type = arg2; -} - - -SWIGEXPORT unsigned char SWIGSTDCALL CSharp_switch_rtcp_sdes_unit_t_type_get(void * jarg1) { - unsigned char jresult ; - switch_rtcp_sdes_unit_s *arg1 = (switch_rtcp_sdes_unit_s *) 0 ; - unsigned char result; - - arg1 = (switch_rtcp_sdes_unit_s *)jarg1; - result = (unsigned char) ((arg1)->type); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_switch_rtcp_sdes_unit_t_length_set(void * jarg1, unsigned char jarg2) { - switch_rtcp_sdes_unit_s *arg1 = (switch_rtcp_sdes_unit_s *) 0 ; - unsigned char arg2 ; - - arg1 = (switch_rtcp_sdes_unit_s *)jarg1; - arg2 = (unsigned char)jarg2; - if (arg1) (arg1)->length = arg2; -} - - -SWIGEXPORT unsigned char SWIGSTDCALL CSharp_switch_rtcp_sdes_unit_t_length_get(void * jarg1) { - unsigned char jresult ; - switch_rtcp_sdes_unit_s *arg1 = (switch_rtcp_sdes_unit_s *) 0 ; - unsigned char result; - - arg1 = (switch_rtcp_sdes_unit_s *)jarg1; - result = (unsigned char) ((arg1)->length); - jresult = result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_switch_rtcp_sdes_unit_t_value_set(void * jarg1, char * jarg2) { - switch_rtcp_sdes_unit_s *arg1 = (switch_rtcp_sdes_unit_s *) 0 ; - char *arg2 ; - - arg1 = (switch_rtcp_sdes_unit_s *)jarg1; - arg2 = (char *)jarg2; - { - if (arg2) strcpy((char *)arg1->value, (const char *)arg2); - else arg1->value[0] = 0; - } -} - - -SWIGEXPORT char * SWIGSTDCALL CSharp_switch_rtcp_sdes_unit_t_value_get(void * jarg1) { - char * jresult ; - switch_rtcp_sdes_unit_s *arg1 = (switch_rtcp_sdes_unit_s *) 0 ; - char *result = 0 ; - - arg1 = (switch_rtcp_sdes_unit_s *)jarg1; - result = (char *)(char *) ((arg1)->value); - jresult = SWIG_csharp_string_callback((const char *)result); - return jresult; -} - - -SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_rtcp_sdes_unit_t() { - void * jresult ; - switch_rtcp_sdes_unit_s *result = 0 ; - - result = (switch_rtcp_sdes_unit_s *)new switch_rtcp_sdes_unit_s(); - jresult = (void *)result; - return jresult; -} - - -SWIGEXPORT void SWIGSTDCALL CSharp_delete_switch_rtcp_sdes_unit_t(void * jarg1) { - switch_rtcp_sdes_unit_s *arg1 = (switch_rtcp_sdes_unit_s *) 0 ; - - arg1 = (switch_rtcp_sdes_unit_s *)jarg1; - delete arg1; -} - - SWIGEXPORT void SWIGSTDCALL CSharp_switch_rtcp_hdr_t_version_set(void * jarg1, unsigned int jarg2) { switch_rtcp_hdr_s *arg1 = (switch_rtcp_hdr_s *) 0 ; unsigned int arg2 ; @@ -16290,6 +16203,26 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_core_expire_registration(int jarg1) { } +SWIGEXPORT unsigned short SWIGSTDCALL CSharp_switch_core_get_rtp_port_range_start_port() { + unsigned short jresult ; + uint16_t result; + + result = (uint16_t)switch_core_get_rtp_port_range_start_port(); + jresult = result; + return jresult; +} + + +SWIGEXPORT unsigned short SWIGSTDCALL CSharp_switch_core_get_rtp_port_range_end_port() { + unsigned short jresult ; + uint16_t result; + + result = (uint16_t)switch_core_get_rtp_port_range_end_port(); + jresult = result; + return jresult; +} + + SWIGEXPORT char * SWIGSTDCALL CSharp_switch_say_file_handle_get_variable(void * jarg1, char * jarg2) { char * jresult ; switch_say_file_handle_t *arg1 = (switch_say_file_handle_t *) 0 ; @@ -25448,6 +25381,28 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_mm_t_vencspd_get(void * jarg1) { } +SWIGEXPORT void SWIGSTDCALL CSharp_switch_mm_t_try_hardware_encoder_set(void * jarg1, unsigned char jarg2) { + switch_mm_s *arg1 = (switch_mm_s *) 0 ; + uint8_t arg2 ; + + arg1 = (switch_mm_s *)jarg1; + arg2 = (uint8_t)jarg2; + if (arg1) (arg1)->try_hardware_encoder = arg2; +} + + +SWIGEXPORT unsigned char SWIGSTDCALL CSharp_switch_mm_t_try_hardware_encoder_get(void * jarg1) { + unsigned char jresult ; + switch_mm_s *arg1 = (switch_mm_s *) 0 ; + uint8_t result; + + arg1 = (switch_mm_s *)jarg1; + result = (uint8_t) ((arg1)->try_hardware_encoder); + jresult = result; + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_mm_t() { void * jresult ; switch_mm_s *result = 0 ; @@ -26613,6 +26568,50 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_handle_flag_mutex_get(void * ja } +SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_handle_duration_set(void * jarg1, long long jarg2) { + switch_file_handle *arg1 = (switch_file_handle *) 0 ; + int64_t arg2 ; + + arg1 = (switch_file_handle *)jarg1; + arg2 = (int64_t)jarg2; + if (arg1) (arg1)->duration = arg2; +} + + +SWIGEXPORT long long SWIGSTDCALL CSharp_switch_file_handle_duration_get(void * jarg1) { + long long jresult ; + switch_file_handle *arg1 = (switch_file_handle *) 0 ; + int64_t result; + + arg1 = (switch_file_handle *)jarg1; + result = (int64_t) ((arg1)->duration); + jresult = result; + return jresult; +} + + +SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_handle_vpos_set(void * jarg1, long long jarg2) { + switch_file_handle *arg1 = (switch_file_handle *) 0 ; + int64_t arg2 ; + + arg1 = (switch_file_handle *)jarg1; + arg2 = (int64_t)jarg2; + if (arg1) (arg1)->vpos = arg2; +} + + +SWIGEXPORT long long SWIGSTDCALL CSharp_switch_file_handle_vpos_get(void * jarg1) { + long long jresult ; + switch_file_handle *arg1 = (switch_file_handle *) 0 ; + int64_t result; + + arg1 = (switch_file_handle *)jarg1; + result = (int64_t) ((arg1)->vpos); + jresult = result; + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_file_handle() { void * jresult ; switch_file_handle *result = 0 ; @@ -29703,6 +29702,28 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_video_codec_settings_height_get(void * } +SWIGEXPORT void SWIGSTDCALL CSharp_switch_video_codec_settings_try_hardware_encoder_set(void * jarg1, unsigned char jarg2) { + switch_video_codec_settings *arg1 = (switch_video_codec_settings *) 0 ; + uint8_t arg2 ; + + arg1 = (switch_video_codec_settings *)jarg1; + arg2 = (uint8_t)jarg2; + if (arg1) (arg1)->try_hardware_encoder = arg2; +} + + +SWIGEXPORT unsigned char SWIGSTDCALL CSharp_switch_video_codec_settings_try_hardware_encoder_get(void * jarg1) { + unsigned char jresult ; + switch_video_codec_settings *arg1 = (switch_video_codec_settings *) 0 ; + uint8_t result; + + arg1 = (switch_video_codec_settings *)jarg1; + result = (uint8_t) ((arg1)->try_hardware_encoder); + jresult = result; + return jresult; +} + + SWIGEXPORT void * SWIGSTDCALL CSharp_new_switch_video_codec_settings() { void * jresult ; switch_video_codec_settings *result = 0 ; @@ -38775,6 +38796,22 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_3p_nomedia(char * jarg1, unsigned l } +SWIGEXPORT void SWIGSTDCALL CSharp_switch_ivr_bg_media(char * jarg1, unsigned long jarg2, int jarg3, int jarg4, unsigned long jarg5) { + char *arg1 = (char *) 0 ; + switch_media_flag_t arg2 ; + switch_bool_t arg3 ; + switch_bool_t arg4 ; + uint32_t arg5 ; + + arg1 = (char *)jarg1; + arg2 = (switch_media_flag_t)jarg2; + arg3 = (switch_bool_t)jarg3; + arg4 = (switch_bool_t)jarg4; + arg5 = (uint32_t)jarg5; + switch_ivr_bg_media((char const *)arg1,arg2,arg3,arg4,arg5); +} + + SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_hold_uuid(char * jarg1, char * jarg2, int jarg3) { int jresult ; char *arg1 = (char *) 0 ; @@ -41281,6 +41318,18 @@ SWIGEXPORT void SWIGSTDCALL CSharp_switch_rtp_destroy(void * jarg1) { } +SWIGEXPORT int SWIGSTDCALL CSharp_switch_rtp_sync_stats(void * jarg1) { + int jresult ; + switch_rtp_t *arg1 = (switch_rtp_t *) 0 ; + switch_status_t result; + + arg1 = (switch_rtp_t *)jarg1; + result = (switch_status_t)switch_rtp_sync_stats(arg1); + jresult = result; + return jresult; +} + + SWIGEXPORT int SWIGSTDCALL CSharp_switch_rtp_activate_ice(void * jarg1, char * jarg2, char * jarg3, char * jarg4, char * jarg5, int jarg6, int jarg7, void * jarg8) { int jresult ; switch_rtp_t *arg1 = (switch_rtp_t *) 0 ; diff --git a/src/mod/languages/mod_managed/managed/swig.cs b/src/mod/languages/mod_managed/managed/swig.cs index 09a003fcb3..7323796fa7 100644 --- a/src/mod/languages/mod_managed/managed/swig.cs +++ b/src/mod/languages/mod_managed/managed/swig.cs @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -64,7 +64,92 @@ public class Api : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class audio_buffer_header_t : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal audio_buffer_header_t(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(audio_buffer_header_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~audio_buffer_header_t() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_audio_buffer_header_t(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public uint ts { + set { + freeswitchPINVOKE.audio_buffer_header_t_ts_set(swigCPtr, value); + } + get { + uint ret = freeswitchPINVOKE.audio_buffer_header_t_ts_get(swigCPtr); + return ret; + } + } + + public uint len { + set { + freeswitchPINVOKE.audio_buffer_header_t_len_set(swigCPtr, value); + } + get { + uint ret = freeswitchPINVOKE.audio_buffer_header_t_len_get(swigCPtr); + return ret; + } + } + + public audio_buffer_header_t() : this(freeswitchPINVOKE.new_audio_buffer_header_t(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum cache_db_flag_t { + CDF_INUSE = (1 << 0), + CDF_PRUNE = (1 << 1) +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -433,7 +518,151 @@ public class CoreSession : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum dm_match_type_t { + DM_MATCH_POSITIVE, + DM_MATCH_NEGATIVE +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class dtls_fingerprint_t : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal dtls_fingerprint_t(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(dtls_fingerprint_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~dtls_fingerprint_t() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_dtls_fingerprint_t(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public uint len { + set { + freeswitchPINVOKE.dtls_fingerprint_t_len_set(swigCPtr, value); + } + get { + uint ret = freeswitchPINVOKE.dtls_fingerprint_t_len_get(swigCPtr); + return ret; + } + } + + public SWIGTYPE_p_unsigned_char data { + set { + freeswitchPINVOKE.dtls_fingerprint_t_data_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.dtls_fingerprint_t_data_get(swigCPtr); + SWIGTYPE_p_unsigned_char ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false); + return ret; + } + } + + public string type { + set { + freeswitchPINVOKE.dtls_fingerprint_t_type_set(swigCPtr, value); + } + get { + string ret = freeswitchPINVOKE.dtls_fingerprint_t_type_get(swigCPtr); + return ret; + } + } + + public string str { + set { + freeswitchPINVOKE.dtls_fingerprint_t_str_set(swigCPtr, value); + } + get { + string ret = freeswitchPINVOKE.dtls_fingerprint_t_str_get(swigCPtr); + return ret; + } + } + + public dtls_fingerprint_t() : this(freeswitchPINVOKE.new_dtls_fingerprint_t(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum dtls_state_t { + DS_OFF, + DS_HANDSHAKE, + DS_SETUP, + DS_READY, + DS_FAIL, + DS_INVALID +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum dtls_type_t { + DTLS_TYPE_CLIENT = (1 << 0), + DTLS_TYPE_SERVER = (1 << 1), + DTLS_TYPE_RTP = (1 << 2), + DTLS_TYPE_RTCP = (1 << 3) +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -502,7 +731,159 @@ public class DTMF : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum dtmf_flag_t { + DTMF_FLAG_SKIP_PROCESS = (1 << 0), + DTMF_FLAG_SENSITIVE = (1 << 1) +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class EventConsumer : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal EventConsumer(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(EventConsumer obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~EventConsumer() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_EventConsumer(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public SWIGTYPE_p_switch_queue_t events { + set { + freeswitchPINVOKE.EventConsumer_events_set(swigCPtr, SWIGTYPE_p_switch_queue_t.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.EventConsumer_events_get(swigCPtr); + SWIGTYPE_p_switch_queue_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_switch_queue_t(cPtr, false); + return ret; + } + } + + public switch_event_types_t e_event_id { + set { + freeswitchPINVOKE.EventConsumer_e_event_id_set(swigCPtr, (int)value); + } + get { + switch_event_types_t ret = (switch_event_types_t)freeswitchPINVOKE.EventConsumer_e_event_id_get(swigCPtr); + return ret; + } + } + + public string e_callback { + set { + freeswitchPINVOKE.EventConsumer_e_callback_set(swigCPtr, value); + } + get { + string ret = freeswitchPINVOKE.EventConsumer_e_callback_get(swigCPtr); + return ret; + } + } + + public string e_subclass_name { + set { + freeswitchPINVOKE.EventConsumer_e_subclass_name_set(swigCPtr, value); + } + get { + string ret = freeswitchPINVOKE.EventConsumer_e_subclass_name_get(swigCPtr); + return ret; + } + } + + public string e_cb_arg { + set { + freeswitchPINVOKE.EventConsumer_e_cb_arg_set(swigCPtr, value); + } + get { + string ret = freeswitchPINVOKE.EventConsumer_e_cb_arg_get(swigCPtr); + return ret; + } + } + + public SWIGTYPE_p_p_switch_event_node enodes { + set { + freeswitchPINVOKE.EventConsumer_enodes_set(swigCPtr, SWIGTYPE_p_p_switch_event_node.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.EventConsumer_enodes_get(swigCPtr); + SWIGTYPE_p_p_switch_event_node ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_p_switch_event_node(cPtr, false); + return ret; + } + } + + public uint node_index { + set { + freeswitchPINVOKE.EventConsumer_node_index_set(swigCPtr, value); + } + get { + uint ret = freeswitchPINVOKE.EventConsumer_node_index_get(swigCPtr); + return ret; + } + } + + public EventConsumer(string event_name, string subclass_name, int len) : this(freeswitchPINVOKE.new_EventConsumer(event_name, subclass_name, len), true) { + } + + public int bind(string event_name, string subclass_name) { + int ret = freeswitchPINVOKE.EventConsumer_bind(swigCPtr, event_name, subclass_name); + return ret; + } + + public Event pop(int block, int timeout) { + IntPtr cPtr = freeswitchPINVOKE.EventConsumer_pop(swigCPtr, block, timeout); + Event ret = (cPtr == IntPtr.Zero) ? null : new Event(cPtr, true); + return ret; + } + + public void cleanup() { + freeswitchPINVOKE.EventConsumer_cleanup(swigCPtr); + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -640,6809 +1021,7 @@ public partial class Event : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class EventConsumer : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal EventConsumer(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(EventConsumer obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~EventConsumer() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_EventConsumer(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_switch_queue_t events { - set { - freeswitchPINVOKE.EventConsumer_events_set(swigCPtr, SWIGTYPE_p_switch_queue_t.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.EventConsumer_events_get(swigCPtr); - SWIGTYPE_p_switch_queue_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_switch_queue_t(cPtr, false); - return ret; - } - } - - public switch_event_types_t e_event_id { - set { - freeswitchPINVOKE.EventConsumer_e_event_id_set(swigCPtr, (int)value); - } - get { - switch_event_types_t ret = (switch_event_types_t)freeswitchPINVOKE.EventConsumer_e_event_id_get(swigCPtr); - return ret; - } - } - - public string e_callback { - set { - freeswitchPINVOKE.EventConsumer_e_callback_set(swigCPtr, value); - } - get { - string ret = freeswitchPINVOKE.EventConsumer_e_callback_get(swigCPtr); - return ret; - } - } - - public string e_subclass_name { - set { - freeswitchPINVOKE.EventConsumer_e_subclass_name_set(swigCPtr, value); - } - get { - string ret = freeswitchPINVOKE.EventConsumer_e_subclass_name_get(swigCPtr); - return ret; - } - } - - public string e_cb_arg { - set { - freeswitchPINVOKE.EventConsumer_e_cb_arg_set(swigCPtr, value); - } - get { - string ret = freeswitchPINVOKE.EventConsumer_e_cb_arg_get(swigCPtr); - return ret; - } - } - - public SWIGTYPE_p_p_switch_event_node enodes { - set { - freeswitchPINVOKE.EventConsumer_enodes_set(swigCPtr, SWIGTYPE_p_p_switch_event_node.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.EventConsumer_enodes_get(swigCPtr); - SWIGTYPE_p_p_switch_event_node ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_p_switch_event_node(cPtr, false); - return ret; - } - } - - public uint node_index { - set { - freeswitchPINVOKE.EventConsumer_node_index_set(swigCPtr, value); - } - get { - uint ret = freeswitchPINVOKE.EventConsumer_node_index_get(swigCPtr); - return ret; - } - } - - public EventConsumer(string event_name, string subclass_name, int len) : this(freeswitchPINVOKE.new_EventConsumer(event_name, subclass_name, len), true) { - } - - public int bind(string event_name, string subclass_name) { - int ret = freeswitchPINVOKE.EventConsumer_bind(swigCPtr, event_name, subclass_name); - return ret; - } - - public Event pop(int block, int timeout) { - IntPtr cPtr = freeswitchPINVOKE.EventConsumer_pop(swigCPtr, block, timeout); - Event ret = (cPtr == IntPtr.Zero) ? null : new Event(cPtr, true); - return ret; - } - - public void cleanup() { - freeswitchPINVOKE.EventConsumer_cleanup(swigCPtr); - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class IvrMenu : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal IvrMenu(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(IvrMenu obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~IvrMenu() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_IvrMenu(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public IvrMenu(IvrMenu main, string name, string greeting_sound, string short_greeting_sound, string invalid_sound, string exit_sound, string transfer_sound, string confirm_macro, string confirm_key, string tts_engine, string tts_voice, int confirm_attempts, int inter_timeout, int digit_len, int timeout, int max_failures, int max_timeouts) : this(freeswitchPINVOKE.new_IvrMenu(IvrMenu.getCPtr(main), name, greeting_sound, short_greeting_sound, invalid_sound, exit_sound, transfer_sound, confirm_macro, confirm_key, tts_engine, tts_voice, confirm_attempts, inter_timeout, digit_len, timeout, max_failures, max_timeouts), true) { - } - - public void bindAction(string action, string arg, string bind) { - freeswitchPINVOKE.IvrMenu_bindAction(swigCPtr, action, arg, bind); - } - - public void Execute(CoreSession session, string name) { - freeswitchPINVOKE.IvrMenu_Execute(swigCPtr, CoreSession.getCPtr(session), name); - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public partial class ManagedSession : CoreSession { - private HandleRef swigCPtr; - - internal ManagedSession(IntPtr cPtr, bool cMemoryOwn) : base(freeswitchPINVOKE.ManagedSession_SWIGUpcast(cPtr), cMemoryOwn) { - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(ManagedSession obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~ManagedSession() { - Dispose(); - } - - public override void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_ManagedSession(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - base.Dispose(); - } - } - - public ManagedSession() : this(freeswitchPINVOKE.new_ManagedSession__SWIG_0(), true) { - } - - public ManagedSession(string uuid) : this(freeswitchPINVOKE.new_ManagedSession__SWIG_1(uuid), true) { - } - - public ManagedSession(SWIGTYPE_p_switch_core_session session) : this(freeswitchPINVOKE.new_ManagedSession__SWIG_2(SWIGTYPE_p_switch_core_session.getCPtr(session)), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_FILE { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_FILE(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_FILE() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_FILE obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_a_2__icand_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_a_2__icand_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_a_2__icand_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_a_2__icand_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_apr_pool_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_apr_pool_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_apr_pool_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_apr_pool_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_cJSON { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_cJSON(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_cJSON() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_cJSON obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_size_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_size_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_size_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_size_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__cJSON_p_switch_core_session_p_p_cJSON__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__cJSON_p_switch_core_session_p_p_cJSON__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__cJSON_p_switch_core_session_p_p_cJSON__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__cJSON_p_switch_core_session_p_p_cJSON__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__char_p_cJSON_p_q_const__char_unsigned_long__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__char_p_cJSON_p_q_const__char_unsigned_long__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__char_p_cJSON_p_q_const__char_unsigned_long__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_cJSON_p_q_const__char_unsigned_long__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_switch_event_t_p_void__p_switch_xml { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_switch_event_t_p_void__p_switch_xml(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_switch_event_t_p_void__p_switch_xml() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_switch_event_t_p_void__p_switch_xml obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_unsigned_long__int { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_unsigned_long__int(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_unsigned_long__int() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_unsigned_long__int obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__char_p_switch_codec_fmtp__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__char_p_switch_codec_fmtp__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__char_p_switch_codec_fmtp__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_switch_codec_fmtp__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__char_p_switch_core_session_p_switch_stream_handle__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__char_p_switch_core_session_p_switch_stream_handle__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__char_p_switch_core_session_p_switch_stream_handle__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_switch_core_session_p_switch_stream_handle__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__switch_log_node_t_enum_switch_log_level_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__switch_log_node_t_enum_switch_log_level_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__switch_log_node_t_enum_switch_log_level_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__switch_log_node_t_enum_switch_log_level_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_q_const__void_p_q_const__void_p_void__switch_bool_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_q_const__void_p_q_const__void_p_void__switch_bool_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_q_const__void_p_q_const__void_p_void__switch_bool_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__void_p_q_const__void_p_void__switch_bool_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_char_double__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_char_double__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_char_double__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_char_double__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_char_int__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_char_int__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_char_int__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_char_int__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_char_p_q_const__char__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_char_p_q_const__char__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_char_p_q_const__char__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_char_p_q_const__char__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_p_char_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_p_char_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_p_char_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_p_char_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_p_switch_event_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_p_switch_event_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_p_switch_event_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_p_switch_event_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_int_p_q_const__char_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_int_p_q_const__char_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_int_p_q_const__char_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_int_p_q_const__char_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_p_q_const__char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_p_q_const__char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_p_q_const__char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__switch_dtmf_t_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__switch_dtmf_t_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__switch_dtmf_t_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__switch_dtmf_t_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_asr_handle_p_void_unsigned_int_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_asr_handle_p_void_unsigned_int_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_asr_handle_p_void_unsigned_int_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_void_unsigned_int_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_codec__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_codec__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_codec__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_codec_enum_switch_codec_control_command_t_enum_switch_codec_control_type_t_p_void_enum_switch_codec_control_type_t_p_void_p_enum_switch_codec_control_type_t_p_p_void__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_codec_enum_switch_codec_control_command_t_enum_switch_codec_control_type_t_p_void_enum_switch_codec_control_type_t_p_void_p_enum_switch_codec_control_type_t_p_p_void__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_codec_enum_switch_codec_control_command_t_enum_switch_codec_control_type_t_p_void_enum_switch_codec_control_type_t_p_void_p_enum_switch_codec_control_type_t_p_p_void__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec_enum_switch_codec_control_command_t_enum_switch_codec_control_type_t_p_void_enum_switch_codec_control_type_t_p_void_p_enum_switch_codec_control_type_t_p_p_void__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_codec_p_switch_codec_p_void_unsigned_long_unsigned_long_p_void_p_unsigned_long_p_unsigned_long_p_unsigned_int__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_codec_p_switch_codec_p_void_unsigned_long_unsigned_long_p_void_p_unsigned_long_p_unsigned_long_p_unsigned_int__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_codec_p_switch_codec_p_void_unsigned_long_unsigned_long_p_void_p_unsigned_long_p_unsigned_long_p_unsigned_int__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec_p_switch_codec_p_void_unsigned_long_unsigned_long_p_void_p_unsigned_long_p_unsigned_long_p_unsigned_int__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_codec_p_switch_frame__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_codec_p_switch_frame__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_codec_p_switch_frame__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec_p_switch_frame__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_codec_unsigned_long_p_q_const__switch_codec_settings__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_codec_unsigned_long_p_q_const__switch_codec_settings__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_codec_unsigned_long_p_q_const__switch_codec_settings__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec_unsigned_long_p_q_const__switch_codec_settings__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session__int { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session__int(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session__int() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session__int obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_int__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_int__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_int__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_int__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_p_char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_p_char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_p_char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_p_char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_switch_input_args_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_switch_input_args_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_switch_input_args_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_switch_input_args_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__char__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__char__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__char__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__char__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_bool_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_bool_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_bool_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_bool_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char_q_const__int_q_const__int__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char_q_const__int_q_const__int__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char_q_const__int_q_const__int__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char_q_const__int_q_const__int__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_switch_core_session_message__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_switch_core_session_message__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_switch_core_session_message__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_core_session_message__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_switch_event__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_switch_event__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_switch_event__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_event__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_p_switch_core_session_p_p_apr_pool_t_unsigned_long_p_enum_switch_call_cause_t__switch_call_cause_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_p_switch_core_session_p_p_apr_pool_t_unsigned_long_p_enum_switch_call_cause_t__switch_call_cause_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_p_switch_core_session_p_p_apr_pool_t_unsigned_long_p_enum_switch_call_cause_t__switch_call_cause_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_p_switch_core_session_p_p_apr_pool_t_unsigned_long_p_enum_switch_call_cause_t__switch_call_cause_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_switch_core_session_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_switch_core_session_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_switch_core_session_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_switch_core_session_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_p_void__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_p_void__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_p_void__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_p_void__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_void__p_void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_void__p_void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_void__p_void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_void__p_void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_p_void_enum_switch_input_type_t_p_void_unsigned_int__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_p_void_enum_switch_input_type_t_p_void_unsigned_int__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_p_void_enum_switch_input_type_t_p_void_unsigned_int__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_void_enum_switch_input_type_t_p_void_unsigned_int__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_jb_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_jb_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_jb_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_jb_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char_p_char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char_p_char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char_p_char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char_p_char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_directory_handle_p_p_char_p_p_char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_directory_handle_p_p_char_p_p_char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_directory_handle_p_p_char_p_p_char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_directory_handle_p_p_char_p_p_char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_event__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_event__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_event__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_event__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_event__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_event__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_event__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_event__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_event_p_q_const__char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_event_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_event_p_q_const__char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_event_p_q_const__char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_p_q_const__char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_p_q_const__char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_p_q_const__char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_q_const__char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_q_const__char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_q_const__char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_enum_switch_file_command_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_enum_switch_file_command_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_enum_switch_file_command_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_enum_switch_file_command_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_long_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_long_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_long_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_long_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_p_q_const__char__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_p_q_const__char__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_q_const__char__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame_enum_switch_video_read_flag_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame_enum_switch_video_read_flag_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame_enum_switch_video_read_flag_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame_enum_switch_video_read_flag_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_p_unsigned_int_long_long_int__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_p_unsigned_int_long_long_int__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_p_unsigned_int_long_long_int__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_unsigned_int_long_long_int__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_file_handle_p_void_p_switch_size_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_file_handle_p_void_p_switch_size_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_file_handle_p_void_p_switch_size_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_void_p_switch_size_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_ivr_dmachine_match__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_ivr_dmachine_match__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_ivr_dmachine_match__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_ivr_dmachine_match__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_ivr_menu_p_char_p_char_size_t_p_void__switch_ivr_action_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_ivr_menu_p_char_p_char_size_t_p_void__switch_ivr_action_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_ivr_menu_p_char_p_char_size_t_p_void__switch_ivr_action_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_ivr_menu_p_char_p_char_size_t_p_void__switch_ivr_action_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_live_array_s_p_q_const__char_p_q_const__char_p_cJSON_p_void__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_live_array_s_p_q_const__char_p_q_const__char_p_cJSON_p_void__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_live_array_s_p_q_const__char_p_q_const__char_p_cJSON_p_void__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_live_array_s_p_q_const__char_p_q_const__char_p_cJSON_p_void__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_media_bug_p_void__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_media_bug_p_void__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_media_bug_p_void__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_media_bug_p_void__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_rtp_p_switch_socket_t_p_void_switch_size_t_p_switch_sockaddr_t__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_rtp_p_switch_socket_t_p_void_switch_size_t_p_switch_sockaddr_t__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_rtp_p_switch_socket_t_p_void_switch_size_t_p_switch_sockaddr_t__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_rtp_p_switch_socket_t_p_void_switch_size_t_p_switch_sockaddr_t__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_scheduler_task__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_scheduler_task__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_scheduler_task__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_scheduler_task__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_speech_handle__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_speech_handle__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_speech_handle__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_speech_handle_p_char_double__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_speech_handle_p_char_double__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_speech_handle_p_char_double__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_char_double__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_speech_handle_p_char_int__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_speech_handle_p_char_int__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_speech_handle_p_char_int__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_char_int__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_q_const__char__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_q_const__char__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_q_const__char__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_q_const__char__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_speech_handle_p_q_const__char_int_int_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_speech_handle_p_q_const__char_int_int_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_speech_handle_p_q_const__char_int_int_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_q_const__char_int_int_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_speech_handle_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_speech_handle_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_speech_handle_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_speech_handle_p_void_p_switch_size_t_p_unsigned_long__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_speech_handle_p_void_p_switch_size_t_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_speech_handle_p_void_p_switch_size_t_p_unsigned_long__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_void_p_switch_size_t_p_unsigned_long__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_stream_handle_p_int__p_unsigned_char { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_stream_handle_p_int__p_unsigned_char(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_stream_handle_p_int__p_unsigned_char() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_stream_handle_p_int__p_unsigned_char obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_stream_handle_p_q_const__char_v_______switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_stream_handle_p_q_const__char_v_______switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_stream_handle_p_q_const__char_v_______switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_stream_handle_p_q_const__char_v_______switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_stream_handle_p_unsigned_char_switch_size_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_stream_handle_p_unsigned_char_switch_size_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_stream_handle_p_unsigned_char_switch_size_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_stream_handle_p_unsigned_char_switch_size_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_thread_t_p_void__p_void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_thread_t_p_void__p_void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_thread_t_p_void__p_void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_thread_t_p_void__p_void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_timer__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_timer__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_timer__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_timer__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_switch_timer_enum_switch_bool_t__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_switch_timer_enum_switch_bool_t__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_switch_timer_enum_switch_bool_t__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_timer_enum_switch_bool_t__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_void__void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_void__void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_void__void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_void__void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_void_p_q_const__char__int { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_void_p_q_const__char__int(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_void_p_q_const__char__int() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_void_p_q_const__char__int obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_p_void_p_switch_event__int { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_p_void_p_switch_event__int(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_p_void_p_switch_event__int() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_p_void_p_switch_event__int obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_uint8_t_p_p_q_const__char_p_void__p_switch_xml { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_uint8_t_p_p_q_const__char_p_void__p_switch_xml(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_uint8_t_p_p_q_const__char_p_void__p_switch_xml() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_uint8_t_p_p_q_const__char_p_void__p_switch_xml obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_void__p_char { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_void__p_char(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_void__p_char() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_void__p_char obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_f_void__switch_status_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_f_void__switch_status_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_f_void__switch_status_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_f_void__switch_status_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_float { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_float(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_float() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_float obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_in6_addr { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_in6_addr(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_in6_addr() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_in6_addr obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_int { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_int(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_int() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_int obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_apr_pool_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_apr_pool_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_apr_pool_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_apr_pool_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_cJSON { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_cJSON(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_cJSON() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_cJSON obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_char { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_char(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_char() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_char obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_p_char { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_p_char(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_p_char() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_p_char obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_payload_map_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_payload_map_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_payload_map_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_payload_map_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_real_pcre { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_real_pcre(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_real_pcre() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_real_pcre obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_sqlite3 { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_sqlite3(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_sqlite3() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_sqlite3 obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_sqlite3_stmt { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_sqlite3_stmt(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_sqlite3_stmt() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_sqlite3_stmt obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_audio_resampler_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_audio_resampler_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_audio_resampler_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_audio_resampler_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_buffer { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_buffer(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_buffer() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_buffer obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_cache_db_handle { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_cache_db_handle(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_cache_db_handle() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_cache_db_handle obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_caller_extension { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_caller_extension(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_caller_extension() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_caller_extension obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_channel { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_channel(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_channel() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_channel obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_codec_implementation { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_codec_implementation(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_codec_implementation() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_codec_implementation obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_console_callback_match { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_console_callback_match(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_console_callback_match() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_console_callback_match obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_core_port_allocator { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_core_port_allocator(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_core_port_allocator() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_core_port_allocator obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_core_session { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_core_session(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_core_session() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_core_session obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_core_session_message { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_core_session_message(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_core_session_message() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_core_session_message obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_device_record_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_device_record_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_device_record_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_device_record_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_event { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_event(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_event() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_event obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_event_node { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_event_node(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_event_node() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_event_node obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_file_handle { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_file_handle(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_file_handle() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_file_handle obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_frame { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_frame(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_frame() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_frame obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_frame_buffer_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_frame_buffer_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_frame_buffer_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_frame_buffer_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_hashtable { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_hashtable(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_hashtable() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_hashtable obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_hashtable_iterator { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_hashtable_iterator(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_hashtable_iterator() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_hashtable_iterator obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_ivr_digit_stream { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_ivr_digit_stream(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_ivr_digit_stream() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_digit_stream obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_ivr_digit_stream_parser { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_ivr_digit_stream_parser(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_ivr_digit_stream_parser() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_digit_stream_parser obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_ivr_dmachine { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_ivr_dmachine(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_ivr_dmachine() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_dmachine obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_ivr_dmachine_match { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_ivr_dmachine_match(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_ivr_dmachine_match() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_dmachine_match obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_ivr_menu { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_ivr_menu(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_ivr_menu() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_menu obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_ivr_menu_xml_ctx { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_ivr_menu_xml_ctx(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_ivr_menu_xml_ctx() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_menu_xml_ctx obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_live_array_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_live_array_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_live_array_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_live_array_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_log_node_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_log_node_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_log_node_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_log_node_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_media_bug { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_media_bug(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_media_bug() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_media_bug obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_network_list { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_network_list(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_network_list() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_network_list obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_rtp { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_rtp(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_rtp() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_rtp obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_say_file_handle { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_say_file_handle(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_say_file_handle() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_say_file_handle obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_sql_queue_manager { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_sql_queue_manager(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_sql_queue_manager() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_sql_queue_manager obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_thread_data_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_thread_data_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_thread_data_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_thread_data_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_xml { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_xml(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_xml() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_xml obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_switch_xml_binding { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_switch_xml_binding(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_switch_xml_binding() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_xml_binding obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_unsigned_char { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_unsigned_char(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_unsigned_char() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_unsigned_char obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_p_void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_p_void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_p_void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_p_void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_pid_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_pid_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_pid_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_pid_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_real_pcre { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_real_pcre(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_real_pcre() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_real_pcre obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_short { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_short(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_short() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_short obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_sockaddr { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_sockaddr(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_sockaddr() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_sockaddr obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_sockaddr_in6 { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_sockaddr_in6(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_sockaddr_in6() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_sockaddr_in6 obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_socklen_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_socklen_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_socklen_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_socklen_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_sqlite3 { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_sqlite3(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_sqlite3() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_sqlite3 obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_sqlite3_stmt { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_sqlite3_stmt(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_sqlite3_stmt() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_sqlite3_stmt obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_buffer { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_buffer(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_buffer() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_buffer obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_cache_db_handle { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_cache_db_handle(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_cache_db_handle() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_cache_db_handle obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_call_cause_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_call_cause_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_call_cause_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_call_cause_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_channel { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_channel(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_channel() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_channel obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_codec_control_type_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_codec_control_type_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_codec_control_type_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_codec_control_type_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_core_port_allocator { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_core_port_allocator(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_core_port_allocator() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_core_port_allocator obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_core_session { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_core_session(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_core_session() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_core_session obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_event_types_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_event_types_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_event_types_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_event_types_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_file_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_file_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_file_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_file_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_frame_buffer_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_frame_buffer_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_frame_buffer_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_frame_buffer_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_hashtable { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_hashtable(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_hashtable() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_hashtable obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_hashtable_iterator { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_hashtable_iterator(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_hashtable_iterator() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_hashtable_iterator obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_image_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_image_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_image_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_image_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_img_position_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_img_position_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_img_position_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_img_position_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_interval_time_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_interval_time_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_interval_time_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_interval_time_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_ivr_action_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_ivr_action_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_ivr_action_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_action_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_ivr_digit_stream { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_ivr_digit_stream(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_ivr_digit_stream() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_digit_stream obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_ivr_digit_stream_parser { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_ivr_digit_stream_parser(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_ivr_digit_stream_parser() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_digit_stream_parser obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_ivr_dmachine { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_ivr_dmachine(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_ivr_dmachine() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_dmachine obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_ivr_menu { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_ivr_menu(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_ivr_menu() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_menu obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_ivr_menu_xml_ctx { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_ivr_menu_xml_ctx(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_ivr_menu_xml_ctx() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_menu_xml_ctx obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_jb_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_jb_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_jb_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_jb_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_live_array_s { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_live_array_s(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_live_array_s() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_live_array_s obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_media_bug { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_media_bug(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_media_bug() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_media_bug obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_mutex_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_mutex_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_mutex_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_mutex_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_network_list { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_network_list(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_network_list() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_network_list obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_odbc_handle { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_odbc_handle(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_odbc_handle() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_odbc_handle obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_pgsql_handle { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_pgsql_handle(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_pgsql_handle() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_pgsql_handle obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_pollfd_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_pollfd_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_pollfd_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_pollfd_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_queue_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_queue_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_queue_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_queue_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_rtcp_frame { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_rtcp_frame(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_rtcp_frame() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_rtcp_frame obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_rtp { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_rtp(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_rtp() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_rtp obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_rtp_flag_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_rtp_flag_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_rtp_flag_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_rtp_flag_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_say_file_handle { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_say_file_handle(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_say_file_handle() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_say_file_handle obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_size_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_size_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_size_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_size_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_sockaddr_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_sockaddr_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_sockaddr_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_sockaddr_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_socket_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_socket_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_socket_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_socket_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_sql_queue_manager { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_sql_queue_manager(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_sql_queue_manager() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_sql_queue_manager obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_ssize_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_ssize_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_ssize_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_ssize_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_thread_rwlock_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_thread_rwlock_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_thread_rwlock_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_thread_rwlock_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_thread_start_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_thread_start_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_thread_start_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_thread_start_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_thread_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_thread_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_thread_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_thread_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_time_exp_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_time_exp_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_time_exp_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_time_exp_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_time_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_time_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_time_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_time_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_switch_xml_binding { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_switch_xml_binding(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_switch_xml_binding() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_switch_xml_binding obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_time_t { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_time_t(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_time_t() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_time_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_unsigned_char { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_unsigned_char(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_unsigned_char() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_unsigned_char obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_unsigned_int { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_unsigned_int(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_unsigned_int() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_unsigned_int obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_unsigned_long { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_unsigned_long(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_unsigned_long() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_unsigned_long obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_unsigned_short { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_unsigned_short(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_unsigned_short() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_unsigned_short obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class SWIGTYPE_p_void { - private HandleRef swigCPtr; - - internal SWIGTYPE_p_void(IntPtr cPtr, bool futureUse) { - swigCPtr = new HandleRef(this, cPtr); - } - - protected SWIGTYPE_p_void() { - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - - internal static HandleRef getCPtr(SWIGTYPE_p_void obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public partial class Stream : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal Stream(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(Stream obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~Stream() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_Stream(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public Stream() : this(freeswitchPINVOKE.new_Stream__SWIG_0(), true) { - } - - public Stream(switch_stream_handle arg0) : this(freeswitchPINVOKE.new_Stream__SWIG_1(switch_stream_handle.getCPtr(arg0)), true) { - } - - public string read(SWIGTYPE_p_int len) { - string ret = freeswitchPINVOKE.Stream_read(swigCPtr, SWIGTYPE_p_int.getCPtr(len)); - return ret; - } - - public void Write(string data) { - freeswitchPINVOKE.Stream_Write(swigCPtr, data); - } - - public void raw_write(string data, int len) { - freeswitchPINVOKE.Stream_raw_write(swigCPtr, data, len); - } - - public string get_data() { - string ret = freeswitchPINVOKE.Stream_get_data(swigCPtr); - return ret; - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class audio_buffer_header_t : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal audio_buffer_header_t(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(audio_buffer_header_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~audio_buffer_header_t() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_audio_buffer_header_t(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public uint ts { - set { - freeswitchPINVOKE.audio_buffer_header_t_ts_set(swigCPtr, value); - } - get { - uint ret = freeswitchPINVOKE.audio_buffer_header_t_ts_get(swigCPtr); - return ret; - } - } - - public uint len { - set { - freeswitchPINVOKE.audio_buffer_header_t_len_set(swigCPtr, value); - } - get { - uint ret = freeswitchPINVOKE.audio_buffer_header_t_len_get(swigCPtr); - return ret; - } - } - - public audio_buffer_header_t() : this(freeswitchPINVOKE.new_audio_buffer_header_t(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum cache_db_flag_t { - CDF_INUSE = (1 << 0), - CDF_PRUNE = (1 << 1) -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum dm_match_type_t { - DM_MATCH_POSITIVE, - DM_MATCH_NEGATIVE -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class dtls_fingerprint_t : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal dtls_fingerprint_t(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(dtls_fingerprint_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~dtls_fingerprint_t() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_dtls_fingerprint_t(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public uint len { - set { - freeswitchPINVOKE.dtls_fingerprint_t_len_set(swigCPtr, value); - } - get { - uint ret = freeswitchPINVOKE.dtls_fingerprint_t_len_get(swigCPtr); - return ret; - } - } - - public SWIGTYPE_p_unsigned_char data { - set { - freeswitchPINVOKE.dtls_fingerprint_t_data_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.dtls_fingerprint_t_data_get(swigCPtr); - SWIGTYPE_p_unsigned_char ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false); - return ret; - } - } - - public string type { - set { - freeswitchPINVOKE.dtls_fingerprint_t_type_set(swigCPtr, value); - } - get { - string ret = freeswitchPINVOKE.dtls_fingerprint_t_type_get(swigCPtr); - return ret; - } - } - - public string str { - set { - freeswitchPINVOKE.dtls_fingerprint_t_str_set(swigCPtr, value); - } - get { - string ret = freeswitchPINVOKE.dtls_fingerprint_t_str_get(swigCPtr); - return ret; - } - } - - public dtls_fingerprint_t() : this(freeswitchPINVOKE.new_dtls_fingerprint_t(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum dtls_state_t { - DS_OFF, - DS_HANDSHAKE, - DS_SETUP, - DS_READY, - DS_FAIL, - DS_INVALID -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum dtls_type_t { - DTLS_TYPE_CLIENT = (1 << 0), - DTLS_TYPE_SERVER = (1 << 1), - DTLS_TYPE_RTP = (1 << 2), - DTLS_TYPE_RTCP = (1 << 3) -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum dtmf_flag_t { - DTMF_FLAG_SKIP_PROCESS = (1 << 0), - DTMF_FLAG_SENSITIVE = (1 << 1) -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -9603,6 +3182,16 @@ else return ret; } + public static ushort switch_core_get_rtp_port_range_start_port() { + ushort ret = freeswitchPINVOKE.switch_core_get_rtp_port_range_start_port(); + return ret; + } + + public static ushort switch_core_get_rtp_port_range_end_port() { + ushort ret = freeswitchPINVOKE.switch_core_get_rtp_port_range_end_port(); + return ret; + } + public static string switch_say_file_handle_get_variable(SWIGTYPE_p_switch_say_file_handle sh, string var) { string ret = freeswitchPINVOKE.switch_say_file_handle_get_variable(SWIGTYPE_p_switch_say_file_handle.getCPtr(sh), var); return ret; @@ -12451,6 +6040,10 @@ else return ret; } + public static void switch_ivr_bg_media(string uuid, uint flags, switch_bool_t on, switch_bool_t is3p, uint delay) { + freeswitchPINVOKE.switch_ivr_bg_media(uuid, flags, (int)on, (int)is3p, delay); + } + public static switch_status_t switch_ivr_hold_uuid(string uuid, string message, switch_bool_t moh) { switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_ivr_hold_uuid(uuid, message, (int)moh); return ret; @@ -13010,6 +6603,11 @@ else freeswitchPINVOKE.switch_rtp_destroy(SWIGTYPE_p_p_switch_rtp.getCPtr(rtp_session)); } + public static switch_status_t switch_rtp_sync_stats(SWIGTYPE_p_switch_rtp rtp_session) { + switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_rtp_sync_stats(SWIGTYPE_p_switch_rtp.getCPtr(rtp_session)); + return ret; + } + public static switch_status_t switch_rtp_activate_ice(SWIGTYPE_p_switch_rtp rtp_session, string login, string rlogin, string password, string rpassword, ice_proto_t proto, switch_core_media_ice_type_t type, ice_t ice_params) { switch_status_t ret = (switch_status_t)freeswitchPINVOKE.switch_rtp_activate_ice(SWIGTYPE_p_switch_rtp.getCPtr(rtp_session), login, rlogin, password, rpassword, (int)proto, (int)type, ice_t.getCPtr(ice_params)); return ret; @@ -14090,7 +7688,7 @@ else } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -15564,30 +9162,6 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_rtp_hdr_ext_t")] public static extern void delete_switch_rtp_hdr_ext_t(HandleRef jarg1); - [DllImport("mod_managed", EntryPoint="CSharp_switch_rtcp_sdes_unit_t_type_set")] - public static extern void switch_rtcp_sdes_unit_t_type_set(HandleRef jarg1, byte jarg2); - - [DllImport("mod_managed", EntryPoint="CSharp_switch_rtcp_sdes_unit_t_type_get")] - public static extern byte switch_rtcp_sdes_unit_t_type_get(HandleRef jarg1); - - [DllImport("mod_managed", EntryPoint="CSharp_switch_rtcp_sdes_unit_t_length_set")] - public static extern void switch_rtcp_sdes_unit_t_length_set(HandleRef jarg1, byte jarg2); - - [DllImport("mod_managed", EntryPoint="CSharp_switch_rtcp_sdes_unit_t_length_get")] - public static extern byte switch_rtcp_sdes_unit_t_length_get(HandleRef jarg1); - - [DllImport("mod_managed", EntryPoint="CSharp_switch_rtcp_sdes_unit_t_value_set")] - public static extern void switch_rtcp_sdes_unit_t_value_set(HandleRef jarg1, string jarg2); - - [DllImport("mod_managed", EntryPoint="CSharp_switch_rtcp_sdes_unit_t_value_get")] - public static extern string switch_rtcp_sdes_unit_t_value_get(HandleRef jarg1); - - [DllImport("mod_managed", EntryPoint="CSharp_new_switch_rtcp_sdes_unit_t")] - public static extern IntPtr new_switch_rtcp_sdes_unit_t(); - - [DllImport("mod_managed", EntryPoint="CSharp_delete_switch_rtcp_sdes_unit_t")] - public static extern void delete_switch_rtcp_sdes_unit_t(HandleRef jarg1); - [DllImport("mod_managed", EntryPoint="CSharp_switch_rtcp_hdr_t_version_set")] public static extern void switch_rtcp_hdr_t_version_set(HandleRef jarg1, uint jarg2); @@ -18282,6 +11856,12 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_core_expire_registration")] public static extern int switch_core_expire_registration(int jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_core_get_rtp_port_range_start_port")] + public static extern ushort switch_core_get_rtp_port_range_start_port(); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_core_get_rtp_port_range_end_port")] + public static extern ushort switch_core_get_rtp_port_range_end_port(); + [DllImport("mod_managed", EntryPoint="CSharp_switch_say_file_handle_get_variable")] public static extern string switch_say_file_handle_get_variable(HandleRef jarg1, string jarg2); @@ -20484,6 +14064,12 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_vencspd_get")] public static extern int switch_mm_t_vencspd_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_try_hardware_encoder_set")] + public static extern void switch_mm_t_try_hardware_encoder_set(HandleRef jarg1, byte jarg2); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_mm_t_try_hardware_encoder_get")] + public static extern byte switch_mm_t_try_hardware_encoder_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_new_switch_mm_t")] public static extern IntPtr new_switch_mm_t(); @@ -20778,6 +14364,18 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_flag_mutex_get")] public static extern IntPtr switch_file_handle_flag_mutex_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_duration_set")] + public static extern void switch_file_handle_duration_set(HandleRef jarg1, long jarg2); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_duration_get")] + public static extern long switch_file_handle_duration_get(HandleRef jarg1); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_vpos_set")] + public static extern void switch_file_handle_vpos_set(HandleRef jarg1, long jarg2); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_vpos_get")] + public static extern long switch_file_handle_vpos_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_new_switch_file_handle")] public static extern IntPtr new_switch_file_handle(); @@ -21600,6 +15198,12 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_video_codec_settings_height_get")] public static extern int switch_video_codec_settings_height_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_video_codec_settings_try_hardware_encoder_set")] + public static extern void switch_video_codec_settings_try_hardware_encoder_set(HandleRef jarg1, byte jarg2); + + [DllImport("mod_managed", EntryPoint="CSharp_switch_video_codec_settings_try_hardware_encoder_get")] + public static extern byte switch_video_codec_settings_try_hardware_encoder_get(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_new_switch_video_codec_settings")] public static extern IntPtr new_switch_video_codec_settings(); @@ -23691,6 +17295,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_ivr_3p_nomedia")] public static extern int switch_ivr_3p_nomedia(string jarg1, uint jarg2); + [DllImport("mod_managed", EntryPoint="CSharp_switch_ivr_bg_media")] + public static extern void switch_ivr_bg_media(string jarg1, uint jarg2, int jarg3, int jarg4, uint jarg5); + [DllImport("mod_managed", EntryPoint="CSharp_switch_ivr_hold_uuid")] public static extern int switch_ivr_hold_uuid(string jarg1, string jarg2, int jarg3); @@ -24231,6 +17838,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_switch_rtp_destroy")] public static extern void switch_rtp_destroy(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_rtp_sync_stats")] + public static extern int switch_rtp_sync_stats(HandleRef jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_switch_rtp_activate_ice")] public static extern int switch_rtp_activate_ice(HandleRef jarg1, string jarg2, string jarg3, string jarg4, string jarg5, int jarg6, int jarg7, HandleRef jarg8); @@ -25714,7 +19324,7 @@ class freeswitchPINVOKE { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -25873,7 +19483,7 @@ public class icand_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -25889,7 +19499,7 @@ public enum ice_proto_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26012,7 +19622,7 @@ public class ice_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26104,7 +19714,7 @@ public class input_callback_state_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26175,7 +19785,118 @@ public class ip_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class IvrMenu : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal IvrMenu(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(IvrMenu obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~IvrMenu() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_IvrMenu(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public IvrMenu(IvrMenu main, string name, string greeting_sound, string short_greeting_sound, string invalid_sound, string exit_sound, string transfer_sound, string confirm_macro, string confirm_key, string tts_engine, string tts_voice, int confirm_attempts, int inter_timeout, int digit_len, int timeout, int max_failures, int max_timeouts) : this(freeswitchPINVOKE.new_IvrMenu(IvrMenu.getCPtr(main), name, greeting_sound, short_greeting_sound, invalid_sound, exit_sound, transfer_sound, confirm_macro, confirm_key, tts_engine, tts_voice, confirm_attempts, inter_timeout, digit_len, timeout, max_failures, max_timeouts), true) { + } + + public void bindAction(string action, string arg, string bind) { + freeswitchPINVOKE.IvrMenu_bindAction(swigCPtr, action, arg, bind); + } + + public void Execute(CoreSession session, string name) { + freeswitchPINVOKE.IvrMenu_Execute(swigCPtr, CoreSession.getCPtr(session), name); + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public partial class ManagedSession : CoreSession { + private HandleRef swigCPtr; + + internal ManagedSession(IntPtr cPtr, bool cMemoryOwn) : base(freeswitchPINVOKE.ManagedSession_SWIGUpcast(cPtr), cMemoryOwn) { + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(ManagedSession obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~ManagedSession() { + Dispose(); + } + + public override void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_ManagedSession(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + base.Dispose(); + } + } + + public ManagedSession() : this(freeswitchPINVOKE.new_ManagedSession__SWIG_0(), true) { + } + + public ManagedSession(string uuid) : this(freeswitchPINVOKE.new_ManagedSession__SWIG_1(uuid), true) { + } + + public ManagedSession(SWIGTYPE_p_switch_core_session session) : this(freeswitchPINVOKE.new_ManagedSession__SWIG_2(SWIGTYPE_p_switch_core_session.getCPtr(session)), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26475,7 +20196,7 @@ public class payload_map_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26555,7 +20276,7 @@ public class profile_node_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26578,7 +20299,7 @@ public enum rtcp_psfb_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26606,7 +20327,7 @@ public enum rtcp_pt_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26627,7 +20348,7 @@ public enum rtcp_rtpfb_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26652,7 +20373,7 @@ public enum rtcp_sdes_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26669,7 +20390,6317 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public partial class Stream : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal Stream(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(Stream obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~Stream() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_Stream(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public Stream() : this(freeswitchPINVOKE.new_Stream__SWIG_0(), true) { + } + + public Stream(switch_stream_handle arg0) : this(freeswitchPINVOKE.new_Stream__SWIG_1(switch_stream_handle.getCPtr(arg0)), true) { + } + + public string read(SWIGTYPE_p_int len) { + string ret = freeswitchPINVOKE.Stream_read(swigCPtr, SWIGTYPE_p_int.getCPtr(len)); + return ret; + } + + public void Write(string data) { + freeswitchPINVOKE.Stream_Write(swigCPtr, data); + } + + public void raw_write(string data, int len) { + freeswitchPINVOKE.Stream_raw_write(swigCPtr, data, len); + } + + public string get_data() { + string ret = freeswitchPINVOKE.Stream_get_data(swigCPtr); + return ret; + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_a_2__icand_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_a_2__icand_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_a_2__icand_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_a_2__icand_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_apr_pool_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_apr_pool_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_apr_pool_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_apr_pool_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_cJSON { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_cJSON(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_cJSON() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_cJSON obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_FILE { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_FILE(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_FILE() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_FILE obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_float { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_float(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_float() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_float obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_size_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_size_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_size_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_char_enum_switch_management_action_t_p_char_switch_size_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_p_switch_loadable_module_interface_p_apr_pool_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__char_p_cJSON_p_q_const__char_unsigned_long__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__char_p_cJSON_p_q_const__char_unsigned_long__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__char_p_cJSON_p_q_const__char_unsigned_long__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_cJSON_p_q_const__char_unsigned_long__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_p_switch_console_callback_match__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_switch_event_t_p_void__p_switch_xml { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_switch_event_t_p_void__p_switch_xml(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_switch_event_t_p_void__p_switch_xml() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_switch_event_t_p_void__p_switch_xml obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_unsigned_long__int { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_unsigned_long__int(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_unsigned_long__int() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_unsigned_long__int obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char_p_void__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_q_const__char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__char_p_switch_codec_fmtp__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__char_p_switch_codec_fmtp__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__char_p_switch_codec_fmtp__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_switch_codec_fmtp__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__char_p_switch_core_session_p_switch_stream_handle__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__char_p_switch_core_session_p_switch_stream_handle__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__char_p_switch_core_session_p_switch_stream_handle__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__char_p_switch_core_session_p_switch_stream_handle__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__cJSON_p_switch_core_session_p_p_cJSON__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__cJSON_p_switch_core_session_p_p_cJSON__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__cJSON_p_switch_core_session_p_p_cJSON__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__cJSON_p_switch_core_session_p_p_cJSON__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__switch_log_node_t_enum_switch_log_level_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__switch_log_node_t_enum_switch_log_level_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__switch_log_node_t_enum_switch_log_level_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__switch_log_node_t_enum_switch_log_level_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_q_const__void_p_q_const__void_p_void__switch_bool_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_q_const__void_p_q_const__void_p_void__switch_bool_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_q_const__void_p_q_const__void_p_void__switch_bool_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_q_const__void_p_q_const__void_p_void__switch_bool_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_char_double__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_char_double__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_char_double__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_char_double__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_char_int__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_char_int__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_char_int__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_char_int__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_char_p_q_const__char__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_char_p_q_const__char__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_char_p_q_const__char__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_char_p_q_const__char__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_p_char_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_p_char_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_p_char_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_p_char_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_p_switch_event_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_p_switch_event_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_p_switch_event_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_p_switch_event_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_int_p_q_const__char_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_int_p_q_const__char_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_int_p_q_const__char_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_int_p_q_const__char_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_p_q_const__char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_p_q_const__char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char_p_q_const__char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__switch_dtmf_t_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__switch_dtmf_t_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__switch_dtmf_t_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_q_const__switch_dtmf_t_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle_p_void_unsigned_int_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle_p_void_unsigned_int_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle_p_void_unsigned_int_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle_p_void_unsigned_int_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_asr_handle__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_asr_handle__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_asr_handle__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_asr_handle__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_codec_enum_switch_codec_control_command_t_enum_switch_codec_control_type_t_p_void_enum_switch_codec_control_type_t_p_void_p_enum_switch_codec_control_type_t_p_p_void__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_codec_enum_switch_codec_control_command_t_enum_switch_codec_control_type_t_p_void_enum_switch_codec_control_type_t_p_void_p_enum_switch_codec_control_type_t_p_p_void__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_codec_enum_switch_codec_control_command_t_enum_switch_codec_control_type_t_p_void_enum_switch_codec_control_type_t_p_void_p_enum_switch_codec_control_type_t_p_p_void__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec_enum_switch_codec_control_command_t_enum_switch_codec_control_type_t_p_void_enum_switch_codec_control_type_t_p_void_p_enum_switch_codec_control_type_t_p_p_void__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_codec_p_switch_codec_p_void_unsigned_long_unsigned_long_p_void_p_unsigned_long_p_unsigned_long_p_unsigned_int__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_codec_p_switch_codec_p_void_unsigned_long_unsigned_long_p_void_p_unsigned_long_p_unsigned_long_p_unsigned_int__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_codec_p_switch_codec_p_void_unsigned_long_unsigned_long_p_void_p_unsigned_long_p_unsigned_long_p_unsigned_int__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec_p_switch_codec_p_void_unsigned_long_unsigned_long_p_void_p_unsigned_long_p_unsigned_long_p_unsigned_int__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_codec_p_switch_frame__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_codec_p_switch_frame__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_codec_p_switch_frame__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec_p_switch_frame__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_codec__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_codec__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_codec__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_codec_unsigned_long_p_q_const__switch_codec_settings__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_codec_unsigned_long_p_q_const__switch_codec_settings__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_codec_unsigned_long_p_q_const__switch_codec_settings__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_codec_unsigned_long_p_q_const__switch_codec_settings__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_enum_switch_channel_callstate_t_p_switch_device_record_s__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session__int { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session__int(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session__int() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session__int obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_int__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_int__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_int__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_int__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_p_char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_p_char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_p_char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_p_char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_switch_input_args_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_switch_input_args_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_switch_input_args_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_char_p_switch_say_args_t_p_switch_input_args_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char_q_const__int_q_const__int__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char_q_const__int_q_const__int__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char_q_const__int_q_const__int__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char_q_const__int_q_const__int__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_bool_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_bool_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_bool_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_bool_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__char_p_q_const__char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__char__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__char__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__char__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__char__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_switch_core_session_message__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_switch_core_session_message__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_switch_core_session_message__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_core_session_message__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_p_switch_core_session_p_p_apr_pool_t_unsigned_long_p_enum_switch_call_cause_t__switch_call_cause_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_p_switch_core_session_p_p_apr_pool_t_unsigned_long_p_enum_switch_call_cause_t__switch_call_cause_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_p_switch_core_session_p_p_apr_pool_t_unsigned_long_p_enum_switch_call_cause_t__switch_call_cause_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_p_switch_core_session_p_p_apr_pool_t_unsigned_long_p_enum_switch_call_cause_t__switch_call_cause_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_switch_core_session_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_switch_core_session_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_switch_core_session_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_event_p_switch_caller_profile_p_switch_core_session_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_switch_event__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_switch_event__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_switch_event__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_event__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_p_void__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_p_void__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_p_void__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_p_void__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_void_enum_switch_input_type_t_p_void_unsigned_int__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_void_enum_switch_input_type_t_p_void_unsigned_int__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_void_enum_switch_input_type_t_p_void_unsigned_int__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_void_enum_switch_input_type_t_p_void_unsigned_int__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_p_void__p_void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_p_void__p_void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_p_void__p_void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_p_void__p_void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_t_p_void_p_switch_caller_profile_t__p_switch_caller_extension obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_jb_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_jb_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_jb_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_core_session_t_switch_media_type_t__p_switch_jb_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char_p_char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char_p_char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char_p_char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char_p_char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_directory_handle_p_char_p_char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_directory_handle_p_p_char_p_p_char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_directory_handle_p_p_char_p_p_char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_directory_handle_p_p_char_p_p_char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_directory_handle_p_p_char_p_p_char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_directory_handle__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_event_p_q_const__char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_event_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_event_p_q_const__char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_event_p_q_const__char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_event__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_event__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_event__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_event__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_event__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_event__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_event__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_event__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_p_q_const__char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_p_q_const__char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_p_q_const__char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_q_const__char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_q_const__char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_enum_switch_audio_col_t_p_q_const__char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_enum_switch_file_command_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_enum_switch_file_command_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_enum_switch_file_command_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_enum_switch_file_command_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_long_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_long_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_long_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_long_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_p_q_const__char__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_p_q_const__char__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_p_q_const__char__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_q_const__char__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame_enum_switch_video_read_flag_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame_enum_switch_video_read_flag_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame_enum_switch_video_read_flag_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame_enum_switch_video_read_flag_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_switch_frame__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_p_unsigned_int_long_long_int__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_p_unsigned_int_long_long_int__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_p_unsigned_int_long_long_int__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_unsigned_int_long_long_int__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle_p_void_p_switch_size_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle_p_void_p_switch_size_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle_p_void_p_switch_size_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle_p_void_p_switch_size_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_file_handle__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_file_handle__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_file_handle__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_file_handle__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_ivr_dmachine_match__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_ivr_dmachine_match__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_ivr_dmachine_match__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_ivr_dmachine_match__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_ivr_menu_p_char_p_char_size_t_p_void__switch_ivr_action_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_ivr_menu_p_char_p_char_size_t_p_void__switch_ivr_action_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_ivr_menu_p_char_p_char_size_t_p_void__switch_ivr_action_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_ivr_menu_p_char_p_char_size_t_p_void__switch_ivr_action_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_live_array_s_p_q_const__char_p_q_const__char_p_cJSON_p_void__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_live_array_s_p_q_const__char_p_q_const__char_p_cJSON_p_void__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_live_array_s_p_q_const__char_p_q_const__char_p_cJSON_p_void__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_live_array_s_p_q_const__char_p_q_const__char_p_cJSON_p_void__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_media_bug_p_void_enum_switch_abc_type_t__switch_bool_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_media_bug_p_void__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_media_bug_p_void__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_media_bug_p_void__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_media_bug_p_void__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_rtp_p_switch_socket_t_p_void_switch_size_t_p_switch_sockaddr_t__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_rtp_p_switch_socket_t_p_void_switch_size_t_p_switch_sockaddr_t__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_rtp_p_switch_socket_t_p_void_switch_size_t_p_switch_sockaddr_t__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_rtp_p_switch_socket_t_p_void_switch_size_t_p_switch_sockaddr_t__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_scheduler_task__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_scheduler_task__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_scheduler_task__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_scheduler_task__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_speech_handle_p_char_double__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_speech_handle_p_char_double__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_speech_handle_p_char_double__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_char_double__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_speech_handle_p_char_int__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_speech_handle_p_char_int__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_speech_handle_p_char_int__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_char_int__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_q_const__char__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_q_const__char__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_q_const__char__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_q_const__char__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_char_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_speech_handle_p_q_const__char_int_int_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_speech_handle_p_q_const__char_int_int_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_speech_handle_p_q_const__char_int_int_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_q_const__char_int_int_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_speech_handle_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_speech_handle_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_speech_handle_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_speech_handle_p_void_p_switch_size_t_p_unsigned_long__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_speech_handle_p_void_p_switch_size_t_p_unsigned_long__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_speech_handle_p_void_p_switch_size_t_p_unsigned_long__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle_p_void_p_switch_size_t_p_unsigned_long__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_speech_handle__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_speech_handle__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_speech_handle__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_speech_handle__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_stream_handle_p_int__p_unsigned_char { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_stream_handle_p_int__p_unsigned_char(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_stream_handle_p_int__p_unsigned_char() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_stream_handle_p_int__p_unsigned_char obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_stream_handle_p_q_const__char_v_______switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_stream_handle_p_q_const__char_v_______switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_stream_handle_p_q_const__char_v_______switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_stream_handle_p_q_const__char_v_______switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_stream_handle_p_unsigned_char_switch_size_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_stream_handle_p_unsigned_char_switch_size_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_stream_handle_p_unsigned_char_switch_size_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_stream_handle_p_unsigned_char_switch_size_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_thread_t_p_void__p_void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_thread_t_p_void__p_void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_thread_t_p_void__p_void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_thread_t_p_void__p_void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_timer_enum_switch_bool_t__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_timer_enum_switch_bool_t__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_timer_enum_switch_bool_t__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_timer_enum_switch_bool_t__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_switch_timer__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_switch_timer__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_switch_timer__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_switch_timer__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_void_int_p_p_char_p_p_char__int obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_void_p_q_const__char__int { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_void_p_q_const__char__int(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_void_p_q_const__char__int() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_void_p_q_const__char__int obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_void_p_switch_event__int { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_void_p_switch_event__int(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_void_p_switch_event__int() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_void_p_switch_event__int obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_p_void__void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_p_void__void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_p_void__void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_p_void__void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_uint8_t_p_p_q_const__char_p_void__p_switch_xml { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_uint8_t_p_p_q_const__char_p_void__p_switch_xml(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_uint8_t_p_p_q_const__char_p_void__p_switch_xml() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_uint8_t_p_p_q_const__char_p_void__p_switch_xml obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_void__p_char { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_void__p_char(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_void__p_char() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_void__p_char obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_f_void__switch_status_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_f_void__switch_status_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_f_void__switch_status_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_f_void__switch_status_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_in6_addr { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_in6_addr(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_in6_addr() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_in6_addr obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_int { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_int(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_int() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_int obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_apr_pool_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_apr_pool_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_apr_pool_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_apr_pool_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_char { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_char(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_char() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_char obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_cJSON { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_cJSON(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_cJSON() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_cJSON obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_pid_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_pid_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_pid_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_pid_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_payload_map_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_payload_map_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_payload_map_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_payload_map_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_p_char { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_p_char(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_p_char() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_p_char obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_real_pcre { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_real_pcre(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_real_pcre() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_real_pcre obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_sqlite3 { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_sqlite3(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_sqlite3() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_sqlite3 obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_sqlite3_stmt { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_sqlite3_stmt(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_sqlite3_stmt() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_sqlite3_stmt obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_audio_resampler_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_audio_resampler_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_audio_resampler_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_audio_resampler_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_buffer { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_buffer(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_buffer() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_buffer obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_cache_db_handle { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_cache_db_handle(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_cache_db_handle() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_cache_db_handle obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_caller_extension { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_caller_extension(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_caller_extension() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_caller_extension obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_channel { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_channel(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_channel() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_channel obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_codec_implementation { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_codec_implementation(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_codec_implementation() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_codec_implementation obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_console_callback_match { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_console_callback_match(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_console_callback_match() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_console_callback_match obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_core_port_allocator { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_core_port_allocator(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_core_port_allocator() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_core_port_allocator obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_core_session { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_core_session(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_core_session() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_core_session obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_core_session_message { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_core_session_message(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_core_session_message() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_core_session_message obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_device_record_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_device_record_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_device_record_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_device_record_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_event { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_event(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_event() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_event obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_event_node { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_event_node(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_event_node() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_event_node obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_file_handle { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_file_handle(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_file_handle() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_file_handle obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_frame_buffer_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_frame_buffer_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_frame_buffer_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_frame_buffer_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_frame { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_frame(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_frame() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_frame obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_hashtable { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_hashtable(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_hashtable() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_hashtable obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_hashtable_iterator { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_hashtable_iterator(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_hashtable_iterator() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_hashtable_iterator obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_ivr_digit_stream { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_ivr_digit_stream(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_ivr_digit_stream() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_digit_stream obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_ivr_digit_stream_parser { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_ivr_digit_stream_parser(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_ivr_digit_stream_parser() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_digit_stream_parser obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_ivr_dmachine { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_ivr_dmachine(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_ivr_dmachine() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_dmachine obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_ivr_dmachine_match { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_ivr_dmachine_match(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_ivr_dmachine_match() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_dmachine_match obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_ivr_menu { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_ivr_menu(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_ivr_menu() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_menu obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_ivr_menu_xml_ctx { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_ivr_menu_xml_ctx(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_ivr_menu_xml_ctx() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_ivr_menu_xml_ctx obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_live_array_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_live_array_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_live_array_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_live_array_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_log_node_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_log_node_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_log_node_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_log_node_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_media_bug { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_media_bug(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_media_bug() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_media_bug obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_network_list { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_network_list(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_network_list() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_network_list obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_rtp { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_rtp(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_rtp() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_rtp obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_say_file_handle { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_say_file_handle(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_say_file_handle() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_say_file_handle obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_sql_queue_manager { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_sql_queue_manager(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_sql_queue_manager() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_sql_queue_manager obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_thread_data_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_thread_data_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_thread_data_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_thread_data_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_xml_binding { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_xml_binding(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_xml_binding() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_xml_binding obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_switch_xml { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_switch_xml(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_switch_xml() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_switch_xml obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_unsigned_char { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_unsigned_char(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_unsigned_char() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_unsigned_char obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_p_void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_p_void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_p_void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_p_void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_real_pcre { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_real_pcre(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_real_pcre() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_real_pcre obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_short { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_short(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_short() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_short obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_sockaddr { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_sockaddr(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_sockaddr() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_sockaddr obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_sockaddr_in6 { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_sockaddr_in6(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_sockaddr_in6() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_sockaddr_in6 obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_socklen_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_socklen_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_socklen_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_socklen_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_sqlite3 { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_sqlite3(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_sqlite3() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_sqlite3 obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_sqlite3_stmt { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_sqlite3_stmt(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_sqlite3_stmt() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_sqlite3_stmt obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_buffer { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_buffer(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_buffer() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_buffer obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_cache_db_handle { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_cache_db_handle(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_cache_db_handle() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_cache_db_handle obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_call_cause_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_call_cause_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_call_cause_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_call_cause_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_channel { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_channel(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_channel() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_channel obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_codec_control_type_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_codec_control_type_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_codec_control_type_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_codec_control_type_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_core_port_allocator { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_core_port_allocator(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_core_port_allocator() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_core_port_allocator obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_core_session { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_core_session(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_core_session() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_core_session obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_event_types_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_event_types_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_event_types_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_event_types_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_file_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_file_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_file_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_file_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_frame_buffer_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_frame_buffer_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_frame_buffer_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_frame_buffer_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_hashtable { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_hashtable(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_hashtable() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_hashtable obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_hashtable_iterator { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_hashtable_iterator(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_hashtable_iterator() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_hashtable_iterator obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_image_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_image_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_image_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_image_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_img_position_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_img_position_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_img_position_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_img_position_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_interval_time_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_interval_time_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_interval_time_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_interval_time_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_ivr_action_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_ivr_action_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_ivr_action_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_action_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_ivr_digit_stream { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_ivr_digit_stream(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_ivr_digit_stream() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_digit_stream obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_ivr_digit_stream_parser { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_ivr_digit_stream_parser(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_ivr_digit_stream_parser() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_digit_stream_parser obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_ivr_dmachine { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_ivr_dmachine(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_ivr_dmachine() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_dmachine obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_ivr_menu { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_ivr_menu(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_ivr_menu() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_menu obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_ivr_menu_xml_ctx { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_ivr_menu_xml_ctx(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_ivr_menu_xml_ctx() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_ivr_menu_xml_ctx obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_jb_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_jb_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_jb_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_jb_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_live_array_s { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_live_array_s(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_live_array_s() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_live_array_s obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_media_bug { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_media_bug(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_media_bug() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_media_bug obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_mutex_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_mutex_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_mutex_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_mutex_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_network_list { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_network_list(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_network_list() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_network_list obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_odbc_handle { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_odbc_handle(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_odbc_handle() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_odbc_handle obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_pgsql_handle { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_pgsql_handle(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_pgsql_handle() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_pgsql_handle obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_pollfd_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_pollfd_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_pollfd_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_pollfd_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_queue_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_queue_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_queue_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_queue_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_rtcp_frame { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_rtcp_frame(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_rtcp_frame() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_rtcp_frame obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_rtp { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_rtp(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_rtp() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_rtp obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_rtp_flag_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_rtp_flag_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_rtp_flag_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_rtp_flag_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_say_file_handle { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_say_file_handle(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_say_file_handle() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_say_file_handle obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_size_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_size_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_size_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_size_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_sockaddr_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_sockaddr_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_sockaddr_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_sockaddr_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_socket_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_socket_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_socket_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_socket_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_sql_queue_manager { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_sql_queue_manager(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_sql_queue_manager() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_sql_queue_manager obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_ssize_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_ssize_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_ssize_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_ssize_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_thread_rwlock_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_thread_rwlock_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_thread_rwlock_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_thread_rwlock_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_thread_start_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_thread_start_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_thread_start_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_thread_start_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_thread_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_thread_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_thread_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_thread_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_time_exp_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_time_exp_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_time_exp_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_time_exp_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_time_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_time_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_time_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_time_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_switch_xml_binding { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_switch_xml_binding(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_switch_xml_binding() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_switch_xml_binding obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_time_t { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_time_t(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_time_t() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_time_t obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_unsigned_char { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_unsigned_char(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_unsigned_char() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_unsigned_char obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_unsigned_int { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_unsigned_int(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_unsigned_int() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_unsigned_int obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_unsigned_long { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_unsigned_long(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_unsigned_long() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_unsigned_long obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_unsigned_short { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_unsigned_short(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_unsigned_short() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_unsigned_short obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class SWIGTYPE_p_void { + private HandleRef swigCPtr; + + internal SWIGTYPE_p_void(IntPtr cPtr, bool futureUse) { + swigCPtr = new HandleRef(this, cPtr); + } + + protected SWIGTYPE_p_void() { + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + + internal static HandleRef getCPtr(SWIGTYPE_p_void obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26696,7 +26727,7 @@ public enum switch_abc_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26840,99 +26871,7 @@ public class switch_api_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_app_log : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_app_log(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_app_log obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_app_log() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_app_log(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public string app { - set { - freeswitchPINVOKE.switch_app_log_app_set(swigCPtr, value); - } - get { - string ret = freeswitchPINVOKE.switch_app_log_app_get(swigCPtr); - return ret; - } - } - - public string arg { - set { - freeswitchPINVOKE.switch_app_log_arg_set(swigCPtr, value); - } - get { - string ret = freeswitchPINVOKE.switch_app_log_arg_get(swigCPtr); - return ret; - } - } - - public SWIGTYPE_p_switch_time_t stamp { - set { - freeswitchPINVOKE.switch_app_log_stamp_set(swigCPtr, SWIGTYPE_p_switch_time_t.getCPtr(value)); - if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve(); - } - get { - SWIGTYPE_p_switch_time_t ret = new SWIGTYPE_p_switch_time_t(freeswitchPINVOKE.switch_app_log_stamp_get(swigCPtr), true); - if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve(); - return ret; - } - } - - public switch_app_log next { - set { - freeswitchPINVOKE.switch_app_log_next_set(swigCPtr, switch_app_log.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_app_log_next_get(swigCPtr); - switch_app_log ret = (cPtr == IntPtr.Zero) ? null : new switch_app_log(cPtr, false); - return ret; - } - } - - public switch_app_log() : this(freeswitchPINVOKE.new_switch_app_log(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -26952,7 +26891,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27116,7 +27055,99 @@ public class switch_application_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class switch_app_log : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal switch_app_log(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(switch_app_log obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~switch_app_log() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_switch_app_log(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public string app { + set { + freeswitchPINVOKE.switch_app_log_app_set(swigCPtr, value); + } + get { + string ret = freeswitchPINVOKE.switch_app_log_app_get(swigCPtr); + return ret; + } + } + + public string arg { + set { + freeswitchPINVOKE.switch_app_log_arg_set(swigCPtr, value); + } + get { + string ret = freeswitchPINVOKE.switch_app_log_arg_get(swigCPtr); + return ret; + } + } + + public SWIGTYPE_p_switch_time_t stamp { + set { + freeswitchPINVOKE.switch_app_log_stamp_set(swigCPtr, SWIGTYPE_p_switch_time_t.getCPtr(value)); + if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve(); + } + get { + SWIGTYPE_p_switch_time_t ret = new SWIGTYPE_p_switch_time_t(freeswitchPINVOKE.switch_app_log_stamp_get(swigCPtr), true); + if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve(); + return ret; + } + } + + public switch_app_log next { + set { + freeswitchPINVOKE.switch_app_log_next_set(swigCPtr, switch_app_log.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_app_log_next_get(swigCPtr); + switch_app_log ret = (cPtr == IntPtr.Zero) ? null : new switch_app_log(cPtr, false); + return ret; + } + } + + public switch_app_log() : this(freeswitchPINVOKE.new_switch_app_log(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27136,7 +27167,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27343,7 +27374,7 @@ public class switch_asr_handle : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27654,7 +27685,7 @@ public class switch_asr_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27713,7 +27744,7 @@ public class switch_audio_codec_settings : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27733,7 +27764,7 @@ public enum switch_audio_col_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27874,7 +27905,7 @@ public class switch_audio_resampler_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27896,7 +27927,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -27912,7 +27943,7 @@ public enum switch_bitpack_mode_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28093,7 +28124,7 @@ public class switch_bitpack_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28109,7 +28140,7 @@ public enum switch_bool_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28191,7 +28222,7 @@ public class switch_cache_db_connection_options_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28250,7 +28281,7 @@ public class switch_cache_db_core_db_options_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28267,7 +28298,7 @@ public enum switch_cache_db_handle_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28349,7 +28380,7 @@ public class switch_cache_db_native_handle_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28428,7 +28459,7 @@ public class switch_cache_db_odbc_options_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28487,7 +28518,7 @@ public class switch_cache_db_pgsql_options_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28571,7 +28602,7 @@ public enum switch_call_cause_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28587,7 +28618,7 @@ public enum switch_call_direction_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28678,7 +28709,7 @@ public class switch_caller_application : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -28802,7 +28833,7 @@ public class switch_caller_extension : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29281,7 +29312,7 @@ public class switch_caller_profile : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29299,7 +29330,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29318,7 +29349,7 @@ public enum switch_channel_app_flag_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29341,7 +29372,7 @@ public enum switch_channel_callstate_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29362,7 +29393,7 @@ public enum switch_channel_cap_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29516,7 +29547,7 @@ public enum switch_channel_flag_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29544,7 +29575,7 @@ public enum switch_channel_state_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29736,7 +29767,7 @@ public class switch_channel_timetable : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29751,7 +29782,7 @@ public enum switch_chat_application_flag_enum_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -29915,7 +29946,7 @@ public class switch_chat_application_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -30039,7 +30070,44 @@ public class switch_chat_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum switch_codec_control_command_t { + SCC_VIDEO_GEN_KEYFRAME = 0, + SCC_VIDEO_BANDWIDTH, + SCC_VIDEO_RESET, + SCC_AUDIO_PACKET_LOSS, + SCC_DEBUG, + SCC_CODEC_SPECIFIC +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum switch_codec_control_type_t { + SCCT_NONE = 0, + SCCT_STRING, + SCCT_INT +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -30216,44 +30284,7 @@ public class switch_codec : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum switch_codec_control_command_t { - SCC_VIDEO_GEN_KEYFRAME = 0, - SCC_VIDEO_BANDWIDTH, - SCC_VIDEO_RESET, - SCC_AUDIO_PACKET_LOSS, - SCC_DEBUG, - SCC_CODEC_SPECIFIC -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum switch_codec_control_type_t { - SCCT_NONE = 0, - SCCT_STRING, - SCCT_INT -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -30277,7 +30308,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -30377,7 +30408,7 @@ public class switch_codec_fmtp : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -30674,7 +30705,7 @@ public class switch_codec_implementation : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -30829,7 +30860,7 @@ public class switch_codec_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -30900,7 +30931,7 @@ public class switch_codec_settings : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -30918,7 +30949,7 @@ public enum switch_codec_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31058,7 +31089,7 @@ public class switch_config : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31149,7 +31180,7 @@ public class switch_console_callback_match : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31219,7 +31250,7 @@ public class switch_console_callback_match_node : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31260,7 +31291,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31277,7 +31308,7 @@ public enum switch_core_media_ice_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31519,7 +31550,7 @@ public class switch_core_session_message : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31536,7 +31567,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31553,6 +31584,7 @@ public enum switch_core_session_message_types_t { SWITCH_MESSAGE_INDICATE_UNBRIDGE, SWITCH_MESSAGE_INDICATE_TRANSFER, SWITCH_MESSAGE_INDICATE_RINGING, + SWITCH_MESSAGE_INDICATE_ALERTING, SWITCH_MESSAGE_INDICATE_MEDIA, SWITCH_MESSAGE_INDICATE_3P_MEDIA, SWITCH_MESSAGE_INDICATE_NOMEDIA, @@ -31607,7 +31639,7 @@ public enum switch_core_session_message_types_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31710,7 +31742,7 @@ public class switch_core_thread_session : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31829,7 +31861,7 @@ public class switch_core_time_duration : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -31898,7 +31930,7 @@ public class switch_cputime : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -32043,7 +32075,7 @@ public class switch_device_node_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -32315,7 +32347,7 @@ public class switch_device_record_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -32336,7 +32368,7 @@ public enum switch_device_state_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -32635,7 +32667,7 @@ public class switch_device_stats_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -32759,7 +32791,7 @@ public class switch_dialplan_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -32776,7 +32808,7 @@ public enum switch_digit_action_target_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33025,7 +33057,7 @@ public class switch_directories : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33040,7 +33072,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33132,7 +33164,7 @@ public class switch_directory_handle : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33300,7 +33332,7 @@ public class switch_directory_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33316,7 +33348,7 @@ public enum switch_dtmf_direction_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33335,7 +33367,7 @@ public enum switch_dtmf_source_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33424,7 +33456,7 @@ public class switch_dtmf_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33445,7 +33477,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33602,7 +33634,7 @@ public class switch_endpoint_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33682,7 +33714,7 @@ public class switch_error_period_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33856,7 +33888,7 @@ public class switch_event : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33873,7 +33905,7 @@ public enum switch_event_flag_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -33982,7 +34014,7 @@ public class switch_event_header : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -34086,7 +34118,7 @@ public enum switch_event_types_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -34095,13 +34127,14 @@ public enum switch_event_types_t { namespace FreeSWITCH.Native { public enum switch_file_command_t { - SCFC_FLUSH_AUDIO + SCFC_FLUSH_AUDIO, + SCFC_PAUSE_READ } } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -34136,7 +34169,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -34681,6 +34714,26 @@ public class switch_file_handle : IDisposable { } } + public long duration { + set { + freeswitchPINVOKE.switch_file_handle_duration_set(swigCPtr, value); + } + get { + long ret = freeswitchPINVOKE.switch_file_handle_duration_get(swigCPtr); + return ret; + } + } + + public long vpos { + set { + freeswitchPINVOKE.switch_file_handle_vpos_set(swigCPtr, value); + } + get { + long ret = freeswitchPINVOKE.switch_file_handle_vpos_get(swigCPtr); + return ret; + } + } + public switch_file_handle() : this(freeswitchPINVOKE.new_switch_file_handle(), true) { } @@ -34689,7 +34742,7 @@ public class switch_file_handle : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -34932,7 +34985,7 @@ public class switch_file_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -34991,7 +35044,7 @@ public class switch_filenames : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35247,7 +35300,7 @@ public class switch_frame : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35280,7 +35333,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35374,7 +35427,7 @@ public class switch_hold_record_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35623,7 +35676,7 @@ public class switch_http_request_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35640,7 +35693,7 @@ public enum switch_hup_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35764,7 +35817,7 @@ public class switch_input_args_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35780,7 +35833,7 @@ public enum switch_input_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35851,7 +35904,7 @@ public class switch_io_event_hook_kill_channel : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35922,7 +35975,7 @@ public class switch_io_event_hook_outgoing_channel : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -35993,7 +36046,7 @@ public class switch_io_event_hook_read_frame : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -36064,7 +36117,7 @@ public class switch_io_event_hook_receive_event : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -36135,7 +36188,7 @@ public class switch_io_event_hook_receive_message : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -36206,433 +36259,7 @@ public class switch_io_event_hook_recv_dtmf : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_io_event_hook_send_dtmf : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_io_event_hook_send_dtmf(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_io_event_hook_send_dtmf obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_io_event_hook_send_dtmf() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_io_event_hook_send_dtmf(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t send_dtmf { - set { - freeswitchPINVOKE.switch_io_event_hook_send_dtmf_send_dtmf_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_send_dtmf_send_dtmf_get(swigCPtr); - SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_send_dtmf next { - set { - freeswitchPINVOKE.switch_io_event_hook_send_dtmf_next_set(swigCPtr, switch_io_event_hook_send_dtmf.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_send_dtmf_next_get(swigCPtr); - switch_io_event_hook_send_dtmf ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_send_dtmf(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_send_dtmf() : this(freeswitchPINVOKE.new_switch_io_event_hook_send_dtmf(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_io_event_hook_state_change : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_io_event_hook_state_change(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_io_event_hook_state_change obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_io_event_hook_state_change() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_io_event_hook_state_change(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_f_p_switch_core_session__switch_status_t state_change { - set { - freeswitchPINVOKE.switch_io_event_hook_state_change_state_change_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session__switch_status_t.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_state_change_state_change_get(swigCPtr); - SWIGTYPE_p_f_p_switch_core_session__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session__switch_status_t(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_state_change next { - set { - freeswitchPINVOKE.switch_io_event_hook_state_change_next_set(swigCPtr, switch_io_event_hook_state_change.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_state_change_next_get(swigCPtr); - switch_io_event_hook_state_change ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_state_change(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_state_change() : this(freeswitchPINVOKE.new_switch_io_event_hook_state_change(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_io_event_hook_state_run : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_io_event_hook_state_run(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_io_event_hook_state_run obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_io_event_hook_state_run() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_io_event_hook_state_run(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_f_p_switch_core_session__switch_status_t state_run { - set { - freeswitchPINVOKE.switch_io_event_hook_state_run_state_run_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session__switch_status_t.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_state_run_state_run_get(swigCPtr); - SWIGTYPE_p_f_p_switch_core_session__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session__switch_status_t(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_state_run next { - set { - freeswitchPINVOKE.switch_io_event_hook_state_run_next_set(swigCPtr, switch_io_event_hook_state_run.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_state_run_next_get(swigCPtr); - switch_io_event_hook_state_run ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_state_run(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_state_run() : this(freeswitchPINVOKE.new_switch_io_event_hook_state_run(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_io_event_hook_video_read_frame : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_io_event_hook_video_read_frame(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_io_event_hook_video_read_frame obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_io_event_hook_video_read_frame() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_io_event_hook_video_read_frame(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t video_read_frame { - set { - freeswitchPINVOKE.switch_io_event_hook_video_read_frame_video_read_frame_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_video_read_frame_video_read_frame_get(swigCPtr); - SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_video_read_frame next { - set { - freeswitchPINVOKE.switch_io_event_hook_video_read_frame_next_set(swigCPtr, switch_io_event_hook_video_read_frame.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_video_read_frame_next_get(swigCPtr); - switch_io_event_hook_video_read_frame ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_video_read_frame(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_video_read_frame() : this(freeswitchPINVOKE.new_switch_io_event_hook_video_read_frame(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_io_event_hook_video_write_frame : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_io_event_hook_video_write_frame(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_io_event_hook_video_write_frame obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_io_event_hook_video_write_frame() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_io_event_hook_video_write_frame(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t video_write_frame { - set { - freeswitchPINVOKE.switch_io_event_hook_video_write_frame_video_write_frame_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_video_write_frame_video_write_frame_get(swigCPtr); - SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_video_write_frame next { - set { - freeswitchPINVOKE.switch_io_event_hook_video_write_frame_next_set(swigCPtr, switch_io_event_hook_video_write_frame.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_video_write_frame_next_get(swigCPtr); - switch_io_event_hook_video_write_frame ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_video_write_frame(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_video_write_frame() : this(freeswitchPINVOKE.new_switch_io_event_hook_video_write_frame(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_io_event_hook_write_frame : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_io_event_hook_write_frame(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_io_event_hook_write_frame obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_io_event_hook_write_frame() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_io_event_hook_write_frame(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t write_frame { - set { - freeswitchPINVOKE.switch_io_event_hook_write_frame_write_frame_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_write_frame_write_frame_get(swigCPtr); - SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_write_frame next { - set { - freeswitchPINVOKE.switch_io_event_hook_write_frame_next_set(swigCPtr, switch_io_event_hook_write_frame.getCPtr(value)); - } - get { - IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_write_frame_next_get(swigCPtr); - switch_io_event_hook_write_frame ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_write_frame(cPtr, false); - return ret; - } - } - - public switch_io_event_hook_write_frame() : this(freeswitchPINVOKE.new_switch_io_event_hook_write_frame(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -36813,7 +36440,433 @@ public class switch_io_event_hooks : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class switch_io_event_hook_send_dtmf : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal switch_io_event_hook_send_dtmf(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(switch_io_event_hook_send_dtmf obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~switch_io_event_hook_send_dtmf() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_switch_io_event_hook_send_dtmf(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t send_dtmf { + set { + freeswitchPINVOKE.switch_io_event_hook_send_dtmf_send_dtmf_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_send_dtmf_send_dtmf_get(swigCPtr); + SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session_p_q_const__switch_dtmf_t_enum_switch_dtmf_direction_t__switch_status_t(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_send_dtmf next { + set { + freeswitchPINVOKE.switch_io_event_hook_send_dtmf_next_set(swigCPtr, switch_io_event_hook_send_dtmf.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_send_dtmf_next_get(swigCPtr); + switch_io_event_hook_send_dtmf ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_send_dtmf(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_send_dtmf() : this(freeswitchPINVOKE.new_switch_io_event_hook_send_dtmf(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class switch_io_event_hook_state_change : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal switch_io_event_hook_state_change(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(switch_io_event_hook_state_change obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~switch_io_event_hook_state_change() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_switch_io_event_hook_state_change(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public SWIGTYPE_p_f_p_switch_core_session__switch_status_t state_change { + set { + freeswitchPINVOKE.switch_io_event_hook_state_change_state_change_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session__switch_status_t.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_state_change_state_change_get(swigCPtr); + SWIGTYPE_p_f_p_switch_core_session__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session__switch_status_t(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_state_change next { + set { + freeswitchPINVOKE.switch_io_event_hook_state_change_next_set(swigCPtr, switch_io_event_hook_state_change.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_state_change_next_get(swigCPtr); + switch_io_event_hook_state_change ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_state_change(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_state_change() : this(freeswitchPINVOKE.new_switch_io_event_hook_state_change(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class switch_io_event_hook_state_run : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal switch_io_event_hook_state_run(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(switch_io_event_hook_state_run obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~switch_io_event_hook_state_run() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_switch_io_event_hook_state_run(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public SWIGTYPE_p_f_p_switch_core_session__switch_status_t state_run { + set { + freeswitchPINVOKE.switch_io_event_hook_state_run_state_run_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session__switch_status_t.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_state_run_state_run_get(swigCPtr); + SWIGTYPE_p_f_p_switch_core_session__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session__switch_status_t(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_state_run next { + set { + freeswitchPINVOKE.switch_io_event_hook_state_run_next_set(swigCPtr, switch_io_event_hook_state_run.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_state_run_next_get(swigCPtr); + switch_io_event_hook_state_run ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_state_run(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_state_run() : this(freeswitchPINVOKE.new_switch_io_event_hook_state_run(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class switch_io_event_hook_video_read_frame : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal switch_io_event_hook_video_read_frame(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(switch_io_event_hook_video_read_frame obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~switch_io_event_hook_video_read_frame() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_switch_io_event_hook_video_read_frame(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t video_read_frame { + set { + freeswitchPINVOKE.switch_io_event_hook_video_read_frame_video_read_frame_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_video_read_frame_video_read_frame_get(swigCPtr); + SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session_p_p_switch_frame_unsigned_long_int__switch_status_t(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_video_read_frame next { + set { + freeswitchPINVOKE.switch_io_event_hook_video_read_frame_next_set(swigCPtr, switch_io_event_hook_video_read_frame.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_video_read_frame_next_get(swigCPtr); + switch_io_event_hook_video_read_frame ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_video_read_frame(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_video_read_frame() : this(freeswitchPINVOKE.new_switch_io_event_hook_video_read_frame(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class switch_io_event_hook_video_write_frame : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal switch_io_event_hook_video_write_frame(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(switch_io_event_hook_video_write_frame obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~switch_io_event_hook_video_write_frame() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_switch_io_event_hook_video_write_frame(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t video_write_frame { + set { + freeswitchPINVOKE.switch_io_event_hook_video_write_frame_video_write_frame_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_video_write_frame_video_write_frame_get(swigCPtr); + SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_video_write_frame next { + set { + freeswitchPINVOKE.switch_io_event_hook_video_write_frame_next_set(swigCPtr, switch_io_event_hook_video_write_frame.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_video_write_frame_next_get(swigCPtr); + switch_io_event_hook_video_write_frame ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_video_write_frame(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_video_write_frame() : this(freeswitchPINVOKE.new_switch_io_event_hook_video_write_frame(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class switch_io_event_hook_write_frame : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal switch_io_event_hook_write_frame(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(switch_io_event_hook_write_frame obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~switch_io_event_hook_write_frame() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_switch_io_event_hook_write_frame(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t write_frame { + set { + freeswitchPINVOKE.switch_io_event_hook_write_frame_write_frame_set(swigCPtr, SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_write_frame_write_frame_get(swigCPtr); + SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_f_p_switch_core_session_p_switch_frame_unsigned_long_int__switch_status_t(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_write_frame next { + set { + freeswitchPINVOKE.switch_io_event_hook_write_frame_next_set(swigCPtr, switch_io_event_hook_write_frame.getCPtr(value)); + } + get { + IntPtr cPtr = freeswitchPINVOKE.switch_io_event_hook_write_frame_next_get(swigCPtr); + switch_io_event_hook_write_frame ret = (cPtr == IntPtr.Zero) ? null : new switch_io_event_hook_write_frame(cPtr, false); + return ret; + } + } + + public switch_io_event_hook_write_frame() : this(freeswitchPINVOKE.new_switch_io_event_hook_write_frame(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -36831,7 +36884,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -36856,7 +36909,7 @@ public enum switch_io_routine_name_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37048,7 +37101,7 @@ public class switch_io_routines : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37064,7 +37117,7 @@ public enum switch_io_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37085,7 +37138,7 @@ public enum switch_ivr_action_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37186,7 +37239,7 @@ public class switch_ivr_dmachine_match : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37203,7 +37256,7 @@ public enum switch_ivr_menu_flags { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37220,7 +37273,7 @@ public enum switch_ivr_option_enum_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37364,7 +37417,7 @@ public class switch_json_api_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37543,7 +37596,7 @@ public class switch_limit_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37645,7 +37698,7 @@ public class switch_loadable_module_function_table_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37912,7 +37965,7 @@ public class switch_loadable_module_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -37946,7 +37999,7 @@ public enum switch_log_level_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38097,7 +38150,7 @@ public class switch_log_node_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38114,7 +38167,7 @@ public enum switch_management_action_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38238,7 +38291,7 @@ public class switch_management_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38277,7 +38330,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38303,7 +38356,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38315,13 +38368,14 @@ public enum switch_media_flow_t { SWITCH_MEDIA_FLOW_SENDRECV = 0, SWITCH_MEDIA_FLOW_SENDONLY, SWITCH_MEDIA_FLOW_RECVONLY, - SWITCH_MEDIA_FLOW_INACTIVE + SWITCH_MEDIA_FLOW_INACTIVE, + SWITCH_MEDIA_FLOW_DISABLED } } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38337,7 +38391,7 @@ public enum switch_media_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38498,6 +38552,16 @@ public class switch_mm_t : IDisposable { } } + public byte try_hardware_encoder { + set { + freeswitchPINVOKE.switch_mm_t_try_hardware_encoder_set(swigCPtr, value); + } + get { + byte ret = freeswitchPINVOKE.switch_mm_t_try_hardware_encoder_get(swigCPtr); + return ret; + } + } + public switch_mm_t() : this(freeswitchPINVOKE.new_switch_mm_t(), true) { } @@ -38506,7 +38570,7 @@ public class switch_mm_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38522,7 +38586,7 @@ public enum switch_module_flag_enum_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38552,7 +38616,7 @@ public enum switch_module_interface_name_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38574,7 +38638,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38665,7 +38729,7 @@ public class switch_picture : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38687,7 +38751,7 @@ public enum switch_poll_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38706,7 +38770,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38723,7 +38787,7 @@ public enum switch_priority_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38739,7 +38803,7 @@ public enum switch_pvt_class_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38756,7 +38820,7 @@ public enum switch_ring_ready_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -38855,7 +38919,7 @@ public class switch_rtcp_hdr_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39124,86 +39188,7 @@ public class switch_rtcp_numbers_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_rtcp_sdes_unit_t : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_rtcp_sdes_unit_t(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_rtcp_sdes_unit_t obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_rtcp_sdes_unit_t() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_rtcp_sdes_unit_t(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public byte type { - set { - freeswitchPINVOKE.switch_rtcp_sdes_unit_t_type_set(swigCPtr, value); - } - get { - byte ret = freeswitchPINVOKE.switch_rtcp_sdes_unit_t_type_get(swigCPtr); - return ret; - } - } - - public byte length { - set { - freeswitchPINVOKE.switch_rtcp_sdes_unit_t_length_set(swigCPtr, value); - } - get { - byte ret = freeswitchPINVOKE.switch_rtcp_sdes_unit_t_length_get(swigCPtr); - return ret; - } - } - - public string value { - set { - freeswitchPINVOKE.switch_rtcp_sdes_unit_t_value_set(swigCPtr, value); - } - get { - string ret = freeswitchPINVOKE.switch_rtcp_sdes_unit_t_value_get(swigCPtr); - return ret; - } - } - - public switch_rtcp_sdes_unit_t() : this(freeswitchPINVOKE.new_switch_rtcp_sdes_unit_t(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39231,7 +39216,7 @@ public enum switch_rtp_bug_flag_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39250,7 +39235,7 @@ public enum switch_rtp_crypto_direction_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39353,7 +39338,7 @@ public class switch_rtp_crypto_key : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39377,7 +39362,7 @@ public enum switch_rtp_crypto_key_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39435,7 +39420,7 @@ public enum switch_rtp_flag_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39452,7 +39437,7 @@ public enum switch_rtp_flush_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39521,7 +39506,7 @@ public class switch_rtp_hdr_ext_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -39660,7 +39645,7 @@ public class switch_rtp_hdr_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40047,7 +40032,7 @@ public class switch_rtp_numbers_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40117,7 +40102,7 @@ public class switch_rtp_packet_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40209,7 +40194,7 @@ public class switch_rtp_stats_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40225,7 +40210,7 @@ public enum switch_rw_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40314,7 +40299,7 @@ public class switch_say_args_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40332,7 +40317,7 @@ public enum switch_say_gender_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40467,7 +40452,7 @@ public class switch_say_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40486,7 +40471,7 @@ public enum switch_say_method_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40519,7 +40504,7 @@ public enum switch_say_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40537,7 +40522,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40667,7 +40652,7 @@ public class switch_scheduler_task : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40683,7 +40668,7 @@ public enum switch_sdp_type_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40752,7 +40737,7 @@ public class switch_serial_event_header_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40861,7 +40846,7 @@ public class switch_serial_event_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40918,7 +40903,7 @@ public enum switch_session_ctl_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -40936,7 +40921,7 @@ public enum switch_signal_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41028,7 +41013,7 @@ public class switch_slin_data : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41050,7 +41035,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41297,7 +41282,7 @@ public class switch_speech_handle : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41498,7 +41483,7 @@ public class switch_speech_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41577,7 +41562,7 @@ public class switch_srtp_crypto_suite_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41596,7 +41581,7 @@ public enum switch_stack_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41611,7 +41596,7 @@ public enum switch_state_handler_flag_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41637,7 +41622,7 @@ public enum switch_state_handler_name_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41839,7 +41824,7 @@ public class switch_state_handler_table : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -41879,7 +41864,7 @@ public enum switch_status_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42042,7 +42027,7 @@ public class switch_stream_handle : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42241,7 +42226,7 @@ public class switch_t38_options_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42259,7 +42244,7 @@ public enum switch_text_channel_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42352,7 +42337,7 @@ public class switch_thread_data_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42370,7 +42355,7 @@ public enum switch_thread_priority_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42526,7 +42511,7 @@ public class switch_timer : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42541,7 +42526,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42561,7 +42546,7 @@ public enum switch_timer_func_name_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42740,7 +42725,7 @@ public class switch_timer_interface : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42968,7 +42953,7 @@ public class switch_unicast_conninfo : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -42986,7 +42971,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -43003,7 +42988,7 @@ public enum switch_uri_flags { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -43021,7 +43006,148 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +using System; +using System.Runtime.InteropServices; + +public class switch_video_codec_settings : IDisposable { + private HandleRef swigCPtr; + protected bool swigCMemOwn; + + internal switch_video_codec_settings(IntPtr cPtr, bool cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = new HandleRef(this, cPtr); + } + + internal static HandleRef getCPtr(switch_video_codec_settings obj) { + return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; + } + + ~switch_video_codec_settings() { + Dispose(); + } + + public virtual void Dispose() { + lock(this) { + if (swigCPtr.Handle != IntPtr.Zero) { + if (swigCMemOwn) { + swigCMemOwn = false; + freeswitchPINVOKE.delete_switch_video_codec_settings(swigCPtr); + } + swigCPtr = new HandleRef(null, IntPtr.Zero); + } + GC.SuppressFinalize(this); + } + } + + public uint bandwidth { + set { + freeswitchPINVOKE.switch_video_codec_settings_bandwidth_set(swigCPtr, value); + } + get { + uint ret = freeswitchPINVOKE.switch_video_codec_settings_bandwidth_get(swigCPtr); + return ret; + } + } + + public int width { + set { + freeswitchPINVOKE.switch_video_codec_settings_width_set(swigCPtr, value); + } + get { + int ret = freeswitchPINVOKE.switch_video_codec_settings_width_get(swigCPtr); + return ret; + } + } + + public int height { + set { + freeswitchPINVOKE.switch_video_codec_settings_height_set(swigCPtr, value); + } + get { + int ret = freeswitchPINVOKE.switch_video_codec_settings_height_get(swigCPtr); + return ret; + } + } + + public byte try_hardware_encoder { + set { + freeswitchPINVOKE.switch_video_codec_settings_try_hardware_encoder_set(swigCPtr, value); + } + get { + byte ret = freeswitchPINVOKE.switch_video_codec_settings_try_hardware_encoder_get(swigCPtr); + return ret; + } + } + + public switch_video_codec_settings() : this(freeswitchPINVOKE.new_switch_video_codec_settings(), true) { + } + +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum switch_video_encode_speed_t { + SWITCH_VIDEO_ENCODE_SPEED_DEFAULT = 0, + SWITCH_VIDEO_ENCODE_SPEED_FAST = 0, + SWITCH_VIDEO_ENCODE_SPEED_MEDIUM, + SWITCH_VIDEO_ENCODE_SPEED_SLOW +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum switch_video_profile_t { + SWITCH_VIDEO_PROFILE_BASELINE, + SWITCH_VIDEO_PROFILE_MAIN, + SWITCH_VIDEO_PROFILE_HIGH +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +namespace FreeSWITCH.Native { + +public enum switch_video_read_flag_t { + SVR_BLOCK = (1 << 0), + SVR_FLUSH = (1 << 1), + SVR_CHECK = (1 << 2) +} + +} +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -43100,7 +43226,7 @@ public class switch_vid_params_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -43117,138 +43243,7 @@ public enum switch_vid_spy_fmt_t { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -using System; -using System.Runtime.InteropServices; - -public class switch_video_codec_settings : IDisposable { - private HandleRef swigCPtr; - protected bool swigCMemOwn; - - internal switch_video_codec_settings(IntPtr cPtr, bool cMemoryOwn) { - swigCMemOwn = cMemoryOwn; - swigCPtr = new HandleRef(this, cPtr); - } - - internal static HandleRef getCPtr(switch_video_codec_settings obj) { - return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; - } - - ~switch_video_codec_settings() { - Dispose(); - } - - public virtual void Dispose() { - lock(this) { - if (swigCPtr.Handle != IntPtr.Zero) { - if (swigCMemOwn) { - swigCMemOwn = false; - freeswitchPINVOKE.delete_switch_video_codec_settings(swigCPtr); - } - swigCPtr = new HandleRef(null, IntPtr.Zero); - } - GC.SuppressFinalize(this); - } - } - - public uint bandwidth { - set { - freeswitchPINVOKE.switch_video_codec_settings_bandwidth_set(swigCPtr, value); - } - get { - uint ret = freeswitchPINVOKE.switch_video_codec_settings_bandwidth_get(swigCPtr); - return ret; - } - } - - public int width { - set { - freeswitchPINVOKE.switch_video_codec_settings_width_set(swigCPtr, value); - } - get { - int ret = freeswitchPINVOKE.switch_video_codec_settings_width_get(swigCPtr); - return ret; - } - } - - public int height { - set { - freeswitchPINVOKE.switch_video_codec_settings_height_set(swigCPtr, value); - } - get { - int ret = freeswitchPINVOKE.switch_video_codec_settings_height_get(swigCPtr); - return ret; - } - } - - public switch_video_codec_settings() : this(freeswitchPINVOKE.new_switch_video_codec_settings(), true) { - } - -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum switch_video_encode_speed_t { - SWITCH_VIDEO_ENCODE_SPEED_DEFAULT = 0, - SWITCH_VIDEO_ENCODE_SPEED_FAST = 0, - SWITCH_VIDEO_ENCODE_SPEED_MEDIUM, - SWITCH_VIDEO_ENCODE_SPEED_SLOW -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum switch_video_profile_t { - SWITCH_VIDEO_PROFILE_BASELINE, - SWITCH_VIDEO_PROFILE_MAIN, - SWITCH_VIDEO_PROFILE_HIGH -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -namespace FreeSWITCH.Native { - -public enum switch_video_read_flag_t { - SVR_BLOCK = (1 << 0), - SVR_FLUSH = (1 << 1), - SVR_CHECK = (1 << 2) -} - -} -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -43327,7 +43322,7 @@ public class switch_waitlist_t : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -43512,7 +43507,7 @@ public class switch_xml : IDisposable { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. @@ -43530,7 +43525,7 @@ namespace FreeSWITCH.Native { } /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 2.0.11 + * Version 2.0.12 * * Do not make changes to this file unless you know what you are doing--modify * the SWIG interface file instead. From 817a10be14311ebd7f01065bf49197d4fc10675d Mon Sep 17 00:00:00 2001 From: Davide Colombo Date: Fri, 8 Apr 2016 11:37:20 +0200 Subject: [PATCH 36/68] FS-9006 - [verto_communicator] add-combobox for languages --- .../src/locales/locale-en.json | 4 +- .../src/locales/locale-it.json | 4 +- .../src/partials/settings.html | 8 ++ .../src/storageService/services/storage.js | 3 +- .../src/vertoApp/vertoApp.module.js | 91 ++++++++++++------- .../controllers/MainController.js | 6 ++ .../controllers/SettingsController.js | 27 +++++- 7 files changed, 104 insertions(+), 39 deletions(-) diff --git a/html5/verto/verto_communicator/src/locales/locale-en.json b/html5/verto/verto_communicator/src/locales/locale-en.json index 5aa607d860..c8c59ace10 100644 --- a/html5/verto/verto_communicator/src/locales/locale-en.json +++ b/html5/verto/verto_communicator/src/locales/locale-en.json @@ -147,5 +147,7 @@ "CHAT_VOL_MINUS": "Vol -", "CHAT_VOL_PLUS": "Vol +", "CHAT_GAIN_MINUS": "Gain -", - "CHAT_GAIN_PLUS": "Gain +" + "CHAT_GAIN_PLUS": "Gain +", + "LANGUAGE": "Language:", + "BROWSER_LANGUAGE": "Browser Language" } diff --git a/html5/verto/verto_communicator/src/locales/locale-it.json b/html5/verto/verto_communicator/src/locales/locale-it.json index 428608afab..6f33747cfd 100644 --- a/html5/verto/verto_communicator/src/locales/locale-it.json +++ b/html5/verto/verto_communicator/src/locales/locale-it.json @@ -148,6 +148,8 @@ "CHAT_VOL_MINUS": "Vol -", "CHAT_VOL_PLUS": "Vol +", "CHAT_GAIN_MINUS": "Guadagno -", - "CHAT_GAIN_PLUS": "Guadagno +" + "CHAT_GAIN_PLUS": "Guadagno +", + "LANGUAGE": "Lingua:", + "BROWSER_LANGUAGE": "Lingua del browser" } diff --git a/html5/verto/verto_communicator/src/partials/settings.html b/html5/verto/verto_communicator/src/partials/settings.html index 9848fa4e58..96d19db0b7 100644 --- a/html5/verto/verto_communicator/src/partials/settings.html +++ b/html5/verto/verto_communicator/src/partials/settings.html @@ -79,6 +79,14 @@ +
+ + +
+
diff --git a/html5/verto/verto_communicator/src/storageService/services/storage.js b/html5/verto/verto_communicator/src/storageService/services/storage.js index fada0a82f2..501b7b7ab6 100644 --- a/html5/verto/verto_communicator/src/storageService/services/storage.js +++ b/html5/verto/verto_communicator/src/storageService/services/storage.js @@ -39,7 +39,8 @@ googEchoCancellation: true, autoBand: true, testSpeedJoin: true, - bestFrameRate: "15" + bestFrameRate: "15", + language: undefined }; data.$default(defaultSettings); diff --git a/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js b/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js index 14b39d7e55..80b81236da 100644 --- a/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js +++ b/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js @@ -20,8 +20,58 @@ 'pascalprecht.translate', ]); - vertoApp.config(['$routeProvider', 'gravatarServiceProvider', '$translateProvider', - function($routeProvider, gravatarServiceProvider, $translateProvider) { + vertoApp.constant('configLanguages', { + 'languages' : [ + {id: 'en', name: 'English'}, + {id: 'it', name: 'Italiano'}, + {id: 'fr', name: 'Français'}, + {id: 'de', name: 'Deutsch'}, + {id: 'pt', name: 'Português'}, + {id: 'pl', name: 'Polski'}, + {id: 'zh', name: '中國'}, + {id: 'ru', name: 'Pусский'}, + {id: 'sv', name: 'Svenska'}, + {id: 'da', name: 'Dansk'}, + {id: 'es', name: 'Español'}, + {id: 'id', name: 'Indonesia'} + ], + + 'dialects' : { + 'en': 'en', + 'en_GB': 'en', + 'en_US': 'en', + 'it': 'it', + 'it_IT': 'it', + 'fr': 'fr', + 'fr_FR': 'fr', + 'fr_CA': 'fr', + 'pt': 'pt', + 'pt_BR': 'pt', + 'pt_PT': 'pt', + 'de': 'de', + 'de_DE': 'de', + 'es': 'es', + 'es_ES': 'es', + 'pl': 'pl', + 'pl_PL': 'pl', + 'ru': 'ru', + 'ru_RU': 'ru', + 'sv': 'sv', + 'sv_SV': 'sv', + 'sv_FI': 'sv', + 'da': 'da', + 'da_DK': 'da', + 'id': 'id', + 'id_ID': 'id', + 'zh': 'zh', + 'zh_CN': 'zh', + 'zh_TW': 'zh', + 'zh_HK': 'zh' + } + }); + + vertoApp.config(['$routeProvider', 'gravatarServiceProvider', '$translateProvider', 'configLanguages', + function($routeProvider, gravatarServiceProvider, $translateProvider, configLanguages) { $routeProvider. when('/', { title: 'Loading', @@ -61,44 +111,17 @@ default: 'mm' // Mystery man as default for missing avatars }; + var reg_langs = []; + angular.forEach(configLanguages.languages, function(value, key) { + reg_langs.push(value.id); + }); $translateProvider .useStaticFilesLoader({ prefix: 'locales/locale-', suffix: '.json' }) - .registerAvailableLanguageKeys(['en', 'it', 'pt', 'fr', 'da', 'de', 'es', 'pl', 'ru', 'sv', 'id', 'zh'], { - 'en': 'en', - 'en_GB': 'en', - 'en_US': 'en', - 'it': 'it', - 'it_IT': 'it', - 'fr': 'fr', - 'fr_FR': 'fr', - 'fr_CA': 'fr', - 'pt': 'pt', - 'pt_BR': 'pt', - 'pt_PT': 'pt', - 'da': 'da', - 'da_DK': 'da', - 'de': 'de', - 'de_DE': 'de', - 'es': 'es', - 'es_ES': 'es', - 'pl': 'pl', - 'pl_PL': 'pl', - 'ru': 'ru', - 'ru_RU': 'ru', - 'sv': 'sv', - 'sv_SV': 'sv', - 'sv_FI': 'sv', - 'id': 'id', - 'id_ID': 'id', - 'zh': 'zh', - 'zh_CN': 'zh', - 'zh_TW': 'zh', - 'zh_HK': 'zh' - }) + .registerAvailableLanguageKeys(reg_langs, configLanguages.dialects) .preferredLanguage('en') .determinePreferredLanguage() .fallbackLanguage('en') diff --git a/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js b/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js index b3d1c6e886..b1a3794c12 100644 --- a/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js +++ b/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js @@ -8,6 +8,12 @@ console.debug('Executing MainController.'); + if (storage.data.language && storage.data.language !== 'browser') { + $translate.use(storage.data.language); + } else { + storage.data.language = 'browser'; + } + $rootScope.master = $location.search().master; if ($location.search().watcher === 'true') { $rootScope.watcher = true; diff --git a/html5/verto/verto_communicator/src/vertoControllers/controllers/SettingsController.js b/html5/verto/verto_communicator/src/vertoControllers/controllers/SettingsController.js index 8e00bb6d29..c52cdb8c82 100644 --- a/html5/verto/verto_communicator/src/vertoControllers/controllers/SettingsController.js +++ b/html5/verto/verto_communicator/src/vertoControllers/controllers/SettingsController.js @@ -4,8 +4,8 @@ angular .module('vertoControllers') .controller('SettingsController', ['$scope', '$http', - '$location', '$rootScope', 'storage', 'verto', '$translate', 'toastr', - function($scope, $http, $location, $rootScope, storage, verto, $translate, toastr) { + '$location', '$rootScope', 'storage', 'verto', '$translate', 'toastr', 'configLanguages', + function($scope, $http, $location, $rootScope, storage, verto, $translate, toastr, configLanguages) { console.debug('Executing ModalSettingsController.'); $.material.init(); @@ -14,6 +14,15 @@ $scope.storage = storage; $scope.verto = verto; $scope.mydata = angular.copy(storage.data); + $scope.languages = configLanguages.languages; + $scope.languages.unshift({id: 'browser', name : $translate.instant('BROWSER_LANGUAGE')}); + $scope.mydata.language = storage.data.language || 'browser'; + + $rootScope.$on('$translateChangeSuccess', function () { + $translate('BROWSER_LANGUAGE').then(function (translation) { + $scope.languages[0].name = translation; + }); + }); $rootScope.$on('toggledSettings', function(e, status) { if (status) { @@ -35,6 +44,20 @@ } }; + $scope.changedLanguage = function(langKey){ + if (langKey === 'browser'){ + storage.data.language = 'browser'; + var browserlang = $translate.preferredLanguage(); + $translate.use(browserlang).then( + function(lang) {}, function(fail_lang) { + $translate.use('en'); + }); + } else { + $translate.use(langKey); + storage.data.language = langKey; + } + }; + $scope.refreshDeviceList = function() { return verto.refreshDevices(); }; From 9a63a9731e892cc460ec2dd31e4603d9d9bfe674 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Fri, 8 Apr 2016 12:40:03 -0500 Subject: [PATCH 37/68] FS-9042: [core] fix assert when recording native file --- src/switch_ivr_async.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/switch_ivr_async.c b/src/switch_ivr_async.c index 1220991b0f..e52884fd99 100644 --- a/src/switch_ivr_async.c +++ b/src/switch_ivr_async.c @@ -2576,8 +2576,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_session(switch_core_session_t out_file = switch_core_session_sprintf(session, "%s-out.%s", file, ext); rh->in_fh.pre_buffer_datalen = rh->out_fh.pre_buffer_datalen = fh->pre_buffer_datalen; channels = 1; - switch_set_flag_locked(&rh->in_fh, SWITCH_FILE_NATIVE); - switch_set_flag_locked(&rh->out_fh, SWITCH_FILE_NATIVE); + switch_set_flag(&rh->in_fh, SWITCH_FILE_NATIVE); + switch_set_flag(&rh->out_fh, SWITCH_FILE_NATIVE); if (switch_core_file_open(&rh->in_fh, in_file, channels, read_impl.actual_samples_per_second, file_flags, NULL) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Error opening %s\n", in_file); From 9cabdfb9f84d74a7a7259e77a8e39dc5e2e77667 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Fri, 8 Apr 2016 13:43:33 -0400 Subject: [PATCH 38/68] bump apr build from api update --- libs/apr/.update | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/apr/.update b/libs/apr/.update index 6e6895295d..38f319cd1f 100644 --- a/libs/apr/.update +++ b/libs/apr/.update @@ -1 +1 @@ -Wed Aug 19 11:38:49 CDT 2015 +Fri Apr 8 13:43:12 EDT 2016 From 68e0aded0dd0c5ac652e14764a63a04782deb851 Mon Sep 17 00:00:00 2001 From: Luis Azedo Date: Fri, 8 Apr 2016 19:17:28 +0100 Subject: [PATCH 39/68] FS-9043 [mod_kazoo] add kz_export --- .../event_handlers/mod_kazoo/kazoo_dptools.c | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_dptools.c b/src/mod/event_handlers/mod_kazoo/kazoo_dptools.c index 887b1ea32b..e6453d6490 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_dptools.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_dptools.c @@ -48,6 +48,10 @@ #define MULTIUNSET_LONG_DESC "Unset many channel variables for the channel calling the application." #define MULTIUNSET_SYNTAX "[^^] " +#define EXPORT_SHORT_DESC "Export many channel variables" +#define EXPORT_LONG_DESC "Export many channel variables for the channel calling the application" +#define EXPORT_SYNTAX "[^^]= =" + static void base_set (switch_core_session_t *session, const char *data, switch_stack_t stack) { char *var, *val = NULL; @@ -84,6 +88,42 @@ static void base_set (switch_core_session_t *session, const char *data, switch_s } } +static void base_export (switch_core_session_t *session, const char *data, switch_stack_t stack) { + char *var, *val = NULL; + + if (zstr(data)) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "No variable name specified.\n"); + } else { + switch_channel_t *channel = switch_core_session_get_channel(session); + char *expanded = NULL; + + var = switch_core_session_strdup(session, data); + + if (!(val = strchr(var, '='))) { + val = strchr(var, ','); + } + + if (val) { + *val++ = '\0'; + if (zstr(val)) { + val = NULL; + } + } + + if (val) { + expanded = switch_channel_expand_variables(channel, val); + } + + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "%s EXPORT [%s]=[%s]\n", switch_channel_get_name(channel), var, + expanded ? expanded : "UNDEF"); + switch_channel_export_variable_var_check(channel, var, expanded, SWITCH_EXPORT_VARS_VARIABLE, SWITCH_FALSE); + + if (expanded && expanded != val) { + switch_safe_free(expanded); + } + } +} + SWITCH_STANDARD_APP(multiset_function) { char delim = ' '; char *arg = (char *) data; @@ -170,6 +210,30 @@ SWITCH_STANDARD_APP(multiunset_function) { } } +SWITCH_STANDARD_APP(export_function) { + char delim = ' '; + char *arg = (char *) data; + + if (!zstr(arg) && *arg == '^' && *(arg+1) == '^') { + arg += 2; + delim = *arg++; + } + + if (arg) { + char *array[256] = {0}; + int i, argc; + + arg = switch_core_session_strdup(session, arg); + argc = switch_split(arg, delim, array); + + for(i = 0; i < argc; i++) { + base_export(session, array[i], SWITCH_STACK_BOTTOM); + } + } else { + base_export(session, data, SWITCH_STACK_BOTTOM); + } +} + void add_kz_dptools(switch_loadable_module_interface_t **module_interface, switch_application_interface_t *app_interface) { SWITCH_ADD_APP(app_interface, "kz_set", SET_SHORT_DESC, SET_LONG_DESC, set_function, SET_SYNTAX, SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC | SAF_ZOMBIE_EXEC); @@ -179,4 +243,6 @@ void add_kz_dptools(switch_loadable_module_interface_t **module_interface, switc SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC | SAF_ZOMBIE_EXEC); SWITCH_ADD_APP(app_interface, "kz_multiunset", MULTISET_SHORT_DESC, MULTISET_LONG_DESC, multiunset_function, MULTIUNSET_SYNTAX, SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC | SAF_ZOMBIE_EXEC); + SWITCH_ADD_APP(app_interface, "kz_export", EXPORT_SHORT_DESC, EXPORT_LONG_DESC, export_function, EXPORT_SYNTAX, + SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC | SAF_ZOMBIE_EXEC); } From 68c2c5d485346ad6d1a7914a3ee78870953abb1d Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Sat, 9 Apr 2016 19:50:41 +0100 Subject: [PATCH 40/68] FS-9039: [avmd] Use FS enumeration Now initialization function returns switch_status_t. --- src/mod/applications/mod_avmd/mod_avmd.c | 156 +++++++++++------------ 1 file changed, 71 insertions(+), 85 deletions(-) diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index 54471f9f0e..2ae035f37c 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -57,13 +57,13 @@ #define SAMPLES_PER_MS(r, m) ((r) / (1000/(m))) /*! Minimum beep length */ #define BEEP_TIME (2) -/*! How often to evaluate the output of desa2 in ms */ +/*! How often to evaluate the output of DESA-2 in ms */ #define SINE_TIME (2*0.125) -/*! How long in samples does desa2 results get evaluated */ +/*! How long in samples does DESA-2 results get evaluated */ #define SINE_LEN(r) SAMPLES_PER_MS((r), SINE_TIME) /*! How long in samples is the minimum beep length */ #define BEEP_LEN(r) SAMPLES_PER_MS((r), BEEP_TIME) -/*! Number of points in desa2 sample */ +/*! Number of points in DESA-2 sample */ #define P (5) /*! Guesstimate frame length in ms */ #define FRAME_TIME (20) @@ -83,7 +83,7 @@ * for 8kHz audio. All the frequencies above 0.25 sampling rate * will be aliased to some frequency below that threshold. * This is not a problem here as we are interested in detection - * of any constant amplitude anf frequency sine wave instead + * of any constant amplitude and frequency sine wave instead * of detection of particular frequency. */ #define MAX_FREQUENCY (2500.0) @@ -152,16 +152,14 @@ typedef struct { static void avmd_process(avmd_session_t *session, switch_frame_t *frame); static switch_bool_t avmd_callback(switch_media_bug_t * bug, void *user_data, switch_abc_type_t type); -static int init_avmd_session_data(avmd_session_t *avmd_session, - switch_core_session_t *fs_session); - /*! \brief The avmd session data initialization function. * @author Eric des Courtis * @param avmd_session A reference to a avmd session. * @param fs_session A reference to a FreeSWITCH session. */ -static int init_avmd_session_data(avmd_session_t *avmd_session, +static switch_status_t +init_avmd_session_data(avmd_session_t *avmd_session, switch_core_session_t *fs_session) { size_t buf_sz; @@ -173,7 +171,7 @@ static int init_avmd_session_data(avmd_session_t *avmd_session, (size_t)FRAME_LEN(avmd_session->rate), fs_session); if (avmd_session->b.buf == NULL) { - return -1; + return SWITCH_STATUS_MEMERR; } avmd_session->session = fs_session; avmd_session->pos = 0; @@ -187,21 +185,21 @@ static int init_avmd_session_data(avmd_session_t *avmd_session, buf_sz = BEEP_LEN((uint32_t)avmd_session->rate) / (uint32_t)SINE_LEN(avmd_session->rate); if (buf_sz < 1) { - return -2; + return SWITCH_STATUS_MORE_DATA; } INIT_SMA_BUFFER(&avmd_session->sma_b, buf_sz, fs_session); if (avmd_session->sma_b.data == NULL) { - return -3; + return SWITCH_STATUS_FALSE; } memset(avmd_session->sma_b.data, 0, sizeof(BUFF_TYPE) * buf_sz); INIT_SMA_BUFFER(&avmd_session->sqa_b, buf_sz, fs_session); if (avmd_session->sqa_b.data == NULL) { - return -4; + return SWITCH_STATUS_FALSE; } memset(avmd_session->sqa_b.data, 0, sizeof(BUFF_TYPE) * buf_sz); - return 0; + return SWITCH_STATUS_SUCCESS; } @@ -391,11 +389,10 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) */ SWITCH_STANDARD_APP(avmd_start_function) { - int res; - switch_media_bug_t *bug; - switch_status_t status; - switch_channel_t *channel; - avmd_session_t *avmd_session; + switch_media_bug_t *bug; + switch_status_t status; + switch_channel_t *channel; + avmd_session_t *avmd_session; switch_media_bug_flag_t flags = 0; if (session == NULL) { @@ -426,34 +423,30 @@ SWITCH_STANDARD_APP(avmd_start_function) avmd_session = (avmd_session_t *)switch_core_session_alloc( session, sizeof(avmd_session_t)); - res = init_avmd_session_data(avmd_session, session); - if (res != 0) { - switch (res) { - case -1: + status = init_avmd_session_data(avmd_session, session); + if (status != SWITCH_STATUS_SUCCESS) { + switch (status) { + case SWITCH_STATUS_MEMERR: switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Failed to init avmd session." " Buffer error!\n"); break; - case -2: + case SWITCH_STATUS_MORE_DATA: switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Failed to init avmd session." " SMA buffer size is 0!\n"); break; - case -3: + case SWITCH_STATUS_FALSE: switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Failed to init avmd session." - " SMA buffer error\n"); - break; - case -4: - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), - SWITCH_LOG_ERROR, "Failed to init avmd session." - " SMA sqa buffer error\n"); + " SMA buffers error\n"); break; default: switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Failed to init avmd session." " Unknown error\n"); break; + } return; } @@ -534,24 +527,23 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avmd_shutdown) */ SWITCH_STANDARD_API(avmd_api_main) { - int res; - switch_core_session_t *fs_session = NULL; - switch_media_bug_t *bug; - avmd_session_t *avmd_session; - switch_channel_t *channel; - switch_status_t status; - int argc; - char *argv[AVMD_PARAMS]; - char *ccmd = NULL; - char *uuid, *uuid_dup; - char *command; + switch_media_bug_t *bug; + avmd_session_t *avmd_session; + switch_channel_t *channel; + int argc; + char *argv[AVMD_PARAMS]; + char *ccmd = NULL; + char *uuid, *uuid_dup; + char *command; switch_core_media_flag_t flags = 0; + switch_status_t status = SWITCH_STATUS_SUCCESS; + switch_core_session_t *fs_session = NULL; /* No command? Display usage */ if (zstr(cmd)) { stream->write_function(stream, "-ERR, bad command!\n" "-USAGE: %s\n\n", AVMD_SYNTAX); - return SWITCH_STATUS_SUCCESS; + goto end; } /* Duplicated contents of original string */ @@ -587,7 +579,7 @@ SWITCH_STANDARD_API(avmd_api_main) channel = switch_core_session_get_channel(fs_session); if (channel == NULL) { stream->write_function(stream, "-ERR, no channel for FreeSWITCH session [%s]!" - "\n Please report this to the developers.\n\n", uuid); + "\n Please report this to the developers\n\n", uuid); goto end; } @@ -602,7 +594,7 @@ SWITCH_STANDARD_API(avmd_api_main) switch_core_media_bug_remove(fs_session, &bug); switch_safe_free(ccmd); #ifdef AVMD_REPORT_STATUS - stream->write_function(stream, "+OK\n [%s] [%s] stopped.\n\n", + stream->write_function(stream, "+OK\n [%s] [%s] stopped\n\n", uuid_dup, switch_channel_get_name(channel)); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, "Avmd on channel [%s] stopped!\n", switch_channel_get_name(channel)); @@ -623,7 +615,7 @@ SWITCH_STANDARD_API(avmd_api_main) #ifdef AVMD_OUTBOUND_CHANNEL if (SWITCH_CALL_DIRECTION_OUTBOUND != switch_channel_direction(channel)) { stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" - "\n is not outbound.\n\n", uuid); + "\n is not outbound\n\n", uuid); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, "Channel [%s] is not outbound!\n", switch_channel_get_name(channel)); } else { @@ -633,7 +625,7 @@ SWITCH_STANDARD_API(avmd_api_main) #ifdef AVMD_INBOUND_CHANNEL if (SWITCH_CALL_DIRECTION_INBOUND != switch_channel_direction(channel)) { stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" - "\n is not inbound.\n\n", uuid); + "\n is not inbound\n\n", uuid); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_WARNING, "Channel [%s] is not inbound!\n", switch_channel_get_name(channel)); } else { @@ -671,37 +663,30 @@ SWITCH_STANDARD_API(avmd_api_main) /* Allocate memory attached to this FreeSWITCH session for * use in the callback routine and to store state information */ - avmd_session = (avmd_session_t *) switch_core_session_alloc( + avmd_session = (avmd_session_t *) switch_core_session_alloc( fs_session, sizeof(avmd_session_t)); - - res = init_avmd_session_data(avmd_session, fs_session); - if (res != 0) { + status = init_avmd_session_data(avmd_session, fs_session); + if (status != SWITCH_STATUS_SUCCESS) { stream->write_function(stream, "-ERR, failed to initialize avmd session\n" " for FreeSWITCH session [%s]\n", uuid); - switch (res) { - case -1: + switch (status) { + case SWITCH_STATUS_MEMERR: stream->write_function(stream, "-ERR, buffer error\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." " Buffer error!\n"); break; - case -2: + case SWITCH_STATUS_MORE_DATA: stream->write_function(stream, "-ERR, SMA buffer size is 0\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." " SMA buffer size is 0!\n"); break; - case -3: + case SWITCH_STATUS_FALSE: stream->write_function(stream, "-ERR, SMA buffer error\n\n"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, "Failed to init avmd session." - " SMA buffer error\n"); - break; - case -4: - stream->write_function(stream, "-ERR, SMA sqa buffer error\n\n"); - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), - SWITCH_LOG_ERROR, "Failed to init avmd session." - " SMA sqa buffer error\n"); + " SMA buffers error\n"); break; default: stream->write_function(stream, "-ERR, unknown error\n\n"); @@ -744,6 +729,7 @@ SWITCH_STANDARD_API(avmd_api_main) uuid, switch_channel_get_name(channel)); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_INFO, "Avmd on channel [%s] started!\n", switch_channel_get_name(channel)); + switch_assert(status == SWITCH_STATUS_SUCCESS); #endif end: @@ -765,38 +751,38 @@ end: static void avmd_process(avmd_session_t *session, switch_frame_t *frame) { int res; - switch_event_t *event; - switch_status_t status; - switch_event_t *event_copy; - switch_channel_t *channel; + switch_event_t *event; + switch_status_t status; + switch_event_t *event_copy; + switch_channel_t *channel; - circ_buffer_t *b; - size_t pos; - double omega; + circ_buffer_t *b; + size_t pos; + double omega; #ifdef AVMD_DEBUG double f; #endif - double v; - double sma_digital_freq; - uint32_t sine_len_i; - char buf[AVMD_CHAR_BUF_LEN]; - int sample_to_skip_n = AVMD_SAMLPE_TO_SKIP_N; - size_t sample_n = 0; + double v; + double sma_digital_freq; + uint32_t sine_len_i; + char buf[AVMD_CHAR_BUF_LEN]; + int sample_to_skip_n = AVMD_SAMLPE_TO_SKIP_N; + size_t sample_n = 0; - b = &session->b; + b = &session->b; - /* If beep has already been detected skip the CPU heavy stuff */ - if (session->state.beep_state == BEEP_DETECTED) return; + /* If beep has already been detected skip the CPU heavy stuff */ + if (session->state.beep_state == BEEP_DETECTED) return; - /* Precompute values used heavily in the inner loop */ - sine_len_i = (uint32_t) SINE_LEN(session->rate); - //sine_len = (double)sine_len_i; - //beep_len_i = BEEP_LEN(session->rate); + /* Precompute values used heavily in the inner loop */ + sine_len_i = (uint32_t) SINE_LEN(session->rate); + //sine_len = (double)sine_len_i; + //beep_len_i = BEEP_LEN(session->rate); - channel = switch_core_session_get_channel(session->session); + channel = switch_core_session_get_channel(session->session); - /* Insert frame of 16 bit samples into buffer */ - INSERT_INT16_FRAME(b, (int16_t *)(frame->data), frame->samples); + /* Insert frame of 16 bit samples into buffer */ + INSERT_INT16_FRAME(b, (int16_t *)(frame->data), frame->samples); session->sample_count += frame->samples; /* INNER LOOP -- OPTIMIZATION TARGET */ @@ -886,7 +872,7 @@ static void avmd_process(avmd_session_t *session, switch_frame_t *frame) } /* DECISION */ - /* If variance is less than threshold + /* If variance is less than threshold * and we have at least two estimates * then we have detection */ #ifdef AVMD_REQUIRE_CONTINUOUS_STREAK From 4430d8a44354f6450adb274e08d7f99d7d1acafd Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sun, 10 Apr 2016 11:22:00 -0500 Subject: [PATCH 41/68] FS-7317 --- src/mod/event_handlers/mod_event_socket/mod_event_socket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c index 2bce7703f1..a9ba87bf48 100644 --- a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c +++ b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c @@ -197,7 +197,7 @@ static void flush_listener(listener_t *listener, switch_bool_t flush_log, switch { void *pop; - if (listener->log_queue) { + if (flush_log && listener->log_queue) { while (switch_queue_trypop(listener->log_queue, &pop) == SWITCH_STATUS_SUCCESS) { switch_log_node_t *dnode = (switch_log_node_t *) pop; if (dnode) { @@ -206,7 +206,7 @@ static void flush_listener(listener_t *listener, switch_bool_t flush_log, switch } } - if (listener->event_queue) { + if (flush_events && listener->event_queue) { while (switch_queue_trypop(listener->event_queue, &pop) == SWITCH_STATUS_SUCCESS) { switch_event_t *pevent = (switch_event_t *) pop; if (!pop) From 93d45b3bcebaa31fc584992921fee270b5a3cd21 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sun, 10 Apr 2016 11:39:28 -0500 Subject: [PATCH 42/68] FS-9049 --- src/mod/endpoints/mod_sofia/sofia.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 4c28d6577a..ad65d7f554 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -4295,7 +4295,7 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name) profile->paid_type = PAID_DEFAULT; profile->bind_attempts = 2; profile->bind_attempt_interval = 5; - + profile->dtmf_type = DTMF_2833; profile->tls_verify_policy = TPTLS_VERIFY_NONE; /* lib default */ profile->tls_verify_depth = 2; From a7465e6cbffd3f9d062244bbbb44b029ddfeb568 Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Mon, 11 Apr 2016 11:54:38 -0400 Subject: [PATCH 43/68] FS-9052 [mod_hiredis] add connection pooling, improve dropped connection resiliency, and allow 0.10.0 of hiredis for CentOS 6. --- configure.ac | 2 +- .../mod_hiredis/hiredis_profile.c | 193 +++++++++++++----- .../applications/mod_hiredis/hiredis_utils.c | 9 +- .../applications/mod_hiredis/mod_hiredis.c | 2 +- .../applications/mod_hiredis/mod_hiredis.h | 12 +- 5 files changed, 161 insertions(+), 57 deletions(-) diff --git a/configure.ac b/configure.ac index 8746b0c75f..cac1f02b8c 100644 --- a/configure.ac +++ b/configure.ac @@ -1406,7 +1406,7 @@ PKG_CHECK_MODULES([SMPP34], [libsmpp34 >= 1.10],[ AM_CONDITIONAL([HAVE_SMPP34],[true])],[ AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SMPP34],[false])]) -PKG_CHECK_MODULES([HIREDIS], [hiredis >= 0.11.0],[ +PKG_CHECK_MODULES([HIREDIS], [hiredis >= 0.10.0],[ AM_CONDITIONAL([HAVE_HIREDIS],[true])],[ AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_HIREDIS],[false])]) diff --git a/src/mod/applications/mod_hiredis/hiredis_profile.c b/src/mod/applications/mod_hiredis/hiredis_profile.c index ab2d152e0c..ce63d881d6 100644 --- a/src/mod/applications/mod_hiredis/hiredis_profile.c +++ b/src/mod/applications/mod_hiredis/hiredis_profile.c @@ -1,6 +1,6 @@ /* * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application -* Copyright (C) 2005-2015, Anthony Minessale II +* Copyright (C) 2005-2016, Anthony Minessale II * * Version: MPL 1.1 * @@ -24,31 +24,92 @@ * Contributor(s): * * William King +* Christopher Rienzo * * mod_hiredis.c -- redis client built using the C client library hiredis * */ #include - + +/* reconnect to redis server */ +static switch_status_t hiredis_context_reconnect(hiredis_context_t *context) +{ + redisFree(context->context); + context->context = redisConnectWithTimeout(context->connection->host, context->connection->port, context->connection->timeout); + if ( context->context && !context->context->err ) { + return SWITCH_STATUS_SUCCESS; + } + return SWITCH_STATUS_FALSE; +} + +/* Return a context back to the pool */ +static void hiredis_context_release(hiredis_context_t *context) +{ + if (switch_queue_push(context->connection->context_pool, context) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "hiredis: failed to release back to pool [%s, %d]\n", context->connection->host, context->connection->port); + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: release back to pool [%s, %d]\n", context->connection->host, context->connection->port); + } +} + +/* Grab a context from the pool, reconnect/connect as needed */ +static hiredis_context_t *hiredis_connection_get_context(hiredis_connection_t *conn) +{ + void *val = NULL; + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: waiting for [%s, %d]\n", conn->host, conn->port); + if ( switch_queue_pop_timeout(conn->context_pool, &val, conn->timeout_us ) == SWITCH_STATUS_SUCCESS ) { + hiredis_context_t *context = (hiredis_context_t *)val; + if ( !context->context ) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: attempting[%s, %d]\n", conn->host, conn->port); + context->context = redisConnectWithTimeout(conn->host, conn->port, conn->timeout); + if ( context->context && !context->context->err ) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: connection success[%s, %d]\n", conn->host, conn->port); + return context; + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: connection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr); + hiredis_context_release(context); + return NULL; + } + } else if ( context->context->err ) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: reconnecting[%s, %d]\n", conn->host, conn->port); + if (hiredis_context_reconnect(context) == SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", conn->host, conn->port); + return context; + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: reconnection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr); + hiredis_context_release(context); + return NULL; + } + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: recycled from pool[%s, %d]\n", conn->host, conn->port); + return context; + } + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: timed out waiting for [%s, %d]\n", conn->host, conn->port); + } + + return NULL; +} + switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *name, uint8_t port) { hiredis_profile_t *profile = NULL; switch_memory_pool_t *pool = NULL; - switch_core_new_memory_pool(&pool); + switch_core_new_memory_pool(&pool); profile = switch_core_alloc(pool, sizeof(hiredis_profile_t)); profile->pool = pool; profile->name = name ? switch_core_strdup(profile->pool, name) : "default"; - profile->conn = NULL; profile->conn_head = NULL; switch_core_hash_insert(mod_hiredis_globals.profiles, name, (void *) profile); *new_profile = profile; - + return SWITCH_STATUS_SUCCESS; } @@ -69,7 +130,7 @@ switch_status_t hiredis_profile_destroy(hiredis_profile_t **old_profile) return SWITCH_STATUS_SUCCESS; } -switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char *host, char *password, uint32_t port, uint32_t timeout_ms) +switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char *host, char *password, uint32_t port, uint32_t timeout_ms, uint32_t max_contexts) { hiredis_connection_t *connection = NULL, *new_conn = NULL; @@ -77,21 +138,39 @@ switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char new_conn->host = host ? switch_core_strdup(profile->pool, host) : "localhost"; new_conn->password = password ? switch_core_strdup(profile->pool, password) : NULL; new_conn->port = port ? port : 6379; + new_conn->pool = profile->pool; - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "hiredis: adding conn[%d]\n", new_conn->port); + /* create fixed size context pool */ + max_contexts = max_contexts > 0 ? max_contexts : 3; + if (switch_queue_create(&new_conn->context_pool, max_contexts, new_conn->pool) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "hiredis: failed to allocate context pool\n"); + return SWITCH_STATUS_GENERR; + } else { + int i = 0; + for (i = 0; i < max_contexts; i++) { + hiredis_context_t *new_context = switch_core_alloc(new_conn->pool, sizeof(hiredis_context_t)); + new_context->connection = new_conn; + new_context->context = NULL; + switch_queue_push(new_conn->context_pool, new_context); + } + } if ( timeout_ms ) { - new_conn->timeout.tv_sec = 0; - new_conn->timeout.tv_usec = timeout_ms * 1000; + new_conn->timeout_us = timeout_ms * 1000; + new_conn->timeout.tv_sec = timeout_ms / 1000; + new_conn->timeout.tv_usec = (timeout_ms % 1000) * 1000; } else { + new_conn->timeout_us = 500 * 1000; new_conn->timeout.tv_sec = 0; new_conn->timeout.tv_usec = 500 * 1000; } - + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "hiredis: adding conn[%s,%d], pool size = %d\n", new_conn->host, new_conn->port, max_contexts); + if ( profile->conn_head != NULL ){ /* Adding 'another' connection */ connection = profile->conn_head; - while ( connection->next != NULL ){ + while ( connection->next != NULL ) { connection = connection->next; } connection->next = new_conn; @@ -102,72 +181,88 @@ switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char return SWITCH_STATUS_SUCCESS; } -switch_status_t hiredis_profile_reconnect(hiredis_profile_t *profile) +static hiredis_context_t *hiredis_profile_get_context(hiredis_profile_t *profile, hiredis_connection_t *initial_conn) { - hiredis_connection_t *conn = profile->conn_head; - profile->conn = NULL; + hiredis_connection_t *conn = initial_conn ? initial_conn : profile->conn_head; + hiredis_context_t *context; - /* TODO: Needs thorough expansion to handle all disconnection scenarios */ - while ( conn ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: attempting[%s, %d]\n", conn->host, conn->port); - conn->context = redisConnectWithTimeout(conn->host, conn->port, conn->timeout); - - if ( conn->context && conn->context->err) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: connection error[%s]\n", conn->context->errstr); - conn = conn->next; - continue; + context = hiredis_connection_get_context(conn); + if (context) { + /* successful redis connection */ + return context; } - - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: connection success[%s]\n", conn->host); - - /* successful redis connection */ - profile->conn = conn; - return SWITCH_STATUS_SUCCESS; + conn = conn->next; } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: unable to reconnect\n"); - return SWITCH_STATUS_GENERR; + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: unable to connect\n"); + return NULL; } -switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **resp) +static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context, const char *data, char **resp) { - char *str = NULL; - redisReply *response = NULL; - - /* Check connection */ - if ( !profile->conn && hiredis_profile_reconnect(profile) != SWITCH_STATUS_SUCCESS ) { - *resp = strdup("hiredis profile unable to establish connection"); - return SWITCH_STATUS_GENERR; - } - - response = redisCommand(profile->conn->context, data); - + redisReply *response = redisCommand(context->context, data); if ( !response ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: empty response received\n"); + *resp = NULL; return SWITCH_STATUS_GENERR; } - + switch(response->type) { case REDIS_REPLY_STATUS: /* fallthrough */ case REDIS_REPLY_STRING: - str = strdup(response->str); + *resp = strdup(response->str); break; case REDIS_REPLY_INTEGER: - str = switch_mprintf("%lld", response->integer); + *resp = switch_mprintf("%lld", response->integer); break; default: switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: response error[%s][%d]\n", response->str, response->type); freeReplyObject(response); + *resp = NULL; return SWITCH_STATUS_GENERR; } freeReplyObject(response); - - *resp = str; return SWITCH_STATUS_SUCCESS; } +switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **resp) +{ + hiredis_context_t *context = NULL; + int reconnected = 0; + + context = hiredis_profile_get_context(profile, NULL); + while (context) { + if (hiredis_context_execute_sync(context, data, resp) == SWITCH_STATUS_SUCCESS) { + /* got result */ + hiredis_context_release(context); + return SWITCH_STATUS_SUCCESS; + } else if (context->context->err) { + /* have a bad connection, try a single reconnect attempt before moving on to alternate connection */ + if (reconnected || hiredis_context_reconnect(context) != SWITCH_STATUS_SUCCESS) { + /* try alternate connection */ + hiredis_context_t *new_context = hiredis_profile_get_context(profile, context->connection); + hiredis_context_release(context); + context = new_context; + if (context) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: got alternate connection to [%s, %d]\n", context->connection->host, context->connection->port); + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: no more alternate connections to try\n"); + } + reconnected = 0; + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", context->connection->host, context->connection->port); + reconnected = 1; + } + } else { + /* no problem with context, so don't retry */ + hiredis_context_release(context); + return SWITCH_STATUS_GENERR; + } + } + return SWITCH_STATUS_GENERR; +} + /* For Emacs: * Local Variables: diff --git a/src/mod/applications/mod_hiredis/hiredis_utils.c b/src/mod/applications/mod_hiredis/hiredis_utils.c index 8b552af569..ad6d625e41 100644 --- a/src/mod/applications/mod_hiredis/hiredis_utils.c +++ b/src/mod/applications/mod_hiredis/hiredis_utils.c @@ -24,6 +24,7 @@ * Contributor(s): * * William King +* Christopher Rienzo * * mod_hiredis.c -- redis client built using the C client library hiredis * @@ -67,7 +68,7 @@ switch_status_t mod_hiredis_do_config() if ( (connections = switch_xml_child(profile, "connections")) != NULL) { for (connection = switch_xml_child(connections, "connection"); connection; connection = connection->next) { char *host = NULL, *password = NULL; - uint32_t port = 0, timeout_ms = 0; + uint32_t port = 0, timeout_ms = 0, max_connections = 0; for (param = switch_xml_child(connection, "param"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); @@ -75,15 +76,17 @@ switch_status_t mod_hiredis_do_config() host = (char *) switch_xml_attr_soft(param, "value"); } else if ( !strncmp(var, "port", 4) ) { port = atoi(switch_xml_attr_soft(param, "value")); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "hiredis: adding conn[%u == %s]\n", port, switch_xml_attr_soft(param, "value")); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "hiredis: adding conn[%u == %s]\n", port, switch_xml_attr_soft(param, "value")); } else if ( !strncmp(var, "timeout_ms", 10) ) { timeout_ms = atoi(switch_xml_attr_soft(param, "value")); } else if ( !strncmp(var, "password", 8) ) { password = (char *) switch_xml_attr_soft(param, "value"); + } else if ( !strncmp(var, "max-connections", 15) ) { + max_connections = atoi(switch_xml_attr_soft(param, "value")); } } - if ( hiredis_profile_connection_add(new_profile, host, password, port, timeout_ms) == SWITCH_STATUS_SUCCESS) { + if ( hiredis_profile_connection_add(new_profile, host, password, port, timeout_ms, max_connections) == SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Created profile[%s]\n", name); } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to create profile[%s]\n", name); diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.c b/src/mod/applications/mod_hiredis/mod_hiredis.c index d3b5ab7e11..efe0a03443 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.c +++ b/src/mod/applications/mod_hiredis/mod_hiredis.c @@ -103,7 +103,7 @@ SWITCH_STANDARD_API(raw_api) } if ( hiredis_profile_execute_sync(profile, data, &response) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] reason:[%s]\n", input, data, response); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] reason:[%s]\n", input, data, response ? response : ""); switch_goto_status(SWITCH_STATUS_GENERR, done); } diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.h b/src/mod/applications/mod_hiredis/mod_hiredis.h index a73a508688..2403564b06 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.h +++ b/src/mod/applications/mod_hiredis/mod_hiredis.h @@ -13,12 +13,19 @@ typedef struct mod_hiredis_global_s { extern mod_hiredis_global_t mod_hiredis_globals; +typedef struct mod_hiredis_context_s { + struct hiredis_connection_s *connection; + redisContext *context; +} hiredis_context_t; + typedef struct hiredis_connection_s { char *host; char *password; uint32_t port; - redisContext *context; + switch_interval_time_t timeout_us; struct timeval timeout; + switch_memory_pool_t *pool; + switch_queue_t *context_pool; struct hiredis_connection_s *next; } hiredis_connection_t; @@ -28,7 +35,6 @@ typedef struct hiredis_profile_s { char *name; int debug; - hiredis_connection_t *conn; hiredis_connection_t *conn_head; } hiredis_profile_t; @@ -44,7 +50,7 @@ typedef struct hiredis_limit_pvt_s { switch_status_t mod_hiredis_do_config(); switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *name, uint8_t port); switch_status_t hiredis_profile_destroy(hiredis_profile_t **old_profile); -switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char *host, char *password, uint32_t port, uint32_t timeout_ms); +switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char *host, char *password, uint32_t port, uint32_t timeout_ms, uint32_t max_connections); switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **response); From a0f347fca971a0f3425819ff5a393a4ac04c121e Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Tue, 12 Apr 2016 09:44:17 -0400 Subject: [PATCH 44/68] FS-9054 [mod_hiredis] add ignore-connect-fail profile param so that calls do not get killed if limit fails due to lost connection --- .../vanilla/autoload_configs/hiredis.conf.xml | 2 +- .../mod_hiredis/hiredis_profile.c | 5 +++-- .../applications/mod_hiredis/hiredis_utils.c | 10 +++++----- .../applications/mod_hiredis/mod_hiredis.c | 19 ++++++++++++++----- .../applications/mod_hiredis/mod_hiredis.h | 5 ++--- 5 files changed, 25 insertions(+), 16 deletions(-) diff --git a/conf/vanilla/autoload_configs/hiredis.conf.xml b/conf/vanilla/autoload_configs/hiredis.conf.xml index 4288cb4c4f..e82453928b 100644 --- a/conf/vanilla/autoload_configs/hiredis.conf.xml +++ b/conf/vanilla/autoload_configs/hiredis.conf.xml @@ -16,7 +16,7 @@ - + diff --git a/src/mod/applications/mod_hiredis/hiredis_profile.c b/src/mod/applications/mod_hiredis/hiredis_profile.c index ce63d881d6..ca7164838a 100644 --- a/src/mod/applications/mod_hiredis/hiredis_profile.c +++ b/src/mod/applications/mod_hiredis/hiredis_profile.c @@ -93,7 +93,7 @@ static hiredis_context_t *hiredis_connection_get_context(hiredis_connection_t *c return NULL; } -switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *name, uint8_t port) +switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *name, uint8_t ignore_connect_fail) { hiredis_profile_t *profile = NULL; switch_memory_pool_t *pool = NULL; @@ -105,6 +105,7 @@ switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *na profile->pool = pool; profile->name = name ? switch_core_strdup(profile->pool, name) : "default"; profile->conn_head = NULL; + profile->ignore_connect_fail = ignore_connect_fail; switch_core_hash_insert(mod_hiredis_globals.profiles, name, (void *) profile); @@ -260,7 +261,7 @@ switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const c return SWITCH_STATUS_GENERR; } } - return SWITCH_STATUS_GENERR; + return SWITCH_STATUS_SOCKERR; } diff --git a/src/mod/applications/mod_hiredis/hiredis_utils.c b/src/mod/applications/mod_hiredis/hiredis_utils.c index ad6d625e41..98995a08f9 100644 --- a/src/mod/applications/mod_hiredis/hiredis_utils.c +++ b/src/mod/applications/mod_hiredis/hiredis_utils.c @@ -45,20 +45,20 @@ switch_status_t mod_hiredis_do_config() if ( (profiles = switch_xml_child(cfg, "profiles")) != NULL) { for (profile = switch_xml_child(profiles, "profile"); profile; profile = profile->next) { hiredis_profile_t *new_profile = NULL; - int debug = 0; + uint8_t ignore_connect_fail = 0; char *name = (char *) switch_xml_attr_soft(profile, "name"); // Load params if ( (params = switch_xml_child(profile, "params")) != NULL) { for (param = switch_xml_child(params, "param"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); - if ( ! strncmp(var, "debug", 5) ) { - debug = atoi(switch_xml_attr_soft(param, "value")); + if ( !strncmp(var, "ignore-connect-fail", 19) ) { + ignore_connect_fail = switch_true(switch_xml_attr_soft(param, "value")); } } } - if ( hiredis_profile_create(&new_profile, name, debug) == SWITCH_STATUS_SUCCESS) { + if ( hiredis_profile_create(&new_profile, name, ignore_connect_fail) == SWITCH_STATUS_SUCCESS ) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Created profile[%s]\n", name); } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to create profile[%s]\n", name); @@ -77,7 +77,7 @@ switch_status_t mod_hiredis_do_config() } else if ( !strncmp(var, "port", 4) ) { port = atoi(switch_xml_attr_soft(param, "value")); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "hiredis: adding conn[%u == %s]\n", port, switch_xml_attr_soft(param, "value")); - } else if ( !strncmp(var, "timeout_ms", 10) ) { + } else if ( !strncmp(var, "timeout-ms", 10) || !strncmp(var, "timeout_ms", 10) ) { timeout_ms = atoi(switch_xml_attr_soft(param, "value")); } else if ( !strncmp(var, "password", 8) ) { password = (char *) switch_xml_attr_soft(param, "value"); diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.c b/src/mod/applications/mod_hiredis/mod_hiredis.c index efe0a03443..1085f189c3 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.c +++ b/src/mod/applications/mod_hiredis/mod_hiredis.c @@ -1,6 +1,6 @@ /* * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application -* Copyright (C) 2005-2012, Anthony Minessale II +* Copyright (C) 2005-2016, Anthony Minessale II * * Version: MPL 1.1 * @@ -23,6 +23,7 @@ * * Contributor(s): * William King +* Chris Rienzo * * mod_hiredis.c -- Redis DB access module * @@ -149,9 +150,13 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr) hashkey = switch_mprintf("incr %s", limit_key); - if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); - switch_channel_set_variable(channel, "hiredis_raw_response", response); + if ( (status = hiredis_profile_execute_sync(profile, hashkey, &response)) != SWITCH_STATUS_SUCCESS ) { + if ( status == SWITCH_STATUS_SOCKERR && profile->ignore_connect_fail ) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey); + switch_goto_status(SWITCH_STATUS_SUCCESS, done); + } + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response ? response : ""); + switch_channel_set_variable(channel, "hiredis_raw_response", response ? response : ""); switch_goto_status(SWITCH_STATUS_GENERR, done); } @@ -212,7 +217,11 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release) hashkey = switch_mprintf("decr %s", limit_pvt->limit_key); - if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS) { + if ( ( status = hiredis_profile_execute_sync(profile, hashkey, &response) ) != SWITCH_STATUS_SUCCESS ) { + if ( status == SWITCH_STATUS_SOCKERR && profile->ignore_connect_fail ) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey); + switch_goto_status(SWITCH_STATUS_SUCCESS, done); + } switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); switch_channel_set_variable(channel, "hiredis_raw_response", response); switch_goto_status(SWITCH_STATUS_GENERR, done); diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.h b/src/mod/applications/mod_hiredis/mod_hiredis.h index 2403564b06..0b4c754575 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.h +++ b/src/mod/applications/mod_hiredis/mod_hiredis.h @@ -8,7 +8,6 @@ typedef struct mod_hiredis_global_s { switch_memory_pool_t *pool; switch_hash_t *profiles; - uint8_t debug; } mod_hiredis_global_t; extern mod_hiredis_global_t mod_hiredis_globals; @@ -33,7 +32,7 @@ typedef struct hiredis_connection_s { typedef struct hiredis_profile_s { switch_memory_pool_t *pool; char *name; - int debug; + uint8_t ignore_connect_fail; hiredis_connection_t *conn_head; } hiredis_profile_t; @@ -48,7 +47,7 @@ typedef struct hiredis_limit_pvt_s { } hiredis_limit_pvt_t; switch_status_t mod_hiredis_do_config(); -switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *name, uint8_t port); +switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *name, uint8_t ignore_connect_fail); switch_status_t hiredis_profile_destroy(hiredis_profile_t **old_profile); switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char *host, char *password, uint32_t port, uint32_t timeout_ms, uint32_t max_connections); From f69fef88b77f9c3074c00f09ba78d632ea978a6c Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Tue, 12 Apr 2016 10:39:09 -0400 Subject: [PATCH 45/68] FS-9058 [mod_hiredis] allow auto decrement of non-interval limits on channel hangup. --- src/mod/applications/mod_hiredis/mod_hiredis.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.c b/src/mod/applications/mod_hiredis/mod_hiredis.c index 1085f189c3..4c4597e9a8 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.c +++ b/src/mod/applications/mod_hiredis/mod_hiredis.c @@ -203,7 +203,7 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release) profile = switch_core_hash_find(mod_hiredis_globals.profiles, limit_pvt->realm); hashkey = switch_mprintf("decr %s", tmp->limit_key); - if ( tmp && (tmp->interval > 0) && (hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS)) { + if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS ) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", tmp->realm, hashkey, response); } From 7a369b57f1a903aa7b8fcff06fa353191c9bc03b Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Tue, 12 Apr 2016 11:18:11 -0400 Subject: [PATCH 46/68] FS-9059 [mod_hiredis] add session logging --- .../mod_hiredis/hiredis_profile.c | 60 +++++++++---------- .../applications/mod_hiredis/mod_hiredis.c | 42 ++++++------- .../applications/mod_hiredis/mod_hiredis.h | 4 +- 3 files changed, 53 insertions(+), 53 deletions(-) diff --git a/src/mod/applications/mod_hiredis/hiredis_profile.c b/src/mod/applications/mod_hiredis/hiredis_profile.c index ca7164838a..333188f893 100644 --- a/src/mod/applications/mod_hiredis/hiredis_profile.c +++ b/src/mod/applications/mod_hiredis/hiredis_profile.c @@ -44,50 +44,50 @@ static switch_status_t hiredis_context_reconnect(hiredis_context_t *context) } /* Return a context back to the pool */ -static void hiredis_context_release(hiredis_context_t *context) +static void hiredis_context_release(hiredis_context_t *context, switch_core_session_t *session) { if (switch_queue_push(context->connection->context_pool, context) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "hiredis: failed to release back to pool [%s, %d]\n", context->connection->host, context->connection->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_CRIT, "hiredis: failed to release back to pool [%s, %d]\n", context->connection->host, context->connection->port); } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: release back to pool [%s, %d]\n", context->connection->host, context->connection->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: release back to pool [%s, %d]\n", context->connection->host, context->connection->port); } } /* Grab a context from the pool, reconnect/connect as needed */ -static hiredis_context_t *hiredis_connection_get_context(hiredis_connection_t *conn) +static hiredis_context_t *hiredis_connection_get_context(hiredis_connection_t *conn, switch_core_session_t *session) { void *val = NULL; - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: waiting for [%s, %d]\n", conn->host, conn->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: waiting for [%s, %d]\n", conn->host, conn->port); if ( switch_queue_pop_timeout(conn->context_pool, &val, conn->timeout_us ) == SWITCH_STATUS_SUCCESS ) { hiredis_context_t *context = (hiredis_context_t *)val; if ( !context->context ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: attempting[%s, %d]\n", conn->host, conn->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: attempting[%s, %d]\n", conn->host, conn->port); context->context = redisConnectWithTimeout(conn->host, conn->port, conn->timeout); if ( context->context && !context->context->err ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: connection success[%s, %d]\n", conn->host, conn->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: connection success[%s, %d]\n", conn->host, conn->port); return context; } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: connection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr); - hiredis_context_release(context); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: connection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr); + hiredis_context_release(context, session); return NULL; } } else if ( context->context->err ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: reconnecting[%s, %d]\n", conn->host, conn->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: reconnecting[%s, %d]\n", conn->host, conn->port); if (hiredis_context_reconnect(context) == SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", conn->host, conn->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", conn->host, conn->port); return context; } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: reconnection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr); - hiredis_context_release(context); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: reconnection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr); + hiredis_context_release(context, session); return NULL; } } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: recycled from pool[%s, %d]\n", conn->host, conn->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: recycled from pool[%s, %d]\n", conn->host, conn->port); return context; } } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: timed out waiting for [%s, %d]\n", conn->host, conn->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: timed out waiting for [%s, %d]\n", conn->host, conn->port); } return NULL; @@ -182,13 +182,13 @@ switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char return SWITCH_STATUS_SUCCESS; } -static hiredis_context_t *hiredis_profile_get_context(hiredis_profile_t *profile, hiredis_connection_t *initial_conn) +static hiredis_context_t *hiredis_profile_get_context(hiredis_profile_t *profile, hiredis_connection_t *initial_conn, switch_core_session_t *session) { hiredis_connection_t *conn = initial_conn ? initial_conn : profile->conn_head; hiredis_context_t *context; while ( conn ) { - context = hiredis_connection_get_context(conn); + context = hiredis_connection_get_context(conn, session); if (context) { /* successful redis connection */ return context; @@ -196,11 +196,11 @@ static hiredis_context_t *hiredis_profile_get_context(hiredis_profile_t *profile conn = conn->next; } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: unable to connect\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: unable to connect\n"); return NULL; } -static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context, const char *data, char **resp) +static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context, const char *data, char **resp, switch_core_session_t *session) { redisReply *response = redisCommand(context->context, data); if ( !response ) { @@ -217,7 +217,7 @@ static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context, *resp = switch_mprintf("%lld", response->integer); break; default: - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: response error[%s][%d]\n", response->str, response->type); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: response error[%s][%d]\n", response->str, response->type); freeReplyObject(response); *resp = NULL; return SWITCH_STATUS_GENERR; @@ -227,37 +227,37 @@ static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context, return SWITCH_STATUS_SUCCESS; } -switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **resp) +switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **resp, switch_core_session_t *session) { hiredis_context_t *context = NULL; int reconnected = 0; - context = hiredis_profile_get_context(profile, NULL); + context = hiredis_profile_get_context(profile, NULL, session); while (context) { - if (hiredis_context_execute_sync(context, data, resp) == SWITCH_STATUS_SUCCESS) { + if (hiredis_context_execute_sync(context, data, resp, session) == SWITCH_STATUS_SUCCESS) { /* got result */ - hiredis_context_release(context); + hiredis_context_release(context, session); return SWITCH_STATUS_SUCCESS; } else if (context->context->err) { /* have a bad connection, try a single reconnect attempt before moving on to alternate connection */ if (reconnected || hiredis_context_reconnect(context) != SWITCH_STATUS_SUCCESS) { /* try alternate connection */ - hiredis_context_t *new_context = hiredis_profile_get_context(profile, context->connection); - hiredis_context_release(context); + hiredis_context_t *new_context = hiredis_profile_get_context(profile, context->connection, session); + hiredis_context_release(context, session); context = new_context; if (context) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: got alternate connection to [%s, %d]\n", context->connection->host, context->connection->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: got alternate connection to [%s, %d]\n", context->connection->host, context->connection->port); } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: no more alternate connections to try\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: no more alternate connections to try\n"); } reconnected = 0; } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", context->connection->host, context->connection->port); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", context->connection->host, context->connection->port); reconnected = 1; } } else { /* no problem with context, so don't retry */ - hiredis_context_release(context); + hiredis_context_release(context, session); return SWITCH_STATUS_GENERR; } } diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.c b/src/mod/applications/mod_hiredis/mod_hiredis.c index 4c4597e9a8..e753192bba 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.c +++ b/src/mod/applications/mod_hiredis/mod_hiredis.c @@ -46,7 +46,7 @@ SWITCH_STANDARD_APP(raw_app) if ( !zstr(data) ) { profile_name = strdup(data); } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: invalid data! Use the format 'default set keyname value' \n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: invalid data! Use the format 'default set keyname value' \n"); goto done; } @@ -54,19 +54,19 @@ SWITCH_STANDARD_APP(raw_app) *cmd = '\0'; cmd++; } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: invalid data! Use the format 'default set keyname value' \n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: invalid data! Use the format 'default set keyname value' \n"); goto done; } profile = switch_core_hash_find(mod_hiredis_globals.profiles, profile_name); if ( !profile ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", profile_name); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", profile_name); return; } - if ( hiredis_profile_execute_sync(profile, cmd, &response) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", profile_name, cmd, response); + if ( hiredis_profile_execute_sync(profile, cmd, &response, session) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", profile_name, cmd, response); } switch_channel_set_variable(channel, "hiredis_raw_response", response); @@ -94,17 +94,17 @@ SWITCH_STANDARD_API(raw_api) data++; } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: debug: profile[%s] for command [%s]\n", input, data); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: debug: profile[%s] for command [%s]\n", input, data); profile = switch_core_hash_find(mod_hiredis_globals.profiles, input); if ( !profile ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", input); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", input); switch_goto_status(SWITCH_STATUS_GENERR, done); } - if ( hiredis_profile_execute_sync(profile, data, &response) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] reason:[%s]\n", input, data, response ? response : ""); + if ( hiredis_profile_execute_sync(profile, data, &response, session) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] reason:[%s]\n", input, data, response ? response : ""); switch_goto_status(SWITCH_STATUS_GENERR, done); } @@ -131,14 +131,14 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr) switch_memory_pool_t *session_pool = switch_core_session_get_pool(session); if ( zstr(realm) ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: realm must be defined\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: realm must be defined\n"); switch_goto_status(SWITCH_STATUS_GENERR, done); } profile = switch_core_hash_find(mod_hiredis_globals.profiles, realm); if ( !profile ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", realm); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", realm); switch_goto_status(SWITCH_STATUS_GENERR, done); } @@ -150,12 +150,12 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr) hashkey = switch_mprintf("incr %s", limit_key); - if ( (status = hiredis_profile_execute_sync(profile, hashkey, &response)) != SWITCH_STATUS_SUCCESS ) { + if ( (status = hiredis_profile_execute_sync(profile, hashkey, &response, session)) != SWITCH_STATUS_SUCCESS ) { if ( status == SWITCH_STATUS_SOCKERR && profile->ignore_connect_fail ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey); switch_goto_status(SWITCH_STATUS_SUCCESS, done); } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response ? response : ""); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response ? response : ""); switch_channel_set_variable(channel, "hiredis_raw_response", response ? response : ""); switch_goto_status(SWITCH_STATUS_GENERR, done); } @@ -203,8 +203,8 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release) profile = switch_core_hash_find(mod_hiredis_globals.profiles, limit_pvt->realm); hashkey = switch_mprintf("decr %s", tmp->limit_key); - if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", + if ( hiredis_profile_execute_sync(profile, hashkey, &response, session) != SWITCH_STATUS_SUCCESS ) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", tmp->realm, hashkey, response); } @@ -217,12 +217,12 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release) hashkey = switch_mprintf("decr %s", limit_pvt->limit_key); - if ( ( status = hiredis_profile_execute_sync(profile, hashkey, &response) ) != SWITCH_STATUS_SUCCESS ) { + if ( ( status = hiredis_profile_execute_sync(profile, hashkey, &response, session) ) != SWITCH_STATUS_SUCCESS ) { if ( status == SWITCH_STATUS_SOCKERR && profile->ignore_connect_fail ) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey); switch_goto_status(SWITCH_STATUS_SUCCESS, done); } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); switch_channel_set_variable(channel, "hiredis_raw_response", response); switch_goto_status(SWITCH_STATUS_GENERR, done); } @@ -257,7 +257,7 @@ SWITCH_LIMIT_USAGE(hiredis_limit_usage) hashkey = switch_mprintf("get %s", resource); - if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS) { + if ( hiredis_profile_execute_sync(profile, hashkey, &response, NULL) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); goto err; } @@ -306,7 +306,7 @@ SWITCH_LIMIT_INTERVAL_RESET(hiredis_limit_interval_reset) hashkey = switch_mprintf("set %s 0", resource); - if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS) { + if ( hiredis_profile_execute_sync(profile, hashkey, &response, NULL) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); switch_goto_status(SWITCH_STATUS_GENERR, done); } diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.h b/src/mod/applications/mod_hiredis/mod_hiredis.h index 0b4c754575..51a72733ef 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.h +++ b/src/mod/applications/mod_hiredis/mod_hiredis.h @@ -46,11 +46,11 @@ typedef struct hiredis_limit_pvt_s { struct hiredis_limit_pvt_s *next; } hiredis_limit_pvt_t; -switch_status_t mod_hiredis_do_config(); +switch_status_t mod_hiredis_do_config(void); switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *name, uint8_t ignore_connect_fail); switch_status_t hiredis_profile_destroy(hiredis_profile_t **old_profile); switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char *host, char *password, uint32_t port, uint32_t timeout_ms, uint32_t max_connections); -switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **response); +switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **response, switch_core_session_t *session); #endif /* MOD_HIREDIS_H */ From 49f1d31290ca329fdd379979109cc3ac7c040660 Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Tue, 12 Apr 2016 15:23:49 -0400 Subject: [PATCH 47/68] FS-9058 [mod_hiredis] fix rate counters so the keys expire after interval completes. Do not auto decrement rate counters. Do not log null responses. --- .../mod_hiredis/hiredis_profile.c | 4 +- .../applications/mod_hiredis/mod_hiredis.c | 58 +++++++++++++------ 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/mod/applications/mod_hiredis/hiredis_profile.c b/src/mod/applications/mod_hiredis/hiredis_profile.c index 333188f893..f4394ec0cc 100644 --- a/src/mod/applications/mod_hiredis/hiredis_profile.c +++ b/src/mod/applications/mod_hiredis/hiredis_profile.c @@ -202,7 +202,9 @@ static hiredis_context_t *hiredis_profile_get_context(hiredis_profile_t *profile static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context, const char *data, char **resp, switch_core_session_t *session) { - redisReply *response = redisCommand(context->context, data); + redisReply *response; + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: %s\n", data); + response = redisCommand(context->context, data); if ( !response ) { *resp = NULL; return SWITCH_STATUS_GENERR; diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.c b/src/mod/applications/mod_hiredis/mod_hiredis.c index e753192bba..9536521899 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.c +++ b/src/mod/applications/mod_hiredis/mod_hiredis.c @@ -66,10 +66,10 @@ SWITCH_STANDARD_APP(raw_app) } if ( hiredis_profile_execute_sync(profile, cmd, &response, session) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", profile_name, cmd, response); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", profile_name, cmd, response ? response : ""); } - switch_channel_set_variable(channel, "hiredis_raw_response", response); + switch_channel_set_variable(channel, "hiredis_raw_response", response ? response : ""); done: switch_safe_free(profile_name); @@ -108,7 +108,9 @@ SWITCH_STANDARD_API(raw_api) switch_goto_status(SWITCH_STATUS_GENERR, done); } - stream->write_function(stream, response); + if (response) { + stream->write_function(stream, response); + } done: switch_safe_free(input); switch_safe_free(response); @@ -135,6 +137,11 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr) switch_goto_status(SWITCH_STATUS_GENERR, done); } + if ( interval < 0 ) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: interval must be >= 0\n"); + switch_goto_status(SWITCH_STATUS_GENERR, done); + } + profile = switch_core_hash_find(mod_hiredis_globals.profiles, realm); if ( !profile ) { @@ -160,7 +167,16 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr) switch_goto_status(SWITCH_STATUS_GENERR, done); } - switch_channel_set_variable(channel, "hiredis_raw_response", response); + /* set expiration for interval on first increment */ + if ( interval && !strcmp("1", response ? response : "") ) { + char *expire_response = NULL; + char *expire_cmd = switch_mprintf("expire %s %d", limit_key, interval); + hiredis_profile_execute_sync(profile, expire_cmd, &expire_response, session); + switch_safe_free(expire_cmd); + switch_safe_free(expire_response); + } + + switch_channel_set_variable(channel, "hiredis_raw_response", response ? response : ""); limit_pvt = switch_core_alloc(session_pool, sizeof(hiredis_limit_pvt_t)); limit_pvt->next = switch_channel_get_private(channel, "hiredis_limit_pvt"); @@ -171,7 +187,7 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr) limit_pvt->interval = interval; switch_channel_set_private(channel, "hiredis_limit_pvt", limit_pvt); - count = atoll(response); + count = atoll(response ? response : ""); if ( !count || count > max ) { switch_goto_status(SWITCH_STATUS_GENERR, done); @@ -200,17 +216,20 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release) hiredis_limit_pvt_t *tmp = limit_pvt; while (tmp) { - profile = switch_core_hash_find(mod_hiredis_globals.profiles, limit_pvt->realm); - hashkey = switch_mprintf("decr %s", tmp->limit_key); + /* Rate limited resources are not auto-decremented, they will expire. */ + if (!tmp->interval) { + profile = switch_core_hash_find(mod_hiredis_globals.profiles, limit_pvt->realm); + hashkey = switch_mprintf("decr %s", tmp->limit_key); - if ( hiredis_profile_execute_sync(profile, hashkey, &response, session) != SWITCH_STATUS_SUCCESS ) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", - tmp->realm, hashkey, response); + if ( hiredis_profile_execute_sync(profile, hashkey, &response, session) != SWITCH_STATUS_SUCCESS ) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", + tmp->realm, hashkey, response ? response : ""); + } + + switch_safe_free(response); + switch_safe_free(hashkey); } - tmp = tmp->next; - switch_safe_free(response); - switch_safe_free(hashkey); } } else { profile = switch_core_hash_find(mod_hiredis_globals.profiles, limit_pvt->realm); @@ -222,12 +241,12 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release) switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey); switch_goto_status(SWITCH_STATUS_SUCCESS, done); } - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); - switch_channel_set_variable(channel, "hiredis_raw_response", response); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response ? response : ""); + switch_channel_set_variable(channel, "hiredis_raw_response", response ? response : ""); switch_goto_status(SWITCH_STATUS_GENERR, done); } - switch_channel_set_variable(channel, "hiredis_raw_response", response); + switch_channel_set_variable(channel, "hiredis_raw_response", response ? response : ""); } done: @@ -258,11 +277,11 @@ SWITCH_LIMIT_USAGE(hiredis_limit_usage) hashkey = switch_mprintf("get %s", resource); if ( hiredis_profile_execute_sync(profile, hashkey, &response, NULL) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response ? response : ""); goto err; } - count = atoll(response); + count = atoll(response ? response : ""); switch_safe_free(response); switch_safe_free(hashkey); @@ -290,6 +309,7 @@ SWITCH_LIMIT_RESET(hiredis_limit_reset) */ SWITCH_LIMIT_INTERVAL_RESET(hiredis_limit_interval_reset) { + /* TODO this doesn't work since the key has the interval in it */ hiredis_profile_t *profile = switch_core_hash_find(mod_hiredis_globals.profiles, realm); switch_status_t status = SWITCH_STATUS_SUCCESS; char *hashkey = NULL, *response = NULL; @@ -307,7 +327,7 @@ SWITCH_LIMIT_INTERVAL_RESET(hiredis_limit_interval_reset) hashkey = switch_mprintf("set %s 0", resource); if ( hiredis_profile_execute_sync(profile, hashkey, &response, NULL) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response ? response : ""); switch_goto_status(SWITCH_STATUS_GENERR, done); } From 0462026b39696a2298cc6163f010aca374e8c33c Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 12 Apr 2016 20:01:59 -0500 Subject: [PATCH 48/68] FS-9056 #resolve [Mobile H.264 video is black] --- src/mod/applications/mod_av/avcodec.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mod/applications/mod_av/avcodec.c b/src/mod/applications/mod_av/avcodec.c index cb35777312..5373400e8c 100644 --- a/src/mod/applications/mod_av/avcodec.c +++ b/src/mod/applications/mod_av/avcodec.c @@ -767,6 +767,9 @@ static switch_status_t consume_h264_bitstream(h264_codec_context_t *context, swi if (pkt->size > 0) av_packet_unref(pkt); + switch_clear_flag(frame, SFF_CNG); + frame->m = 1; + return SWITCH_STATUS_SUCCESS; } From bcddd3da158565c70224838a210662de6cba47ad Mon Sep 17 00:00:00 2001 From: Piotr Gregor Date: Sun, 10 Apr 2016 23:00:19 +0100 Subject: [PATCH 49/68] FS-9030, FS-9050: [avmd] Fix APP interface Now avmd can be properly called from dialplan. Application interface to start/stop avmd session consists of start/stop app methods. Backward compatible, old APP syntax left but will be described in docs as deprecated. --- src/mod/applications/mod_avmd/mod_avmd.c | 220 +++++++++++++++++++---- 1 file changed, 181 insertions(+), 39 deletions(-) diff --git a/src/mod/applications/mod_avmd/mod_avmd.c b/src/mod/applications/mod_avmd/mod_avmd.c index 2ae035f37c..0659c3ac44 100644 --- a/src/mod/applications/mod_avmd/mod_avmd.c +++ b/src/mod/applications/mod_avmd/mod_avmd.c @@ -81,10 +81,13 @@ * identify is 0.25 of the sampling rate. All the frequencies * below that level are detected unambiguously. This means 2kHz * for 8kHz audio. All the frequencies above 0.25 sampling rate - * will be aliased to some frequency below that threshold. + * will be aliased to frequencies below that threshold, + * i.e. OMEGA > PI/2 will be aliased to PI - OMEGA. * This is not a problem here as we are interested in detection * of any constant amplitude and frequency sine wave instead * of detection of particular frequency. + * In case of DESA-1, frequencies up to 0.5 sampling rate are + * identified uniquely. */ #define MAX_FREQUENCY (2500.0) /*! Maximum frequency as digital normalized frequency */ @@ -115,6 +118,8 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avmd_shutdown); SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load); SWITCH_MODULE_DEFINITION(mod_avmd, mod_avmd_load, mod_avmd_shutdown, NULL); SWITCH_STANDARD_API(avmd_api_main); +SWITCH_STANDARD_APP(avmd_start_app); +SWITCH_STANDARD_APP(avmd_stop_app); SWITCH_STANDARD_APP(avmd_start_function); /*! Status of the beep detection */ @@ -368,6 +373,10 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) ); #endif + SWITCH_ADD_APP(app_interface, "avmd_start","Start avmd detection", + "Start avmd detection", avmd_start_app, "", SAF_NONE); + SWITCH_ADD_APP(app_interface, "avmd_stop","Stop avmd detection", + "Stop avmd detection", avmd_stop_app, "", SAF_NONE); SWITCH_ADD_APP(app_interface, "avmd","Beep detection", "Advanced detection of voicemail beeps", avmd_start_function, AVMD_SYNTAX, SAF_NONE); @@ -382,45 +391,82 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avmd_load) } /*! \brief FreeSWITCH application handler function. - * This handles calls made from applications such as LUA and the dialplan. + * This handles avmd start request calls made from applications + * such as LUA and the dialplan. * - * @author Eric des Courtis * @return Success or failure of the function. */ -SWITCH_STANDARD_APP(avmd_start_function) +SWITCH_STANDARD_APP(avmd_start_app) { switch_media_bug_t *bug; switch_status_t status; switch_channel_t *channel; avmd_session_t *avmd_session; - switch_media_bug_flag_t flags = 0; + switch_core_media_flag_t flags = 0; if (session == NULL) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, - "No FreeSWITCH session assigned!\n"); - return; - } - - channel = switch_core_session_get_channel(session); - - /* Is this channel already using avmd ? */ - bug = (switch_media_bug_t *) switch_channel_get_private(channel, "_avmd_"); - /* If it is using avmd */ - if (bug != NULL) { - /* If we have a stop remove audio bug */ - if (strcasecmp(data, "stop") == 0) { - switch_channel_set_private(channel, "_avmd_", NULL); - switch_core_media_bug_remove(session, &bug); - return; - } - /* We have already started */ - switch_log_printf( - SWITCH_CHANNEL_SESSION_LOG(session), - SWITCH_LOG_WARNING, "Cannot run 2 at once on the same channel!\n"); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + "FreeSWITCH is NULL! Please report to developers\n"); return; } - avmd_session = (avmd_session_t *)switch_core_session_alloc( + /* Get current channel of the session to tag the session + * This indicates that our module is present + * At this moment this cannot return NULL, it will either + * succeed or assert failed, but we make ourself secure anyway */ + channel = switch_core_session_get_channel(session); + if (channel == NULL) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + "No channel for FreeSWITCH session! Please report this " + "to the developers.\n"); + return; + } + + /* Is this channel already set? */ + bug = (switch_media_bug_t *) switch_channel_get_private(channel, "_avmd_"); + /* If yes */ + if (bug != NULL) { + /* We have already started */ + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Avmd already started!\n"); + return; + } + +#ifdef AVMD_OUTBOUND_CHANNEL + if (SWITCH_CALL_DIRECTION_OUTBOUND != switch_channel_direction(channel)) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, + "Channel [%s] is not outbound!\n", switch_channel_get_name(channel)); + } else { + flags |= SMBF_READ_REPLACE; + } +#endif +#ifdef AVMD_INBOUND_CHANNEL + if (SWITCH_CALL_DIRECTION_INBOUND != switch_channel_direction(channel)) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, + "Channel [%s] is not inbound!\n", switch_channel_get_name(channel)); + } else { + flags |= SMBF_WRITE_REPLACE; + } +#endif + if(flags == 0) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + "Can't set direction for channel [%s]\n", switch_channel_get_name(channel)); + return; + } + + +#ifdef AVMD_OUTBOUND_CHANNEL + if (switch_channel_test_flag(channel, CF_MEDIA_SET) == 0) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + "Failed to start session. Channel [%s] has no codec assigned yet." + " Please try again\n", switch_channel_get_name(channel)); + return; + } +#endif + + /* Allocate memory attached to this FreeSWITCH session for + * use in the callback routine and to store state information */ + avmd_session = (avmd_session_t *) switch_core_session_alloc( session, sizeof(avmd_session_t)); status = init_avmd_session_data(avmd_session, session); @@ -451,14 +497,8 @@ SWITCH_STANDARD_APP(avmd_start_function) return; } -#ifdef AVMD_INBOUND_CHANNEL - flags |= SMBF_READ_REPLACE; -#endif -#ifdef AVMD_OUTBOUND_CHANNEL - flags |= SMBF_WRITE_REPLACE; -#endif - switch_assert(flags != 0); - + /* Add a media bug that allows me to intercept the + * reading leg of the audio stream */ status = switch_core_media_bug_add( session, "avmd", @@ -470,14 +510,107 @@ SWITCH_STANDARD_APP(avmd_start_function) &bug ); + /* If adding a media bug fails exit */ if (status != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), - SWITCH_LOG_ERROR, "Failure hooking to stream\n"); - + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Failed to add media bug!\n"); return; } + /* Set the avmd tag to detect an existing avmd media bug */ switch_channel_set_private(channel, "_avmd_", bug); + + /* OK */ + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, + "Avmd on channel [%s] started!\n", switch_channel_get_name(channel)); +} + +/*! \brief FreeSWITCH application handler function. + * This handles avmd stop request calls made from applications + * such as LUA and the dialplan. + * + * @return Success or failure of the function. + */ +SWITCH_STANDARD_APP(avmd_stop_app) +{ + switch_media_bug_t *bug; + switch_channel_t *channel; + + if (session == NULL) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + "FreeSWITCH is NULL! Please report to developers\n"); + return; + } + + /* Get current channel of the session to tag the session + * This indicates that our module is present + * At this moment this cannot return NULL, it will either + * succeed or assert failed, but we make ourself secure anyway */ + channel = switch_core_session_get_channel(session); + if (channel == NULL) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, + "No channel for FreeSWITCH session! Please report this " + "to the developers.\n"); + return; + } + + /* Is this channel already set? */ + bug = (switch_media_bug_t *) switch_channel_get_private(channel, "_avmd_"); + /* If yes */ + if (bug == NULL) { + /* We have not started avmd on this channel */ + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_ERROR, "Stop failed - avmd has not yet been started" + " on this channel [%s]!\n", switch_channel_get_name(channel)); + return; + } + + switch_channel_set_private(channel, "_avmd_", NULL); + switch_core_media_bug_remove(session, &bug); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, + "Avmd on channel [%s] stopped!\n", switch_channel_get_name(channel)); + return; +} + +/*! \brief FreeSWITCH application handler function. + * This handles calls made from applications such as LUA and the dialplan. + * + * @author Eric des Courtis + * @return Success or failure of the function. + */ +SWITCH_STANDARD_APP(avmd_start_function) +{ + switch_media_bug_t *bug; + switch_channel_t *channel; + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, + "YOU ARE USING DEPRECATED APP INTERFACE." + " Please read documentation about new syntax\n"); + if (session == NULL) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, + "No FreeSWITCH session assigned!\n"); + return; + } + + channel = switch_core_session_get_channel(session); + + /* Is this channel already using avmd ? */ + bug = (switch_media_bug_t *) switch_channel_get_private(channel, "_avmd_"); + /* If it is using avmd */ + if (bug != NULL) { + /* If we have a stop remove audio bug */ + if (strcasecmp(data, "stop") == 0) { + switch_channel_set_private(channel, "_avmd_", NULL); + switch_core_media_bug_remove(session, &bug); + return; + } + /* We have already started */ + switch_log_printf( + SWITCH_CHANNEL_SESSION_LOG(session), + SWITCH_LOG_WARNING, "Cannot run 2 at once on the same channel!\n"); + return; + } + avmd_start_app(session, NULL); } /*! \brief Called when the module shuts down. @@ -592,7 +725,6 @@ SWITCH_STANDARD_API(avmd_api_main) uuid_dup = switch_core_strdup(switch_core_session_get_pool(fs_session), uuid); switch_channel_set_private(channel, "_avmd_", NULL); switch_core_media_bug_remove(fs_session, &bug); - switch_safe_free(ccmd); #ifdef AVMD_REPORT_STATUS stream->write_function(stream, "+OK\n [%s] [%s] stopped\n\n", uuid_dup, switch_channel_get_name(channel)); @@ -612,6 +744,16 @@ SWITCH_STANDARD_API(avmd_api_main) goto end; } + if (strcasecmp(command, "stop") == 0) { + uuid_dup = switch_core_strdup(switch_core_session_get_pool(fs_session), uuid); + stream->write_function(stream, "+ERR, avmd has not yet been started on\n" + " [%s] [%s]\n\n", uuid_dup, switch_channel_get_name(channel)); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session), SWITCH_LOG_ERROR, + "Stop failed - avmd has not yet been started on channel [%s]!\n", + switch_channel_get_name(channel)); + goto end; + } + #ifdef AVMD_OUTBOUND_CHANNEL if (SWITCH_CALL_DIRECTION_OUTBOUND != switch_channel_direction(channel)) { stream->write_function(stream, "-ERR, channel for FreeSWITCH session [%s]" From 50bf8dcddd6c0d045225029e633d1b4a0e13c3d9 Mon Sep 17 00:00:00 2001 From: Artem Karukov Date: Thu, 14 Apr 2016 07:43:31 -0700 Subject: [PATCH 50/68] FS-9072: [mod_syslog] Allow logging of messages with tab character mod_syslog silently drop messages containing tabs character 0x09 and thus does not log (f.e.) exceptions from lua code. --- src/mod/loggers/mod_syslog/mod_syslog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/loggers/mod_syslog/mod_syslog.c b/src/mod/loggers/mod_syslog/mod_syslog.c index d0fe2dea1d..08d2c0af48 100644 --- a/src/mod/loggers/mod_syslog/mod_syslog.c +++ b/src/mod/loggers/mod_syslog/mod_syslog.c @@ -120,7 +120,7 @@ static int find_unprintable(const char *s) const char *p; for(p = s; p && *p; p++) { - if (*p < 10 || *p == 27) { + if (*p < 9 || *p == 27) { return 1; } } From 0557e25b67cba9190814ea25a140db22b71fd66d Mon Sep 17 00:00:00 2001 From: Ken Rice Date: Mon, 4 Apr 2016 10:42:54 -0500 Subject: [PATCH 51/68] FS-9075 [Debian Packaging] #resolve freeswitch-all package rework the freeswitch-all package should be operationally the same as freeswitch-meta-all it should not conflict with any other freeswitch pacakge it should install them all via dependancy. This patch does just that... There is probably a better way to do it, but this is needed to avoid issues where a dep may have been added to a sub-module (say mod_av, but it was not added to the freeswitch-all package. This will also allow for someone to install freeswitch-all or any part there of without forcing a deinstall of other parts of the over all FreeSWITCH software package. --- debian/bootstrap.sh | 92 +++++++-------------------------------------- debian/rules | 17 --------- 2 files changed, 13 insertions(+), 96 deletions(-) diff --git a/debian/bootstrap.sh b/debian/bootstrap.sh index 2c1a873ef7..41e88f28f4 100755 --- a/debian/bootstrap.sh +++ b/debian/bootstrap.sh @@ -276,40 +276,6 @@ list_pkgs () { map_pkgs list_pkgs_thunk } -list_freeswitch_all_pkgs () { - list_pkgs \ - | grep -v '^freeswitch-all$' \ - | grep -v -- '-dbg$' -} - -list_freeswitch_all_provides () { - list_freeswitch_all_pkgs \ - | intersperse ',\n ' -} - -list_freeswitch_all_replaces () { - list_freeswitch_all_pkgs \ - | postfix ' (<= ${binary:Version})' \ - | intersperse ',\n ' -} - -list_freeswitch_all_dbg_pkgs () { - list_pkgs \ - | grep -v '^freeswitch-all-dbg$' \ - | grep -- '-dbg$' -} - -list_freeswitch_all_dbg_provides () { - list_freeswitch_all_dbg_pkgs \ - | intersperse ',\n ' -} - -list_freeswitch_all_dbg_replaces () { - list_freeswitch_all_dbg_pkgs \ - | postfix ' (<= ${binary:Version})' \ - | intersperse ',\n ' -} - print_source_control () { local libtool_dep="libtool, libtool-bin" case "$codename" in @@ -364,22 +330,11 @@ print_core_control () { cat <= 1.0.8), - freeswitch-sounds-en-us-callie (>= 1.0.25) | freeswitch-sounds, - yasm, - $(debian_wrap "${mod_depends}") -Recommends: - $(debian_wrap "${mod_recommends}") -Suggests: freeswitch-all-dbg, - $(debian_wrap "${mod_suggests}") +Depends: freeswitch-meta-all (= \${binary:Version}) Description: Cross-Platform Scalable Multi-Protocol Soft Switch $(debian_wrap "${fs_description}") . - This package contains FreeSWITCH and all modules and extras. + This is a package which depends on all packaged FreeSWITCH modules. Package: freeswitch Architecture: any @@ -806,10 +761,7 @@ Package: freeswitch-all-dbg Section: debug Priority: extra Architecture: any -Provides: $(list_freeswitch_all_dbg_provides) -Replaces: $(list_freeswitch_all_dbg_replaces) -Breaks: $(list_freeswitch_all_dbg_replaces) -Depends: \${misc:Depends}, freeswitch-all (= \${binary:Version}) +Depends: \${misc:Depends}, freeswitch-meta-all (= \${binary:Version}) Description: debugging symbols for FreeSWITCH $(debian_wrap "${fs_description}") . @@ -1060,7 +1012,6 @@ gencontrol_per_cat () { geninstall_per_mod () { local f=freeswitch-${module_name//_/-}.install (print_edit_warning; print_mod_install "$module_name") > $f - print_mod_install "$module_name" >> freeswitch-all.install test -f $f.tmpl && cat $f.tmpl >> $f } @@ -1082,7 +1033,6 @@ genconf () { local p=freeswitch-conf-${conf//_/-} local f=$p.install (print_edit_warning; print_conf_install) > $f - print_conf_install >> freeswitch-all.install test -f $f.tmpl && cat $f.tmpl >> $f local f=$p.lintian-overrides (print_edit_warning; print_conf_overrides "$p") > $f @@ -1094,7 +1044,6 @@ genlang () { local p=freeswitch-lang-${lang//_/-} local f=$p.install (print_edit_warning; print_lang_install) > $f - print_lang_install >> freeswitch-all.install test -f $f.tmpl && cat $f.tmpl >> $f local f=$p.lintian-overrides (print_edit_warning; print_lang_overrides "$p") > $f @@ -1324,9 +1273,6 @@ echo "Accumulating dependencies from modules..." >&2 map_modules 'mod_filter' '' 'accumulate_mod_deps' echo "Generating debian/..." >&2 > control -> freeswitch-all.install -(print_edit_warning; print_mod_overrides "freeswitch-all") \ - > freeswitch-all.lintian-overrides (print_edit_warning; print_source_control; print_core_control) >> control echo "Generating debian/ (conf)..." >&2 (echo "### conf"; echo) >> control @@ -1339,29 +1285,17 @@ echo "Generating debian/ (modules)..." >&2 map_modules "mod_filter" \ "gencontrol_per_cat" \ "gencontrol_per_mod geninstall_per_mod genoverrides_per_mod" -echo "Generating debian/ (-all package)..." >&2 -grep -e '^Package:' control | grep -v '^freeswitch-all$' | while xread l; do - m="${l#*: }" - conf_merge freeswitch-all.install $m.install -done -echo "/usr/share/freeswitch/fonts" >> freeswitch-all.install -echo "/var/lib/freeswitch/images" >> freeswitch-all.install - -for x in postinst postrm preinst prerm; do - cp -a freeswitch.$x freeswitch-all.$x -done -cp -a freeswitch-doc.docs freeswitch-all.docs - -if [ ${use_sysvinit} = "true" ]; then - cp -a freeswitch-sysvinit.freeswitch.init freeswitch-all.freeswitch.init - cp -a freeswitch-sysvinit.freeswitch.default freeswitch-all.freeswitch.default - echo -n freeswitch-sysvinit >freeswitch-init.provided_by -else - cp -a freeswitch-systemd.freeswitch.service freeswitch-all.freeswitch.service - cp -a freeswitch-systemd.freeswitch.tmpfile freeswitch-all.freeswitch.tmpfile - echo -n freeswitch-systemd >freeswitch-init.provided_by -fi +##### Not sure if this is needed at all... if this is supposed to be included somewhere it should be for just the freeswitch package +#if [ ${use_sysvinit} = "true" ]; then +# cp -a freeswitch-sysvinit.freeswitch.init freeswitch-all.freeswitch.init +# cp -a freeswitch-sysvinit.freeswitch.default freeswitch-all.freeswitch.default +# echo -n freeswitch-sysvinit >freeswitch-init.provided_by +#else +# cp -a freeswitch-systemd.freeswitch.service freeswitch-all.freeswitch.service +# cp -a freeswitch-systemd.freeswitch.tmpfile freeswitch-all.freeswitch.tmpfile +# echo -n freeswitch-systemd >freeswitch-init.provided_by +#fi echo "Generating additional lintian overrides..." >&2 diff --git a/debian/rules b/debian/rules index 7cfe4c1c2e..50a3c495a0 100755 --- a/debian/rules +++ b/debian/rules @@ -100,23 +100,6 @@ override_dh_auto_install: dh_auto_install -- -C libs/esl pymod-install rm -f debian/tmp/usr/share/freeswitch/grammar/model/communicator/COPYING -override_dh_installinit: - if [ `cat debian/freeswitch-init.provided_by` = freeswitch-systemd ]; then \ - dh_systemd_enable -pfreeswitch-systemd --name=freeswitch; \ - dh_systemd_start -pfreeswitch-systemd --name=freeswitch; \ - dh_systemd_enable -pfreeswitch-all --name=freeswitch; \ - dh_systemd_start -pfreeswitch-all --name=freeswitch; \ - else \ - dh_installinit -pfreeswitch-sysvinit --name=freeswitch; \ - dh_installinit -pfreeswitch-all --name=freeswitch; \ - fi - -override_dh_makeshlibs: - dh_makeshlibs - sed \ - -e '/^libfreeswitch 1/{s/freeswitch-all/libfreeswitch1/g}' \ - -i debian/freeswitch-all/DEBIAN/shlibs - debian-bootstrap: debian/.stamp-bootstrap debian/.stamp-bootstrap: (cd debian && ./bootstrap.sh) From 44258634e18dd6a1c3c2edc760895bb75eedef64 Mon Sep 17 00:00:00 2001 From: Nathan Neulinger Date: Fri, 15 Apr 2016 08:24:28 -0500 Subject: [PATCH 52/68] FS-9074: [mod_skinny] Fix incorrect location of free causing memory leak of xml when certain errors occur --- src/mod/endpoints/mod_skinny/skinny_server.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mod/endpoints/mod_skinny/skinny_server.c b/src/mod/endpoints/mod_skinny/skinny_server.c index 4b706c4f37..ad635ab2e2 100644 --- a/src/mod/endpoints/mod_skinny/skinny_server.c +++ b/src/mod/endpoints/mod_skinny/skinny_server.c @@ -1353,9 +1353,6 @@ switch_status_t skinny_handle_register(listener_t *listener, skinny_message_t *r } } } - if (xroot) { - switch_xml_free(xroot); - } status = SWITCH_STATUS_SUCCESS; @@ -1372,6 +1369,10 @@ switch_status_t skinny_handle_register(listener_t *listener, skinny_message_t *r keepalive_listener(listener, NULL); end: + if (xroot) { + switch_xml_free(xroot); + } + if(params) { switch_event_destroy(¶ms); } From e3263680c1c74d9c5c6b65bf760048464c0db7a8 Mon Sep 17 00:00:00 2001 From: Italo Rossi Date: Fri, 15 Apr 2016 16:54:38 -0300 Subject: [PATCH 53/68] FS-9077 [mod_verto] Adding verto_hangup_disposition variable to indicate who hangup --- src/mod/endpoints/mod_verto/mod_verto.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c index 7896b1609e..8316620cc2 100644 --- a/src/mod/endpoints/mod_verto/mod_verto.c +++ b/src/mod/endpoints/mod_verto/mod_verto.c @@ -2132,7 +2132,8 @@ static switch_status_t verto_on_hangup(switch_core_session_t *session) cJSON *params = NULL; cJSON *msg = jrpc_new_req("verto.bye", tech_pvt->call_id, ¶ms); switch_call_cause_t cause = switch_channel_get_cause(tech_pvt->channel); - + switch_channel_set_variable(tech_pvt->channel, "verto_hangup_disposition", "send_bye"); + cJSON_AddItemToObject(params, "causeCode", cJSON_CreateNumber(cause)); cJSON_AddItemToObject(params, "cause", cJSON_CreateString(switch_channel_cause2str(cause))); jsock_queue_event(jsock, &msg, SWITCH_TRUE); @@ -2743,6 +2744,7 @@ static switch_bool_t verto__bye_func(const char *method, cJSON *params, jsock_t if ((session = switch_core_session_locate(call_id))) { verto_pvt_t *tech_pvt = switch_core_session_get_private_class(session, SWITCH_PVT_SECONDARY); tech_pvt->remote_hangup_cause = cause; + switch_channel_set_variable(tech_pvt->channel, "verto_hangup_disposition", "recv_bye"); switch_channel_hangup(tech_pvt->channel, cause); cJSON_AddItemToObject(obj, "message", cJSON_CreateString("CALL ENDED")); From aadf89620a6658c37361153f11572c9e456a674b Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 14 Apr 2016 12:38:18 -0500 Subject: [PATCH 54/68] FS-8949 #resolve [switch_rtp.c Send end packet for [X] not recognised] --- src/switch_rtp.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 2d94601340..a58b693d70 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -560,6 +560,7 @@ static handle_rfc2833_result_t handle_rfc2833(switch_rtp_t *rtp_session, switch_ rtp_session->dtmf_data.last_digit = 0; rtp_session->dtmf_data.in_digit_ts = 0; + rtp_session->dtmf_data.in_digit_queued = 0; switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(rtp_session->session), SWITCH_LOG_ERROR, "Failed DTMF sanity check.\n"); } @@ -593,6 +594,7 @@ static handle_rfc2833_result_t handle_rfc2833(switch_rtp_t *rtp_session, switch_ rtp_session->dtmf_data.last_digit = 0; rtp_session->dtmf_data.in_digit_ts = 0; rtp_session->dtmf_data.in_digit_sanity = 0; + rtp_session->dtmf_data.in_digit_queued = 0; } end = packet[1] & 0x80 ? 1 : 0; @@ -631,6 +633,16 @@ static handle_rfc2833_result_t handle_rfc2833(switch_rtp_t *rtp_session, switch_ ts, duration, rtp_session->last_rtp_hdr.m, end, end && !rtp_session->dtmf_data.in_digit_ts ? "ignored" : ""); #endif + + if (rtp_session->dtmf_data.in_digit_ts && rtp_session->dtmf_data.in_digit_ts != ts) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "TS changed from last packet, resetting....\n"); + rtp_session->dtmf_data.last_digit = 0; + rtp_session->dtmf_data.in_digit_ts = 0; + rtp_session->dtmf_data.in_digit_sanity = 0; + rtp_session->dtmf_data.in_digit_queued = 0; + } + + if (!rtp_session->dtmf_data.in_digit_queued && rtp_session->dtmf_data.in_digit_ts) { if ((rtp_session->rtp_bugs & RTP_BUG_IGNORE_DTMF_DURATION)) { switch_dtmf_t dtmf = { key, switch_core_min_dtmf_duration(0), 0, SWITCH_DTMF_RTP }; From 981b528c48a44e0e775f6c8dec8e91ce9a01f252 Mon Sep 17 00:00:00 2001 From: Alexandr Dubovikov Date: Mon, 18 Apr 2016 16:48:50 +0200 Subject: [PATCH 55/68] FS-9078 added hepv2 and hepv3 support --- conf/vanilla/autoload_configs/sofia.conf.xml | 9 + libs/sofia-sip/.update | 2 +- .../libsofia-sip-ua/msg/msg_internal.h | 87 ++++ .../libsofia-sip-ua/tport/tport_internal.h | 8 + .../libsofia-sip-ua/tport/tport_logging.c | 399 ++++++++++++++++-- 5 files changed, 476 insertions(+), 29 deletions(-) diff --git a/conf/vanilla/autoload_configs/sofia.conf.xml b/conf/vanilla/autoload_configs/sofia.conf.xml index a5e8614322..d764a59e51 100644 --- a/conf/vanilla/autoload_configs/sofia.conf.xml +++ b/conf/vanilla/autoload_configs/sofia.conf.xml @@ -5,6 +5,15 @@ + + + +