diff -Nurp -x .svn a/channels/chan_sip.c b/channels/chan_sip.c --- a/channels/chan_sip.c 2009-09-15 01:49:22.859014584 -0400 +++ b/channels/chan_sip.c 2009-09-15 01:51:23.515075235 -0400 @@ -18719,16 +18719,18 @@ static void handle_response(struct sip_p pbx_builtin_setvar_helper(owner, causevar, causeval); } - /* Acknowledge whatever it is destined for */ - if ((resp >= 100) && (resp <= 199)) { - ack_res = __sip_semi_ack(p, seqno, 0, sipmethod); - } else { - ack_res = __sip_ack(p, seqno, 0, sipmethod); - } + if (p->socket.type & SIP_TRANSPORT_UDP) { + /* Acknowledge whatever it is destined for */ + if ((resp >= 100) && (resp <= 199)) { + ack_res = __sip_semi_ack(p, seqno, 0, sipmethod); + } else { + ack_res = __sip_ack(p, seqno, 0, sipmethod); + } - if (ack_res == FALSE) { - append_history(p, "Ignore", "Ignoring this retransmit\n"); - return; + if (ack_res == FALSE) { + append_history(p, "Ignore", "Ignoring this retransmit\n"); + return; + } } /* If this is a NOTIFY for a subscription clear the flag that indicates that we have a NOTIFY pending */