--- channel.c Wed Sep 15 17:12:45 2004 +++ drfrancky/channel.c Fri Dec 17 19:22:53 2004 @@ -2431,7 +2431,7 @@ if (chan->_state != state) { int oldstate = chan->_state; chan->_state = state; - if (oldstate == AST_STATE_DOWN) { + if ((oldstate == AST_STATE_DOWN) && (state != AST_STATE_RINGING) ) { ast_device_state_changed(chan->name); manager_event(EVENT_FLAG_CALL, "Newchannel", "Channel: %s\r\n" @@ -2446,6 +2446,9 @@ "Callerid: %s\r\n" "Uniqueid: %s\r\n", chan->name, ast_state2str(chan->_state), chan->callerid ? chan->callerid : "", chan->uniqueid); + } + if ( (oldstate == AST_STATE_DOWN) && (state == AST_STATE_RINGING) ) { + ast_device_state_changed(chan->name); } } return 0;