From 36bbb005ca2f2039cfbd855d95d31746c445ea2a Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Mon, 24 Oct 2011 13:31:35 +0000 Subject: Re #1300: fixed bug when looking for non-telephone-events codec in the incoming INVITE causing it to rejects with 488 git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3842 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/stream.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/pjmedia/src/pjmedia/stream.c b/pjmedia/src/pjmedia/stream.c index 4022c36a..45a3830e 100644 --- a/pjmedia/src/pjmedia/stream.c +++ b/pjmedia/src/pjmedia/stream.c @@ -2822,12 +2822,23 @@ static pj_status_t get_audio_codec_info_param(pjmedia_stream_info *si, /* Find the first codec which is not telephone-event */ for ( fmti = 0; fmti < local_m->desc.fmt_count; ++fmti ) { + pjmedia_sdp_rtpmap r; + if ( !pj_isdigit(*local_m->desc.fmt[fmti].ptr) ) return PJMEDIA_EINVALIDPT; pt = pj_strtoul(&local_m->desc.fmt[fmti]); - if ( PJMEDIA_RTP_PT_TELEPHONE_EVENTS == 0 || - pt != PJMEDIA_RTP_PT_TELEPHONE_EVENTS ) - break; + + attr = pjmedia_sdp_media_find_attr(local_m, &ID_RTPMAP, + &local_m->desc.fmt[fmti]); + if (attr == NULL) + continue; + + status = pjmedia_sdp_attr_get_rtpmap(attr, &r); + if (status != PJ_SUCCESS) + continue; + + if (pj_strcmp(&r.enc_name, &ID_TELEPHONE_EVENT) != 0) + break; } if ( fmti >= local_m->desc.fmt_count ) return PJMEDIA_EINVALIDPT; -- cgit v1.2.3