view libsip/parse.h @ 199:e6c7ced3c031

mgw: accept zero-length RTP payload as BFI Mainline OsmoBTS now has an option (rtp continuous-streaming) that causes it to emit an RTP packet every 20 ms without gaps, sending a BFI marker in the form of zero-length RTP payload when it has nothing else to send. These codec-independent BFI markers don't indicate TAF, but this provision is a good start. Accept this BFI packet format in themwi-mgw.
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 29 Mar 2023 20:23:43 -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