view libsip/parse.h @ 152:7176dc850d7a

sip-in hold/retr error handling: simply send BYE Because we know that the SIP state is CONNECTED at the time of any such error event, we can call initiate_bye() instead of disconnect_sip(), and thereby get rid of struct gsm_mncc_cause which will never be used in this scenario anyway.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 11 Oct 2022 16:11:21 -0800
parents 77d980126efd
children
line wrap: on
line source

/*
 * Here we define the structure we are going to use for receiving
 * and parsing SIP UDP packets.
 */

#define	MAX_SIP_RX_PACKET	3072
#define	MAX_HEADER_FIELDS	64

struct sip_parse_hdr {
	char	*field_name;
	char	*field_value;
};

struct sip_pkt_rx {
	/* recvfrom on UDP socket, input to parser */
	char		pkt_buffer[MAX_SIP_RX_PACKET];
	unsigned	pkt_length;
	/* filled by parser */
	int		parse_msgtype;
	char		*req_method;
	char		*req_uri;
	unsigned	status_code;
	char		*status_str;
	/* header fields */
	struct sip_parse_hdr hdr_fields[MAX_HEADER_FIELDS];
	unsigned	num_hdr_fields;
	/* optional message body */
	char		*msg_body;
	unsigned	msg_body_len;
};

#define	SIP_MSG_TYPE_REQ	1
#define	SIP_MSG_TYPE_RESP	2