@ -9833,15 +9833,17 @@ static char *handle_cli_iax2_provision(struct ast_cli_entry *e, int cmd, struct
static void __iax2_poke_noanswer ( const void * data )
{
struct iax2_peer * peer = ( struct iax2_peer * ) data ;
int callno ;
if ( peer - > lastms > - 1 ) {
ast_log ( LOG_NOTICE , " Peer '%s' is now UNREACHABLE! Time: %d \n " , peer - > name , peer - > lastms ) ;
manager_event ( EVENT_FLAG_SYSTEM , " PeerStatus " , " ChannelType: IAX2 \r \n Peer: IAX2/%s \r \n PeerStatus: Unreachable \r \n Time: %d \r \n " , peer - > name , peer - > lastms ) ;
ast_device_state_changed ( " IAX2/%s " , peer - > name ) ; /* Activate notification */
}
if ( peer - > callno > 0 ) {
ast_mutex_lock ( & iaxsl [ peer- > callno] ) ;
iax2_destroy ( peer- > callno) ;
ast_mutex_unlock ( & iaxsl [ peer- > callno] ) ;
if ( ( callno = peer - > callno ) > 0 ) {
ast_mutex_lock ( & iaxsl [ callno] ) ;
iax2_destroy ( callno) ;
ast_mutex_unlock ( & iaxsl [ callno] ) ;
}
peer - > callno = 0 ;
peer - > lastms = - 1 ;
@ -9894,7 +9896,7 @@ static int iax2_poke_peer(struct iax2_peer *peer, int heldcall)
}
if ( heldcall )
ast_mutex_unlock ( & iaxsl [ heldcall ] ) ;
peer- > callno = find_callno ( 0 , 0 , & peer - > addr , NEW_FORCE , peer - > sockfd , 0 ) ;
callno = peer- > callno = find_callno ( 0 , 0 , & peer - > addr , NEW_FORCE , peer - > sockfd , 0 ) ;
if ( heldcall )
ast_mutex_lock ( & iaxsl [ heldcall ] ) ;
if ( peer - > callno < 1 ) {
@ -9924,11 +9926,11 @@ static int iax2_poke_peer(struct iax2_peer *peer, int heldcall)
peer_unref ( peer ) ;
/* And send the poke */
ast_mutex_lock ( & iaxsl [ peer- > callno] ) ;
if ( iaxs [ peer- > callno] ) {
send_command ( iaxs [ peer- > callno] , AST_FRAME_IAX , IAX_COMMAND_POKE , 0 , NULL , 0 , - 1 ) ;
ast_mutex_lock ( & iaxsl [ callno] ) ;
if ( iaxs [ callno] ) {
send_command ( iaxs [ callno] , AST_FRAME_IAX , IAX_COMMAND_POKE , 0 , NULL , 0 , - 1 ) ;
}
ast_mutex_unlock ( & iaxsl [ peer- > callno] ) ;
ast_mutex_unlock ( & iaxsl [ callno] ) ;
return 0 ;
}