diff -urN asterisk-1.6.1.10/channels/chan_sip.c asterisk-1.6.1.10.fixed/channels/chan_sip.c --- asterisk-1.6.1.10/channels/chan_sip.c 2009-11-13 10:57:13.000000000 -0500 +++ asterisk-1.6.1.10.fixed/channels/chan_sip.c 2009-11-25 10:30:29.000000000 -0500 @@ -4762,9 +4762,6 @@ ast_rtp_set_rtptimeout(dialog->rtp, peer->rtptimeout); ast_rtp_set_rtpholdtimeout(dialog->rtp, peer->rtpholdtimeout); ast_rtp_set_rtpkeepalive(dialog->rtp, peer->rtpkeepalive); - if (ast_test_flag(&dialog->flags[1], SIP_PAGE2_CONSTANT_SSRC)) { - ast_rtp_set_constantssrc(dialog->rtp); - } /* Set Frame packetization */ ast_rtp_codec_setpref(dialog->rtp, &dialog->prefs); dialog->autoframing = peer->autoframing; @@ -4775,9 +4772,6 @@ ast_rtp_set_rtptimeout(dialog->vrtp, peer->rtptimeout); ast_rtp_set_rtpholdtimeout(dialog->vrtp, peer->rtpholdtimeout); ast_rtp_set_rtpkeepalive(dialog->vrtp, peer->rtpkeepalive); - if (ast_test_flag(&dialog->flags[1], SIP_PAGE2_CONSTANT_SSRC)) { - ast_rtp_set_constantssrc(dialog->vrtp); - } } if (dialog->trtp) { /* Realtime text */ ast_rtp_setdtmf(dialog->trtp, 0); @@ -18978,14 +18972,6 @@ ast_debug(1, "No compatible codecs for this SIP call.\n"); return -1; } - if (ast_test_flag(&p->flags[1], SIP_PAGE2_CONSTANT_SSRC)) { - if (p->rtp) { - ast_rtp_set_constantssrc(p->rtp); - } - if (p->vrtp) { - ast_rtp_set_constantssrc(p->vrtp); - } - } } else { /* No SDP in invite, call control session */ p->jointcapability = p->capability; ast_debug(2, "No SDP in Invite, third party call control\n"); diff -urN asterisk-1.6.1.10/include/asterisk/rtp.h asterisk-1.6.1.10.fixed/include/asterisk/rtp.h --- asterisk-1.6.1.10/include/asterisk/rtp.h 2009-09-30 14:58:49.000000000 -0400 +++ asterisk-1.6.1.10.fixed/include/asterisk/rtp.h 2009-11-25 10:30:45.000000000 -0500 @@ -210,9 +210,6 @@ int ast_rtp_setqos(struct ast_rtp *rtp, int tos, int cos, char *desc); -/*! \brief When changing sources, don't generate a new SSRC */ -void ast_rtp_set_constantssrc(struct ast_rtp *rtp); - void ast_rtp_new_source(struct ast_rtp *rtp); /*! \brief Setting RTP payload types from lines in a SDP description: */ diff -urN asterisk-1.6.1.10/main/rtp.c asterisk-1.6.1.10.fixed/main/rtp.c --- asterisk-1.6.1.10/main/rtp.c 2009-10-19 19:56:31.000000000 -0400 +++ asterisk-1.6.1.10.fixed/main/rtp.c 2009-11-25 10:30:08.000000000 -0500 @@ -181,7 +181,6 @@ struct sockaddr_in strict_rtp_address; /*!< Remote address information for strict RTP purposes */ int set_marker_bit:1; /*!< Whether to set the marker bit or not */ - unsigned int constantssrc:1; struct rtp_red *red; }; @@ -2610,18 +2609,10 @@ return ast_netsock_set_qos(rtp->s, type_of_service, class_of_service, desc); } -void ast_rtp_set_constantssrc(struct ast_rtp *rtp) -{ - rtp->constantssrc = 1; -} - void ast_rtp_new_source(struct ast_rtp *rtp) { if (rtp) { rtp->set_marker_bit = 1; - if (!rtp->constantssrc) { - rtp->ssrc = ast_random(); - } } }