mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 12:40:17 +00:00
srtp update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7746 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
e697bf8d26
commit
2c52bf32f0
@ -76,6 +76,7 @@ typedef struct private_object private_object_t;
|
||||
#define SOFIA_SECURE_MEDIA_VARIABLE "sip_secure_media"
|
||||
#define SOFIA_SECURE_MEDIA_CONFIRMED_VARIABLE "sip_secure_media_confirmed"
|
||||
#define SOFIA_HAS_CRYPTO_VARIABLE "sip_has_crypto"
|
||||
#define SOFIA_CRYPTO_MANDATORY_VARIABLE "sip_crypto_mandatory"
|
||||
|
||||
#include <sofia-sip/nua.h>
|
||||
#include <sofia-sip/sip_status.h>
|
||||
|
@ -1127,7 +1127,7 @@ void sofia_glue_tech_absorb_sdp(private_object_t *tech_pvt)
|
||||
if ((parser = sdp_parse(NULL, sdp_str, (int) strlen(sdp_str), 0))) {
|
||||
if ((sdp = sdp_session(parser))) {
|
||||
for (m = sdp->sdp_media; m; m = m->m_next) {
|
||||
if (m->m_type != sdp_media_audio) {
|
||||
if (m->m_type != sdp_media_audio || !m->m_port) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1726,7 +1726,7 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t *
|
||||
switch_channel_t *channel = switch_core_session_get_channel(session);
|
||||
const char *val;
|
||||
const char *crypto = NULL;
|
||||
int got_crypto = 0, got_audio = 0;
|
||||
int got_crypto = 0, got_audio = 0, got_avp = 0, got_savp = 0;
|
||||
|
||||
switch_assert(tech_pvt != NULL);
|
||||
|
||||
@ -1808,7 +1808,13 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t *
|
||||
|
||||
ptime = dptime;
|
||||
|
||||
if (m->m_type == sdp_media_audio && !got_audio) {
|
||||
if (m->m_proto == sdp_proto_srtp) {
|
||||
got_savp++;
|
||||
} else if (m->m_proto == sdp_proto_rtp) {
|
||||
got_avp++;
|
||||
}
|
||||
|
||||
if (m->m_type == sdp_media_audio && m->m_port && !got_audio) {
|
||||
sdp_rtpmap_t *map;
|
||||
|
||||
for (attr = m->m_attributes; attr; attr = attr->a_next) {
|
||||
@ -1862,6 +1868,11 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t *
|
||||
}
|
||||
}
|
||||
|
||||
if (got_crypto && !got_avp) {
|
||||
switch_channel_set_variable(tech_pvt->channel, SOFIA_CRYPTO_MANDATORY_VARIABLE, "true");
|
||||
switch_channel_set_variable(tech_pvt->channel, SOFIA_SECURE_MEDIA_VARIABLE, "true");
|
||||
}
|
||||
|
||||
connection = sdp->sdp_connection;
|
||||
if (m->m_connections) {
|
||||
connection = m->m_connections;
|
||||
@ -2024,7 +2035,7 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, sdp_session_t *
|
||||
goto greed;
|
||||
}
|
||||
|
||||
} else if (m->m_type == sdp_media_video) {
|
||||
} else if (m->m_type == sdp_media_video && m->m_port) {
|
||||
sdp_rtpmap_t *map;
|
||||
const char *rm_encoding;
|
||||
int framerate = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user