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

📄 sip_header.h

📁 Sofia SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification.
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * This file is part of the Sofia-SIP package * * Copyright (C) 2005 Nokia Corporation. * * Contact: Pekka Pessi <pekka.pessi@nokia.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * */#ifndef SIP_HEADER_H/**Defined when <sofia-sip/sip_header.h> has been included.*/#define SIP_HEADER_H /**@file sofia-sip/sip_header.h  * * SIP parser library prototypes. * * @author Pekka Pessi <Pekka.Pessi@nokia.com>. * * @date  Created: Tue Jun 13 02:58:26 2000 ppessi */#ifndef SU_ALLOC_H#include <sofia-sip/su_alloc.h>#endif#ifndef SU_TAG_H#include <sofia-sip/su_tag.h>#endif#ifndef SIP_H#include <sofia-sip/sip.h>#endif#ifndef MSG_HEADER_H#include <sofia-sip/msg_header.h>#endif#ifndef _STRING_H#include <string.h>#endifSOFIA_BEGIN_DECLS/** Return a built-in SIP parser object. */SOFIAPUBFUN msg_mclass_t const *sip_default_mclass(void);SOFIAPUBFUN int sip_update_default_mclass(msg_mclass_t const *mclass);SOFIAPUBFUN msg_mclass_t *sip_extend_mclass(msg_mclass_t *input);/** Check that sip_t is a SIP header structure (not MIME or HTTP). @HIDE */#define sip_is_sip(sip) ((sip) && (sip)->sip_ident == SIP_PROTOCOL_TAG)/** Initializer for a SIP header structure. @HIDE */#define SIP_HDR_INIT(name) {{{ 0, 0, sip_##name##_class }}}/** Initialize a SIP header structure. @HIDE */#define SIP_HEADER_INIT(h, sip_class, size)	       \  ((void)memset((h), 0, (size)),		       \   (void)(((sip_common_t *)(h))->h_class = (sip_class)),	\   (h))/** Serialize headers into the fragment chain. */SOFIAPUBFUN int sip_serialize(msg_t *msg, sip_t *sip);/** Encode a SIP message. */SOFIAPUBFUN issize_t sip_e(sip_t const *sip, int flags, char b[], isize_t size);/** Test if @a header is a pointer to a SIP header object. */SOFIAPUBFUN int sip_is_header(sip_header_t const *header);/** Convert the header @a h to a string allocated from @a home. */SOFIAPUBFUN char *sip_header_as_string(su_home_t *home,				       sip_header_t const *h);/** Add a duplicate of header object to a SIP message. */SOFIAPUBFUN int sip_add_dup(msg_t *, sip_t *, sip_header_t const *);/** Add a duplicate of header object to the SIP message. */SOFIAPUBFUN int sip_add_dup_as(msg_t *msg, sip_t *sip,			       msg_hclass_t *hc, sip_header_t const *o);/** Add duplicates of headers to the SIP message. */SOFIAPUBFUN int sip_add_headers(msg_t *msg, sip_t *sip, 				void const *extra, va_list headers);/** Add duplicates of headers from taglist to the SIP message. */SOFIAPUBFUN int sip_add_tl(msg_t *msg, sip_t *sip,			   tag_type_t tag, tag_value_t value, ...);/** Add duplicates of headers from taglist to the SIP message. */SOFIAPUBFUN int sip_add_tagis(msg_t *, sip_t *, tagi_t const **inout_list);/** Parse a string as a header and add it to the SIP message. */SOFIAPUBFUN int sip_add_make(msg_t *, sip_t *, msg_hclass_t *hc, char const *s);/** Convert headers from taglist as URL query. */SOFIAPUBFUN char *sip_headers_as_url_query(su_home_t *home,					   tag_type_t tag, tag_value_t value,					   ...);/** Convert URL query to a tag list. */SOFIAPUBFUN tagi_t *sip_url_query_as_taglist(su_home_t *home,					     char const *query,					     msg_mclass_t const *parser);/** Complete SIP message. */SOFIAPUBFUN int sip_complete_message(msg_t *msg);/** Clear encoded data. @HIDE */#define sip_fragment_clear(a) ((a)->h_data = NULL, (a)->h_len = 0)/* Use __attribute__ to allow argument checking for sip_header_format() */#if !defined(__GNUC__) && !defined(__attribute__)#define __attribute__(x) #endif/** Make a SIP header with formatting provided. */SOFIAPUBFUN sip_header_t *sip_header_format(su_home_t *home, 					    msg_hclass_t *hc,					    char const *fmt,					    ...)  __attribute__((__format__ (printf, 3, 4)));/** Return current time */SOFIAPUBFUN sip_time_t sip_now(void);SOFIAPUBVAR char const sip_method_name_ack[];SOFIAPUBVAR char const sip_method_name_bye[];SOFIAPUBVAR char const sip_method_name_cancel[];SOFIAPUBVAR char const sip_method_name_invite[];SOFIAPUBVAR char const sip_method_name_options[];SOFIAPUBVAR char const sip_method_name_register[];SOFIAPUBVAR char const sip_method_name_info[];SOFIAPUBVAR char const sip_method_name_prack[];SOFIAPUBVAR char const sip_method_name_comet[];SOFIAPUBVAR char const sip_method_name_message[];SOFIAPUBVAR char const sip_method_name_subscribe[];SOFIAPUBVAR char const sip_method_name_notify[];SOFIAPUBVAR char const sip_method_name_refer[];/** @internal UDP transport version string. */ SOFIAPUBVAR char const sip_transport_udp[];/** @internal TCP transport version string. */ SOFIAPUBVAR char const sip_transport_tcp[];/** @internal SCTP transport version string. */ SOFIAPUBVAR char const sip_transport_sctp[];/** @internal TLS transport version string. */ SOFIAPUBVAR char const sip_transport_tls[];/** @internal SIP version string. */ SOFIAPUBVAR char const sip_version_2_0[];#define SIP_VERSION_CURRENT sip_version_2_0/** SIP parser version */SOFIAPUBVAR char const sip_parser_version[];/** Get SIP service name */#define SIP_PORT(s) ((s) ? (s) : "5060")/** Get SIPS service name */#define SIPS_PORT(s) ((s) ? (s) : "5061")/** Return string corresponding to the method. */SOFIAPUBFUN char const *sip_method_name(sip_method_t method, char const *name);/** Return code corresponding to the method code */SOFIAPUBFUN sip_method_t sip_method_code(char const *name);SOFIAPUBVAR char const * const sip_method_names[];#define SIP_METHOD_NAME(method, name) \ ((method) == sip_method_unknown ? (name) : sip_method_name(method, name))#define sip_header_make(h, c, s) \  ((sip_header_t *)msg_header_make((h), (c), (s)))#define sip_header_vformat(h, c, f, a) \  ((sip_header_t *)msg_header_vformat((h), (c), (f), (a)))SOFIA_END_DECLS#ifndef SIP_PROTOS_H#include <sofia-sip/sip_protos.h>#endifSOFIA_BEGIN_DECLS/** Create a request line object. */SOFIAPUBFUNsip_request_t *sip_request_create(su_home_t *home,				  sip_method_t method, const char *name,				  url_string_t const *url,				  char const *version);/** Create a status line object. */SOFIAPUBFUNsip_status_t *sip_status_create(su_home_t *home,				unsigned status,				char const *phrase,				char const *version);/** Create a @CallID header object. */SOFIAPUBFUN sip_call_id_t *sip_call_id_create(su_home_t *home,					      char const *domain);/** Create a @CSeq header object.  */SOFIAPUBFUN sip_cseq_t *sip_cseq_create(su_home_t *, uint32_t seq, 					unsigned method, char const *name);/** Create a @Contact header object. */SOFIAPUBFUN sip_contact_t * sip_contact_create(su_home_t *, 					       url_string_t const *url, 					       char const *param,					       /* char const *params, */					       ...);/** Calculate expiration time of a @Contact header. */SOFIAPUBFUN sip_time_t sip_contact_expires(sip_contact_t const *m,					   sip_expires_t const *ex,					   sip_date_t const *date,					   sip_time_t def,					   sip_time_t now);/** Create a @ContentLength header object. */SOFIAPUBFUNsip_content_length_t *sip_content_length_create(su_home_t *, uint32_t n);/** Create an @Date header object. */SOFIAPUBFUN sip_date_t *sip_date_create(su_home_t *, sip_time_t t);/** Create an @Expires header object. */SOFIAPUBFUN sip_expires_t *sip_expires_create(su_home_t *, sip_time_t delta);/** Create a @Route header object. */SOFIAPUBFUN sip_route_t *sip_route_create(su_home_t *home, url_t const *url, 					  url_t const *maddr);/** Create a @RecordRoute header object. */SOFIAPUBFUN sip_record_route_t *sip_record_route_create(su_home_t *,							url_t const *rq_url,							url_t const *m_url);/** Create a @From header object. */SOFIAPUBFUN sip_from_t *sip_from_create(su_home_t *, url_string_t const *url);

⌨️ 快捷键说明

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