FS-9356 #resolve [DTMF not recognized when coming from a Cisco SIP trunk]

This commit is contained in:
Anthony Minessale 2016-07-18 11:11:32 -05:00
parent 0beda620dd
commit f43522877c
3 changed files with 8 additions and 4 deletions

View File

@ -75,6 +75,7 @@ typedef enum {
SCMF_RTP_AUTOFLUSH_DURING_BRIDGE,
SCMF_MULTI_ANSWER_AUDIO,
SCMF_MULTI_ANSWER_VIDEO,
SCMF_RECV_SDP,
SCMF_MAX
} switch_core_media_flag_t;

View File

@ -7403,9 +7403,10 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "RECEIVED_NOSDP");
switch_core_media_choose_port(tech_pvt->session, SWITCH_MEDIA_TYPE_AUDIO, 0);
switch_core_media_prepare_codecs(session, 1);
switch_core_media_gen_local_sdp(session, SDP_TYPE_RESPONSE, NULL, 0, NULL, 0);
sofia_set_flag_locked(tech_pvt, TFLAG_3PCC);
switch_channel_set_state(channel, CS_HIBERNATE);
switch_core_media_gen_local_sdp(session, SDP_TYPE_REQUEST, NULL, 0, NULL, 0);
sofia_set_flag_locked(tech_pvt, TFLAG_3PCC);
if (sofia_use_soa(tech_pvt)) {
nua_respond(tech_pvt->nh, SIP_200_OK,
SIPTAG_CONTACT_STR(tech_pvt->profile->url),

View File

@ -3766,7 +3766,9 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
a_engine->new_dtls = 1;
a_engine->new_ice = 1;
a_engine->reject_avp = 0;
switch_media_handle_set_media_flag(smh, SCMF_RECV_SDP);
switch_core_session_parse_crypto_prefs(session);
clear_pmaps(a_engine);
@ -8258,7 +8260,7 @@ SWITCH_DECLARE(void) switch_core_media_gen_local_sdp(switch_core_session_t *sess
video:
if (!switch_channel_test_flag(session->channel, CF_VIDEO_POSSIBLE) && sdp_type == SDP_TYPE_REQUEST) {
if (!switch_channel_test_flag(session->channel, CF_VIDEO_POSSIBLE) && switch_media_handle_test_media_flag(smh, SCMF_RECV_SDP)) {
has_vid = 0;
} else {
int i;