From 0732c0b0274edc330ee99ac7ffaa52b7b8184738 Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthm@freeswitch.org>
Date: Tue, 29 Jul 2014 03:04:24 +0500
Subject: [PATCH] FS-6631 #resolve

---
 src/switch_core_media.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/switch_core_media.c b/src/switch_core_media.c
index ab98003c11..26987402df 100644
--- a/src/switch_core_media.c
+++ b/src/switch_core_media.c
@@ -3478,6 +3478,7 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
 						match = (map->rm_pt == imp->ianacode) ? 1 : 0;
 					} else {
 						match = (!strcasecmp(rm_encoding, imp->iananame) && 
+								 ((map->rm_pt < 96 && imp->ianacode < 96) || (map->rm_pt > 96 && imp->ianacode > 96)) &&
 								 (remote_codec_rate == codec_rate || fmtp_remote_codec_rate == imp->actual_samples_per_second)) ? 1 : 0;
 						if (fmtp_remote_codec_rate) {
 							remote_codec_rate = fmtp_remote_codec_rate;
@@ -8404,7 +8405,8 @@ static void switch_core_media_set_r_sdp_codec_string(switch_core_session_t *sess
 							match = (map->rm_pt == imp->ianacode) ? 1 : 0;
 						} else {
 							if (map->rm_encoding) {
-								match = strcasecmp(map->rm_encoding, imp->iananame) ? 0 : 1;
+								match = !strcasecmp(map->rm_encoding, imp->iananame) &&
+									((map->rm_pt < 96 && imp->ianacode < 96) || (map->rm_pt > 96 && imp->ianacode > 96));
 							} else {
 								match = 0;
 							}
@@ -8433,7 +8435,8 @@ static void switch_core_media_set_r_sdp_codec_string(switch_core_session_t *sess
 							match = (map->rm_pt == imp->ianacode) ? 1 : 0;
 						} else {
 							if (map->rm_encoding) {
-								match = strcasecmp(map->rm_encoding, imp->iananame) ? 0 : 1;
+								match = !strcasecmp(map->rm_encoding, imp->iananame) &&
+									((map->rm_pt < 96 && imp->ianacode < 96) || (map->rm_pt > 96 && imp->ianacode > 96));
 							} else {
 								match = 0;
 							}
@@ -8479,7 +8482,8 @@ static void switch_core_media_set_r_sdp_codec_string(switch_core_session_t *sess
 						match = (map->rm_pt == imp->ianacode) ? 1 : 0;
 					} else {
 						if (map->rm_encoding) {
-							match = strcasecmp(map->rm_encoding, imp->iananame) ? 0 : 1;
+							match = !strcasecmp(map->rm_encoding, imp->iananame) &&
+								((map->rm_pt < 96 && imp->ianacode < 96) || (map->rm_pt > 96 && imp->ianacode > 96));
 						} else {
 							match = 0;
 						}