changeset 87:9e9034ef476c

sip-in: send CONNECT ACK to GSM upon SIP ACK after 200
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 20 Sep 2022 23:20:50 -0800
parents f332ccc240f1
children 97317ede320a
files sip-in/mncc_handle.c sip-in/sip_ack.c
diffstat 2 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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);