diff options
author | Benny Prijono <bennylp@teluu.com> | 2011-10-24 13:31:35 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2011-10-24 13:31:35 +0000 |
commit | 36bbb005ca2f2039cfbd855d95d31746c445ea2a (patch) | |
tree | 29fd43e09e2a1170f013bcd4dc388b6faf622e78 /pjmedia | |
parent | 2068f13bc42cf3a47374aa2765f82724a5782028 (diff) |
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
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/src/pjmedia/stream.c | 17 |
1 files 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; |