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;