Merged revisions 69625 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Mon, 18 Jun 2007 13:57:33 +0000 (13:57 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 18 Jun 2007 13:57:33 +0000 (13:57 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r69625 | file | 2007-06-18 09:55:00 -0400 (Mon, 18 Jun 2007) | 2 lines

Fix issue where it would be possible for the negotiated codecs to get set back to nothing. (issue #9992 reported by yehavi)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@69626 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 42894d3..d5483cb 100644 (file)
@@ -17863,14 +17863,16 @@ static int sip_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, struc
                memset(&p->tredirip, 0, sizeof(p->tredirip));
                changed = 1;
        }
-       if (codecs && (p->redircodecs != codecs)) {
-               p->redircodecs = codecs;
-               changed = 1;
-       }
-       if ((p->capability & codecs) != p->capability) {
-               p->jointcapability &= codecs;
-               p->capability &= codecs;
-               changed = 1;
+       if (codecs) {
+               if ((p->redircodecs != codecs)) {
+                       p->redircodecs = codecs;
+                       changed = 1;
+               }
+               if ((p->capability & codecs) != p->capability) {
+                       p->jointcapability &= codecs;
+                       p->capability &= codecs;
+                       changed = 1;
+               }
        }
        if (changed && !ast_test_flag(&p->flags[0], SIP_GOTREFER)) {
                if (chan->_state != AST_STATE_UP) {     /* We are in early state */