diff --git a/docs/phrase/phrase_en.xml b/docs/phrase/phrase_en.xml index ed4c0d6a75..52f789ce15 100644 --- a/docs/phrase/phrase_en.xml +++ b/docs/phrase/phrase_en.xml @@ -624,8 +624,10 @@ - + + + diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index cc5fea89eb..8665e8c3d3 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -1607,6 +1607,8 @@ static switch_status_t httapi_sync(client_t *client) if (client->profile->cookie_file) { switch_curl_easy_setopt(curl_handle, CURLOPT_COOKIEJAR, client->profile->cookie_file); switch_curl_easy_setopt(curl_handle, CURLOPT_COOKIEFILE, client->profile->cookie_file); + } else { + switch_curl_easy_setopt(curl_handle, CURLOPT_COOKIE, ""); } if (client->profile->bind_local) { diff --git a/src/mod/endpoints/mod_skypopen/mod_skypopen.c b/src/mod/endpoints/mod_skypopen/mod_skypopen.c index 167357f47d..992e77d720 100644 --- a/src/mod/endpoints/mod_skypopen/mod_skypopen.c +++ b/src/mod/endpoints/mod_skypopen/mod_skypopen.c @@ -2029,34 +2029,40 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_skypopen_load) #endif running = 1; - load_config(FULL_RELOAD); - *module_interface = switch_loadable_module_create_module_interface(pool, modname); - skypopen_endpoint_interface = switch_loadable_module_create_interface(*module_interface, SWITCH_ENDPOINT_INTERFACE); - skypopen_endpoint_interface->interface_name = "skypopen"; - skypopen_endpoint_interface->io_routines = &skypopen_io_routines; - skypopen_endpoint_interface->state_handler = &skypopen_state_handlers; + if (load_config(FULL_RELOAD) == SWITCH_STATUS_SUCCESS) { - if (running) { + *module_interface = switch_loadable_module_create_module_interface(pool, modname); + skypopen_endpoint_interface = switch_loadable_module_create_interface(*module_interface, SWITCH_ENDPOINT_INTERFACE); + skypopen_endpoint_interface->interface_name = "skypopen"; + skypopen_endpoint_interface->io_routines = &skypopen_io_routines; + skypopen_endpoint_interface->state_handler = &skypopen_state_handlers; - SWITCH_ADD_API(commands_api_interface, "sk", "Skypopen console commands", sk_function, SK_SYNTAX); - SWITCH_ADD_API(commands_api_interface, "skypopen", "Skypopen interface commands", skypopen_function, SKYPOPEN_SYNTAX); - SWITCH_ADD_API(commands_api_interface, "skypopen_chat", "Skypopen_chat interface remote_skypename TEXT", skypopen_chat_function, - SKYPOPEN_CHAT_SYNTAX); - SWITCH_ADD_CHAT(chat_interface, SKYPE_CHAT_PROTO, chat_send); + if (running) { - if (switch_event_reserve_subclass(MY_EVENT_INCOMING_CHATMESSAGE) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't register subclass!\n"); - return SWITCH_STATUS_FALSE; + SWITCH_ADD_API(commands_api_interface, "sk", "Skypopen console commands", sk_function, SK_SYNTAX); + SWITCH_ADD_API(commands_api_interface, "skypopen", "Skypopen interface commands", skypopen_function, SKYPOPEN_SYNTAX); + SWITCH_ADD_API(commands_api_interface, "skypopen_chat", "Skypopen_chat interface remote_skypename TEXT", skypopen_chat_function, + SKYPOPEN_CHAT_SYNTAX); + SWITCH_ADD_CHAT(chat_interface, SKYPE_CHAT_PROTO, chat_send); + + if (switch_event_reserve_subclass(MY_EVENT_INCOMING_CHATMESSAGE) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't register subclass!\n"); + return SWITCH_STATUS_FALSE; + } + + if (switch_event_reserve_subclass(MY_EVENT_INCOMING_RAW) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't register subclass!\n"); + return SWITCH_STATUS_FALSE; + } + + /* indicate that the module should continue to be loaded */ + return SWITCH_STATUS_SUCCESS; } - - if (switch_event_reserve_subclass(MY_EVENT_INCOMING_RAW) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't register subclass!\n"); - return SWITCH_STATUS_FALSE; - } - - /* indicate that the module should continue to be loaded */ - return SWITCH_STATUS_SUCCESS; + } else { + running = 0; + switch_sleep(1000000); //1 full second + return SWITCH_STATUS_FALSE; } return SWITCH_STATUS_FALSE; } diff --git a/src/switch_loadable_module.c b/src/switch_loadable_module.c index d63ff074f1..02a9e6792b 100644 --- a/src/switch_loadable_module.c +++ b/src/switch_loadable_module.c @@ -316,6 +316,8 @@ static switch_status_t switch_loadable_module_process(char *key, switch_loadable for (ptr = new_module->module_interface->file_interface; ptr; ptr = ptr->next) { if (!ptr->interface_name) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Failed to load file interface from %s due to no interface name.\n", key); + } else if (!ptr->extens) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Failed to load file interface from %s due to no file extensions.\n", key); } else { int i; for (i = 0; ptr->extens[i]; i++) { diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 3dfb93b1ec..88848dd777 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -384,7 +384,7 @@ static handle_rfc2833_result_t handle_rfc2833(switch_rtp_t *rtp_session, switch_ switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "DTMF payload offset by 4 bytes.\n"); } - if (!(packet[0] || packet[1] || packet[2] || packet[3])) { + if (!(packet[0] || packet[1] || packet[2] || packet[3]) && rtp_session->dtmf_data.in_digit_ts) { switch_core_session_t *session = switch_core_memory_pool_get_data(rtp_session->pool, "__session"); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Failed DTMF payload check.\n"); rtp_session->dtmf_data.last_digit = 0;