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

📄 sdp.h

📁 libosip-0.9.7源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*  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 _SDP_H_#define _SDP_H_#ifdef ENABLE_MPATROL#include <mpatrol.h>#endif#include <osip/list.h>/** * @file sdp.h * @brief oSIP SDP parser Routines * * This is the SDP accessor and parser related API. *//** * @defgroup oSIP_SDP oSIP SDP parser Handling * @ingroup oSIP * @{ */#ifdef __cplusplusextern "C"{#endif/** * Structure for referencing bandwidth header. * @defvar sdp_bandwidth_t */  typedef struct sdp_bandwidth_t sdp_bandwidth_t;  struct sdp_bandwidth_t  {    char *b_bwtype;    char *b_bandwidth;  };/** * Allocate a bandwidth element. * @param elem The element to work on. */  int sdp_bandwidth_init (sdp_bandwidth_t ** elem);/** * Free a bandwidth element. * @param elem The element to work on. */  void sdp_bandwidth_free (sdp_bandwidth_t * elem);/** * Structure for referencing time description header. * @defvar sdp_time_descr_t */  typedef struct sdp_time_descr_t sdp_time_descr_t;  struct sdp_time_descr_t  {    char *t_start_time;    char *t_stop_time;    list_t *r_repeats;		/* list of char * */  };/** * Allocate a time description element. * @param elem The element to work on. */  int sdp_time_descr_init (sdp_time_descr_t ** elem);/** * Free a time description element. * @param elem The element to work on. */  void sdp_time_descr_free (sdp_time_descr_t * elem);/** * Structure for referencing key header. * @defvar sdp_key_t */  typedef struct sdp_key_t sdp_key_t;  struct sdp_key_t  {    char *k_keytype;		/* "prompt", "clear", "base64", "uri" */    char *k_keydata;		/* key data for "clear" and "base64", uri for "uri" */  };/** * Allocate a key element. * @param elem The element to work on. */  int sdp_key_init (sdp_key_t ** elem);/** * Free a key element. * @param elem The element to work on. */  void sdp_key_free (sdp_key_t * elem);/** * Structure for referencing an attribute header. * @defvar sdp_attribute_t */  typedef struct sdp_attribute_t sdp_attribute_t;  struct sdp_attribute_t  {    char *a_att_field;    char *a_att_value;		/* optional */  };/** * Allocate an attribute element. * @param elem The element to work on. */  int sdp_attribute_init (sdp_attribute_t ** elem);/** * Free a attribute element. * @param elem The element to work on. */  void sdp_attribute_free (sdp_attribute_t * elem);/** * Structure for referencing a connection header. * @defvar sdp_connection_t */  typedef struct sdp_connection_t sdp_connection_t;  struct sdp_connection_t  {    char *c_nettype;    char *c_addrtype;    char *c_addr;    char *c_addr_multicast_ttl;    char *c_addr_multicast_int;  };/** * Allocate a connection element. * @param elem The element to work on. */  int sdp_connection_init (sdp_connection_t ** elem);/** * Free a connection element. * @param elem The element to work on. */  void sdp_connection_free (sdp_connection_t * elem);/** * Structure for referencing a media header. * @defvar sdp_media_t */  typedef struct sdp_media_t sdp_media_t;  struct sdp_media_t  {    char *m_media;    char *m_port;    char *m_number_of_port;    char *m_proto;    list_t *m_payloads;    char *i_info;    list_t *c_connections;	/* list of sdp_connection_t * */    list_t *b_bandwidths;	/* list of sdp_bandwidth_t * */    list_t *a_attributes;	/* list of sdp_attribute_t * */    sdp_key_t *k_key;  };/** * Allocate a media element. * @param elem The element to work on. */  int sdp_media_init (sdp_media_t ** elem);/** * Free a media element. * @param elem The element to work on. */  void sdp_media_free (sdp_media_t * elem);/** * Structure for referencing a SDP packet. * @defvar sdp_t */  typedef struct sdp_t sdp_t;  struct sdp_t  {    char *v_version;    char *o_username;    char *o_sess_id;    char *o_sess_version;    char *o_nettype;    char *o_addrtype;    char *o_addr;    char *s_name;    char *i_info;    char *u_uri;    list_t *e_emails;		/* list of char * */    list_t *p_phones;		/* list of char * */    sdp_connection_t *c_connection;    list_t *b_bandwidths;	/* list of sdp_bandwidth_t * */    list_t *t_descrs;		/* list of sdp_time_descr_t * */    char *z_adjustments;    sdp_key_t *k_key;    list_t *a_attributes;	/* list of sdp_attribute_t * */    list_t *m_medias;		/* list of sdp_media_t * */  };/** * Allocate a SDP packet. * @param sdp The element to work on. */  int sdp_init (sdp_t ** sdp);/** * Parse a SDP packet. * @param sdp The element to work on. * @param buf The buffer to parse. */  int sdp_parse (sdp_t * sdp, const char *buf);/** * Get a string representation of a SDP packet. * @param sdp The element to work on. * @param dest The resulting new allocated buffer. */  int sdp_2char (sdp_t * sdp, char **dest);/** * Free a SDP packet. * @param sdp The element to work on. */  void sdp_free (sdp_t * sdp);/** * Clone a SDP packet. * @param sdp The element to work on. * @param dest The cloned element. */  int sdp_clone (sdp_t * sdp, sdp_t ** dest);/** * Set the version in a SDP packet. * @param sdp The element to work on. * @param value The token value. */  int sdp_v_version_set (sdp_t * sdp, char *value);/** * Get the version ('v' field) of a SDP packet. * @param sdp The element to work on. */  char *sdp_v_version_get (sdp_t * sdp);/** * Set the origin field in a SDP packet. * @param sdp The element to work on. * @param username The token value. * @param sess_id The token value. * @param sess_version The token value. * @param nettype The token value. * @param addrtype The token value. * @param addr The token value. */  int sdp_o_origin_set (sdp_t * sdp, char *username, char *sess_id,			char *sess_version, char *nettype,			char *addrtype, char *addr);/** * Get the username ('o' field) of a SDP packet. * @param sdp The element to work on. */  char *sdp_o_username_get (sdp_t * sdp);/** * Get the session id ('o' field) of a SDP packet. * @param sdp The element to work on. */  char *sdp_o_sess_id_get (sdp_t * sdp);/** * Get the session version ('o' field) of a SDP packet. * @param sdp The element to work on. */  char *sdp_o_sess_version_get (sdp_t * sdp);/** * Get the nettype ('o' field) of a SDP packet. * @param sdp The element to work on. */  char *sdp_o_nettype_get (sdp_t * sdp);/** * Get the addrtype ('o' field) of a SDP packet. * @param sdp The element to work on. */  char *sdp_o_addrtype_get (sdp_t * sdp);

⌨️ 快捷键说明

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