mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-15 16:39:14 +00:00
cleanup for mod_fax
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9468 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
a4c95c63f6
commit
07198a8416
File diff suppressed because it is too large
Load Diff
@ -190,7 +190,7 @@ typedef enum {
|
|||||||
TFLAG_VAD_IN = (1 << 11),
|
TFLAG_VAD_IN = (1 << 11),
|
||||||
TFLAG_VAD_OUT = (1 << 12),
|
TFLAG_VAD_OUT = (1 << 12),
|
||||||
TFLAG_VAD = (1 << 13),
|
TFLAG_VAD = (1 << 13),
|
||||||
TFLAG_TIMER = (1 << 14),
|
TFLAG_USE_ME = (1 << 14),
|
||||||
TFLAG_READY = (1 << 15),
|
TFLAG_READY = (1 << 15),
|
||||||
TFLAG_REINVITE = (1 << 16),
|
TFLAG_REINVITE = (1 << 16),
|
||||||
TFLAG_REFER = (1 << 17),
|
TFLAG_REFER = (1 << 17),
|
||||||
|
@ -1409,8 +1409,6 @@ switch_status_t config_sofia(int reload, char *profile_name)
|
|||||||
|
|
||||||
if (!strcasecmp(var, "debug")) {
|
if (!strcasecmp(var, "debug")) {
|
||||||
profile->debug = atoi(val);
|
profile->debug = atoi(val);
|
||||||
} else if (!strcasecmp(var, "use-rtp-timer") && switch_true(val)) {
|
|
||||||
switch_set_flag(profile, TFLAG_TIMER);
|
|
||||||
} else if (!strcasecmp(var, "sip-trace") && switch_true(val)) {
|
} else if (!strcasecmp(var, "sip-trace") && switch_true(val)) {
|
||||||
switch_set_flag(profile, TFLAG_TPORT_LOG);
|
switch_set_flag(profile, TFLAG_TPORT_LOG);
|
||||||
} else if (!strcasecmp(var, "odbc-dsn") && !switch_strlen_zero(val)) {
|
} else if (!strcasecmp(var, "odbc-dsn") && !switch_strlen_zero(val)) {
|
||||||
@ -1752,10 +1750,6 @@ switch_status_t config_sofia(int reload, char *profile_name)
|
|||||||
profile->nonce_ttl = 60;
|
profile->nonce_ttl = 60;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (switch_test_flag(profile, TFLAG_TIMER) && !profile->timer_name) {
|
|
||||||
profile->timer_name = switch_core_strdup(profile->pool, "soft");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!profile->username) {
|
if (!profile->username) {
|
||||||
profile->username = switch_core_strdup(profile->pool, "FreeSWITCH");
|
profile->username = switch_core_strdup(profile->pool, "FreeSWITCH");
|
||||||
}
|
}
|
||||||
@ -2381,7 +2375,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
|||||||
if (tech_pvt && r_sdp) {
|
if (tech_pvt && r_sdp) {
|
||||||
sdp_parser_t *parser;
|
sdp_parser_t *parser;
|
||||||
sdp_session_t *sdp;
|
sdp_session_t *sdp;
|
||||||
uint8_t match = 0;
|
uint8_t match = 0, is_ok = 1;
|
||||||
|
|
||||||
if (r_sdp) {
|
if (r_sdp) {
|
||||||
if (switch_channel_test_flag(channel, CF_PROXY_MODE) || switch_channel_test_flag(channel, CF_PROXY_MEDIA)) {
|
if (switch_channel_test_flag(channel, CF_PROXY_MODE) || switch_channel_test_flag(channel, CF_PROXY_MEDIA)) {
|
||||||
@ -2412,6 +2406,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
|||||||
switch_core_session_rwunlock(other_session);
|
switch_core_session_rwunlock(other_session);
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Re-INVITE to a no-media channel that is not in a bridge.\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Re-INVITE to a no-media channel that is not in a bridge.\n");
|
||||||
|
is_ok = 0;
|
||||||
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
|
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
|
||||||
}
|
}
|
||||||
goto done;
|
goto done;
|
||||||
@ -2432,21 +2427,25 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
|||||||
switch_set_flag_locked(tech_pvt, TFLAG_REINVITE);
|
switch_set_flag_locked(tech_pvt, TFLAG_REINVITE);
|
||||||
if (sofia_glue_activate_rtp(tech_pvt, 0) != SWITCH_STATUS_SUCCESS) {
|
if (sofia_glue_activate_rtp(tech_pvt, 0) != SWITCH_STATUS_SUCCESS) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Reinvite RTP Error!\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Reinvite RTP Error!\n");
|
||||||
|
is_ok = 0;
|
||||||
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
|
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
|
||||||
}
|
}
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Processing Reinvite\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Processing Reinvite\n");
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Reinvite Codec Error!\n");
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Reinvite Codec Error!\n");
|
||||||
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
|
is_ok = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_ok) {
|
||||||
nua_respond(tech_pvt->nh, SIP_200_OK,
|
nua_respond(tech_pvt->nh, SIP_200_OK,
|
||||||
SIPTAG_CONTACT_STR(tech_pvt->reply_contact),
|
SIPTAG_CONTACT_STR(tech_pvt->reply_contact),
|
||||||
SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str),
|
SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str),
|
||||||
SOATAG_REUSE_REJECTED(1),
|
SOATAG_REUSE_REJECTED(1),
|
||||||
SOATAG_ORDERED_USER(1), SOATAG_AUDIO_AUX("cn telephone-event"), NUTAG_INCLUDE_EXTRA_SDP(1), TAG_END());
|
SOATAG_ORDERED_USER(1), SOATAG_AUDIO_AUX("cn telephone-event"), NUTAG_INCLUDE_EXTRA_SDP(1), TAG_END());
|
||||||
|
} else {
|
||||||
|
nua_respond(tech_pvt->nh, SIP_488_NOT_ACCEPTABLE, TAG_END());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1676,7 +1676,7 @@ switch_status_t sofia_glue_activate_rtp(private_object_t *tech_pvt, switch_rtp_f
|
|||||||
char tmp[50];
|
char tmp[50];
|
||||||
uint32_t rtp_timeout_sec = tech_pvt->profile->rtp_timeout_sec;
|
uint32_t rtp_timeout_sec = tech_pvt->profile->rtp_timeout_sec;
|
||||||
uint32_t rtp_hold_timeout_sec = tech_pvt->profile->rtp_hold_timeout_sec;
|
uint32_t rtp_hold_timeout_sec = tech_pvt->profile->rtp_hold_timeout_sec;
|
||||||
char *timer_name;
|
char *timer_name = NULL;
|
||||||
const char *var;
|
const char *var;
|
||||||
|
|
||||||
switch_assert(tech_pvt != NULL);
|
switch_assert(tech_pvt != NULL);
|
||||||
@ -1807,6 +1807,10 @@ switch_status_t sofia_glue_activate_rtp(private_object_t *tech_pvt, switch_rtp_f
|
|||||||
timer_name = tech_pvt->profile->timer_name;
|
timer_name = tech_pvt->profile->timer_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((var = switch_channel_get_variable(tech_pvt->channel, "rtp_timer_name"))) {
|
||||||
|
timer_name = (char *) var;
|
||||||
|
}
|
||||||
|
|
||||||
tech_pvt->rtp_session = switch_rtp_new(tech_pvt->local_sdp_audio_ip,
|
tech_pvt->rtp_session = switch_rtp_new(tech_pvt->local_sdp_audio_ip,
|
||||||
tech_pvt->local_sdp_audio_port,
|
tech_pvt->local_sdp_audio_port,
|
||||||
tech_pvt->remote_sdp_audio_ip,
|
tech_pvt->remote_sdp_audio_ip,
|
||||||
|
@ -256,6 +256,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
|||||||
session->raw_read_frame.ssrc = read_frame->ssrc;
|
session->raw_read_frame.ssrc = read_frame->ssrc;
|
||||||
session->raw_read_frame.seq = read_frame->seq;
|
session->raw_read_frame.seq = read_frame->seq;
|
||||||
session->raw_read_frame.m = read_frame->m;
|
session->raw_read_frame.m = read_frame->m;
|
||||||
|
session->raw_read_frame.flags = read_frame->flags;
|
||||||
session->raw_read_frame.payload = read_frame->payload;
|
session->raw_read_frame.payload = read_frame->payload;
|
||||||
read_frame = &session->raw_read_frame;
|
read_frame = &session->raw_read_frame;
|
||||||
break;
|
break;
|
||||||
@ -278,6 +279,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
|||||||
session->raw_read_frame.ssrc = read_frame->ssrc;
|
session->raw_read_frame.ssrc = read_frame->ssrc;
|
||||||
session->raw_read_frame.seq = read_frame->seq;
|
session->raw_read_frame.seq = read_frame->seq;
|
||||||
session->raw_read_frame.m = read_frame->m;
|
session->raw_read_frame.m = read_frame->m;
|
||||||
|
session->raw_read_frame.flags = read_frame->flags;
|
||||||
session->raw_read_frame.payload = read_frame->payload;
|
session->raw_read_frame.payload = read_frame->payload;
|
||||||
read_frame = &session->raw_read_frame;
|
read_frame = &session->raw_read_frame;
|
||||||
status = SWITCH_STATUS_SUCCESS;
|
status = SWITCH_STATUS_SUCCESS;
|
||||||
@ -357,12 +359,13 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((*frame)->datalen == session->read_codec->implementation->bytes_per_frame) {
|
if (read_frame->datalen == session->read_codec->implementation->bytes_per_frame) {
|
||||||
perfect = TRUE;
|
perfect = TRUE;
|
||||||
} else {
|
} else {
|
||||||
if (!session->raw_read_buffer) {
|
if (!session->raw_read_buffer) {
|
||||||
switch_size_t bytes = session->read_codec->implementation->bytes_per_frame;
|
switch_size_t bytes = session->read_codec->implementation->bytes_per_frame;
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Engaging Read Buffer at %u bytes\n", (uint32_t) bytes);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Engaging Read Buffer at %u bytes vs %u\n",
|
||||||
|
(uint32_t) bytes, (uint32_t) (*frame)->datalen);
|
||||||
switch_buffer_create_dynamic(&session->raw_read_buffer, bytes * SWITCH_BUFFER_BLOCK_FRAMES, bytes * SWITCH_BUFFER_START_FRAMES, 0);
|
switch_buffer_create_dynamic(&session->raw_read_buffer, bytes * SWITCH_BUFFER_BLOCK_FRAMES, bytes * SWITCH_BUFFER_START_FRAMES, 0);
|
||||||
}
|
}
|
||||||
if (!switch_buffer_write(session->raw_read_buffer, read_frame->data, read_frame->datalen)) {
|
if (!switch_buffer_write(session->raw_read_buffer, read_frame->data, read_frame->datalen)) {
|
||||||
@ -408,6 +411,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
|||||||
session->enc_read_frame.ssrc = read_frame->ssrc;
|
session->enc_read_frame.ssrc = read_frame->ssrc;
|
||||||
session->enc_read_frame.seq = read_frame->seq;
|
session->enc_read_frame.seq = read_frame->seq;
|
||||||
session->enc_read_frame.m = read_frame->m;
|
session->enc_read_frame.m = read_frame->m;
|
||||||
|
session->enc_read_frame.flags = read_frame->flags;
|
||||||
session->enc_read_frame.payload = session->read_codec->implementation->ianacode;
|
session->enc_read_frame.payload = session->read_codec->implementation->ianacode;
|
||||||
}
|
}
|
||||||
*frame = &session->enc_read_frame;
|
*frame = &session->enc_read_frame;
|
||||||
@ -417,6 +421,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
|||||||
session->raw_read_frame.timestamp = read_frame->timestamp;
|
session->raw_read_frame.timestamp = read_frame->timestamp;
|
||||||
session->raw_read_frame.payload = enc_frame->codec->implementation->ianacode;
|
session->raw_read_frame.payload = enc_frame->codec->implementation->ianacode;
|
||||||
session->raw_read_frame.m = read_frame->m;
|
session->raw_read_frame.m = read_frame->m;
|
||||||
|
session->enc_read_frame.flags = read_frame->flags;
|
||||||
session->raw_read_frame.ssrc = read_frame->ssrc;
|
session->raw_read_frame.ssrc = read_frame->ssrc;
|
||||||
session->raw_read_frame.seq = read_frame->seq;
|
session->raw_read_frame.seq = read_frame->seq;
|
||||||
*frame = &session->raw_read_frame;
|
*frame = &session->raw_read_frame;
|
||||||
@ -616,6 +621,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||||||
session->raw_write_frame.timestamp = frame->timestamp;
|
session->raw_write_frame.timestamp = frame->timestamp;
|
||||||
session->raw_write_frame.rate = frame->rate;
|
session->raw_write_frame.rate = frame->rate;
|
||||||
session->raw_write_frame.m = frame->m;
|
session->raw_write_frame.m = frame->m;
|
||||||
|
session->raw_write_frame.flags = frame->flags;
|
||||||
session->raw_write_frame.ssrc = frame->ssrc;
|
session->raw_write_frame.ssrc = frame->ssrc;
|
||||||
session->raw_write_frame.seq = frame->seq;
|
session->raw_write_frame.seq = frame->seq;
|
||||||
session->raw_write_frame.payload = frame->payload;
|
session->raw_write_frame.payload = frame->payload;
|
||||||
@ -768,6 +774,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||||||
session->enc_write_frame.timestamp = frame->timestamp;
|
session->enc_write_frame.timestamp = frame->timestamp;
|
||||||
session->enc_write_frame.payload = session->write_codec->implementation->ianacode;
|
session->enc_write_frame.payload = session->write_codec->implementation->ianacode;
|
||||||
session->enc_write_frame.m = frame->m;
|
session->enc_write_frame.m = frame->m;
|
||||||
|
session->enc_write_frame.flags = frame->flags;
|
||||||
session->enc_write_frame.ssrc = frame->ssrc;
|
session->enc_write_frame.ssrc = frame->ssrc;
|
||||||
session->enc_write_frame.seq = frame->seq;
|
session->enc_write_frame.seq = frame->seq;
|
||||||
write_frame = &session->enc_write_frame;
|
write_frame = &session->enc_write_frame;
|
||||||
@ -777,6 +784,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||||||
enc_frame->samples = enc_frame->datalen / sizeof(int16_t);
|
enc_frame->samples = enc_frame->datalen / sizeof(int16_t);
|
||||||
enc_frame->timestamp = frame->timestamp;
|
enc_frame->timestamp = frame->timestamp;
|
||||||
enc_frame->m = frame->m;
|
enc_frame->m = frame->m;
|
||||||
|
enc_frame->flags = frame->flags;
|
||||||
enc_frame->seq = frame->seq;
|
enc_frame->seq = frame->seq;
|
||||||
enc_frame->ssrc = frame->ssrc;
|
enc_frame->ssrc = frame->ssrc;
|
||||||
enc_frame->payload = enc_frame->codec->implementation->ianacode;
|
enc_frame->payload = enc_frame->codec->implementation->ianacode;
|
||||||
@ -830,6 +838,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||||||
session->enc_write_frame.codec = session->write_codec;
|
session->enc_write_frame.codec = session->write_codec;
|
||||||
session->enc_write_frame.samples = enc_frame->datalen / sizeof(int16_t);
|
session->enc_write_frame.samples = enc_frame->datalen / sizeof(int16_t);
|
||||||
session->enc_write_frame.m = frame->m;
|
session->enc_write_frame.m = frame->m;
|
||||||
|
session->enc_write_frame.flags = frame->flags;
|
||||||
session->enc_write_frame.ssrc = frame->ssrc;
|
session->enc_write_frame.ssrc = frame->ssrc;
|
||||||
session->enc_write_frame.payload = session->write_codec->implementation->ianacode;
|
session->enc_write_frame.payload = session->write_codec->implementation->ianacode;
|
||||||
write_frame = &session->enc_write_frame;
|
write_frame = &session->enc_write_frame;
|
||||||
@ -851,6 +860,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||||||
session->enc_write_frame.codec = session->write_codec;
|
session->enc_write_frame.codec = session->write_codec;
|
||||||
session->enc_write_frame.samples = enc_frame->datalen / sizeof(int16_t);
|
session->enc_write_frame.samples = enc_frame->datalen / sizeof(int16_t);
|
||||||
session->enc_write_frame.m = frame->m;
|
session->enc_write_frame.m = frame->m;
|
||||||
|
session->enc_write_frame.flags = frame->flags;
|
||||||
session->enc_write_frame.ssrc = frame->ssrc;
|
session->enc_write_frame.ssrc = frame->ssrc;
|
||||||
session->enc_write_frame.payload = session->write_codec->implementation->ianacode;
|
session->enc_write_frame.payload = session->write_codec->implementation->ianacode;
|
||||||
write_frame = &session->enc_write_frame;
|
write_frame = &session->enc_write_frame;
|
||||||
@ -865,6 +875,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||||||
enc_frame->codec = session->write_codec;
|
enc_frame->codec = session->write_codec;
|
||||||
enc_frame->samples = enc_frame->datalen / sizeof(int16_t);
|
enc_frame->samples = enc_frame->datalen / sizeof(int16_t);
|
||||||
enc_frame->m = frame->m;
|
enc_frame->m = frame->m;
|
||||||
|
enc_frame->flags = frame->flags;
|
||||||
enc_frame->ssrc = frame->ssrc;
|
enc_frame->ssrc = frame->ssrc;
|
||||||
enc_frame->payload = enc_frame->codec->implementation->ianacode;
|
enc_frame->payload = enc_frame->codec->implementation->ianacode;
|
||||||
write_frame = enc_frame;
|
write_frame = enc_frame;
|
||||||
|
@ -797,11 +797,16 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_create(switch_rtp_t **new_rtp_session
|
|||||||
rtp_session->payload = payload;
|
rtp_session->payload = payload;
|
||||||
rtp_session->ms_per_packet = ms_per_packet;
|
rtp_session->ms_per_packet = ms_per_packet;
|
||||||
rtp_session->samples_per_interval = rtp_session->conf_samples_per_interval = samples_per_interval;
|
rtp_session->samples_per_interval = rtp_session->conf_samples_per_interval = samples_per_interval;
|
||||||
rtp_session->timer_name = switch_core_strdup(pool, timer_name);
|
|
||||||
|
|
||||||
|
if (!strcasecmp(timer_name, "none")) {
|
||||||
|
timer_name = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (!switch_strlen_zero(timer_name)) {
|
if (!switch_strlen_zero(timer_name)) {
|
||||||
|
rtp_session->timer_name = switch_core_strdup(pool, timer_name);
|
||||||
switch_set_flag_locked(rtp_session, SWITCH_RTP_FLAG_USE_TIMER);
|
switch_set_flag_locked(rtp_session, SWITCH_RTP_FLAG_USE_TIMER);
|
||||||
|
switch_clear_flag(rtp_session, SWITCH_RTP_FLAG_USE_TIMER);
|
||||||
|
switch_clear_flag(rtp_session, SWITCH_RTP_FLAG_NOBLOCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_USE_TIMER) && switch_strlen_zero(timer_name)) {
|
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_USE_TIMER) && switch_strlen_zero(timer_name)) {
|
||||||
@ -1238,6 +1243,10 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (bytes == 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (bytes && switch_test_flag(rtp_session, SWITCH_RTP_FLAG_AUTOADJ) && switch_sockaddr_get_port(rtp_session->from_addr)) {
|
if (bytes && switch_test_flag(rtp_session, SWITCH_RTP_FLAG_AUTOADJ) && switch_sockaddr_get_port(rtp_session->from_addr)) {
|
||||||
const char *tx_host;
|
const char *tx_host;
|
||||||
const char *old_host;
|
const char *old_host;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user