view libsip/get_header.c @ 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 5427b26525cd
children
line wrap: on
line source

/*
 * In this module we implement functions for retrieving individual
 * header fields from struct sip_pkt_rx.
 */

#include <string.h>
#include <strings.h>
#include "parse.h"

char *
get_single_header(msg, name, altname, dupp)
	struct sip_pkt_rx *msg;
	char *name, *altname;
	int *dupp;
{
	unsigned n;
	char *ret;

	for (n = 0; n < msg->num_hdr_fields; n++) {
		if (!strcasecmp(msg->hdr_fields[n].field_name, name))
			break;
		if (altname &&
		    !strcasecmp(msg->hdr_fields[n].field_name, altname))
			break;
	}
	if (n >= msg->num_hdr_fields)
		return 0;
	ret = msg->hdr_fields[n].field_value;
	if (!dupp)
		return ret;
	for (n++; n < msg->num_hdr_fields; n++) {
		if (!strcasecmp(msg->hdr_fields[n].field_name, name))
			*dupp = 1;
		if (altname &&
		    !strcasecmp(msg->hdr_fields[n].field_name, altname))
			*dupp = 1;
	}
	return ret;
}