📄 sip_ui.c
字号:
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 + -