@ -2470,11 +2470,14 @@ static void register_peer_exten(struct sip_peer *peer, int onoff)
} else {
context = global_regcontext ;
}
if ( onoff )
ast_add_extension ( context , 1 , ext , 1 , NULL , NULL , " Noop " ,
ast_strdup ( peer - > name ) , ast_free , " SIP " ) ;
else
if ( onoff ) {
if ( ! ast_exists_extension ( NULL , context , ext , 1 , NULL ) ) {
ast_add_extension ( context , 1 , ext , 1 , NULL , NULL , " Noop " ,
ast_strdup ( peer - > name ) , ast_free , " SIP " ) ;
}
} else {
ast_context_remove_extension ( context , ext , 1 , NULL ) ;
}
}
}
@ -8348,12 +8351,11 @@ static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, st
manager_event ( EVENT_FLAG_SYSTEM , " PeerStatus " , " Peer: SIP/%s \r \n PeerStatus: Registered \r \n " , peer - > name ) ;
/* Is this a new IP address for us? */
if ( inaddrcmp ( & peer - > addr , & oldsin ) ) {
sip_poke_peer ( peer ) ;
if ( option_verbose > 2 )
ast_verbose ( VERBOSE_PREFIX_3 " Registered SIP '%s' at %s port %d expires %d \n " , peer - > name , ast_inet_ntoa ( peer - > addr . sin_addr ) , ntohs ( peer - > addr . sin_port ) , expiry ) ;
register_peer_exten ( peer , 1 ) ;
if ( option_verbose > 2 & & inaddrcmp ( & peer - > addr , & oldsin ) ) {
ast_verbose ( VERBOSE_PREFIX_3 " Registered SIP '%s' at %s port %d \n " , peer - > name , ast_inet_ntoa ( peer - > addr . sin_addr ) , ntohs ( peer - > addr . sin_port ) ) ;
}
sip_poke_peer ( peer ) ;
register_peer_exten ( peer , 1 ) ;
/* Save User agent */
useragent = get_header ( req , " User-Agent " ) ;