return NF_ACCEPT;
 }
 
+static int process_prack_response(struct sk_buff *skb,
+                                 const char **dptr, unsigned int *datalen,
+                                 unsigned int cseq, unsigned int code)
+{
+       if ((code >= 100 && code <= 199) ||
+           (code >= 200 && code <= 299))
+               return process_sdp(skb, dptr, datalen, cseq);
+
+       return NF_ACCEPT;
+}
+
 static const struct sip_handler sip_handlers[] = {
        SIP_HANDLER("INVITE", process_sdp, process_invite_response),
        SIP_HANDLER("UPDATE", process_sdp, process_update_response),
+       SIP_HANDLER("ACK", process_sdp, NULL),
+       SIP_HANDLER("PRACK", process_sdp, process_prack_response),
 };
 
 static int process_sip_response(struct sk_buff *skb,