diff --git a/src/sipcall.cpp b/src/sipcall.cpp index c5e33a7cb30c0cf4dcf48e8233b0082865cc911d..9efbd661fbbe950f84b6724a4bbadef01855b0d4 100644 --- a/src/sipcall.cpp +++ b/src/sipcall.cpp @@ -223,25 +223,25 @@ void SIPCall::sdpAddMediaDescription(pj_pool_t* pool) med->desc.port = getLocalExternAudioPort(); med->desc.transport = pj_str((char*)"RTP/AVP"); - CodecsMap::iterator itr; - itr = _codecMap.getCodecsMap().begin(); - int count = _codecMap.getCodecsNumber(); + CodecOrder::iterator itr; + + itr = _codecMap.getActiveCodecs().begin(); + int count = _codecMap.getActiveCodecs().size(); med->desc.fmt_count = count; int i = 0; - while(itr != _codecMap.getCodecsMap().end()) { + while(itr != _codecMap.getActiveCodecs().end()) { std::ostringstream format; - format << (*itr).first; + format << *itr; pj_strdup2(pool, &med->desc.fmt[i], format.str().data()); - AudioCodec *codec = (*itr).second; pjmedia_sdp_rtpmap rtpMap; rtpMap.pt = med->desc.fmt[i]; - rtpMap.enc_name = pj_str((char *)codec->getCodecName().data()); - rtpMap.clock_rate = codec->getClockRate(); - if(codec->getChannel() > 1) { + rtpMap.enc_name = pj_str((char *)_codecMap.getCodecName(*itr).data()); + rtpMap.clock_rate = _codecMap.getSampleRate(*itr); + if(_codecMap.getChannel(*itr) > 1) { std::ostringstream channel; - channel << codec->getChannel(); + channel << _codecMap.getChannel(*itr); rtpMap.param = pj_str((char *)channel.str().data()); } else rtpMap.param.slen = 0;