Index: channels/chan_sip.c =================================================================== --- channels/chan_sip.c (Revision 242809) +++ channels/chan_sip.c (Arbeitskopie) @@ -13091,25 +13091,15 @@ } break; case 488: /* Not acceptable here */ + case 606: /* Not acceptable here */ xmitres = transmit_request(p, SIP_ACK, seqno, XMIT_UNRELIABLE, FALSE); if (reinvite && p->udptl) { - /* If this is a T.38 call, we should go back to - audio. If this is an audio call - something went - terribly wrong since we don't renegotiate codecs, - only IP/port . - */ p->t38.state = T38_DISABLED; /* Try to reset RTP timers */ ast_rtp_set_rtptimers_onhold(p->rtp); - ast_log(LOG_ERROR, "Got error on T.38 re-invite. Bad configuration. Peer needs to have T.38 disabled.\n"); - /*! \bug Is there any way we can go back to the audio call on both - sides here? - */ - /* While figuring that out, hangup the call */ - if (p->owner && !ast_test_flag(req, SIP_PKT_IGNORE)) - ast_queue_control(p->owner, AST_CONTROL_CONGESTION); - ast_set_flag(&p->flags[0], SIP_NEEDDESTROY); + /* Trigger a reinvite back to audio */ + transmit_reinvite_with_sdp(p); } else { /* We can't set up this call, so give up */ if (p->owner && !ast_test_flag(req, SIP_PKT_IGNORE)) @@ -13645,6 +13635,7 @@ handle_response_invite(p, resp, rest, req, seqno); break; case 488: /* Not acceptable here - codec error */ + case 606: /* Not acceptable here */ if (sipmethod == SIP_INVITE) handle_response_invite(p, resp, rest, req, seqno); break;