mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-10-14 07:14:14 +00:00
media/srtp refactoring pass
This commit is contained in:
1 parent
8d7aa3ff65
commit
ea881b191f
8 files changed
+135
-61
No files matched your search
@@ -840,7 +840,7 @@ void sofia_glue_attach_private(switch_core_session_t *session, sofia_profile_t *
|
||||
|
||||
switch_status_t sofia_glue_do_invite(switch_core_session_t *session);
|
||||
|
||||
uint8_t sofia_media_negotiate_sdp(switch_core_session_t *session, const char *r_sdp);
|
||||
uint8_t sofia_media_negotiate_sdp(switch_core_session_t *session, const char *r_sdp, switch_sdp_type_t type);
|
||||
|
||||
void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, switch_core_session_t *session, sip_t const *sip,
|
||||
sofia_dispatch_event_t *de, tagi_t tags[]);
|
||||
|
||||
@@ -5967,7 +5967,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
||||
uint8_t match = 0;
|
||||
|
||||
if (tech_pvt->mparams.num_codecs) {
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp);
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp, SDP_TYPE_REQUEST);
|
||||
}
|
||||
|
||||
if (!match) {
|
||||
@@ -6260,7 +6260,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
||||
switch_channel_set_flag(tech_pvt->channel, CF_REINVITE);
|
||||
|
||||
if (tech_pvt->mparams.num_codecs) {
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp);
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp, SDP_TYPE_REQUEST);
|
||||
}
|
||||
|
||||
if (match && sofia_test_flag(tech_pvt, TFLAG_NOREPLY)) {
|
||||
@@ -6326,7 +6326,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
||||
switch_channel_set_flag(tech_pvt->channel, CF_REINVITE);
|
||||
|
||||
if (tech_pvt->mparams.num_codecs) {
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp);
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp, SDP_TYPE_REQUEST);
|
||||
}
|
||||
if (match) {
|
||||
if (switch_core_media_choose_port(tech_pvt->session, SWITCH_MEDIA_TYPE_AUDIO, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
@@ -6386,7 +6386,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
||||
int is_ok = 1;
|
||||
|
||||
if (tech_pvt->mparams.num_codecs) {
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp);
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp, SDP_TYPE_REQUEST);
|
||||
}
|
||||
|
||||
if (match) {
|
||||
@@ -6482,7 +6482,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
||||
uint8_t match = 0;
|
||||
|
||||
if (tech_pvt->mparams.num_codecs) {
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp);
|
||||
match = sofia_media_negotiate_sdp(session, r_sdp, SDP_TYPE_RESPONSE);
|
||||
}
|
||||
|
||||
sofia_set_flag_locked(tech_pvt, TFLAG_ANS);
|
||||
|
||||
@@ -1873,17 +1873,6 @@ int sofia_recover_callback(switch_core_session_t *session)
|
||||
switch_channel_set_name(tech_pvt->channel, switch_channel_get_variable(channel, "channel_name"));
|
||||
|
||||
|
||||
switch_core_session_get_recovery_crypto_key(session, SWITCH_MEDIA_TYPE_AUDIO, "srtp_remote_audio_crypto_key");
|
||||
switch_core_session_get_recovery_crypto_key(session, SWITCH_MEDIA_TYPE_VIDEO, "srtp_remote_video_crypto_key");
|
||||
|
||||
if ((tmp = switch_channel_get_variable(channel, "rtp_local_sdp_str"))) {
|
||||
tech_pvt->mparams.local_sdp_str = switch_core_session_strdup(session, tmp);
|
||||
}
|
||||
|
||||
if ((tmp = switch_channel_get_variable(channel, SWITCH_R_SDP_VARIABLE))) {
|
||||
tech_pvt->mparams.remote_sdp_str = switch_core_session_strdup(session, tmp);
|
||||
}
|
||||
|
||||
switch_channel_set_variable(channel, "sip_invite_call_id", switch_channel_get_variable(channel, "sip_call_id"));
|
||||
|
||||
if (switch_true(switch_channel_get_variable(channel, "sip_nat_detected"))) {
|
||||
|
||||
@@ -34,12 +34,12 @@
|
||||
|
||||
|
||||
|
||||
uint8_t sofia_media_negotiate_sdp(switch_core_session_t *session, const char *r_sdp)
|
||||
uint8_t sofia_media_negotiate_sdp(switch_core_session_t *session, const char *r_sdp, switch_sdp_type_t type)
|
||||
{
|
||||
uint8_t t, p = 0;
|
||||
private_object_t *tech_pvt = switch_core_session_get_private(session);
|
||||
|
||||
if ((t = switch_core_media_negotiate_sdp(session, r_sdp, &p))) {
|
||||
if ((t = switch_core_media_negotiate_sdp(session, r_sdp, &p, type))) {
|
||||
sofia_set_flag_locked(tech_pvt, TFLAG_SDP);
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ switch_status_t sofia_media_tech_media(private_object_t *tech_pvt, const char *r
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
if ((match = sofia_media_negotiate_sdp(tech_pvt->session, r_sdp))) {
|
||||
if ((match = sofia_media_negotiate_sdp(tech_pvt->session, r_sdp, SDP_TYPE_REQUEST))) {
|
||||
if (switch_core_media_choose_port(tech_pvt->session, SWITCH_MEDIA_TYPE_AUDIO, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user