# HG changeset patch
# User Mychaela Falconia <falcon@freecalypso.org>
# Date 1663744850 28800
# Node ID 9e9034ef476c601a27f1ee233a4820dfc9c96607
# Parent  f332ccc240f18d1ed5f75c660ed66ff3a0680f31
sip-in: send CONNECT ACK to GSM upon SIP ACK after 200

diff -r f332ccc240f1 -r 9e9034ef476c sip-in/mncc_handle.c
--- a/sip-in/mncc_handle.c	Tue Sep 20 23:14:50 2022 -0800
+++ b/sip-in/mncc_handle.c	Tue Sep 20 23:20:50 2022 -0800
@@ -24,6 +24,20 @@
 	.value		= GSM48_CC_CAUSE_NORMAL_UNSPEC,
 };
 
+void
+send_mncc_connect_ack(call)
+	struct call *call;
+{
+	struct gsm_mncc ack;
+
+	bzero(&ack, sizeof(struct gsm_mncc));
+	ack.msg_type = MNCC_SETUP_COMPL_REQ;
+	ack.callref = call->mncc_callref;
+	send_mncc_to_gsm(&ack, sizeof(struct gsm_mncc));
+	call->mncc_state = MNCC_STATE_CONNECTED;
+	call->overall_state = OVERALL_STATE_CONNECTED;
+}
+
 static void
 handle_alerting(call, msg)
 	struct call *call;
diff -r f332ccc240f1 -r 9e9034ef476c sip-in/sip_ack.c
--- a/sip-in/sip_ack.c	Tue Sep 20 23:14:50 2022 -0800
+++ b/sip-in/sip_ack.c	Tue Sep 20 23:20:50 2022 -0800
@@ -37,6 +37,7 @@
 		switch (call->overall_state) {
 		case OVERALL_STATE_ANSWERED:
 			call->sip_state = SIP_STATE_CONNECTED;
+			send_mncc_connect_ack(call);
 			break;
 		case OVERALL_STATE_TEARDOWN:
 			initiate_bye(call);