sdp  1.13.17
sdp.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Sofia-SIP package
3  *
4  * Copyright (C) 2005 Nokia Corporation.
5  *
6  * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * as published by the Free Software Foundation; either version 2.1 of
11  * the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  *
23  */
24 
25 #ifndef SDP_H
26 #define SDP_H
35 #ifndef SU_ALLOC_H
36 #include <sofia-sip/su_alloc.h>
37 #endif
38 #ifndef SU_TYPES_H
39 #include <sofia-sip/su_types.h>
40 #endif
41 
42 SOFIA_BEGIN_DECLS
43 
45 typedef struct sdp_session_s sdp_session_t;
47 typedef unsigned long sdp_version_t;
49 typedef struct sdp_origin_s sdp_origin_t;
51 typedef struct sdp_connection_s sdp_connection_t;
53 typedef struct sdp_bandwidth_s sdp_bandwidth_t;
55 typedef struct sdp_time_s sdp_time_t;
57 typedef struct sdp_repeat_s sdp_repeat_t;
59 typedef struct sdp_zone_s sdp_zone_t;
61 typedef struct sdp_key_s sdp_key_t;
63 typedef struct sdp_attribute_s sdp_attribute_t;
65 typedef struct sdp_media_s sdp_media_t;
67 typedef struct sdp_list_s sdp_list_t;
69 typedef struct sdp_rtpmap_s sdp_rtpmap_t;
70 
72 typedef char const sdp_text_t;
73 
74 #define SDP_MIME_TYPE "application/sdp"
75 
76 enum {
77  SDP_CURRENT_VERSION = 0
78 };
79 
82 {
83  int sdp_size;
99 };
100 
103 {
104  int o_size;
109 };
110 
112 typedef enum
113 {
114  sdp_net_x = 0,
115  sdp_net_in = 1
117 
119 typedef enum
120 {
125 
128 {
129  int c_size;
134  unsigned c_ttl : 8;
135  unsigned c_mcast : 1;
136  unsigned : 0;
137  unsigned c_groups;
138 };
139 
141 typedef enum
142 {
150 
153 {
154  int b_size;
159  unsigned long b_value;
160 };
161 
164 {
165  int t_size;
167  unsigned long t_start;
168  unsigned long t_stop;
171 };
172 
175 {
176  int r_size;
180  unsigned long r_interval;
181  unsigned long r_duration;
182  unsigned long r_offsets[1];
183 };
184 
187 {
189  int z_size;
191  struct {
192  unsigned long z_at;
193  long z_offset;
195 };
196 
198 typedef enum {
206 
208 struct sdp_key_s
209 {
210  int k_size;
214 };
215 
218  int a_size;
222 };
223 
225 typedef enum
226 {
239 } sdp_media_e;
240 
242 typedef enum
243 {
252  sdp_proto_extended_srtp = 261,
255  sdp_proto_any = 512
257 
259 typedef enum {
260  sdp_inactive = 0,
261  sdp_sendonly = 1,
262  sdp_recvonly = 2,
263  sdp_sendrecv = sdp_sendonly | sdp_recvonly
264 } sdp_mode_t;
265 
277 {
278  int m_size;
284  unsigned long m_port;
285  unsigned long m_number_of_ports;
296  void *m_user;
299  unsigned m_rejected : 1;
301  /* sdp_mode_t */ unsigned m_mode : 2;
302  unsigned : 0;
303 };
304 
307 {
308  int l_size;
311 };
312 
322 struct sdp_rtpmap_s {
323  int rm_size;
326  unsigned long rm_rate;
329  unsigned rm_predef : 1;
330  unsigned rm_pt : 7;
331  unsigned rm_any : 1;
332  unsigned :0;
333 };
334 
336 
339 
343 
347 
351 
355 
359 
363 
367 
371 
375  sdp_session_t *);
376 
380  sdp_session_t *);
381 
385 
389 
392  sdp_session_t const *b);
393 
396  sdp_origin_t const *b);
397 
400  sdp_connection_t const *b);
401 
404  sdp_bandwidth_t const *b);
405 
407 SOFIAPUBFUN int sdp_time_cmp(sdp_time_t const *a, sdp_time_t const *b);
408 
409 /* Compare two repeat (r=) fields */
410 SOFIAPUBFUN int sdp_repeat_cmp(sdp_repeat_t const *a, sdp_repeat_t const *b);
411 
412 /* Compare two zone (z=) fields */
413 SOFIAPUBFUN int sdp_zone_cmp(sdp_zone_t const *a, sdp_zone_t const *b);
414 
416 SOFIAPUBFUN int sdp_key_cmp(sdp_key_t const *a, sdp_key_t const *b);
417 
420  sdp_attribute_t const *);
421 
423 SOFIAPUBFUN int sdp_media_cmp(sdp_media_t const *, sdp_media_t const *);
424 
426 SOFIAPUBFUN int sdp_rtpmap_cmp(sdp_rtpmap_t const *a, sdp_rtpmap_t const *b);
427 
429 SOFIAPUBFUN int sdp_list_cmp(sdp_list_t const *a, sdp_list_t const *b);
430 
433 
436 
438 SOFIAPUBFUN void sdp_media_type(sdp_media_t *m, char const *s);
439 
441 SOFIAPUBFUN void sdp_media_transport(sdp_media_t *m, char const *s);
442 
445  char const *name);
446 
449  sdp_attribute_t const *a2,
450  char const *name);
451 
454  sdp_mode_t defmode);
455 
458  sdp_mode_t mode);
459 
463  char const *name,
464  int pt, char **return_result);
465 
468  sdp_attribute_t const *a);
469 
472  sdp_attribute_t *a,
473  sdp_attribute_t **return_replaced);
474 
477  char const *name);
478 
479 /* Return 1 if m= line struct matches with given type and name */
480 SOFIAPUBFUN unsigned sdp_media_match(sdp_media_t const *m,
481  sdp_media_e type,
482  sdp_text_t *type_name,
483  sdp_proto_e proto,
484  sdp_text_t *proto_name);
485 
486 SOFIAPUBFUN unsigned sdp_media_match_with(sdp_media_t const *a,
487  sdp_media_t const *b);
488 
490 SOFIAPUBFUN unsigned sdp_media_count(sdp_session_t const *sdp,
491  sdp_media_e type,
492  sdp_text_t *type_name,
493  sdp_proto_e proto,
494  sdp_text_t *proto_name);
495 
497  sdp_media_t const *m0);
498 
501 
504 
507  sdp_rtpmap_t const *rm);
508 
509 /* ======================================================================== */
510 
534  sdp_f_mode_always = 1024
535 };
536 
538 typedef struct sdp_parser_s sdp_parser_t;
539 typedef sdp_parser_t *sdp_parser;
540 
542  char const msg[], issize_t msgsize,
543  int flags);
547 
549 
551 
552 /* ======================================================================== */
553 
555 typedef struct sdp_printer_s sdp_printer_t;
556 typedef sdp_printer_t *sdp_printer;
557 
559  char msgbuf[], isize_t maxmsgsize,
560  int flags);
562 SOFIAPUBFUN char const *sdp_message(sdp_printer_t *p);
565 
566 #define sdp_mapped_attribute_find sdp_attribute_mapped_find
567 #define sdp_free_parser sdp_parser_free
568 #define sdp_free_printer sdp_printer_free
569 
570 SOFIA_END_DECLS
571 
572 #endif /* SDP_H */
sdp_repeat_t * sdp_repeat_dup(su_home_t *, sdp_repeat_t const *)
Duplicate an SDP repeat structure.
Definition: sdp.c:270
int sdp_bandwidth_cmp(sdp_bandwidth_t const *a, sdp_bandwidth_t const *b)
Compare two bandwidth (b=) fields.
Definition: sdp.c:1262
char const * sdp_parsing_error(sdp_parser_t *p)
Get a parsing error message.
Definition: sdp_parse.c:237
sdp_media_t * sdp_media_dup(su_home_t *, sdp_media_t const *, sdp_session_t *)
Duplicate an SDP media description structure.
Definition: sdp.c:392
void sdp_attribute_append(sdp_attribute_t **list, sdp_attribute_t const *a)
Append a attribute to a list of attributes.
Definition: sdp.c:1675
int sdp_sanity_check(sdp_parser_t *)
Validates that all mandatory fields exist.
Definition: sdp_parse.c:569
void sdp_parser_free(sdp_parser_t *p)
Free an SDP parser.
Definition: sdp_parse.c:249
int sdp_key_cmp(sdp_key_t const *a, sdp_key_t const *b)
Compare two key (k=) fields.
Definition: sdp.c:1364
void sdp_printer_free(sdp_printer_t *p)
Free a SDP printer.
Definition: sdp_print.c:233
sdp_attribute_t * sdp_attribute_dup(su_home_t *, sdp_attribute_t const *)
Duplicate an SDP attribute structure.
Definition: sdp.c:330
sdp_session_t * sdp_session_dup(su_home_t *, sdp_session_t const *)
Duplicate an SDP session description structure.
Definition: sdp.c:997
sdp_key_t * sdp_key_dup(su_home_t *, sdp_key_t const *)
Duplicate an SDP key structure.
Definition: sdp.c:310
int sdp_session_cmp(sdp_session_t const *a, sdp_session_t const *b)
Compare two session descriptions.
Definition: sdp.c:1162
sdp_parser_t * sdp_parse(su_home_t *, char const msg[], issize_t msgsize, int flags)
Parse an SDP message.
Definition: sdp_parse.c:148
int sdp_media_has_rtp(sdp_media_t const *m)
Check if media uses RTP as its transport protocol
Definition: sdp_parse.c:1446
sdp_printer_t * sdp_print(su_home_t *, sdp_session_t const *, char msgbuf[], isize_t maxmsgsize, int flags)
Print a SDP description.
Definition: sdp_print.c:129
sdp_mode_t
Session mode.
Definition: sdp.h:259
sdp_connection_t * sdp_media_connections(sdp_media_t const *m)
Get connections of a media description.
Definition: sdp.c:1536
int sdp_rtpmap_cmp(sdp_rtpmap_t const *a, sdp_rtpmap_t const *b)
Compare two rtpmap structures.
Definition: sdp.c:1400
sdp_rtpmap_t * sdp_rtpmap_dup(su_home_t *, sdp_rtpmap_t const *)
Duplicate an rtpmap structure.
Definition: sdp.c:370
int sdp_rtpmap_match(sdp_rtpmap_t const *, sdp_rtpmap_t const *)
Check if payload type, rtp rate and parameters match in rtpmaps.
Definition: sdp.c:1859
struct sdp_printer_s sdp_printer_t
SDP printer handle.
Definition: sdp.h:555
sdp_nettype_e
Network type.
Definition: sdp.h:113
@ sdp_net_x
Unknown network type.
Definition: sdp.h:114
@ sdp_net_in
Internet.
Definition: sdp.h:115
sdp_attribute_t * sdp_attribute_find(sdp_attribute_t const *a, char const *name)
Find named attribute from given list.
Definition: sdp.c:1550
int sdp_origin_cmp(sdp_origin_t const *a, sdp_origin_t const *b)
Compare two origin fields.
Definition: sdp.c:1218
void sdp_media_type(sdp_media_t *m, char const *s)
Set media type.
Definition: sdp_parse.c:1377
sdp_attribute_t * sdp_attribute_remove(sdp_attribute_t **list, char const *name)
Remove a named attribute from a list of attributes.
Definition: sdp.c:1732
sdp_session_t * sdp_session(sdp_parser_t *p)
Retrieve an SDP session structure.
Definition: sdp_parse.c:221
unsigned sdp_media_count(sdp_session_t const *sdp, sdp_media_e type, sdp_text_t *type_name, sdp_proto_e proto, sdp_text_t *proto_name)
Count media lines in SDP.
Definition: sdp.c:1818
char const sdp_text_t
Message text.
Definition: sdp.h:72
isize_t sdp_message_size(sdp_printer_t *p)
Get size of encoded SDP message.
Definition: sdp_print.c:218
sdp_rtpmap_t * sdp_rtpmap_find_matching(sdp_rtpmap_t const *list, sdp_rtpmap_t const *rm)
Search for matching rtpmap from list.
Definition: sdp.c:1895
unsigned sdp_media_count_with(sdp_session_t const *sdp, sdp_media_t const *m0)
Count matching media lines in SDP.
Definition: sdp.c:1835
int sdp_connection_cmp(sdp_connection_t const *, sdp_connection_t const *b)
Compare two connection fields.
Definition: sdp.c:1240
sdp_zone_t * sdp_zone_dup(su_home_t *, sdp_zone_t const *)
Duplicate an SDP timezone structure.
Definition: sdp.c:290
int sdp_attribute_replace(sdp_attribute_t **list, sdp_attribute_t *a, sdp_attribute_t **return_replaced)
Replace a attribute within a list of attributes.
Definition: sdp.c:1695
struct sdp_parser_s sdp_parser_t
SDP parser handle.
Definition: sdp.h:538
int sdp_repeat_cmp(sdp_repeat_t const *a, sdp_repeat_t const *b)
Compare two repeat (r=) fields.
Definition: sdp.c:1307
sdp_attribute_t * sdp_attribute_find2(sdp_attribute_t const *a, sdp_attribute_t const *a2, char const *name)
Find named attribute from given lists.
Definition: sdp.c:1561
int sdp_list_cmp(sdp_list_t const *a, sdp_list_t const *b)
Compare two text lists.
Definition: sdp.c:1440
sdp_bandwidth_t * sdp_bandwidth_dup(su_home_t *, sdp_bandwidth_t const *)
Duplicate an SDP bandwidth structure.
Definition: sdp.c:230
sdp_media_t * sdp_media_dup_all(su_home_t *, sdp_media_t const *, sdp_session_t *)
Duplicate a list of SDP media description structures.
Definition: sdp.c:420
sdp_list_t * sdp_list_dup(su_home_t *, sdp_list_t const *)
Duplicate a list structure.
Definition: sdp.c:350
sdp_parse_flags_e
Flags given to sdp_parse()/sdp_print().
Definition: sdp.h:512
@ sdp_f_all_rtpmaps
Include well-known rtpmaps in message, too.
Definition: sdp.h:520
@ sdp_f_insane
Don't run sanity check.
Definition: sdp.h:526
@ sdp_f_print_prefix
Print buffer already contains a valid prefix.
Definition: sdp.h:522
@ sdp_f_realloc
Reallocate message.
Definition: sdp.h:518
@ sdp_f_strict
Accept only conforming SDP.
Definition: sdp.h:514
@ sdp_f_c_missing
Don't require c= for each media line.
Definition: sdp.h:528
@ sdp_f_mode_0000
Connection line with INADDR_ANY is considered equal to sendonly.
Definition: sdp.h:524
@ sdp_f_mode_manual
Do not generate or parse SDP mode.
Definition: sdp.h:532
@ sdp_f_mode_always
Always generate media-level mode attributes.
Definition: sdp.h:534
@ sdp_f_config
Parse SDP config files.
Definition: sdp.h:530
@ sdp_f_anynet
Accept any network type.
Definition: sdp.h:516
sdp_connection_t * sdp_connection_dup(su_home_t *, sdp_connection_t const *)
Duplicate an SDP connection structure.
Definition: sdp.c:210
int sdp_media_uses_rtp(sdp_media_t const *m)
Return true if media uses RTP.
Definition: sdp.c:1849
int sdp_zone_cmp(sdp_zone_t const *a, sdp_zone_t const *b)
Compare two zone (z=) fields.
Definition: sdp.c:1336
char const * sdp_message(sdp_printer_t *p)
Get encoded SDP message.
Definition: sdp_print.c:201
void sdp_media_transport(sdp_media_t *m, char const *s)
Set transport protocol.
Definition: sdp_parse.c:1408
sdp_addrtype_e
Address type.
Definition: sdp.h:120
@ sdp_addr_ip6
IPv6 address.
Definition: sdp.h:123
@ sdp_addr_x
Unknown address type.
Definition: sdp.h:121
@ sdp_addr_ip4
IPv4 address.
Definition: sdp.h:122
sdp_key_method_e
Mechanism to be used to obtain session key.
Definition: sdp.h:198
@ sdp_key_base64
Key is encoded with base64.
Definition: sdp.h:201
@ sdp_key_clear
Key is included untransformed.
Definition: sdp.h:200
@ sdp_key_uri
URI used to obtain a key.
Definition: sdp.h:202
@ sdp_key_x
Unknown mechanism.
Definition: sdp.h:199
@ sdp_key_prompt
No key is included, prompt user for key.
Definition: sdp.h:203
sdp_bandwidth_e
Bandwdith type.
Definition: sdp.h:142
@ sdp_bw_x
Unknown bandwidth type.
Definition: sdp.h:143
@ sdp_bw_rr
RFC 3556 SDP Bandwidth Modifiers for RTCP.
Definition: sdp.h:148
@ sdp_bw_rs
RFC 3556 SDP Bandwidth Modifiers for RTCP.
Definition: sdp.h:147
@ sdp_bw_ct
Conference total.
Definition: sdp.h:144
@ sdp_bw_tias
Application-specific.
Definition: sdp.h:146
@ sdp_bw_as
Application-specific.
Definition: sdp.h:145
sdp_mode_t sdp_attribute_mode(sdp_attribute_t const *a, sdp_mode_t defmode)
Get session mode from attribute list.
Definition: sdp.c:1580
su_home_t * sdp_parser_home(sdp_parser_t *)
Obtain memory home used by parser.
Definition: sdp_parse.c:201
int sdp_media_cmp(sdp_media_t const *, sdp_media_t const *)
Compare two media (m=) descriptions.
Definition: sdp.c:1457
sdp_attribute_t * sdp_attribute_mapped_find(sdp_attribute_t const *a, char const *name, int pt, char **return_result)
Find a mapped attribute.
Definition: sdp.c:1637
sdp_attribute_t * sdp_attribute_by_mode(su_home_t *, sdp_mode_t mode)
Get session mode from attribute list.
Definition: sdp.c:1597
sdp_proto_e
Media transport protocol.
Definition: sdp.h:243
@ sdp_proto_srtp
RTP/SAVP
Definition: sdp.h:248
@ sdp_proto_udp
Plain UDP.
Definition: sdp.h:246
@ sdp_proto_tls
WEBRTC AVPF.
Definition: sdp.h:254
@ sdp_proto_any
Definition: sdp.h:255
@ sdp_proto_udptl
UDPTL.
Definition: sdp.h:249
@ sdp_proto_extended_rtp
WEBRTC SAVPF.
Definition: sdp.h:253
@ sdp_proto_tcp
TCP
Definition: sdp.h:245
@ sdp_proto_x
Unknown transport
Definition: sdp.h:244
@ sdp_proto_rtp
RTP/AVP.
Definition: sdp.h:247
@ sdp_proto_msrp
TCP/MSRP @NEW_MSRP.
Definition: sdp.h:250
@ sdp_proto_msrps
TCP/TLS/MSRP @NEW_MSRP.
Definition: sdp.h:251
sdp_time_t * sdp_time_dup(su_home_t *, sdp_time_t const *)
Duplicate an SDP time structure.
Definition: sdp.c:250
sdp_rtpmap_t const *const sdp_rtpmap_well_known[128]
Table of rtpmap structures by payload type numbers.
Definition: sdp_parse.c:1492
unsigned long sdp_version_t
SDP version "v=" line.
Definition: sdp.h:47
sdp_origin_t * sdp_origin_dup(su_home_t *, sdp_origin_t const *)
Duplicate an SDP origin structure.
Definition: sdp.c:190
sdp_media_e
Media type.
Definition: sdp.h:226
@ sdp_media_image
Image browsing sessions, e.g., JPIP or T.38.
Definition: sdp.h:235
@ sdp_media_audio
Audio.
Definition: sdp.h:229
@ sdp_media_any
Definition: sdp.h:228
@ sdp_media_data
Bulk data transfer.
Definition: sdp.h:232
@ sdp_media_red
Redundancy.
Definition: sdp.h:237
@ sdp_media_text
Realtime Text.
Definition: sdp.h:238
@ sdp_media_x
Unknown media.
Definition: sdp.h:227
@ sdp_media_video
Video.
Definition: sdp.h:230
@ sdp_media_message
Messaging sessions.
Definition: sdp.h:234
@ sdp_media_application
Conferencing.
Definition: sdp.h:231
@ sdp_media_control
Additional conference control.
Definition: sdp.h:233
int sdp_attribute_cmp(sdp_attribute_t const *, sdp_attribute_t const *)
Compare two attribute (a=) fields.
Definition: sdp.c:1385
char const * sdp_printing_error(sdp_printer_t *p)
Get encoding error.
Definition: sdp_print.c:180
int sdp_time_cmp(sdp_time_t const *a, sdp_time_t const *b)
Compare two time fields.
Definition: sdp.c:1287
Session or media attribute.
Definition: sdp.h:217
sdp_text_t * a_value
Attribute value.
Definition: sdp.h:221
sdp_attribute_t * a_next
Next attribute in list.
Definition: sdp.h:219
sdp_text_t * a_name
Attribute name.
Definition: sdp.h:220
int a_size
sizeof sdp_attribute_t
Definition: sdp.h:218
Session or media bandwidth.
Definition: sdp.h:153
unsigned long b_value
Bandwidth in kilobits per second.
Definition: sdp.h:159
sdp_bandwidth_t * b_next
Next bw description in list.
Definition: sdp.h:155
sdp_text_t * b_modifier_name
Modifier if not well-known.
Definition: sdp.h:158
sdp_bandwidth_e b_modifier
Meaning of value (total, or per application).
Definition: sdp.h:156
int b_size
Size fo sdp_bandwidth_t.
Definition: sdp.h:154
SDP connection - host or group address.
Definition: sdp.h:128
sdp_nettype_e c_nettype
Network type.
Definition: sdp.h:131
sdp_connection_t * c_next
Next connection in list.
Definition: sdp.h:130
unsigned c_mcast
True if multicast.
Definition: sdp.h:135
unsigned c_groups
Number of groups (if multiple)
Definition: sdp.h:137
unsigned c_ttl
Time to live (scope)
Definition: sdp.h:134
int c_size
Size fo sdp_connection_t.
Definition: sdp.h:129
sdp_addrtype_e c_addrtype
Address type.
Definition: sdp.h:132
sdp_text_t * c_address
Host or group address.
Definition: sdp.h:133
Session key.
Definition: sdp.h:209
sdp_text_t * k_method_name
Mechanism if not known
Definition: sdp.h:212
sdp_text_t * k_material
Encryption key
Definition: sdp.h:213
sdp_key_method_e k_method
Mechanism used to obtain key.
Definition: sdp.h:211
int k_size
sizeof sdp_key_t
Definition: sdp.h:210
Text list.
Definition: sdp.h:307
int l_size
sizeof sdp_list_t
Definition: sdp.h:308
sdp_list_t * l_next
Next text entry in list.
Definition: sdp.h:309
sdp_text_t * l_text
Text as C string.
Definition: sdp.h:310
Media announcement.
Definition: sdp.h:277
int m_size
sizeof sdp_media_t
Definition: sdp.h:278
sdp_key_t * m_key
Media key.
Definition: sdp.h:293
unsigned m_rejected
Rejected media.
Definition: sdp.h:299
sdp_session_t * m_session
Back-pointer to session level.
Definition: sdp.h:280
unsigned m_mode
Inactive, recvonly, sendonly, sendrecv.
Definition: sdp.h:301
sdp_media_e m_type
Media type
Definition: sdp.h:282
sdp_connection_t * m_connections
List of addresses used.
Definition: sdp.h:291
sdp_text_t * m_information
Media information.
Definition: sdp.h:290
sdp_text_t * m_type_name
Media type name.
Definition: sdp.h:283
sdp_rtpmap_t * m_rtpmaps
List of RTP maps.
Definition: sdp.h:289
unsigned long m_port
Transport port number.
Definition: sdp.h:284
sdp_text_t * m_proto_name
Transport protocol name.
Definition: sdp.h:287
sdp_attribute_t * m_attributes
Media attributes.
Definition: sdp.h:294
sdp_proto_e m_proto
Transport protocol
Definition: sdp.h:286
sdp_media_t * m_next
Next media announcement
Definition: sdp.h:279
unsigned long m_number_of_ports
Number of ports (if multiple)
Definition: sdp.h:285
void * m_user
User data.
Definition: sdp.h:296
sdp_list_t * m_format
List of media formats.
Definition: sdp.h:288
sdp_bandwidth_t * m_bandwidths
Bandwidth specification.
Definition: sdp.h:292
Session description identification.
Definition: sdp.h:103
int o_size
sizeof sdp_origin_t
Definition: sdp.h:104
sdp_text_t * o_username
Username of originator.
Definition: sdp.h:105
uint64_t o_id
Session identification
Definition: sdp.h:106
uint64_t o_version
Version of session description.
Definition: sdp.h:107
sdp_connection_t * o_address
Address of originator.
Definition: sdp.h:108
Description of repetition.
Definition: sdp.h:175
unsigned long r_duration
Duration of activation.
Definition: sdp.h:181
unsigned long r_offsets[1]
List of offsets from start-time.
Definition: sdp.h:182
int r_size
Size of structure including r_offsets[r_number_of_offsets].
Definition: sdp.h:176
int r_number_of_offsets
Number of offsets in list.
Definition: sdp.h:179
unsigned long r_interval
Time between activations.
Definition: sdp.h:180
Mapping from RTP payload to codec.
Definition: sdp.h:322
sdp_text_t * rm_params
Format-specific parameters
Definition: sdp.h:327
sdp_text_t * rm_fmtp
Contents of fmtp.
Definition: sdp.h:328
unsigned rm_any
Wildcard entry.
Definition: sdp.h:331
unsigned rm_pt
Payload type.
Definition: sdp.h:330
sdp_text_t * rm_encoding
Codec name.
Definition: sdp.h:325
unsigned long rm_rate
Sampling rate.
Definition: sdp.h:326
unsigned rm_predef
is this entry well-known?
Definition: sdp.h:329
int rm_size
sizeof sdp_rtpmap_t
Definition: sdp.h:323
sdp_rtpmap_t * rm_next
Next RTP map entry
Definition: sdp.h:324
Session description.
Definition: sdp.h:82
int sdp_size
sizeof sdp_session_t
Definition: sdp.h:83
sdp_text_t * sdp_subject
Session name.
Definition: sdp.h:87
sdp_text_t * sdp_information
Session information
Definition: sdp.h:88
sdp_attribute_t * sdp_attributes
Session attributes.
Definition: sdp.h:96
sdp_media_t * sdp_media
Media descriptors.
Definition: sdp.h:98
sdp_list_t * sdp_emails
E-mail address(s)
Definition: sdp.h:90
sdp_text_t * sdp_uri
URi of description.
Definition: sdp.h:89
sdp_connection_t * sdp_connection
Group (or member) address.
Definition: sdp.h:92
sdp_key_t * sdp_key
Session key.
Definition: sdp.h:95
sdp_text_t * sdp_charset
SDP charset (default is UTF8)
Definition: sdp.h:97
sdp_version_t sdp_version[1]
SDP version.
Definition: sdp.h:85
sdp_session_t * sdp_next
Next description in list.
Definition: sdp.h:84
sdp_origin_t * sdp_origin
Owner/creator and session ID.
Definition: sdp.h:86
sdp_time_t * sdp_time
Session active time.
Definition: sdp.h:94
sdp_list_t * sdp_phones
Phone number(s)
Definition: sdp.h:91
sdp_bandwidth_t * sdp_bandwidths
Session bandwidth.
Definition: sdp.h:93
Active time description.
Definition: sdp.h:164
sdp_zone_t * t_zone
Time Zone infromation.
Definition: sdp.h:170
unsigned long t_stop
Stop time (seconds since 1900)
Definition: sdp.h:168
sdp_time_t * t_next
Next time description in list.
Definition: sdp.h:166
int t_size
sizeof sdp_time_t in bytes
Definition: sdp.h:165
sdp_repeat_t * t_repeat
Repeat information.
Definition: sdp.h:169
unsigned long t_start
Start time (seconds since 1900)
Definition: sdp.h:167
Timezone.
Definition: sdp.h:187
int z_size
Size of structure including z_adjustments[z_number_of_adjustments].
Definition: sdp.h:189
long z_offset
Adjustment offset
Definition: sdp.h:193
struct sdp_zone_s::@1 z_adjustments[1]
List of timezone adjustments.
int z_number_of_adjustments
Number of adjustments in list
Definition: sdp.h:190
unsigned long z_at
Adjustment time
Definition: sdp.h:192
SU_HOME_T su_home_t
#define SOFIAPUBFUN
#define SOFIAPUBVAR
SU_U64_T uint64_t

Sofia-SIP 1.13.17 - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.