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

📄 osip_rfc3264.h

📁 最新osip源代码
💻 H
字号:
/*  The oSIP library implements the Session Initiation Protocol (SIP -rfc3261-)  Copyright (C) 2001,2002,2003,2004  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_RFC3264_H__#define __SDP_RFC3264_H__#include <osipparser2/osip_list.h>#include <osipparser2/sdp_message.h>/** * @file osip_rfc3264.h * @brief oSIP sdp negotiation facility. *//** * @defgroup oSIP_rfc3264 oSIP sdp negotiation facility. * @ingroup osip2_sdp * @{ */#ifdef __cplusplusextern "C"{#endif/** * Structure to hold support for codecs. * @struct osip_rfc3264 */  struct osip_rfc3264;/** * Maximum number of supported audio payload. * @def MAX_AUDIO_CODECS */#define MAX_AUDIO_CODECS   100/** * Maximum number of supported video payload. * @def MAX_VIDEO_CODECS */#define MAX_VIDEO_CODECS   100/** * Maximum number of supported t38 config. * @def MAX_T38_CODECS */#define MAX_T38_CODECS       2/** * Maximum number of supported application config. * @def MAX_APP_CODECS */#define MAX_APP_CODECS     100/** * Initialize negotiation facility.. * @param config The element to work on. */  int osip_rfc3264_init (struct osip_rfc3264 **config);/** * Free negotiation facility. * @param config The element to work on. */  void osip_rfc3264_free (struct osip_rfc3264 *config);/** * Test if a media exist in the configuration. * @param config The element to work on. * @param pos The index of the media element. */  int osip_rfc3264_endof_media (struct osip_rfc3264 *config, int pos);/** * Get a media from the configuration. * @param config The element to work on. * @param pos The index of the media element to get. */  sdp_media_t *osip_rfc3264_get (struct osip_rfc3264 *config, int pos);/** * Remove a media from the configuration. * @param config The element to work on. * @param pos The index of the media element to remove. */  int osip_rfc3264_remove (struct osip_rfc3264 *config, int pos);/** * Remove all medias from the configuration. * @param config The element to work on. */  int osip_rfc3264_reset_media (struct osip_rfc3264 *config);/** * Add a media in the configuration. * @param config The element to work on. * @param med The media element to add. * @param pos The index of the media element to add. */  int osip_rfc3264_add_audio_media (struct osip_rfc3264 *config,                                    sdp_media_t * med, int pos);/** * Remove a media in the configuration. * @param config The element to work on. * @param pos The index of the media element to remove. */  int osip_rfc3264_del_audio_media (struct osip_rfc3264 *config, int pos);/** * Add a media (for T.38) in the configuration. * @param config The element to work on. * @param med The media element to add. * @param pos The index of the media element to add. */  int osip_rfc3264_add_t38_media (struct osip_rfc3264 *config,                                  sdp_media_t * med, int pos);/** * Remove a media (for T.38) in the configuration. * @param config The element to work on. * @param pos The index of the media element to remove. */  int osip_rfc3264_del_t38_media (struct osip_rfc3264 *config, int pos);/** * Add a media (for video) in the configuration. * @param config The element to work on. * @param med The media element to add. * @param pos The index of the media element to add. */  int osip_rfc3264_add_video_media (struct osip_rfc3264 *config,                                    sdp_media_t * med, int pos);/** * Remove a media in the configuration. * @param config The element to work on. * @param pos The index of the media element to remove. */  int osip_rfc3264_del_video_media (struct osip_rfc3264 *config, int pos);/** * Search for support of a special codec. * @param config The element to work on. */  sdp_media_t *osip_rfc3264_find_audio (struct osip_rfc3264 *config,                                        char *payload, char *rtpmap);/** * Search for support of a special codec. * @param config The element to work on. * @param payload The payload to find. * @param rtpmap The rtpmap for the payload. */  sdp_media_t *osip_rfc3264_find_video (struct osip_rfc3264 *config,                                        char *payload, char *rtpmap);/** * Search for support of a special codec. * @param config The element to work on. * @param payload The payload to find. */  sdp_media_t *osip_rfc3264_find_t38 (struct osip_rfc3264 *config, char *payload);/** * Search for support of a special codec. * @param config The element to work on. * @param payload The payload to find. */  sdp_media_t *osip_rfc3264_find_app (struct osip_rfc3264 *config, char *payload);/** * Compare remote sdp packet against local supported media. *    Only one media line is checked. * * @param config The element to work on. * @param remote_sdp The remote SDP packet. * @param audio_tab The local list of media supported by both side. * @param video_tab The local list of media supported by both side. * @param t38_tab The local list of media supported by both side. * @param app_tab The local list of media supported by both side. * @param pos_media The position of the media line to match. */  int osip_rfc3264_match (struct osip_rfc3264 *config,                          sdp_message_t * remote_sdp,                          sdp_media_t * audio_tab[],                          sdp_media_t * video_tab[],                          sdp_media_t * t38_tab[],                          sdp_media_t * app_tab[], int pos_media);/** * Compare remote sdp packet against local supported media for audio. * @param config The element to work on. * @param remote_sdp The remote SDP packet. * @param remote_med The remote Media SDP line. * @param audio_tab The local list of media supported by both side. */  int osip_rfc3264_match_audio (struct osip_rfc3264 *config,                                sdp_message_t * remote_sdp,                                sdp_media_t * remote_med,                                sdp_media_t * audio_tab[]);/** * Compare remote sdp packet against local supported media for video. * @param config The element to work on. * @param remote_sdp The remote SDP packet. * @param remote_med The remote Media SDP line. * @param video_tab The local list of media supported by both side. */  int osip_rfc3264_match_video (struct osip_rfc3264 *config,                                sdp_message_t * remote_sdp,                                sdp_media_t * remote_med,                                sdp_media_t * video_tab[]);/** * Compare remote sdp packet against local supported media for t38. * @param config The element to work on. * @param remote_sdp The remote SDP packet. * @param remote_med The remote Media SDP line. * @param t38_tab The local list of media supported by both side. */  int osip_rfc3264_match_t38 (struct osip_rfc3264 *config,                              sdp_message_t * remote_sdp,                              sdp_media_t * remote_med, sdp_media_t * t38_tab[]);/** * Compare remote sdp packet against local supported media for application. * @param config The element to work on. * @param remote_sdp The remote SDP packet. * @param remote_med The remote Media SDP line. * @param app_tab The local list of media supported by both side. */  int osip_rfc3264_match_app (struct osip_rfc3264 *config,                              sdp_message_t * remote_sdp,                              sdp_media_t * remote_med, sdp_media_t * app_tab[]);/** * Prepare an uncomplete answer. * @param config The element to work on. * @param remote_sdp The remote SDP packet. * @param local_sdp The local SDP packet to prepare. * @param length The local SDP packet's length. */  int osip_rfc3264_prepare_answer (struct osip_rfc3264 *config,                                   sdp_message_t * remote_sdp,                                   char *local_sdp, int length);/** * Agree to support a specific codec. *   This method should be called for each codec returned by *   osip_rfc3264_match(...) that the calle agree to support. * * @param config The element to work on. * @param remote_sdp The remote SDP packet. * @param local_sdp The local SDP packet to complete. * @param med One of the media returned by osip_rfc3264_match. * @param mline The position of the media line to complete. */  int    osip_rfc3264_complete_answer (struct osip_rfc3264 *config,                                  sdp_message_t * remote_sdp,                                  sdp_message_t * local_sdp,                                  sdp_media_t * med, int mline);/** * Agree to support a specific codec. *   This method should be called for each codec returned by *   osip_rfc3264_match(...) * * @param config The element to work on. * @param med One of the media returned by osip_rfc3264_match * @param remote_sdp The remote SDP packet. * @param local_sdp The local SDP packet to prepare. */  int osip_rfc3264_accept_codec (struct osip_rfc3264 *config,                                 sdp_media_t * med,                                 sdp_message_t * remote_sdp,                                 sdp_message_t * local_sdp);/** * List supported codecs. (for debugging purpose only) * * @param config The element to work on. */  int __osip_rfc3264_print_codecs (struct osip_rfc3264 *config);#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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