view libsip/parse.h @ 112:6aa63cf4620a

sip-in call clearing: select timeout implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 28 Sep 2022 18:59:55 -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