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

📄 sip.h

📁 VoIP use SIP protocol interface
💻 H
📖 第 1 页 / 共 2 页
字号:
typedef struct sip_io_pointers_s {	int	(*sip_conn_send)(const sip_conn_object_t, char *, int);	void	(*sip_hold_conn_object)(sip_conn_object_t);	void	(*sip_rel_conn_object)(sip_conn_object_t);	boolean_t	(*sip_conn_is_stream)(sip_conn_object_t);	boolean_t	(*sip_conn_is_reliable)(sip_conn_object_t);	int 	(*sip_conn_remote_address)(sip_conn_object_t, struct sockaddr *,		    socklen_t *);	int 	(*sip_conn_local_address)(sip_conn_object_t, struct sockaddr *,		    socklen_t *);	int	(*sip_conn_transport)(sip_conn_object_t);	int	(*sip_conn_timer1)(sip_conn_object_t);	int	(*sip_conn_timer2)(sip_conn_object_t);	int	(*sip_conn_timer4)(sip_conn_object_t);	int	(*sip_conn_timerd)(sip_conn_object_t);}sip_io_pointers_t;/* Upper layer registerations */typedef struct sip_ulp_pointers_s {	void		(*sip_ulp_recv)(const sip_conn_object_t,			    sip_msg_t, const sip_dialog_t);	uint_t		(*sip_ulp_timeout)(void *, void (*func)(void *),			    struct timeval *);	boolean_t	(*sip_ulp_untimeout)(uint_t);	int		(*sip_ulp_trans_error)(sip_transaction_t, int, void *);	void		(*sip_ulp_dlg_del)(sip_dialog_t, sip_msg_t, void *);	void		(*sip_ulp_trans_state_cb)(sip_transaction_t,			    sip_msg_t, int, int);	void		(*sip_ulp_dlg_state_cb)(sip_dialog_t, sip_msg_t, int,			    int);}sip_ulp_pointers_t;/* SIP stack initialization structure */typedef struct sip_stack_init_s {	int			sip_version;	int			sip_stack_flags;	sip_io_pointers_t	*sip_io_pointers;	sip_ulp_pointers_t	*sip_ulp_pointers;	sip_header_function_t	*sip_function_table;}sip_stack_init_t;/* SIP stack version */#define	SIP_STACK_VERSION		1/* Flags for sip_stack_flags */#define	SIP_STACK_DIALOGS		0x0001extern int		sip_init_conn_object(sip_conn_object_t);extern void		sip_clear_stale_data(sip_conn_object_t);extern void		sip_conn_destroyed(sip_conn_object_t);extern int		(*sip_stack_send)(const sip_conn_object_t, char *, int);extern void		(*sip_refhold_conn)(sip_conn_object_t);extern void		(*sip_refrele_conn)(sip_conn_object_t);extern boolean_t	(*sip_is_conn_stream)(sip_conn_object_t);extern boolean_t	(*sip_is_conn_reliable)(sip_conn_object_t);extern int 		(*sip_conn_rem_addr)(sip_conn_object_t,			    struct sockaddr *, socklen_t *);extern int		(*sip_conn_local_addr)(sip_conn_object_t,			    struct sockaddr *, socklen_t *);extern int		(*sip_conn_transport)(sip_conn_object_t);extern int		(*sip_conn_timer1)(sip_conn_object_t);extern int		(*sip_conn_timer2)(sip_conn_object_t);extern int		(*sip_conn_timer4)(sip_conn_object_t);extern int		(*sip_conn_timerd)(sip_conn_object_t);extern uint_t		(*sip_stack_timeout)(void *, void (*func)(void *),			    struct timeval *);extern boolean_t	(*sip_stack_untimeout)(uint_t);extern sip_msg_t	sip_new_msg();extern void		sip_free_msg(sip_msg_t);extern void		sip_hold_msg(sip_msg_t);extern int		sip_stack_init(sip_stack_init_t *);extern int		sip_sendmsg(sip_conn_object_t, sip_msg_t, sip_dialog_t,			    uint32_t);extern void		sip_process_new_packet(sip_conn_object_t, void *,			    size_t);extern char 		*sip_guid();extern char		*sip_sent_by_to_str(int *);extern int		sip_register_sent_by(char *);extern void		sip_unregister_sent_by(char *);extern void		sip_unregister_all_sent_by();extern char 		*sip_branchid(sip_msg_t);extern uint32_t		sip_get_cseq();extern uint32_t		sip_get_rseq();extern int		sip_get_num_via(sip_msg_t, int *);extern int 		sip_add_from(sip_msg_t, char *, char *, char *,			    boolean_t, char *);extern int 		sip_add_to(sip_msg_t, char *, char *, char *,			    boolean_t, char *);extern int 		sip_add_response_line(sip_msg_t, int, char *);extern int 		sip_add_request_line(sip_msg_t, sip_method_t, char *);extern int 		sip_add_via(sip_msg_t, char *, char *, int, char *);extern int 		sip_add_maxforward(sip_msg_t, uint_t);extern int 		sip_add_callid(sip_msg_t, char *);extern int 		sip_add_cseq(sip_msg_t, sip_method_t, uint32_t);extern int 		sip_add_content_type(sip_msg_t, char *, char *);extern int 		sip_add_content(sip_msg_t, char *);extern int 		sip_add_contact(sip_msg_t, char *, char *, boolean_t,			    char *);extern int 		sip_add_route(sip_msg_t, char *, char *, char *);extern int 		sip_add_record_route(sip_msg_t, char *, char *, char *);extern int 		sip_add_branchid_to_via(sip_msg_t, char *);extern int 		sip_add_accept(sip_msg_t, char *, char *, char *,			    char *);extern int		sip_add_author(sip_msg_t, char *,  char *);extern int		sip_add_authen_info(sip_msg_t, char *);extern int		sip_add_proxy_authen(sip_msg_t, char *,  char *);extern int		sip_add_proxy_author(sip_msg_t, char *, char *);extern int		sip_add_proxy_require(sip_msg_t, char *);extern int		sip_add_www_authen(sip_msg_t, char *, char *);extern int		sip_add_accept_enc(sip_msg_t, char *, char *);extern int		sip_add_accept_lang(sip_msg_t, char *, char *);extern int		sip_add_alert_info(sip_msg_t, char *, char *);extern int		sip_add_allow(sip_msg_t, sip_method_t);extern int		sip_add_call_info(sip_msg_t, char *, char *);extern int		sip_add_content_disp(sip_msg_t, char *, char *);extern int		sip_add_content_enc(sip_msg_t, char *);extern int		sip_add_content_lang(sip_msg_t, char *);extern int		sip_add_date(sip_msg_t, char *);extern int		sip_add_error_info(sip_msg_t, char *, char *);extern int		sip_add_expires(sip_msg_t, int);extern int		sip_add_in_reply_to(sip_msg_t, char *);extern int		sip_add_mime_version(sip_msg_t, char *);extern int		sip_add_min_expires(sip_msg_t, int);extern int		sip_add_org(sip_msg_t, char *);extern int		sip_add_priority(sip_msg_t, char *);extern int		sip_add_reply_to(sip_msg_t, char *, char *, char *,			    boolean_t);extern int		sip_add_require(sip_msg_t, char *);extern int		sip_add_retry_after(sip_msg_t, int, char *, char *);extern int		sip_add_server(sip_msg_t, char *);extern int		sip_add_subject(sip_msg_t, char *);extern int		sip_add_supported(sip_msg_t, char *);extern int		sip_add_tstamp(sip_msg_t, char *, char *);extern int		sip_add_unsupported(sip_msg_t, char *);extern int		sip_add_user_agent(sip_msg_t, char *);extern int		sip_add_warning(sip_msg_t, int, char *, char *);extern int		sip_add_allow_events(sip_msg_t, char *);extern int		sip_add_event(sip_msg_t, char *, char *);extern int		sip_add_substate(sip_msg_t, char *, char *);extern int		sip_add_privacy(sip_msg_t, char *);extern int		sip_add_passertedid(sip_msg_t, char *, char *,			    boolean_t);extern int		sip_add_ppreferredid(sip_msg_t, char *, char *,			    boolean_t);extern int		sip_add_rack(sip_msg_t, int, int, sip_method_t);extern int		sip_add_rseq(sip_msg_t, int);extern const sip_str_t *sip_get_author_scheme(sip_msg_t, int *);extern const sip_str_t *sip_get_author_param(sip_msg_t, char *, int *);extern const sip_str_t *sip_get_authen_info(sip_header_value_t, int *);extern const sip_str_t *sip_get_proxy_authen_scheme(sip_msg_t, int *);extern const sip_str_t *sip_get_proxy_authen_param(sip_msg_t, char *, int *);extern const sip_str_t *sip_get_proxy_author_scheme(sip_msg_t, int *);extern const sip_str_t *sip_get_proxy_author_param(sip_msg_t, char *, int *);extern const sip_str_t *sip_get_proxy_require(sip_header_value_t, int *);extern const sip_str_t *sip_get_www_authen_scheme(sip_msg_t, int *);extern const sip_str_t *sip_get_www_authen_param(sip_msg_t, char *, int *);extern const sip_str_t	*sip_get_allow_events(sip_header_value_t, int *);extern const sip_str_t	*sip_get_event(sip_msg_t, int *);extern const sip_str_t	*sip_get_substate(sip_msg_t, int *);extern const sip_str_t	*sip_get_accept_type(sip_header_value_t, int *);extern const sip_str_t	*sip_get_accept_sub_type(sip_header_value_t, int *);extern const sip_str_t	*sip_get_accept_enc(sip_header_value_t, int *);extern const sip_str_t	*sip_get_accept_lang(sip_header_value_t, int *);extern const sip_str_t	*sip_get_alert_info_uri(sip_header_value_t, int *);extern sip_method_t	sip_get_allow_method(sip_header_value_t, int *);extern int		sip_get_min_expires(sip_msg_t, int *);extern const sip_str_t	*sip_get_mime_version(sip_msg_t, int *);extern const sip_str_t	*sip_get_org(sip_msg_t, int *);extern const sip_str_t	*sip_get_priority(sip_msg_t, int *);extern const sip_str_t	*sip_get_replyto_display_name(sip_msg_t, int *);extern const sip_str_t	*sip_get_replyto_uri_str(sip_msg_t, int *);extern const sip_str_t	*sip_get_date_time(sip_msg_t, int *);extern int		sip_get_date_day(sip_msg_t, int *);extern const sip_str_t	*sip_get_date_month(sip_msg_t, int *);extern const sip_str_t	*sip_get_date_wkday(sip_msg_t, int *);extern int		sip_get_date_year(sip_msg_t, int *);extern const sip_str_t	*sip_get_date_timezone(sip_msg_t, int *);extern const sip_str_t	*sip_get_content_disp(sip_msg_t, int *);extern const sip_str_t	*sip_get_content_lang(sip_header_value_t, int *);extern const sip_str_t	*sip_get_content_enc(sip_header_value_t, int *);extern const sip_str_t	*sip_get_error_info_uri(sip_header_value_t, int *);extern int		sip_get_expires(sip_msg_t, int *);extern const sip_str_t	*sip_get_require(sip_header_value_t, int *);extern const sip_str_t	*sip_get_subject(sip_msg_t, int *);extern const sip_str_t	*sip_get_supported(sip_header_value_t, int *);extern const sip_str_t	*sip_get_tstamp_delay(sip_msg_t, int *);extern const sip_str_t	*sip_get_tstamp_value(sip_msg_t, int *);extern const sip_str_t	*sip_get_unsupported(sip_header_value_t, int *);extern const sip_str_t	*sip_get_server(sip_msg_t, int *);extern const sip_str_t	*sip_get_user_agent(sip_msg_t, int *);extern int		sip_get_warning_code(sip_header_value_t, int *);extern const sip_str_t	*sip_get_warning_agent(sip_header_value_t, int *);extern const sip_str_t	*sip_get_warning_text(sip_header_value_t, int *);extern const sip_str_t	*sip_get_call_info_uri(sip_header_value_t, int *);extern const sip_str_t	*sip_get_in_reply_to(sip_header_value_t, int *);extern int		sip_get_retry_after_time(sip_msg_t, int *);extern const sip_str_t	*sip_get_retry_after_cmts(sip_msg_t, int *);extern const sip_str_t	*sip_get_passertedid_display_name(sip_header_value_t,			    int *);extern const sip_str_t	*sip_get_passertedid_uri_str(sip_header_value_t,			    int *);extern const sip_str_t	*sip_get_ppreferredid_display_name(sip_header_value_t,			    int *);extern const sip_str_t	*sip_get_ppreferredid_uri_str(sip_header_value_t,			    int *);extern const sip_str_t	*sip_get_priv_value(sip_header_value_t, int *);extern int		sip_get_rack_resp_num(sip_msg_t, int *);extern int		sip_get_rack_cseq_num(sip_msg_t, int *);extern sip_method_t	sip_get_rack_method(sip_msg_t, int *);extern int		sip_get_rseq_resp_num(sip_msg_t, int *);extern int		sip_copy_start_line(sip_msg_t, sip_msg_t);extern int		sip_delete_start_line(sip_msg_t sip_msg);extern int		sip_copy_header(sip_msg_t, sip_header_t, char *);extern int		sip_copy_header_by_name(sip_msg_t, sip_msg_t, char *,			    char *);extern int		sip_copy_all_headers(sip_msg_t, sip_msg_t);extern int		sip_delete_header_by_name(sip_msg_t, char *);extern int		sip_add_header(sip_msg_t, char *);extern sip_header_t	sip_add_param(sip_header_t, char *, int *);extern int		sip_delete_header(sip_header_t);extern int		sip_delete_value(sip_header_t, sip_header_value_t);extern sip_msg_t	sip_clone_msg(const sip_msg_t);extern sip_msg_t	sip_create_response(const sip_msg_t, int, char *,			    char *, char *);extern int		sip_create_OKack(const sip_msg_t, sip_msg_t, char *,			    char *, int, char *);extern char 		*sip_get_resp_desc(int);extern char		*sip_get_branchid(const sip_msg_t, int *);extern const struct sip_header	*sip_get_header(sip_msg_t, char *, sip_header_t,				    int *);extern const struct sip_value	*sip_get_header_value(				    const struct sip_header *, int *);extern const struct sip_value	*sip_get_next_value(sip_header_value_t, int *);extern const sip_str_t		*sip_get_param_value(sip_header_value_t,				    char *, int *);extern const sip_param_t	*sip_get_params(sip_header_value_t, int *);extern boolean_t		sip_is_param_present(const sip_param_t *,				    char *, int);extern char		*sip_msg_to_str(sip_msg_t, int *);extern char		*sip_hdr_to_str(sip_header_t, int *);extern char		*sip_reqline_to_str(sip_msg_t, int *);extern char		*sip_respline_to_str(sip_msg_t, int *);extern boolean_t	sip_msg_is_request(const sip_msg_t, int *);extern boolean_t	sip_msg_is_response(const sip_msg_t, int *);extern sip_method_t	sip_get_request_method(const sip_msg_t, int *);extern const sip_str_t	*sip_get_request_uri_str(sip_msg_t, int *);extern int		sip_get_response_code(sip_msg_t, int *);extern const sip_str_t	*sip_get_response_phrase(sip_msg_t, int *);extern const sip_str_t	*sip_get_sip_version(sip_msg_t, int *);extern int		sip_get_msg_len(sip_msg_t, int *);extern const sip_str_t	*sip_get_route_uri_str(sip_header_value_t, int *);extern const sip_str_t	*sip_get_route_display_name(sip_header_value_t, int *);extern const sip_str_t	*sip_get_contact_uri_str(sip_header_value_t, int *);extern const sip_str_t	*sip_get_contact_display_name(sip_header_value_t,			    int *);extern const sip_str_t	*sip_get_from_uri_str(sip_msg_t, int *);extern const sip_str_t	*sip_get_from_display_name(sip_msg_t, int *);extern const sip_str_t	*sip_get_from_tag(sip_msg_t, int *);extern const sip_str_t	*sip_get_to_uri_str(sip_msg_t, int *);extern const sip_str_t	*sip_get_to_display_name(sip_msg_t, int *);extern const sip_str_t	*sip_get_to_tag(sip_msg_t, int *);extern const sip_str_t	*sip_get_callid(sip_msg_t, int *);extern int		sip_get_callseq_num(sip_msg_t, int *);extern sip_method_t	sip_get_callseq_method(sip_msg_t, int *);extern const sip_str_t	*sip_get_via_sent_by_host(sip_header_value_t, int *);extern int		sip_get_via_sent_by_port(sip_header_value_t, int *);extern const sip_str_t	*sip_get_via_sent_protocol_version(sip_header_value_t,			    int *);extern const sip_str_t	*sip_get_via_sent_protocol_name(sip_header_value_t,			    int *);extern const sip_str_t	*sip_get_via_sent_transport(sip_header_value_t,			    int *);extern int 		sip_get_maxforward(sip_msg_t, int *);extern int 		sip_get_content_length(sip_msg_t, int *);extern const sip_str_t	*sip_get_content_type(sip_msg_t, int *);extern const sip_str_t	*sip_get_content_sub_type(sip_msg_t, int *);extern char		*sip_get_content(sip_msg_t, int *);extern sip_msg_t	sip_create_dialog_req(sip_method_t, sip_dialog_t,			    char *, char *, int, char *, uint32_t, int);extern int			sip_get_dialog_state(sip_dialog_t, int *);extern int			sip_get_dialog_method(sip_dialog_t, int *);extern const sip_str_t		*sip_get_dialog_callid(sip_dialog_t, int *);extern const sip_str_t		*sip_get_dialog_local_tag(sip_dialog_t, int *);extern const sip_str_t		*sip_get_dialog_remote_tag(sip_dialog_t, int *);extern const struct sip_uri	*sip_get_dialog_local_uri(sip_dialog_t, int *);extern const struct sip_uri	*sip_get_dialog_remote_uri(sip_dialog_t, int *);extern const struct sip_uri	*sip_get_dialog_remote_target_uri(sip_dialog_t,				    int *);extern const sip_str_t		*sip_get_dialog_route_set(sip_dialog_t, int *);extern boolean_t		sip_is_dialog_secure(sip_dialog_t, int *);extern uint32_t			sip_get_dialog_local_cseq(sip_dialog_t, int *);extern uint32_t			sip_get_dialog_remote_cseq(sip_dialog_t, int *);extern int			sip_get_dialog_type(sip_dialog_t dialog, int *);extern void			sip_hold_dialog(sip_dialog_t);extern void			sip_release_dialog(sip_dialog_t);extern void			sip_delete_dialog(sip_dialog_t);extern sip_uri_t		sip_parse_uri(sip_str_t *, int *);extern void			sip_free_parsed_uri(sip_uri_t);extern boolean_t		sip_is_sipuri(const struct sip_uri *);extern const sip_str_t		*sip_get_uri_scheme(const struct sip_uri *,				    int *);extern const sip_str_t		*sip_get_uri_user(const struct sip_uri *,				    int *);extern const sip_str_t		*sip_get_uri_password(const struct sip_uri *,				    int *);extern const sip_str_t		*sip_get_uri_host(const struct sip_uri *,				    int *);extern int			sip_get_uri_port(const struct sip_uri *,				    int *error);extern const sip_param_t	*sip_get_uri_params(const struct sip_uri *,				    int *);extern const sip_str_t		*sip_get_uri_headers(const struct sip_uri *,				    int *);extern const sip_str_t		*sip_get_uri_opaque(const struct sip_uri *,				    int *);extern const sip_str_t		*sip_get_uri_query(const struct sip_uri *,				    int *);extern const sip_str_t		*sip_get_uri_path(const struct sip_uri *,				    int *);extern const sip_str_t		*sip_get_uri_regname(const struct sip_uri *,				    int *);extern boolean_t		sip_is_uri_teluser(const struct sip_uri *);extern int			sip_get_uri_errflags(const struct sip_uri *,				    int *);extern char			*sip_uri_errflags_to_str(int);extern const struct sip_uri	*sip_get_request_uri(sip_msg_t, int *);extern const struct sip_uri	*sip_get_uri_parsed(sip_header_value_t, int *);/* Transaction functions */extern const struct sip_xaction	*sip_get_trans(sip_msg_t, int, int *);extern char 			*sip_get_trans_branchid(sip_transaction_t,				    int *);extern sip_method_t		sip_get_trans_method(sip_transaction_t,				    int *);extern int			sip_get_trans_state(sip_transaction_t, int *);extern const struct sip_message	*sip_get_trans_resp_msg(sip_transaction_t,				    int *);extern const struct sip_message	*sip_get_trans_orig_msg(sip_transaction_t,				    int *);extern void			sip_hold_trans(sip_transaction_t);extern void			sip_release_trans(sip_transaction_t);extern const struct sip_conn_object	*sip_get_trans_conn_obj(					    sip_transaction_t, int *);#ifdef	__cplusplus}#endif#endif	/* _SIP_H */

⌨️ 快捷键说明

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