74 #define SDP_MIME_TYPE "application/sdp" 77 SDP_CURRENT_VERSION = 0
250 sdp_proto_extended_srtp = 261,
261 sdp_sendrecv = sdp_sendonly | sdp_recvonly
462 int pt,
char **return_result);
540 char const msg[], issize_t msgsize,
557 char msgbuf[], isize_t maxmsgsize,
564 #define sdp_mapped_attribute_find sdp_attribute_mapped_find 565 #define sdp_free_parser sdp_parser_free 566 #define sdp_free_printer sdp_printer_free int z_size
Size of structure including z_adjustments[z_number_of_adjustments].
Definition: sdp.h:187
Unknown network type.
Definition: sdp.h:114
sdp_nettype_e
Network type.
Definition: sdp.h:112
TCP/MSRP @NEW_MSRP.
Definition: sdp.h:248
sdp_list_t * sdp_emails
E-mail address(s)
Definition: sdp.h:90
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
TCP/TLS/MSRP @NEW_MSRP.
Definition: sdp.h:249
sdp_origin_t * sdp_origin_dup(su_home_t *, sdp_origin_t const *)
Duplicate an SDP origin structure.
Definition: sdp.c:190
Messaging sessions.
Definition: sdp.h:232
Don't require c= for each media line.
Definition: sdp.h:526
sdp_bandwidth_t * b_next
Next bw description in list.
Definition: sdp.h:153
sdp_text_t * sdp_charset
SDP charset (default is UTF8)
Definition: sdp.h:97
sdp_session_t * sdp_session(sdp_parser_t *p)
Retrieve an SDP session structure.
Definition: sdp_parse.c:217
sdp_addrtype_e c_addrtype
Address type.
Definition: sdp.h:132
sdp_attribute_t * sdp_attribute_dup(su_home_t *, sdp_attribute_t const *)
Duplicate an SDP attribute structure.
Definition: sdp.c:330
int sdp_session_cmp(sdp_session_t const *a, sdp_session_t const *b)
Compare two session descriptions.
Definition: sdp.c:1162
unsigned rm_predef
is this entry well-known?
Definition: sdp.h:327
struct sdp_printer_s sdp_printer_t
SDP printer handle.
Definition: sdp.h:553
sdp_nettype_e c_nettype
Network type.
Definition: sdp.h:131
sdp_attribute_t * a_next
Next attribute in list.
Definition: sdp.h:217
int sdp_origin_cmp(sdp_origin_t const *a, sdp_origin_t const *b)
Compare two origin fields.
Definition: sdp.c:1218
sdp_rtpmap_t * rm_next
Next RTP map entry.
Definition: sdp.h:322
Session description identification.
Definition: sdp.h:102
Unknown mechanism.
Definition: sdp.h:197
int sdp_sanity_check(sdp_parser_t *)
Validates that all mandatory fields exist.
Definition: sdp_parse.c:561
sdp_rtpmap_t * sdp_rtpmap_dup(su_home_t *, sdp_rtpmap_t const *)
Duplicate an rtpmap structure.
Definition: sdp.c:370
sdp_parse_flags_e
Flags given to sdp_parse()/sdp_print().
Definition: sdp.h:510
No key is included, prompt user for key.
Definition: sdp.h:201
Additional conference control.
Definition: sdp.h:231
su_home_t * sdp_parser_home(sdp_parser_t *)
Obtain memory home used by parser.
Definition: sdp_parse.c:197
sdp_session_t * sdp_next
Next description in list.
Definition: sdp.h:84
unsigned long r_offsets[1]
List of offsets from start-time.
Definition: sdp.h:180
int rm_size
sizeof sdp_rtpmap_t
Definition: sdp.h:321
Conference total.
Definition: sdp.h:144
sdp_origin_t * sdp_origin
Owner/creator and session ID.
Definition: sdp.h:86
sdp_text_t * sdp_information
Session information.
Definition: sdp.h:88
sdp_repeat_t * t_repeat
Repeat information.
Definition: sdp.h:167
unsigned long sdp_version_t
SDP version "v=" line.
Definition: sdp.h:47
Do not generate or parse SDP mode.
Definition: sdp.h:530
sdp_key_method_e
Mechanism to be used to obtain session key.
Definition: sdp.h:196
Application-specific.
Definition: sdp.h:146
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
sdp_bandwidth_e
Bandwdith type.
Definition: sdp.h:141
Redundancy.
Definition: sdp.h:235
unsigned c_mcast
True if multicast.
Definition: sdp.h:135
long z_offset
Adjustment offset.
Definition: sdp.h:191
sdp_text_t * b_modifier_name
Modifier if not well-known.
Definition: sdp.h:156
sdp_key_t * sdp_key_dup(su_home_t *, sdp_key_t const *)
Duplicate an SDP key structure.
Definition: sdp.c:310
sdp_addrtype_e
Address type.
Definition: sdp.h:119
sdp_attribute_t * sdp_attributes
Session attributes.
Definition: sdp.h:96
int sdp_key_cmp(sdp_key_t const *a, sdp_key_t const *b)
Compare two key (k=) fields.
Definition: sdp.c:1364
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
unsigned c_groups
Number of groups (if multiple)
Definition: sdp.h:137
Accept only conforming SDP.
Definition: sdp.h:512
int sdp_repeat_cmp(sdp_repeat_t const *a, sdp_repeat_t const *b)
Compare two repeat (r=) fields.
Definition: sdp.c:1307
sdp_bandwidth_e b_modifier
Meaning of value (total, or per application).
Definition: sdp.h:154
sdp_text_t * o_username
Username of originator.
Definition: sdp.h:105
sdp_connection_t * sdp_connection_dup(su_home_t *, sdp_connection_t const *)
Duplicate an SDP connection structure.
Definition: sdp.c:210
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
sdp_text_t * rm_params
Format-specific parameters.
Definition: sdp.h:325
void sdp_media_type(sdp_media_t *m, char const *s)
Set media type.
Definition: sdp_parse.c:1361
int r_number_of_offsets
Number of offsets in list.
Definition: sdp.h:177
unsigned long t_stop
Stop time (seconds since 1900)
Definition: sdp.h:166
int sdp_media_has_rtp(sdp_media_t const *m)
Check if media uses RTP as its transport protocol.
Definition: sdp_parse.c:1430
sdp_key_t * sdp_key
Session key.
Definition: sdp.h:95
sdp_session_t * sdp_session_dup(su_home_t *, sdp_session_t const *)
Duplicate an SDP session description structure.
Definition: sdp.c:997
unsigned c_ttl
Time to live (scope)
Definition: sdp.h:134
int sdp_time_cmp(sdp_time_t const *a, sdp_time_t const *b)
Compare two time fields.
Definition: sdp.c:1287
RTP/AVP.
Definition: sdp.h:245
int r_size
Size of structure including r_offsets[r_number_of_offsets].
Definition: sdp.h:174
sdp_zone_t * t_zone
Time Zone infromation.
Definition: sdp.h:168
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
struct sdp_parser_s sdp_parser_t
SDP parser handle.
Definition: sdp.h:536
sdp_text_t * rm_fmtp
Contents of fmtp.
Definition: sdp.h:326
unsigned long r_interval
Time between activations.
Definition: sdp.h:178
sdp_parser_t * sdp_parse(su_home_t *, char const msg[], issize_t msgsize, int flags)
Parse an SDP message.
Definition: sdp_parse.c:144
RTP/SAVP.
Definition: sdp.h:246
sdp_text_t * a_name
Attribute name.
Definition: sdp.h:218
Include well-known rtpmaps in message, too.
Definition: sdp.h:518
sdp_text_t * k_material
Encryption key.
Definition: sdp.h:211
unsigned long r_duration
Duration of activation.
Definition: sdp.h:179
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
Session or media attribute.
Definition: sdp.h:215
sdp_time_t * sdp_time
Session active time.
Definition: sdp.h:94
int o_size
sizeof sdp_origin_t
Definition: sdp.h:104
unsigned rm_pt
Payload type.
Definition: sdp.h:328
Don't run sanity check.
Definition: sdp.h:524
int t_size
sizeof sdp_time_t in bytes
Definition: sdp.h:163
int a_size
sizeof sdp_attribute_t
Definition: sdp.h:216
sdp_media_e
Media type.
Definition: sdp.h:223
Application-specific.
Definition: sdp.h:145
int sdp_bandwidth_cmp(sdp_bandwidth_t const *a, sdp_bandwidth_t const *b)
Compare two bandwidth (b=) fields.
Definition: sdp.c:1262
UDPTL.
Definition: sdp.h:247
sdp_proto_e
Media transport protocol.
Definition: sdp.h:240
sdp_text_t * sdp_subject
Session name.
Definition: sdp.h:87
sdp_list_t * sdp_list_dup(su_home_t *, sdp_list_t const *)
Duplicate a list structure.
Definition: sdp.c:350
Session key.
Definition: sdp.h:206
Unknown transport.
Definition: sdp.h:242
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
int k_size
sizeof sdp_key_t
Definition: sdp.h:208
Key is encoded with base64.
Definition: sdp.h:199
int sdp_list_cmp(sdp_list_t const *a, sdp_list_t const *b)
Compare two text lists.
Definition: sdp.c:1440
sdp_text_t * a_value
Attribute value.
Definition: sdp.h:219
isize_t sdp_message_size(sdp_printer_t *p)
Get size of encoded SDP message.
Definition: sdp_print.c:218
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_media_uses_rtp(sdp_media_t const *m)
Return true if media uses RTP.
Definition: sdp.c:1849
sdp_bandwidth_t * sdp_bandwidth_dup(su_home_t *, sdp_bandwidth_t const *)
Duplicate an SDP bandwidth structure.
Definition: sdp.c:230
Mapping from RTP payload to codec.
Definition: sdp.h:320
Video.
Definition: sdp.h:228
IPv4 address.
Definition: sdp.h:122
WEBRTC AVPF.
Definition: sdp.h:252
TCP.
Definition: sdp.h:243
sdp_attribute_t * sdp_attribute_by_mode(su_home_t *, sdp_mode_t mode)
Get session mode from attribute list.
Definition: sdp.c:1597
Session description.
Definition: sdp.h:81
Audio.
Definition: sdp.h:227
Connection line with INADDR_ANY is considered equal to sendonly.
Definition: sdp.h:522
struct sdp_zone_s::@1 z_adjustments[1]
List of timezone adjustments.
unsigned long rm_rate
Sampling rate.
Definition: sdp.h:324
sdp_connection_t * o_address
Address of originator.
Definition: sdp.h:108
sdp_time_t * t_next
Next time description in list.
Definition: sdp.h:164
void sdp_parser_free(sdp_parser_t *p)
Free an SDP parser.
Definition: sdp_parse.c:245
Accept any network type.
Definition: sdp.h:514
sdp_text_t * k_method_name
Mechanism if not known.
Definition: sdp.h:210
URI used to obtain a key.
Definition: sdp.h:200
Parse SDP config files.
Definition: sdp.h:528
Session or media bandwidth.
Definition: sdp.h:150
char const sdp_text_t
Message text.
Definition: sdp.h:72
Bulk data transfer.
Definition: sdp.h:230
Unknown bandwidth type.
Definition: sdp.h:143
unsigned long b_value
Bandwidth in kilobits per second.
Definition: sdp.h:157
int sdp_rtpmap_cmp(sdp_rtpmap_t const *a, sdp_rtpmap_t const *b)
Compare two rtpmap structures.
Definition: sdp.c:1400
sdp_list_t * sdp_phones
Phone number(s)
Definition: sdp.h:91
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
Unknown media.
Definition: sdp.h:225
void sdp_media_transport(sdp_media_t *m, char const *s)
Set transport protocol.
Definition: sdp_parse.c:1392
int sdp_size
sizeof sdp_session_t
Definition: sdp.h:83
char const * sdp_printing_error(sdp_printer_t *p)
Get encoding error.
Definition: sdp_print.c:180
sdp_connection_t * sdp_media_connections(sdp_media_t const *m)
Get connections of a media description.
Definition: sdp.c:1536
int b_size
Size fo sdp_bandwidth_t.
Definition: sdp.h:152
sdp_repeat_t * sdp_repeat_dup(su_home_t *, sdp_repeat_t const *)
Duplicate an SDP repeat structure.
Definition: sdp.c:270
sdp_text_t * rm_encoding
Codec name.
Definition: sdp.h:323
sdp_text_t * c_address
Host or group address.
Definition: sdp.h:133
sdp_time_t * sdp_time_dup(su_home_t *, sdp_time_t const *)
Duplicate an SDP time structure.
Definition: sdp.c:250
sdp_connection_t * c_next
Next connection in list.
Definition: sdp.h:130
char const * sdp_message(sdp_printer_t *p)
Get encoded SDP message.
Definition: sdp_print.c:201
int c_size
Size fo sdp_connection_t.
Definition: sdp.h:129
sdp_text_t * l_text
Text as C string.
Definition: sdp.h:308
unsigned rm_any
Wildcard entry.
Definition: sdp.h:329
WEBRTC SAVPF.
Definition: sdp.h:251
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
Timezone.
Definition: sdp.h:184
int sdp_zone_cmp(sdp_zone_t const *a, sdp_zone_t const *b)
Compare two zone (z=) fields.
Definition: sdp.c:1336
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
void sdp_printer_free(sdp_printer_t *p)
Free a SDP printer.
Definition: sdp_print.c:233
Reallocate message.
Definition: sdp.h:516
unsigned long z_at
Adjustment time.
Definition: sdp.h:190
IPv6 address.
Definition: sdp.h:123
sdp_mode_t
Session mode.
Definition: sdp.h:257
int sdp_attribute_cmp(sdp_attribute_t const *, sdp_attribute_t const *)
Compare two attribute (a=) fields.
Definition: sdp.c:1385
int l_size
sizeof sdp_list_t
Definition: sdp.h:306
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
Conferencing.
Definition: sdp.h:229
Unknown address type.
Definition: sdp.h:121
int z_number_of_adjustments
Number of adjustments in list.
Definition: sdp.h:188
char const * sdp_parsing_error(sdp_parser_t *p)
Get a parsing error message.
Definition: sdp_parse.c:233
sdp_zone_t * sdp_zone_dup(su_home_t *, sdp_zone_t const *)
Duplicate an SDP timezone structure.
Definition: sdp.c:290
Always generate media-level mode attributes.
Definition: sdp.h:532
sdp_key_method_e k_method
Mechanism used to obtain key.
Definition: sdp.h:209
Internet.
Definition: sdp.h:115
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
unsigned long t_start
Start time (seconds since 1900)
Definition: sdp.h:165
Description of repetition.
Definition: sdp.h:172
Image browsing sessions, e.g., JPIP or T.38.
Definition: sdp.h:233
sdp_connection_t * sdp_connection
Group (or member) address.
Definition: sdp.h:92
Key is included untransformed.
Definition: sdp.h:198
sdp_version_t sdp_version[1]
SDP version.
Definition: sdp.h:85
Realtime Text.
Definition: sdp.h:236
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_media_t * sdp_media
Media descriptors.
Definition: sdp.h:98
SDP connection - host or group address.
Definition: sdp.h:127
int sdp_connection_cmp(sdp_connection_t const *, sdp_connection_t const *b)
Compare two connection fields.
Definition: sdp.c:1240
uint64_t o_id
Session identification.
Definition: sdp.h:106
Plain UDP.
Definition: sdp.h:244
sdp_rtpmap_t const *const sdp_rtpmap_well_known[128]
Table of rtpmap structures by payload type numbers.
Definition: sdp_parse.c:1476
Active time description.
Definition: sdp.h:161
Print buffer already contains a valid prefix.
Definition: sdp.h:520
int sdp_media_cmp(sdp_media_t const *, sdp_media_t const *)
Compare two media (m=) descriptions.
Definition: sdp.c:1457
sdp_bandwidth_t * sdp_bandwidths
Session bandwidth.
Definition: sdp.h:93
sdp_list_t * l_next
Next text entry in list.
Definition: sdp.h:307
Text list.
Definition: sdp.h:304
sdp_text_t * sdp_uri
URi of description.
Definition: sdp.h:89
uint64_t o_version
Version of session description.
Definition: sdp.h:107