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

📄 sip_msg.h

📁 基于sip协议的网络电话源码
💻 H
📖 第 1 页 / 共 5 页
字号:
PJ_DECL(void*)  pjsip_msg_find_remove_hdr( pjsip_msg *msg, 					   pjsip_hdr_e hdr, void *start);/**  * Add a header to the message, putting it last in the header list. * * @param msg	    The message. * @param hdr	    The header to add. * * @bug Once the header is put in a list (or message), it can not be put in  *      other list (or message). Otherwise Real Bad Thing will happen. */PJ_INLINE(void) pjsip_msg_add_hdr( pjsip_msg *msg, pjsip_hdr *hdr ){    pj_list_insert_before(&msg->hdr, hdr);}/**  * Add header field to the message, putting it in the front of the header list. * * @param msg	The message. * @param hdr	The header to add. * * @bug Once the header is put in a list (or message), it can not be put in  *      other list (or message). Otherwise Real Bad Thing will happen. */PJ_INLINE(void) pjsip_msg_insert_first_hdr( pjsip_msg *msg, pjsip_hdr *hdr ){    pj_list_insert_after(&msg->hdr, hdr);}/**  * Print the message to the specified buffer.  * * @param msg	The message to print. * @param buf	The buffer * @param size	The size of the buffer. * * @return	The length of the printed characters (in bytes), or NEGATIVE *		value if the message is too large for the specified buffer. */PJ_DECL(pj_ssize_t) pjsip_msg_print(const pjsip_msg *msg, 				    char *buf, pj_size_t size);/* * Some usefull macros to find common headers. *//** * Find Call-ID header. * * @param msg	The message. * @return	Call-ID header instance. */#define PJSIP_MSG_CID_HDR(msg) \	    ((pjsip_cid_hdr*)pjsip_msg_find_hdr(msg, PJSIP_H_CALL_ID, NULL))/** * Find CSeq header. * * @param msg	The message. * @return	CSeq header instance. */#define PJSIP_MSG_CSEQ_HDR(msg) \	    ((pjsip_cseq_hdr*)pjsip_msg_find_hdr(msg, PJSIP_H_CSEQ, NULL))/** * Find From header. * * @param msg	The message. * @return	From header instance. */#define PJSIP_MSG_FROM_HDR(msg) \	    ((pjsip_from_hdr*)pjsip_msg_find_hdr(msg, PJSIP_H_FROM, NULL))/** * Find To header. * * @param msg	The message. * @return	To header instance. */#define PJSIP_MSG_TO_HDR(msg) \	    ((pjsip_to_hdr*)pjsip_msg_find_hdr(msg, PJSIP_H_TO, NULL))/** * @} *//* **************************************************************************//** * @addtogroup PJSIP_MSG_HDR * @{ *//** * Generic SIP header, which contains hname and a string hvalue. * Note that this header is not supposed to be used as 'base' class for headers. */typedef struct pjsip_generic_string_hdr{    /** Standard header field. */    PJSIP_DECL_HDR_MEMBER(struct pjsip_generic_string_hdr);    /** hvalue */    pj_str_t hvalue;} pjsip_generic_string_hdr;/** * Create a new instance of generic header. A generic header can have an * arbitrary header name. * * @param pool	    The pool. * @param hname	    The header name to be assigned to the header, or NULL to *		    assign the header name with some string. * @param hvalue    Optional string to be assigned as the value. * * @return	    The header, or THROW exception. */PJ_DECL(pjsip_generic_string_hdr*) pjsip_generic_string_hdr_create( pj_pool_t *pool, 				 const pj_str_t *hname,				 const pj_str_t *hvalue);/** * Initialize a preallocated memory with the header structure. This function * should only be called when application uses its own memory allocation to * allocate memory block for the specified header (e.g. in C++, when the  * header is allocated with "new" operator). * For normal applications, they should use pjsip_xxx_hdr_create() instead, * which allocates memory and initialize it in one go. * * @param pool	    Pool for additional memory allocation if required. * @param mem	    Pre-allocated memory to be initialized as the header. * @param hname	    The header name to be assigned to the header, or NULL to *		    assign the header name with some string later. * @param hvalue    Optional string to be assigned as the value. * * @return	    The header instance, which points to the same memory  *		    location as the mem argument. */PJ_DECL(pjsip_generic_string_hdr*) pjsip_generic_string_hdr_init( pj_pool_t *pool,			       void *mem,			       const pj_str_t *hname,			       const pj_str_t *hvalue);/** * Construct a generic string header without allocating memory from the pool. * This function is useful to create a temporary header which life-time is * very short (for example, creating the header in the stack to be passed * as argument to a function which will copy the header). * * @param h	    The header to be initialized. * @param hname	    The header name to be assigned to the header, or NULL to *		    assign the header name with some string. * @param hvalue    Optional string to be assigned as the value. * * @return	    The header, or THROW exception. */PJ_DECL(void) pjsip_generic_string_hdr_init2(pjsip_generic_string_hdr *h,					     pj_str_t *hname,					     pj_str_t *hvalue);/* **************************************************************************//** * Generic SIP header, which contains hname and a string hvalue. */typedef struct pjsip_generic_int_hdr{    PJSIP_DECL_HDR_MEMBER(struct pjsip_generic_int_hdr); /**< Standard header field. */    pj_int32_t ivalue;				    /**< ivalue */} pjsip_generic_int_hdr;/** * Create a new instance of generic header. A generic header can have an * arbitrary header name. * * @param pool	    The pool. * @param hname	    The header name to be assigned to the header, or NULL to *		    assign the header name with some string. * @param hvalue    The value to be assigned to the header. * * @return	    The header, or THROW exception. */PJ_DECL(pjsip_generic_int_hdr*) pjsip_generic_int_hdr_create( pj_pool_t *pool,						      const pj_str_t *hname,						      int hvalue );/** * Initialize a preallocated memory with the header structure. This function * should only be called when application uses its own memory allocation to * allocate memory block for the specified header (e.g. in C++, when the  * header is allocated with "new" operator). * For normal applications, they should use pjsip_xxx_hdr_create() instead, * which allocates memory and initialize it in one go. * * @param pool	    Pool for additional memory allocation if required. * @param mem	    Pre-allocated memory to be initialized as the header. * @param hname	    The header name to be assigned to the header, or NULL to *		    assign the header name with some string later. * @param value	    Value to be assigned to the header. * * @return	    The header instance, which points to the same memory  *		    location as the mem argument. */PJ_DECL(pjsip_generic_int_hdr*) pjsip_generic_int_hdr_init( pj_pool_t *pool,							    void *mem,							    const pj_str_t *hname,							    int value );/* **************************************************************************//** Maximum elements in the header array. */#define PJSIP_GENERIC_ARRAY_MAX_COUNT	32/** * Generic array of string header. */typedef struct pjsip_generic_array_hdr{    /** Standard header fields. */    PJSIP_DECL_HDR_MEMBER(struct pjsip_generic_array_hdr);    /** Number of tags/elements. */    unsigned	count;    /**< Tags/elements. */    pj_str_t	values[PJSIP_GENERIC_ARRAY_MAX_COUNT];} pjsip_generic_array_hdr;/** * Create generic array header. * * @param pool	    Pool to allocate memory from. * @param hname	    Header name. * * @return	    New generic array header. */PJ_DECL(pjsip_generic_array_hdr*) pjsip_generic_array_hdr_create(pj_pool_t *pool,							     const pj_str_t *hname);/** * Initialize a preallocated memory with the header structure. This function * should only be called when application uses its own memory allocation to * allocate memory block for the specified header (e.g. in C++, when the  * header is allocated with "new" operator). * For normal applications, they should use pjsip_xxx_hdr_create() instead, * which allocates memory and initialize it in one go. * * @param pool	    Pool for additional memory allocation if required. * @param mem	    Pre-allocated memory to be initialized as the header. * @param hname	    The header name to be assigned to the header, or NULL to *		    assign the header name with some string later. * * @return	    The header instance, which points to the same memory  *		    location as the mem argument. */PJ_DECL(pjsip_generic_array_hdr*) pjsip_generic_array_hdr_init(pj_pool_t *pool,							       void *mem,							       const pj_str_t *hname);/* **************************************************************************//** Accept header. */typedef pjsip_generic_array_hdr pjsip_accept_hdr;/** Maximum fields in Accept header. */#define PJSIP_MAX_ACCEPT_COUNT	PJSIP_GENERIC_ARRAY_MAX_COUNT/** * Create new Accept header instance. * * @param pool	    The pool. * * @return	    New Accept header instance. */PJ_DECL(pjsip_accept_hdr*) pjsip_accept_hdr_create(pj_pool_t *pool);/** * Initialize a preallocated memory with the header structure. This function * should only be called when application uses its own memory allocation to * allocate memory block for the specified header (e.g. in C++, when the  * header is allocated with "new" operator). * For normal applications, they should use pjsip_xxx_hdr_create() instead, * which allocates memory and initialize it in one go. * * @param pool	    Pool for additional memory allocation if required. * @param mem	    Pre-allocated memory to be initialized as the header. * * @return	    The header instance, which points to the same memory  *		    location as the mem argument. */PJ_DECL(pjsip_accept_hdr*) pjsip_accept_hdr_init( pj_pool_t *pool,						  void *mem );/* **************************************************************************//** * Allow header. */typedef pjsip_generic_array_hdr pjsip_allow_hdr;/** * Create new Allow header instance. * * @param pool	    The pool. * * @return	    New Allow header instance. */PJ_DECL(pjsip_allow_hdr*) pjsip_allow_hdr_create(pj_pool_t *pool);/** * Initialize a preallocated memory with the header structure. This function * should only be called when application uses its own memory allocation to * allocate memory block for the specified header (e.g. in C++, when the  * header is allocated with "new" operator). * For normal applications, they should use pjsip_xxx_hdr_create() instead, * which allocates memory and initialize it in one go. * * @param pool	    Pool for additional memory allocation if required. * @param mem	    Pre-allocated memory to be initialized as the header. * * @return	    The header instance, which points to the same memory  *		    location as the mem argument. */PJ_DECL(pjsip_allow_hdr*) pjsip_allow_hdr_init( pj_pool_t *pool,						void *mem );/* **************************************************************************//** * Call-ID header. */typedef struct pjsip_cid_hdr{    PJSIP_DECL_HDR_MEMBER(struct pjsip_cid_hdr);    pj_str_t id;	    /**< Call-ID string. */} pjsip_cid_hdr;/** * Create new Call-ID header. * * @param pool	The pool. * * @return	new Call-ID header. */PJ_DECL(pjsip_cid_hdr*) pjsip_cid_hdr_create( pj_pool_t *pool );/** * Initialize a preallocated memory with the header structure. This function * should only be called when application uses its own memory allocation to * allocate memory block for the specified header (e.g. in C++, when the  * header is allocated with "new" operator). * For normal applications, they should use pjsip_xxx_hdr_create() instead, * which allocates memory and initialize it in one go. * * @param pool	    Pool for additional memory allocation if required. * @param mem	    Pre-allocated memory to be initialized as the header. * * @return	    The header instance, which points to the same memory  *		    location as the mem argument. */PJ_DECL(pjsip_cid_hdr*) pjsip_cid_hdr_init( pj_pool_t *pool,					    void *mem );/* **************************************************************************/

⌨️ 快捷键说明

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