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

📄 smsgtypes.h

📁 libosip-0.9.7源码
💻 H
字号:
/*  The oSIP library implements the Session Initiation Protocol (SIP -rfc3261-)  Copyright (C) 2001,2002,2003  Aymeric MOIZARD jack@atosc.org    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#ifndef _SMSGTYPES_H_#define _SMSGTYPES_H_#include <osip/list.h>#include <osip/urls.h>/** * @file smsgtypes.h * @brief oSIP type definitions *//** * @defgroup oSIP_TYPES oSIP type definitions * @ingroup oSIP * @{ */#ifdef __cplusplusextern "C"{#endif#ifndef SIP_MESSAGE_MAX_LENGTH/** * You can re-define your own maximum length for SIP message. * <BR>The default value is 20000 characters. (which is much more that the MTU!) * <BR>BUG: If you try to build a message string (by calling msg_2char), with * a higher length, your application will crash. Anybody building a commercial * application should fix that behavior (and hopefully send the code back to me!) */#define SIP_MESSAGE_MAX_LENGTH 4000#endif#ifndef BODY_MESSAGE_MAX_SIZE/** * You can define the maximum authorised length for a body inside a SIP message. */#define BODY_MESSAGE_MAX_SIZE  500#endif/** * Structure for startline (1st line of SIP message either REQUEST and RESPONSE). * @defvar startline_t */  typedef struct startline_t startline_t;  struct startline_t  {    /* msgevttype_t method; */    char *sipmethod;    char *sipversion;    /* req */    url_t *rquri;    /* resp */    char *statuscode;    char *reasonphrase;  };/** * Structure for 'unknown' headers. * NOTE: 'unknown' header' are used in oSIP for all header that are not * defined by oSIP in the sip_t structure. This means that all 'unknown' * header has to be handled with the API related to this structure. * @defvar startline_t */  typedef struct header_t header_t;  struct header_t  {    char *hname;    char *hvalue;  };/** * Structure for CSeq headers. * @defvar cseq_t */  typedef struct cseq_t cseq_t;  struct cseq_t  {    char *method;    char *number;  };/** * Structure for Via headers. * @defvar via_t */  typedef struct via_t via_t;  struct via_t  {    char *version;    char *protocol;    char *host;    char *port;    char *comment;    list_t *via_params;  };/** * Structure for generic parameter headers. * Generic parameter are used in a lot of headers. (To, From, Route, * Record-Route...) All those headers use a common API but this is * hidden by MACROs that you can be found in smsg.h. * @defvar cseq_t */  typedef url_param_t generic_param_t;/** * Structure for From headers. * @defvar from_t */  typedef struct from_t from_t;  struct from_t  {    char *displayname;    url_t *url;			/* could contain various urischeme_t ? only in the future */    list_t *gen_params;  };/** * Structure for To headers. * @defvar to_t */  typedef from_t to_t;/** * Structure for Contact headers. * @defvar contact_t */  typedef from_t contact_t;/** * Structure for Record-Route headers. * @defvar record_route_t */  typedef from_t record_route_t;/** * Structure for Route headers. * @defvar route_t */  typedef from_t route_t;/** * Structure for Call-Id headers. * @defvar call_id_t */  typedef struct call_id_t call_id_t;  struct call_id_t  {    char *number;    char *host;  };/** * Structure for Content-Length headers. * @defvar content_length_t */  typedef struct content_length_t content_length_t;  struct content_length_t  {    char *value;  };/** * Structure for Language-Tag headers. - NOT IMPLEMENTED - * @defvar language_tag_t */  typedef struct language_tag_t language_tag_t;  struct language_tag_t  {    list_t *tags;  };/** * Structure for Allow headers. * @defvar allow_t */  typedef content_length_t allow_t;/** * Structure for Content-Encoding headers. * @defvar content_encoding_t */  typedef content_length_t content_encoding_t;/** * Structure for Mime-Version headers. * @defvar mime_version_t */  typedef content_length_t mime_version_t;/* typedef url_param_t content_type_param_t; *//** * Structure for Content-Type headers. * @defvar content_type_t */  typedef struct content_type_t content_type_t;  struct content_type_t  {    char *type;    char *subtype;    list_t *gen_params;  };/** * Structure for accept headers. * @defvar accept_t */  typedef content_type_t accept_t;/** * Structure for Accept-Encoding headers. * @defvar accept_encoding_t */  typedef struct accept_encoding_t accept_encoding_t;  struct accept_encoding_t  {    char *element;    list_t *gen_params;  };/** * Structure for Accept-Language headers. * @defvar accept_language_t */  typedef accept_encoding_t accept_language_t;/** * Structure for Call-Info headers. * @defvar call_info_t */  typedef struct call_info_t call_info_t;  struct call_info_t  {    char *element;    list_t *gen_params;  };/** * Structure for Alert-Info headers. * @defvar alert_info_t */  typedef call_info_t alert_info_t;/** * Structure for Error-Info headers. * @defvar error_info_t */  typedef call_info_t error_info_t;/** * Structure for Content-Disposition headers. * @defvar content_disposition_t */  typedef call_info_t content_disposition_t;/** * Structure for encryption headers. - NOT IMPLEMENTED - * @defvar encryption_t */  typedef call_info_t encryption_t;/** * Structure for WWW-Authenticate headers. * @defvar www_authenticate_t */  typedef struct www_authenticate_t www_authenticate_t;  struct www_authenticate_t  {    char *auth_type;		/* ( "Basic" | "Digest" )      */    char *realm;		/* mandatory ( quoted-string ) */    char *domain;		/* optional  <"> 1#URI <">     */    char *nonce;		/* mandatory */    char *opaque;		/* optional  */    char *stale;		/* optional  ( "true" | "false" ) */    char *algorithm;		/* optional  ( "MD5"  | token   ) */    char *qop_options;		/* optional  */    char *auth_param;		/* optional  */  };/** * Structure for Proxy-Authenticate headers. * @defvar proxy_authenticate_t */  typedef www_authenticate_t proxy_authenticate_t;/** * Structure for Authorization headers. * @defvar authorization_t */  typedef struct authorization_t authorization_t;  struct authorization_t  {    char *auth_type;		/* ( "Basic" | "Digest" )      */    char *username;    char *realm;		/* mandatory ( quoted-string ) */    char *nonce;    char *uri;    char *response;    char *digest;		/* DO NOT USE IT IN AUTHORIZATION_T HEADER?? */    char *algorithm;		/* optionnal, default is "md5" */    char *cnonce;		/* optionnal */    char *opaque;		/* optionnal */    char *message_qop;		/* optionnal */    char *nonce_count;		/* optionnal */    char *auth_param;		/* optionnal */  };/** * Structure for Proxy-Authorization headers. * @defvar proxy_authorization_t */  typedef authorization_t proxy_authorization_t;/** * Structure for Body - LIGHT SUPPORT FOR MIME FORMAT: TO BE TESTED-. * @defvar body_t */  typedef struct body_t body_t;  struct body_t  {    char *body;    list_t *headers;    content_type_t *content_type;    /*  content_length_t   *content_length; */  };/** * Structure for SIP Message (REQUEST and RESPONSE). * @defvar sip_t */  typedef struct sip_t sip_t;  struct sip_t  {    startline_t *strtline;    list_t *accepts;    list_t *accept_encodings;    list_t *accept_languages;    list_t *alert_infos;    list_t *allows;    list_t *authorizations;    call_id_t *call_id;    list_t *call_infos;    list_t *contacts;    list_t *content_dispositions;    list_t *content_encodings;    content_length_t *contentlength;    content_type_t *content_type;    cseq_t *cseq;    list_t *error_infos;    from_t *from;    mime_version_t *mime_version;    list_t *proxy_authenticates;    list_t *proxy_authorizations;    list_t *record_routes;    list_t *routes;    to_t *to;    list_t *vias;    list_t *www_authenticates;    list_t *headers;    list_t *bodies;    /*       1: structure and buffer "message" are identical.       2: buffer "message" is not up to date with the structure info (call msg_2char to update it).     */    int message_property;    char *message;  };#ifdef __cplusplus}#endif/** @} */#endif

⌨️ 快捷键说明

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