--- chan_sip.c.orig 2005-12-29 15:23:43.000000000 +0100 +++ chan_sip.c 2005-12-29 02:51:02.000000000 +0100 @@ -2630,8 +2630,9 @@ switch(condition) { case AST_CONTROL_RINGING: if (ast->_state == AST_STATE_RING) { - if (!ast_test_flag(p, SIP_PROGRESS_SENT) || - (ast_test_flag(p, SIP_PROG_INBAND) == SIP_PROG_INBAND_NEVER)) { + if ((!ast_test_flag(p, SIP_PROGRESS_SENT) || + (ast_test_flag(p, SIP_PROG_INBAND) == SIP_PROG_INBAND_NEVER)) && + ast_test_flag(p, SIP_PROG_INBAND) != SIP_PROG_INBAND_YES) { /* Send 180 ringing if out-of-band seems reasonable */ transmit_response(p, "180 Ringing", &p->initreq); ast_set_flag(p, SIP_RINGING);