⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sip_ui.c

📁 VoIP use SIP protocol interface
💻 C
📖 第 1 页 / 共 4 页
字号:
const sip_str_t *sip_get_accept_sub_type(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STRS_VAL, B_FALSE,	    error);	return (r);}/* accept-encode can have more than one value */const sip_str_t *sip_get_accept_enc(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* accept-language can have more than one value */const sip_str_t *sip_get_accept_lang(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get URI from the alert-info header */const sip_str_t *sip_get_alert_info_uri(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get method from allow header */sip_method_tsip_get_allow_method(sip_header_value_t value, int *error){	int		*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (int *)sip_get_val_from_hdr(val, SIP_INT_VAL, B_FALSE, error);	return (r == NULL ? -1 : (sip_method_t)*r);}/* get URI from call-info header */const sip_str_t *sip_get_call_info_uri(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get content-disposition value */const sip_str_t *sip_get_content_disp(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_CONTENT_DIS,	    SIP_STR_VAL, B_FALSE, B_FALSE, error);	return (r);}/* get content-encoding value */const sip_str_t *sip_get_content_enc(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get content-language value */const sip_str_t *sip_get_content_lang(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* sip_get_date_time, day, wkday, month, year */#define	D_TIME		0x01#define	D_DAY		0x02#define	D_MONTH		0x03#define	D_YEAR		0x04#define	D_WKDAY		0x05#define	D_TIMEZONE	0x06/* get date information */static void *sip_get_date_val(sip_msg_t msg, int type, int *error){	const _sip_header_t	*header;	sip_hdr_value_t		*val;	if (error != NULL)		*error = 0;	if (msg == NULL) {		if (error != NULL)			*error = EINVAL;		return (NULL);	}	header = sip_get_header(msg, SIP_DATE, NULL, error);	if (header == NULL) {		if (error != NULL)			*error = EINVAL;		return (NULL);	}	val = (sip_hdr_value_t *)sip_get_header_value(header, error);	if (val == NULL) {		if (error != NULL)			*error = EPROTO;		return (NULL);	}	if (error != NULL && val->sip_value.value_state == SIP_VALUE_BAD)		*error = EPROTO;	switch (type) {		case (D_TIME):			return (&(val->date_t));		case (D_DAY):			return (&(val->date_d));		case (D_MONTH):			return (&(val->date_m));		case (D_YEAR):			return (&(val->date_y));		case (D_WKDAY):			return (&(val->date_wd));		case (D_TIMEZONE):			return (&(val->date_tz));	}	if (error != NULL)		*error = EINVAL;	return (NULL);}/* get time value */const sip_str_t *sip_get_date_time(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_date_val(sip_msg, D_TIME, error);	return (r);}/* get day */intsip_get_date_day(sip_msg_t sip_msg, int *error){	int	*r = NULL;	r = sip_get_date_val(sip_msg, D_DAY, error);	return (r == NULL ? -1 : *(int *)r);}/* get month */const sip_str_t *sip_get_date_month(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_date_val(sip_msg, D_MONTH, error);	return (r);}/* get year */intsip_get_date_year(sip_msg_t sip_msg, int *error){	int	*r;	r = (int *)sip_get_date_val(sip_msg, D_YEAR, error);	return (r == NULL ? -1 : *r);}/* get day of the week */const sip_str_t *sip_get_date_wkday(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_date_val(sip_msg, D_WKDAY, error);	return (r);}/* get the timezone */const sip_str_t *sip_get_date_timezone(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_date_val(sip_msg, D_TIMEZONE, error);	return (r);}/* get error-info URI */const sip_str_t *sip_get_error_info_uri(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get priv-value from privacy */const sip_str_t *sip_get_priv_value(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* return expires value */intsip_get_expires(sip_msg_t sip_msg, int *error){	int	*r;	r = (int *)sip_get_val_from_msg(sip_msg, SIP_EXPIRE, SIP_INT_VAL,	    B_FALSE, B_FALSE, error);	if (r == NULL)		return (-1);	return (*r);}/* get reply-to value */const sip_str_t *sip_get_in_reply_to(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get min-expires value */intsip_get_min_expires(sip_msg_t sip_msg, int *error){	int	*r;	r = (int *)sip_get_val_from_msg(sip_msg, SIP_MIN_EXPIRE, SIP_INT_VAL,	    B_FALSE, B_FALSE, error);	if (r == NULL)		return (-1);	return (*r);}/* get mime-version */const sip_str_t *sip_get_mime_version(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_MIME_VERSION,	    SIP_STR_VAL, B_FALSE, B_FALSE, error);	return (r);}/* get organization value */const sip_str_t *sip_get_org(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_ORGANIZATION,	    SIP_STR_VAL, B_FALSE, B_TRUE, error);	return (r);}/* get priority value */const sip_str_t *sip_get_priority(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_PRIORITY,	    SIP_STR_VAL, B_FALSE, B_FALSE, error);	return (r);}/* get display name */const sip_str_t *sip_get_pidentity_display_name(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STRS_VAL, B_TRUE, error);	return (r);}/* get URI */const sip_str_t *sip_get_pidenty_uri_str(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STRS_VAL, B_FALSE,	    error);	return (r);}/* get display name from passerted-identity header */const sip_str_t *sip_get_passertedid_display_name(sip_header_value_t value, int *error){	return (sip_get_pidentity_display_name(value, error));}/* get URI from passerted-identity header */const sip_str_t *sip_get_passertedid_uri_str(sip_header_value_t value, int *error){	return (sip_get_pidenty_uri_str(value, error));}/* get display name from ppreferred-identity header */const sip_str_t *sip_get_ppreferredid_display_name(sip_header_value_t value, int *error){	return (sip_get_pidentity_display_name(value, error));}/* get URI from ppreferred-identity header */const sip_str_t *sip_get_ppreferredid_uri_str(sip_header_value_t value, int *error){	return (sip_get_pidenty_uri_str(value, error));}#define	SIP_RACK_RESP_NUM	1#define	SIP_RACK_CSEQ_NUM	2#define	SIP_RACK_METHOD		3/* Get rack information */void *sip_get_rack_val(sip_msg_t msg, int type, int *error){	const _sip_header_t	*header;	sip_hdr_value_t		*val;	if (error != NULL)		*error = 0;	if (msg == NULL)  {		if (error != NULL)			*error = EINVAL;		return (NULL);	}	header = sip_get_header(msg, SIP_RACK, NULL, error);	if (header == NULL) {		if (error != NULL)			*error = EINVAL;		return (NULL);	}	val = (sip_hdr_value_t *)sip_get_header_value(header, error);	if (val == NULL) {		if (error != NULL)			*error = EPROTO;		return (NULL);	}	if (error != NULL && val->sip_value.value_state == SIP_VALUE_BAD)		*error = EPROTO;	switch (type) {		case SIP_RACK_RESP_NUM:			return (&(val->rack_resp));		case SIP_RACK_CSEQ_NUM:			return (&(val->rack_cseq));		case SIP_RACK_METHOD:			return (&(val->rack_method));	}	if (error != NULL)		*error = EINVAL;	return (NULL);}/* get response number for rack */intsip_get_rack_resp_num(sip_msg_t sip_msg, int *error){	int	*r;	r = (int *)sip_get_rack_val(sip_msg, SIP_RACK_RESP_NUM, error);	return (r == NULL ? -1 : *r);}/* get sequence number for rack */intsip_get_rack_cseq_num(sip_msg_t sip_msg, int *error){	int	*r;	r = (int *)sip_get_rack_val(sip_msg, SIP_RACK_CSEQ_NUM, error);	return (r == NULL ? -1 : *r);}/* get method for rack */sip_method_tsip_get_rack_method(sip_msg_t sip_msg, int *error){	sip_method_t	*r;	r = (sip_method_t *)sip_get_rack_val(sip_msg, SIP_RACK_METHOD, error);	return (r == NULL ? -1 : *r);}/* get response number from rseq */intsip_get_rseq_resp_num(sip_msg_t sip_msg, int *error){	int	*r;	r = (int *)sip_get_val_from_msg(sip_msg, SIP_RSEQ, SIP_INT_VAL,	    B_FALSE, B_FALSE, error);	return (r == NULL ? -1 : *r);}/* get reply-to display name */const sip_str_t *sip_get_replyto_display_name(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_REPLYTO,	    SIP_STRS_VAL, B_TRUE, B_FALSE, error);	return (r);}/* get reply-to URI */const sip_str_t *sip_get_replyto_uri_str(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_REPLYTO,	    SIP_STRS_VAL, B_FALSE, B_FALSE, error);	return (r);}/* get require value */const sip_str_t *sip_get_require(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get retry-after time */intsip_get_retry_after_time(sip_msg_t sip_msg, int *error){	int	*t;	t = (int *)sip_get_val_from_msg(sip_msg, SIP_RETRY_AFTER,	    SIP_INTSTR_VAL, B_FALSE, B_FALSE, error);	if (t == NULL)		return (-1);	return (*t);}/* get retry-after comments */const sip_str_t *sip_get_retry_after_cmts(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_RETRY_AFTER,	    SIP_INTSTR_VAL, B_TRUE, B_FALSE, error);	return (r);}/* get subject */const sip_str_t *sip_get_subject(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_SUBJECT, SIP_STR_VAL,	    B_FALSE, B_TRUE, error);	return (r);}/* get supported */const sip_str_t *sip_get_supported(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get timestamp delay */const sip_str_t *sip_get_tstamp_delay(sip_msg_t sip_msg, int *error){	sip_str_t	*t;	t = sip_get_val_from_msg(sip_msg, SIP_TIMESTAMP, SIP_STRS_VAL, B_FALSE,	    B_FALSE, error);	return (t);}/* get timestamp */const sip_str_t *sip_get_tstamp_value(sip_msg_t sip_msg, int *error){	sip_str_t	*t;	t = sip_get_val_from_msg(sip_msg, SIP_TIMESTAMP, SIP_STRS_VAL, B_TRUE,	    B_FALSE, error);	return (t);}/* get unsupported value */const sip_str_t *sip_get_unsupported(sip_header_value_t value, int *error){	sip_str_t	*r;	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	r = (sip_str_t *)sip_get_val_from_hdr(val, SIP_STR_VAL, B_FALSE, error);	return (r);}/* get server value from message */const sip_str_t *sip_get_server(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = (sip_str_t *)sip_get_val_from_msg(sip_msg, SIP_SERVER, SIP_STR_VAL,	    B_FALSE, B_FALSE, error);	return (r);}/* get user-agent value */const sip_str_t *sip_get_user_agent(sip_msg_t sip_msg, int *error){	sip_str_t	*r;	r = sip_get_val_from_msg(sip_msg, SIP_USER_AGENT, SIP_STR_VAL, B_FALSE,	    B_FALSE, error);	return (r);}#define	W_CODE	0x05#define	W_AGENT	0x06#define	W_TEXT	0x07/* get warning info */static void *sip_get_warninfo(sip_header_value_t value, int info, int *error){	sip_hdr_value_t	*val = (sip_hdr_value_t *)value;	if (error != NULL)		*error = 0;	if (val == NULL) {		if (error != NULL)			*error = EINVAL;		return (NULL);	}	if (val->sip_value_state == SIP_VALUE_BAD) {		*error = EPROTO;		return (NULL);	}	switch (info) {		case (W_CODE):			return (&(val->warn_code));		case (W_AGENT):			return (&(val->warn_agt));		case (W_TEXT):			return (&(val->warn_text));	}	if (error != NULL)		*error = EINVAL;	return (NULL);}/* get warning code */intsip_get_warning_code(sip_header_value_t value, int *error)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -