Merged revisions 118558 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r118558 | file | 2008-05-27 16:32:38 -0300 (Tue, 27 May 2008) | 4 lines

Fix an issue where codec preferences were not set on dialogs that were not authenticated via a user or peer and allow framing to work without rtpmap in the SDP.
(closes issue #12501)
Reported by: slimey

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@118560 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.1
Joshua Colp 17 years ago
parent ed1976a1cc
commit cfb40367f4

@ -6078,6 +6078,7 @@ static struct sip_pvt *sip_alloc(ast_string_field callid, struct sockaddr_in *si
ast_udptl_setqos(p->udptl, global_tos_audio, global_cos_audio);
p->maxcallbitrate = default_maxcallbitrate;
p->autoframing = global_autoframing;
ast_rtp_codec_setpref(p->rtp, &p->prefs);
}
if (useglobal_nat && sin) {
@ -6989,23 +6990,20 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
ast_debug(1, "Can't read framing from SDP: %s\n", a);
}
}
if (framing && last_rtpmap_codec) {
if (p->autoframing) {
struct ast_codec_pref *pref = ast_rtp_codec_getpref(p->rtp);
int codec_n;
int format = 0;
for (codec_n = 0; codec_n < last_rtpmap_codec; codec_n++) {
format = ast_rtp_codec_getformat(found_rtpmap_codecs[codec_n]);
if (!format) /* non-codec or not found */
continue;
ast_debug(1, "Setting framing for %d to %ld\n", format, framing);
ast_codec_pref_setsize(pref, format, framing);
}
ast_rtp_codec_setpref(p->rtp, pref);
if (framing && p->autoframing) {
struct ast_codec_pref *pref = ast_rtp_codec_getpref(p->rtp);
int codec_n;
int format = 0;
for (codec_n = 0; codec_n < MAX_RTP_PT; codec_n++) {
format = ast_rtp_codec_getformat(codec_n);
if (!format) /* non-codec or not found */
continue;
if (option_debug)
ast_log(LOG_DEBUG, "Setting framing for %d to %ld\n", format, framing);
ast_codec_pref_setsize(pref, format, framing);
}
ast_rtp_codec_setpref(p->rtp, pref);
}
memset(&found_rtpmap_codecs, 0, sizeof(found_rtpmap_codecs));
last_rtpmap_codec = 0;
continue;
} else if (!strncmp(a, red_fmtp, strlen(red_fmtp))) {

Loading…
Cancel
Save