@ -1373,7 +1373,6 @@ struct sip_auth {
# define SIP_PAGE2_RTCACHEFRIENDS (1 << 0) /*!< GP: Should we keep RT objects in memory for extended time? */
# define SIP_PAGE2_RTAUTOCLEAR (1 << 2) /*!< GP: Should we clean memory from peers after expiry? */
/* Space for addition of other realtime flags in the future */
# define SIP_PAGE2_CONSTANT_SSRC (1 << 8) /*!< GDP: Don't change SSRC on reinvite */
# define SIP_PAGE2_STATECHANGEQUEUE (1 << 9) /*!< D: Unsent state pending change exists */
# define SIP_PAGE2_RPORT_PRESENT (1 << 10) /*!< Was rport received in the Via header? */
@ -1406,7 +1405,7 @@ struct sip_auth {
( SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_IGNORESDPVERSION | \
SIP_PAGE2_VIDEOSUPPORT | SIP_PAGE2_T38SUPPORT | SIP_PAGE2_RFC2833_COMPENSATE | \
SIP_PAGE2_BUGGY_MWI | SIP_PAGE2_TEXTSUPPORT | SIP_PAGE2_FAX_DETECT | \
SIP_PAGE2_UDPTL_DESTINATION | SIP_PAGE2_VIDEOSUPPORT_ALWAYS | SIP_PAGE2_CONSTANT_SSRC )
SIP_PAGE2_UDPTL_DESTINATION | SIP_PAGE2_VIDEOSUPPORT_ALWAYS )
/*@}*/
@ -5150,9 +5149,6 @@ static int create_addr_from_peer(struct sip_pvt *dialog, struct sip_peer *peer)
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 ;
@ -5163,9 +5159,6 @@ static int create_addr_from_peer(struct sip_pvt *dialog, struct sip_peer *peer)
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 ) ;
@ -6195,7 +6188,7 @@ static int sip_answer(struct ast_channel *ast)
ast_setstate ( ast , AST_STATE_UP ) ;
ast_debug ( 1 , " SIP answering channel: %s \n " , ast - > name ) ;
ast_rtp_ new _source( p - > rtp ) ;
ast_rtp_ update _source( p - > rtp ) ;
res = transmit_response_with_sdp ( p , " 200 OK " , & p - > initreq , XMIT_CRITICAL , FALSE ) ;
ast_set_flag ( & p - > flags [ 1 ] , SIP_PAGE2_DIALOG_ESTABLISHED ) ;
}
@ -6230,7 +6223,7 @@ static int sip_write(struct ast_channel *ast, struct ast_frame *frame)
if ( ( ast - > _state ! = AST_STATE_UP ) & &
! ast_test_flag ( & p - > flags [ 0 ] , SIP_PROGRESS_SENT ) & &
! ast_test_flag ( & p - > flags [ 0 ] , SIP_OUTGOING ) ) {
ast_rtp_ new _source( p - > rtp ) ;
ast_rtp_ update _source( p - > rtp ) ;
if ( ! global_prematuremediafilter ) {
p - > invitestate = INV_EARLY_MEDIA ;
transmit_provisional_response ( p , " 183 Session Progress " , & p - > initreq , TRUE ) ;
@ -6553,11 +6546,11 @@ static int sip_indicate(struct ast_channel *ast, int condition, const void *data
res = - 1 ;
break ;
case AST_CONTROL_HOLD :
ast_rtp_ new _source( p - > rtp ) ;
ast_rtp_ update _source( p - > rtp ) ;
ast_moh_start ( ast , data , p - > mohinterpret ) ;
break ;
case AST_CONTROL_UNHOLD :
ast_rtp_ new _source( p - > rtp ) ;
ast_rtp_ update _source( p - > rtp ) ;
ast_moh_stop ( ast ) ;
break ;
case AST_CONTROL_VIDUPDATE : /* Request a video frame update */
@ -6576,7 +6569,10 @@ static int sip_indicate(struct ast_channel *ast, int condition, const void *data
}
break ;
case AST_CONTROL_SRCUPDATE :
ast_rtp_new_source ( p - > rtp ) ;
ast_rtp_update_source ( p - > rtp ) ;
break ;
case AST_CONTROL_SRCCHANGE :
ast_rtp_change_source ( p - > rtp ) ;
break ;
case - 1 :
res = - 1 ;
@ -20002,14 +19998,6 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
res = - 1 ;
goto request_invite_cleanup ;
}
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 " ) ;
@ -23406,9 +23394,6 @@ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask
} else if ( ! strcasecmp ( v - > name , " buggymwi " ) ) {
ast_set_flag ( & mask [ 1 ] , SIP_PAGE2_BUGGY_MWI ) ;
ast_set2_flag ( & flags [ 1 ] , ast_true ( v - > value ) , SIP_PAGE2_BUGGY_MWI ) ;
} else if ( ! strcasecmp ( v - > name , " constantssrc " ) ) {
ast_set_flag ( & mask [ 1 ] , SIP_PAGE2_CONSTANT_SSRC ) ;
ast_set2_flag ( & flags [ 1 ] , ast_true ( v - > value ) , SIP_PAGE2_CONSTANT_SSRC ) ;
} else
res = 0 ;
@ -24877,8 +24862,6 @@ static int reload_config(enum channelreloadreason reason)
default_maxcallbitrate = DEFAULT_MAX_CALL_BITRATE ;
} else if ( ! strcasecmp ( v - > name , " matchexterniplocally " ) ) {
sip_cfg . matchexterniplocally = ast_true ( v - > value ) ;
} else if ( ! strcasecmp ( v - > name , " constantssrc " ) ) {
ast_set2_flag ( & global_flags [ 1 ] , ast_true ( v - > value ) , SIP_PAGE2_CONSTANT_SSRC ) ;
} else if ( ! strcasecmp ( v - > name , " session-timers " ) ) {
int i = ( int ) str2stmode ( v - > value ) ;
if ( i < 0 ) {