From 8ac8621f40894aa01001afe0290ed8828cd583fe Mon Sep 17 00:00:00 2001
From: Josh Roberson <josh@asteriasgi.com>
Date: Tue, 13 Sep 2005 01:38:00 +0000
Subject: [PATCH] don't send a 200 ACK before a 404 on invalid subscriptions
 (Bug #5198)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 769e67ebdc..9040def6fb 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -10213,7 +10213,6 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
 		}
 		if (sipdebug || option_debug > 1)
 			ast_log(LOG_DEBUG, "Adding subscription for extension %s context %s for peer %s\n", p->exten, p->context, p->username);
-		transmit_response(p, "200 OK", req);
 		if (p->autokillid > -1)
 			sip_cancel_destroy(p);	/* Remove subscription expiry for renewals */
 		sip_scheddestroy(p, (p->expiry + 10) * 1000);	/* Set timer for destruction of call at expiration */
@@ -10224,6 +10223,7 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
 			ast_set_flag(p, SIP_NEEDDESTROY);	
 			return 0;
 		} else {
+			transmit_response(p, "200 OK", req);
 			transmit_state_notify(p, firststate, 1, 1);	/* Send first notification */
 			append_history(p, "Subscribestatus", ast_extension_state2str(firststate));
 		}
-- 
GitLab