00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00026 #ifndef FSDP_COMMON_H
00027 #define FSDP_COMMON_H
00028
00029
00030 #ifdef __cplusplus
00031 # define BEGIN_C_DECLS extern "C" {
00032 # define END_C_DECLS }
00033 #else
00034 # define BEGIN_C_DECLS
00035 # define END_C_DECLS
00036 #endif
00037
00038 #if TIME_WITH_SYS_TIME
00039 # include <sys/time.h>
00040 # include <time.h>
00041 #else
00042 # if HAVE_SYS_TIME_H
00043 # include <sys/time.h>
00044 # else
00045 # include <time.h>
00046 # endif
00047 #endif
00048
00049 BEGIN_C_DECLS
00050
00060
00075 typedef enum {
00076 FSDPE_OK = 0,
00077 FSDPE_ILLEGAL_CHARACTER,
00078 FSDPE_MISSING_VERSION,
00080 FSDPE_INVALID_VERSION,
00083 FSDPE_MISSING_OWNER,
00085 FSDPE_INVALID_OWNER,
00086 FSDPE_MISSING_NAME,
00088 FSDPE_EMPTY_NAME,
00090 FSDPE_INVALID_CONNECTION,
00093 FSDPE_INVALID_CONNECTION_ADDRTYPE,
00095 FSDPE_INVALID_CONNECTION_NETTYPE,
00097 FSDPE_INVALID_BANDWIDTH,
00099 FSDPE_MISSING_TIME,
00101 FSDPE_INVALID_TIME,
00102 FSDPE_INVALID_REPEAT,
00104 FSDPE_INVALID_TIMEZONE,
00105 FSDPE_INVALID_ENCRYPTION_METHOD,
00106 FSDPE_INVALID_ATTRIBUTE,
00109 FSDPE_INVALID_ATTRIBUTE_RTPMAP,
00110 FSDPE_INVALID_SESSION_TYPE,
00114 FSDPE_INVALID_MEDIA,
00115 FSDPE_UNKNOWN_MEDIA_TYPE,
00118 FSDPE_UNKNOWN_MEDIA_TRANSPORT,
00121 FSDPE_OVERFILLED,
00123 FSDPE_INVALID_LINE,
00125 FSDPE_MISSING_CONNECTION_INFO,
00128 FSDPE_INVALID_INDEX,
00129
00130 FSDPE_INTERNAL_ERROR,
00131
00132 FSDPE_INVALID_PARAMETER,
00136 FSDPE_BUFFER_OVERFLOW
00137 } fsdp_error_t;
00138
00147 typedef enum {
00148 FSDP_NETWORK_TYPE_UNDEFINED,
00149 FSDP_NETWORK_TYPE_INET
00150 } fsdp_network_type_t;
00151
00158 typedef enum {
00159 FSDP_ADDRESS_TYPE_UNDEFINED,
00160 FSDP_ADDRESS_TYPE_IPV4,
00161 FSDP_ADDRESS_TYPE_IPV6
00162 } fsdp_address_type_t;
00163
00174 typedef enum {
00175 FSDP_BW_MOD_TYPE_UNDEFINED,
00176 FSDP_BW_MOD_TYPE_UNKNOWN,
00179 FSDP_BW_MOD_TYPE_CONFERENCE_TOTAL,
00180 FSDP_BW_MOD_TYPE_APPLICATION_SPECIFIC,
00181 FSDP_BW_MOD_TYPE_RTCP_SENDERS,
00183 FSDP_BW_MOD_TYPE_RTCP_RECEIVERS,
00185 } fsdp_bw_modifier_type_t;
00186
00192 typedef enum {
00193 FSDP_ENCRYPTION_METHOD_UNDEFINED,
00194 FSDP_ENCRYPTION_METHOD_CLEAR,
00196 FSDP_ENCRYPTION_METHOD_BASE64,
00198 FSDP_ENCRYPTION_METHOD_URI,
00201 FSDP_ENCRYPTION_METHOD_PROMPT
00204 } fsdp_encryption_method_t;
00205
00215 typedef enum {
00216 FSDP_SENDRECV_UNDEFINED,
00217 FSDP_SENDRECV_SENDRECV,
00218 FSDP_SENDRECV_RECVONLY,
00219 FSDP_SENDRECV_SENDONLY,
00220 FSDP_SENDRECV_INACTIVE
00221 } fsdp_sendrecv_mode_t;
00222
00229 typedef enum {
00230 FSDP_ORIENT_UNDEFINED,
00231 FSDP_ORIENT_PORTRAIT,
00232 FSDP_ORIENT_LANDSCAPE,
00233 FSDP_ORIENT_SEASCAPE
00234 } fsdp_orient_t;
00235
00242 typedef enum {
00243 FSDP_SESSION_TYPE_UNDEFINED,
00244 FSDP_SESSION_TYPE_BROADCAST,
00245 FSDP_SESSION_TYPE_MEETING,
00246 FSDP_SESSION_TYPE_MODERATED,
00247 FSDP_SESSION_TYPE_TEST,
00248 FSDP_SESSION_TYPE_H332
00249 } fsdp_session_type_t;
00250
00257 typedef enum {
00258 FSDP_MEDIA_UNDEFINED,
00259 FSDP_MEDIA_AUDIO,
00260 FSDP_MEDIA_VIDEO,
00261 FSDP_MEDIA_TEXT,
00262 FSDP_MEDIA_APPLICATION,
00263 FSDP_MEDIA_DATA,
00264 FSDP_MEDIA_CONTROL,
00265 } fsdp_media_t;
00266
00274 typedef enum {
00275 FSDP_TP_UNDEFINED,
00276 FSDP_TP_RTP_AVP,
00277 FSDP_TP_RTP_SAVP,
00278 FSDP_TP_RTP_AVPF,
00281 FSDP_TP_RTP_SAVPF,
00284 FSDP_TP_UDP,
00285 FSDP_TP_TCP,
00286 FSDP_TP_UDPTL,
00287 FSDP_TP_VAT,
00288 FSDP_TP_OLD_RTP,
00289 FSDP_TP_H320
00290 } fsdp_transport_protocol_t;
00291
00298 typedef enum {
00299 FSDP_SESSION_STR_ATT_CATEGORY,
00300 FSDP_SESSION_STR_ATT_KEYWORDS,
00301 FSDP_SESSION_STR_ATT_TOOL,
00302 FSDP_SESSION_STR_ATT_CHARSET,
00303 FSDP_LAST_SESSION_STR_ATT = FSDP_SESSION_STR_ATT_CHARSET
00304 } fsdp_session_str_att_t;
00305
00314 typedef struct fsdp_media_description_t_s fsdp_media_description_t;
00315
00322 typedef struct fsdp_description_t_s fsdp_description_t;
00323
00331 fsdp_description_t*
00332 fsdp_description_new(void);
00333
00339 void
00340 fsdp_description_delete(fsdp_description_t *dsc);
00341
00351 void
00352 fsdp_description_recycle(fsdp_description_t *dsc);
00353
00359 const char *
00360 fsdp_strerror(fsdp_error_t err_no);
00361
00363
00364 END_C_DECLS
00365
00366 #endif