From fe94138aa4fca70df7a7df54b76124b4b6a7cdd7 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 9 Oct 2015 12:57:36 -0500 Subject: [PATCH] FS-8320 #resolve [ZRTP broken in commit 06c56a037eb0b750ee41c46838a8729de9798d84] --- conf/testing/autoload_configs/switch.conf.xml | 2 +- src/switch_rtp.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/conf/testing/autoload_configs/switch.conf.xml b/conf/testing/autoload_configs/switch.conf.xml index 4ffe878563..8e66e7159f 100644 --- a/conf/testing/autoload_configs/switch.conf.xml +++ b/conf/testing/autoload_configs/switch.conf.xml @@ -150,7 +150,7 @@ - + diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 674b2b33ed..ea5fc24504 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -71,6 +71,7 @@ #define WARN_SRTP_ERRS 10 #define MAX_SRTP_ERRS 100 #define NTP_TIME_OFFSET 2208988800UL +#define ZRTP_MAGIC_COOKIE 0x5a525450 static const switch_payload_t INVALID_PT = 255; #define DTMF_SANITY (rtp_session->one_second * 30) @@ -5077,7 +5078,8 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t if (*bytes) { b = (unsigned char *) &rtp_session->recv_msg; - rtp_session->has_rtp = (rtp_session->recv_msg.header.version == 2); + /* version 2 probably rtp, zrtp cookie present means zrtp */ + rtp_session->has_rtp = (rtp_session->recv_msg.header.version == 2 || ntohl(*(int *)(b+4)) == ZRTP_MAGIC_COOKIE); if ((*b >= 20) && (*b <= 64)) { rtp_session->dtls->bytes = *bytes; @@ -5085,7 +5087,6 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t rtp_session->has_ice = 0; rtp_session->has_rtp = 0; rtp_session->has_rtcp = 0; - } else if (*b == 0 || *b == 1) { rtp_session->has_ice = 1; rtp_session->has_rtp = 0;