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

/*
 * Some utility functions for working with SIP URIs.
 */

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

user_from_sip_uri(uri, outbuf, maxlen)
	char *uri, *outbuf;
	unsigned maxlen;
{
	char *cp, *dp;
	unsigned n;

	if (strncasecmp(uri, "sip:", 4))
		return(-1);
	cp = uri + 4;
	dp = outbuf;
	n = 0;
	for (;;) {
		if (!*cp)
			return(-1);
		if (*cp == '@')
			break;
		if (n >= maxlen)
			return(-2);
		*dp++ = *cp++;
		n++;
	}
	*dp = '\0';
	return(0);
}