Merge branch 'master' into smgmaster

This commit is contained in:
Moises Silva 2011-01-19 22:51:11 -05:00
commit 2c45b52f8c
8 changed files with 31 additions and 9 deletions

View File

@ -16,7 +16,7 @@
<match> <match>
<action function="play-file" data="directory/dir-to_search_by.wav"/> <action function="play-file" data="directory/dir-to_search_by.wav"/>
<action function="play-file" data="directory/dir-first_name.wav"/> <action function="play-file" data="directory/dir-first_name.wav"/>
<action function="play-file" data="directory/dir-press.wav"/> <action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/> <action function="say" data="$2" method="pronounced" type="name_spelled"/>
</match> </match>
</input> </input>
@ -24,7 +24,7 @@
<match> <match>
<action function="play-file" data="directory/dir-to_search_by.wav"/> <action function="play-file" data="directory/dir-to_search_by.wav"/>
<action function="play-file" data="directory/dir-last_name.wav"/> <action function="play-file" data="directory/dir-last_name.wav"/>
<action function="play-file" data="directory/dir-press.wav"/> <action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/> <action function="say" data="$2" method="pronounced" type="name_spelled"/>
</match> </match>
</input> </input>

View File

@ -0,0 +1,13 @@
Last Updated: Jan 19, 2011
== BACKGROUND ==
The IO module provides an abstracted IO interface to FreeTDM.
== SHUTDOWN ==
Upon global shutdown, for each channel FIO_CLOSE_FUNCTION will be called.
When FIO_CLOSE_FUNCTION is called, all waiters on this channel shall be signalled.
If FIO_WAIT_FUNCTION is called on a function that has already been closed, this function shall return FTDM_TIMEOUT without blocking.
FIO_CHANNEL_DESTROY will eventually be called, and IO module is responsible for clearing all internal states and free allocated memory upon channel destroy.

View File

@ -394,8 +394,7 @@ static void *ftdm_sangoma_isdn_dchan_run(ftdm_thread_t *me, void *obj)
default: default:
ftdm_log_chan_msg(dchan, FTDM_LOG_CRIT, "Unhandled IO event\n"); ftdm_log_chan_msg(dchan, FTDM_LOG_CRIT, "Unhandled IO event\n");
} }
} }
ftdm_channel_close(&dchan);
return NULL; return NULL;
} }

View File

@ -239,7 +239,11 @@ static unsigned wp_open_range(ftdm_span_t *span, unsigned spanno, unsigned start
ftdm_log(FTDM_LOG_ERROR, "span %d channel %d cannot be configured as smg_prid_nfas, you need to compile freetdm with newer libsangoma\n", spanno, x); ftdm_log(FTDM_LOG_ERROR, "span %d channel %d cannot be configured as smg_prid_nfas, you need to compile freetdm with newer libsangoma\n", spanno, x);
#endif #endif
} else { } else {
#ifdef LIBSANGOMA_VERSION
sockfd = __tdmv_api_open_span_chan(spanno, x);
#else
sockfd = tdmv_api_open_span_chan(spanno, x); sockfd = tdmv_api_open_span_chan(spanno, x);
#endif
} }
if (sockfd == FTDM_INVALID_SOCKET) { if (sockfd == FTDM_INVALID_SOCKET) {

View File

@ -430,7 +430,7 @@ typedef enum {
} ftdm_signal_event_t; } ftdm_signal_event_t;
#define SIGNAL_STRINGS "START", "STOP", "RELEASED", "UP", "FLASH", "PROCEED", "RINGING", "PROGRESS", \ #define SIGNAL_STRINGS "START", "STOP", "RELEASED", "UP", "FLASH", "PROCEED", "RINGING", "PROGRESS", \
"PROGRESS_MEDIA", "ALARM_TRAP", "ALARM_CLEAR", \ "PROGRESS_MEDIA", "ALARM_TRAP", "ALARM_CLEAR", \
"COLLECTED_DIGIT", "ADD_CALL", "RESTART", "SIGSTATUS_CHANGED", "COLLISION", "FACILITY", \ "COLLECTED_DIGIT", "ADD_CALL", "RESTART", "SIGSTATUS_CHANGED", "FACILITY", \
"TRACE", "TRACE_RAW", "INDICATION_COMPLETED", "DIALING", "INVALID" "TRACE", "TRACE_RAW", "INDICATION_COMPLETED", "DIALING", "INVALID"
/*! \brief Move from string to ftdm_signal_event_t and viceversa */ /*! \brief Move from string to ftdm_signal_event_t and viceversa */
FTDM_STR2ENUM_P(ftdm_str2ftdm_signal_event, ftdm_signal_event2str, ftdm_signal_event_t) FTDM_STR2ENUM_P(ftdm_str2ftdm_signal_event, ftdm_signal_event2str, ftdm_signal_event_t)

View File

@ -132,8 +132,8 @@ extern "C" {
#define ftdm_channel_test_feature(obj, flag) ((obj)->features & flag) #define ftdm_channel_test_feature(obj, flag) ((obj)->features & flag)
#define ftdm_channel_set_feature(obj, flag) (obj)->features |= (flag) #define ftdm_channel_set_feature(obj, flag) (obj)->features = (ftdm_channel_feature_t)((obj)->features | flag)
#define ftdm_channel_clear_feature(obj, flag) (obj)->features &= ~(flag) #define ftdm_channel_clear_feature(obj, flag) (obj)->features = (ftdm_channel_feature_t)((obj)->features & ( ~(flag) ))
#define ftdm_channel_set_member_locked(obj, _m, _v) ftdm_mutex_lock(obj->mutex); obj->_m = _v; ftdm_mutex_unlock(obj->mutex) #define ftdm_channel_set_member_locked(obj, _m, _v) ftdm_mutex_lock(obj->mutex); obj->_m = _v; ftdm_mutex_unlock(obj->mutex)
/*! /*!

View File

@ -1139,7 +1139,13 @@ uint8_t sofia_reg_handle_register(nua_t *nua, sofia_profile_t *profile, nua_hand
switch_url_encode(my_contact_str, path_encoded + 20, path_encoded_len - 20); switch_url_encode(my_contact_str, path_encoded + 20, path_encoded_len - 20);
reg_desc = "Registered(AUTO-NAT-2.0)"; reg_desc = "Registered(AUTO-NAT-2.0)";
exptime = 30; exptime = 30;
switch_snprintf(contact_str + strlen(contact_str), sizeof(contact_str) - strlen(contact_str), "%s", path_encoded);
/* place fs_path (the encoded path) inside the <...> of the contact string, if possible */
if (contact_str[strlen(contact_str) - 1] == '>') {
switch_snprintf(contact_str + strlen(contact_str) - 1, sizeof(contact_str) - strlen(contact_str) + 1, "%s>", path_encoded);
} else {
switch_snprintf(contact_str + strlen(contact_str), sizeof(contact_str) - strlen(contact_str), "%s", path_encoded);
}
free(path_encoded); free(path_encoded);
} else { } else {
if (*received_data && sofia_test_pflag(profile, PFLAG_RECIEVED_IN_NAT_REG_CONTACT)) { if (*received_data && sofia_test_pflag(profile, PFLAG_RECIEVED_IN_NAT_REG_CONTACT)) {

View File

@ -340,7 +340,7 @@ static switch_status_t my_on_reporting(switch_core_session_t *session)
switch_yield(globals.delay * 1000000); switch_yield(globals.delay * 1000000);
} }
destUrl = switch_mprintf("%s?uuid=%s", globals.urls[globals.url_index], switch_core_session_get_uuid(session)); destUrl = switch_mprintf("%s?uuid=%s%s", globals.urls[globals.url_index], a_prefix, switch_core_session_get_uuid(session));
curl_easy_setopt(curl_handle, CURLOPT_URL, destUrl); curl_easy_setopt(curl_handle, CURLOPT_URL, destUrl);
if (!strncasecmp(destUrl, "https", 5)) { if (!strncasecmp(destUrl, "https", 5)) {