diff sip-in/call.h @ 60:02761f1ae5e5

sip-in INVITE processing: got as far as CRCX completion
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 11 Sep 2022 15:42:54 -0800
parents
children 75b7a7b61824
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sip-in/call.h	Sun Sep 11 15:42:54 2022 -0800
@@ -0,0 +1,65 @@
+/*
+ * struct call defined in this header file is the big daddy:
+ * it is the main call state structure for themwi-sip-in.
+ */
+
+struct call {
+	/* call list management */
+	char		*sip_call_id;
+	struct call	*next;
+	/* filled from initial INVITE */
+	struct sockaddr_in udp_sin;
+	char		*invite_from;
+	char		*invite_to;
+	char		*invite_via;
+	unsigned	invite_cseq;
+	char		called_nanp[11];
+	char		*from_uri;
+	unsigned	from_uri_len;
+	char		*from_user;
+	unsigned	from_user_len;
+	int		use_100rel;
+	/* PSTN side RTP info */
+	struct sockaddr_in pstn_rtp_local;
+	struct sockaddr_in pstn_rtp_remote;
+	int		use_pcma;
+	/* GSM side RTP info */
+	struct sockaddr_storage gsm_rtp_osmo;
+	struct sockaddr_storage gsm_rtp_tmgw;
+	uint32_t	gsm_payload_type;
+	uint32_t	gsm_payload_msg_type;
+	/* state machines */
+	uint32_t	overall_state;
+	uint32_t	sip_state;
+	uint32_t	mgw_state;
+	uint32_t	mgw_ep_id;
+	uint32_t	mgw_xact;
+	uint32_t	mgw_xact_id;
+	uint32_t	sdp_addend;
+	char		invite_fail[80];
+	unsigned	sip_tx_count;
+};
+
+#define	OVERALL_STATE_CRCX		1
+#define	OVERALL_STATE_CALL_GSM		2
+#define	OVERALL_STATE_ALERTING		3
+#define	OVERALL_STATE_ANSWERED		4
+#define	OVERALL_STATE_CONNECTED		5
+#define	OVERALL_STATE_TEARDOWN		6
+#define	OVERALL_STATE_DEAD_SIP		7
+
+#define	SIP_STATE_INVITE_PROC		1
+#define	SIP_STATE_RINGING		2
+#define	SIP_STATE_RINGING_PRACK		3
+#define	SIP_STATE_INVITE_200		4
+#define	SIP_STATE_CONNECTED		5
+#define	SIP_STATE_BYE_SENT		6
+#define	SIP_STATE_INVITE_ERR		7
+#define	SIP_STATE_ENDED			8
+#define	SIP_STATE_MSG_SIZE_ERR		9
+
+#define	MGW_STATE_NO_EXIST		0
+#define	MGW_STATE_ALLOCATED		1
+#define	MGW_STATE_CONNECTING		2
+#define	MGW_STATE_COMPLETE		3
+#define	MGW_STATE_DELETING		4