sofia-sip/sdp.h File Reference


Detailed Description

Simple SDP (RFC 2327) Interface.

Author:
Pekka Pessi <Pekka.Pessi@nokia-email.address.hidden>

Kai Vehmanen <kai.vehmanen@nokia-email.address.hidden>

Date:
Created: Fri Feb 18 08:54:48 2000 ppessi

#include <sofia-sip/su_alloc.h>
#include <sofia-sip/su_types.h>

Include dependency graph for sdp.h:

Go to the source code of this file.

Data Structures

struct  sdp_session_s
 Session description. More...
struct  sdp_origin_s
 Session description identification. More...
struct  sdp_connection_s
 SDP connection - host or group address. More...
struct  sdp_bandwidth_s
 Session or media bandwidth. More...
struct  sdp_time_s
 Active time description. More...
struct  sdp_repeat_s
 Description of repetition. More...
struct  sdp_zone_s
 Timezone. More...
struct  sdp_key_s
 Session key. More...
struct  sdp_attribute_s
 Session or media attribute. More...
struct  sdp_media_s
 Media announcement. More...
struct  sdp_list_s
 Text list. More...
struct  sdp_rtpmap_s
 Mapping from RTP payload to codec. More...

Typedefs

typedef typedefSOFIA_BEGIN_DECLS
struct sdp_session_s 
sdp_session_t
 SDP session description.
typedef unsigned long sdp_version_t
 SDP version "v=" line.
typedef sdp_origin_s sdp_origin_t
 SDP origin "o=" line.
typedef sdp_connection_s sdp_connection_t
 SDP connection "c=" line.
typedef sdp_bandwidth_s sdp_bandwidth_t
 SDP bandwidth "b=" line.
typedef sdp_time_s sdp_time_t
 SDP time "t=" line.
typedef sdp_repeat_s sdp_repeat_t
 SDP repeat "r=" line.
typedef sdp_zone_s sdp_zone_t
 SDP timezone "z=" line.
typedef sdp_key_s sdp_key_t
 SDP encryption key "k=" line.
typedef sdp_attribute_s sdp_attribute_t
 SDP attribute "a=" line.
typedef sdp_media_s sdp_media_t
 SDP media "m=" line.
typedef sdp_list_s sdp_list_t
 SDP list ("e=", "p=" lines).
typedef sdp_rtpmap_s sdp_rtpmap_t
 SDP rtpmap attribute.
typedef char const sdp_text_t
 Message text.
typedef sdp_parser_s sdp_parser_t
 SDP parser handle.
typedef sdp_printer_s sdp_printer_t
 SDP printer handle.

Enumerations

enum  sdp_nettype_e {
  sdp_net_x,
  sdp_net_in
}
 Network type. More...
enum  sdp_addrtype_e {
  sdp_addr_x,
  sdp_addr_ip4,
  sdp_addr_ip6
}
 Address type. More...
enum  sdp_bandwidth_e {
  sdp_bw_x,
  sdp_bw_ct,
  sdp_bw_as
}
 Bandwdith type. More...
enum  sdp_key_method_e {
  sdp_key_x,
  sdp_key_clear,
  sdp_key_base64,
  sdp_key_uri,
  sdp_key_prompt
}
 Mechanism to be used to obtain session key. More...
enum  sdp_media_e {
  sdp_media_x,
  sdp_media_any,
  sdp_media_audio,
  sdp_media_video,
  sdp_media_application,
  sdp_media_data,
  sdp_media_control,
  sdp_media_message,
  sdp_media_image
}
 Media type. More...
enum  sdp_proto_e {
  sdp_proto_x,
  sdp_proto_tcp,
  sdp_proto_udp,
  sdp_proto_rtp,
  sdp_proto_srtp,
  sdp_proto_tls,
  sdp_proto_any
}
 Media transport protocol. More...
enum  sdp_mode_t
 Session mode. More...
enum  sdp_parse_flags_e {
  sdp_f_strict,
  sdp_f_anynet,
  sdp_f_realloc,
  sdp_f_all_rtpmaps,
  sdp_f_print_prefix,
  sdp_f_mode_0000,
  sdp_f_insane,
  sdp_f_c_missing,
  sdp_f_config,
  sdp_f_mode_manual,
  sdp_f_mode_always
}
 Flags given to sdp_parse()/sdp_print(). More...

Functions

SOFIAPUBFUN sdp_session_tsdp_session_dup (su_home_t *, sdp_session_t const *)
 Duplicate an SDP session description structure.
SOFIAPUBFUN sdp_origin_tsdp_origin_dup (su_home_t *, sdp_origin_t const *)
 Duplicate an SDP origin structure.
SOFIAPUBFUN sdp_connection_tsdp_connection_dup (su_home_t *home, sdp_connection_t const *)
 Duplicate an SDP connection structure.
SOFIAPUBFUN sdp_bandwidth_tsdp_bandwidth_dup (su_home_t *home, sdp_bandwidth_t const *)
 Duplicate an SDP bandwidth structure.
SOFIAPUBFUN sdp_time_tsdp_time_dup (su_home_t *home, sdp_time_t const *)
 Duplicate an SDP time structure.
SOFIAPUBFUN sdp_repeat_tsdp_repeat_dup (su_home_t *home, sdp_repeat_t const *)
 Duplicate an SDP repeat structure.
SOFIAPUBFUN sdp_zone_tsdp_zone_dup (su_home_t *home, sdp_zone_t const *)
 Duplicate an SDP timezone structure.
SOFIAPUBFUN sdp_key_tsdp_key_dup (su_home_t *home, sdp_key_t const *)
 Duplicate an SDP key structure.
SOFIAPUBFUN sdp_attribute_tsdp_attribute_dup (su_home_t *home, sdp_attribute_t const *)
 Duplicate an SDP attribute structure.
SOFIAPUBFUN sdp_media_tsdp_media_dup (su_home_t *, sdp_media_t const *, sdp_session_t *)
 Duplicate an SDP media description structure.
SOFIAPUBFUN sdp_media_tsdp_media_dup_all (su_home_t *, sdp_media_t const *, sdp_session_t *)
 Duplicate a list of SDP media description structures.
SOFIAPUBFUN sdp_list_tsdp_list_dup (su_home_t *home, sdp_list_t const *)
 Duplicate a list structure.
SOFIAPUBFUN sdp_rtpmap_tsdp_rtpmap_dup (su_home_t *home, sdp_rtpmap_t const *)
 Duplicate an rtpmap structure.
SOFIAPUBFUN int sdp_session_cmp (sdp_session_t const *a, sdp_session_t const *b)
 Compare two session descriptions.
SOFIAPUBFUN int sdp_origin_cmp (sdp_origin_t const *a, sdp_origin_t const *b)
 Compare two origin fields.
SOFIAPUBFUN int sdp_connection_cmp (sdp_connection_t const *, sdp_connection_t const *b)
 Compare two connection fields.
SOFIAPUBFUN int sdp_bandwidth_cmp (sdp_bandwidth_t const *a, sdp_bandwidth_t const *b)
 Compare two bandwidth (b=) fields.
SOFIAPUBFUN int sdp_time_cmp (sdp_time_t const *a, sdp_time_t const *b)
 Compare two time fields.
SOFIAPUBFUN int sdp_repeat_cmp (sdp_repeat_t const *a, sdp_repeat_t const *b)
 Compare two repeat (r=) fields.
SOFIAPUBFUN int sdp_zone_cmp (sdp_zone_t const *a, sdp_zone_t const *b)
 Compare two zone (z=) fields.
SOFIAPUBFUN int sdp_key_cmp (sdp_key_t const *a, sdp_key_t const *b)
 Compare two key (k=) fields.
SOFIAPUBFUN int sdp_attribute_cmp (sdp_attribute_t const *, sdp_attribute_t const *)
 Compare two attribute (a=) fields.
SOFIAPUBFUN int sdp_media_cmp (sdp_media_t const *, sdp_media_t const *)
 Compare two media (m=) descriptions.
SOFIAPUBFUN int sdp_rtpmap_cmp (sdp_rtpmap_t const *a, sdp_rtpmap_t const *b)
 Compare two rtpmap structures.
SOFIAPUBFUN int sdp_list_cmp (sdp_list_t const *a, sdp_list_t const *b)
 Compare two text lists.
SOFIAPUBFUN sdp_connection_tsdp_media_connections (sdp_media_t const *m)
 Get connections of a media description.
SOFIAPUBFUN int sdp_media_has_rtp (sdp_media_t const *m)
 Check if media uses RTP as its transport protocol.
SOFIAPUBFUN void sdp_media_type (sdp_media_t *m, char const *s)
 Set media type.
SOFIAPUBFUN void sdp_media_transport (sdp_media_t *m, char const *s)
 Set transport protocol.
SOFIAPUBFUN sdp_attribute_tsdp_attribute_find (sdp_attribute_t const *a, char const *name)
 Find named attribute from given list.
SOFIAPUBFUN sdp_attribute_tsdp_attribute_find2 (sdp_attribute_t const *a, sdp_attribute_t const *a2, char const *name)
 Find named attribute from given lists.
SOFIAPUBFUN sdp_mode_t sdp_attribute_mode (sdp_attribute_t const *a, sdp_mode_t defmode)
 Get session mode from attribute list.
SOFIAPUBFUN sdp_attribute_tsdp_attribute_by_mode (su_home_t *, sdp_mode_t mode)
 Get session mode from attribute list.
SOFIAPUBFUN sdp_attribute_tsdp_attribute_mapped_find (sdp_attribute_t const *a, char const *name, int pt, char **return_result)
 Find a mapped attribute.
SOFIAPUBFUN void sdp_attribute_append (sdp_attribute_t **list, sdp_attribute_t const *a)
 Append a attribute to a list of attributes.
SOFIAPUBFUN 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.
SOFIAPUBFUN sdp_attribute_tsdp_attribute_remove (sdp_attribute_t **list, char const *name)
 Remove a named attribute from a list of attributes.
SOFIAPUBFUN 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.
SOFIAPUBFUN unsigned sdp_media_count_with (sdp_session_t const *sdp, sdp_media_t const *m0)
 Count matching media lines in SDP.
SOFIAPUBFUN int sdp_media_uses_rtp (sdp_media_t const *m)
 Return true if media uses RTP.
SOFIAPUBFUN int sdp_rtpmap_match (sdp_rtpmap_t const *, sdp_rtpmap_t const *)
 Check if payload type, rtp rate and parameters match in rtpmaps.
SOFIAPUBFUN sdp_rtpmap_tsdp_rtpmap_find_matching (sdp_rtpmap_t const *list, sdp_rtpmap_t const *rm)
 Search for matching rtpmap from list.
SOFIAPUBFUN sdp_parser_tsdp_parse (su_home_t *, char const msg[], int msgsize, int flags)
 Parse an SDP message.
SOFIAPUBFUN char const * sdp_parsing_error (sdp_parser_t *p)
 Get a parsing error message.
SOFIAPUBFUN sdp_session_tsdp_session (sdp_parser_t *p)
 Retrieve an SDP session structure.
SOFIAPUBFUN void sdp_parser_free (sdp_parser_t *p)
 Free an SDP parser.
SOFIAPUBFUN int sdp_sanity_check (sdp_parser_t *)
 Validates that all mandatory fields exist.
SOFIAPUBFUN su_home_tsdp_parser_home (sdp_parser_t *)
 Obtain memory home used by parser.
SOFIAPUBFUN sdp_printer_tsdp_print (su_home_t *, sdp_session_t const *session, char msgbuf[], int maxmsgsize, int flags)
 Print a SDP description.
SOFIAPUBFUN char const * sdp_printing_error (sdp_printer_t *p)
 Get encoding error.
SOFIAPUBFUN char const * sdp_message (sdp_printer_t *p)
 Get encoded SDP message.
SOFIAPUBFUN int sdp_message_size (sdp_printer_t *p)
 Get size of encoded SDP message.
SOFIAPUBFUN void sdp_printer_free (sdp_printer_t *p)
 Free a SDP printer.


Enumeration Type Documentation

enum sdp_addrtype_e

Address type.

Enumerator:
sdp_addr_x  Unknown address type.
sdp_addr_ip4  IPv4 address.
sdp_addr_ip6  IPv6 address.

enum sdp_bandwidth_e

Bandwdith type.

Enumerator:
sdp_bw_x  Unknown bandwidth type.
sdp_bw_ct  Conference total.
sdp_bw_as  Application-specific.

enum sdp_key_method_e

Mechanism to be used to obtain session key.

Enumerator:
sdp_key_x  Unknown mechanism.
sdp_key_clear  Key is included untransformed.
sdp_key_base64  Key is encoded with base64.
sdp_key_uri  URI used to obtain a key.
sdp_key_prompt  No key is included, prompt user for key.

enum sdp_media_e

Media type.

See also:
RFC2327 page 18.
Enumerator:
sdp_media_x  Unknown media.
sdp_media_any  * wildcard
sdp_media_audio  Audio.
sdp_media_video  Video.
sdp_media_application  Conferencing.
sdp_media_data  Bulk data transfer.
sdp_media_control  Additional conference control.
sdp_media_message  Messaging sessions.
sdp_media_image  Image browsing sessions for JPIP.

enum sdp_mode_t

Session mode.

Note:
Identical to rtp_mode_t.

enum sdp_nettype_e

Network type.

Enumerator:
sdp_net_x  Unknown network type.
sdp_net_in  Internet.

enum sdp_parse_flags_e

Flags given to sdp_parse()/sdp_print().

Enumerator:
sdp_f_strict  Accept only conforming SDP.
sdp_f_anynet  Accept any network type.
sdp_f_realloc  Reallocate message.
sdp_f_all_rtpmaps  Include well-known rtpmaps in message, too.
sdp_f_print_prefix  Print buffer already contains a valid prefix.
sdp_f_mode_0000  Connection line with INADDR_ANY is considered equal to sendonly.
sdp_f_insane  Don't run sanity check.
sdp_f_c_missing  Don't require c= for each media line.
sdp_f_config  Parse SDP config files.
sdp_f_mode_manual  Do not generate or parse SDP mode.
sdp_f_mode_always  Always generate media-level mode attributes.

enum sdp_proto_e

Media transport protocol.

Enumerator:
sdp_proto_x  Unknown transport.
sdp_proto_tcp  TCP.
sdp_proto_udp  Plain UDP.
sdp_proto_rtp  RTP/AVP.
sdp_proto_srtp  RTP/SAVP.
sdp_proto_tls  TLS over TCP.
sdp_proto_any  * wildcard


Function Documentation

SOFIAPUBFUN sdp_attribute_t* sdp_attribute_dup ( su_home_t h,
sdp_attribute_t const *  a 
)

Duplicate an SDP attribute structure.

The function sdp_attribute_dup() duplicates (deeply copies) an SDP attribute list a allocating memory using memory home.

Parameters:
h Memory home
a SDP attribute description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_attribute_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_attribute_t* sdp_attribute_mapped_find ( sdp_attribute_t const *  a,
char const *  name,
int  pt,
char **  return_result 
)

Find a mapped attribute.

A mapped attribute has form 'a=<name>:<pt>

' where pt is a RTP payload type, integer in range 0..127.

Returns:
Pointer to a matching attribute structure, or NULL. If a matching attribute is found, return_result will point to part of the attribute after the payload type and whitespace.

SOFIAPUBFUN 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.

Return values:
1 if replaced existing attribute
0 if attribute was appended
-1 upon an error

SOFIAPUBFUN sdp_bandwidth_t* sdp_bandwidth_dup ( su_home_t h,
sdp_bandwidth_t const *  b 
)

Duplicate an SDP bandwidth structure.

The function sdp_bandwidth_dup() duplicates (deeply copies) an SDP bandwidth description b allocating memory using memory home.

Parameters:
h Memory home
b SDP bandwidth description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_bandwidth_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_connection_t* sdp_connection_dup ( su_home_t h,
sdp_connection_t const *  c 
)

Duplicate an SDP connection structure.

The function sdp_connection_dup() duplicates (deeply copies) an SDP connection description c allocating memory using memory home.

Parameters:
h Memory home
c SDP connection description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_connection_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_key_t* sdp_key_dup ( su_home_t h,
sdp_key_t const *  k 
)

Duplicate an SDP key structure.

The function sdp_key_dup() duplicates (deeply copies) an SDP key description k allocating memory using memory home.

Parameters:
h Memory home
k SDP key description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_key_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_list_t* sdp_list_dup ( su_home_t h,
sdp_list_t const *  l 
)

Duplicate a list structure.

The function sdp_list_dup() duplicates (deeply copies) an SDP text list l allocating memory using memory home.

Parameters:
h Memory home
l SDP list description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_list_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_media_t* sdp_media_dup ( su_home_t h,
sdp_media_t const *  m,
sdp_session_t sdp 
)

Duplicate an SDP media description structure.

The function sdp_media_dup() duplicates (deeply copies) an SDP media description m allocating memory using memory home.

Parameters:
h Memory home
m SDP media description to be duplicated
sdp SDP session description to which the newly allocated media description is linked
Returns:
If successful, a pointer to newly allocated sdp_media_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_media_t* sdp_media_dup_all ( su_home_t h,
sdp_media_t const *  m,
sdp_session_t sdp 
)

Duplicate a list of SDP media description structures.

The function sdp_media_dup_all() duplicates (deeply copies) a list of SDP media descriptions m allocating memory using memory home.

Parameters:
h Memory home
m list of SDP media descriptions to be duplicated
sdp SDP session description to which the newly allocated media descriptions are linked
Returns:
If successful, a pointer to a newly allocated list of sdp_media_t structures is returned, otherwise NULL is returned.

SOFIAPUBFUN char const* sdp_message ( sdp_printer_t p  ) 

Get encoded SDP message.

The function sdp_message() returns a pointer to a C string containing the SDP message

Parameters:
p Pointer to an sdp_printer_t object.
Returns:
The function sdp_message() returns a pointer to a C string containing the emitted SDP message, or NULL upon an error.

SOFIAPUBFUN int sdp_message_size ( sdp_printer_t p  ) 

Get size of encoded SDP message.

The function sdp_message_size() returns the size of the emitted SDP message.

Parameters:
p Pointer to an sdp_printer_t object.
Returns:
The function sdp_message_size() returns number of bytes in SDP message or 0 upon an error.

SOFIAPUBFUN sdp_origin_t* sdp_origin_dup ( su_home_t h,
sdp_origin_t const *  o 
)

Duplicate an SDP origin structure.

The function sdp_origin_dup() duplicates (deeply copies) an SDP origin description o allocating memory using memory home.

Parameters:
h Memory home
o SDP origin description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_origin_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_parser_t* sdp_parse ( su_home_t home,
char const   msg[],
int  msgsize,
int  flags 
)

Parse an SDP message.

The function sdp_parse() parses an SDP message msg of size msgsize. Parsing is done according to the given flags. The SDP message may not contain a NUL.

The parsing result is stored to an sdp_session_t structure.

Parameters:
home memory home
msg pointer to message
msgsize size of the message (excluding final NUL, if any)
flags flags affecting the parsing.
The following flags are defined:

Returns:
The function sdp_parse() returns always a valid parser handle.

SOFIAPUBFUN void sdp_parser_free ( sdp_parser_t p  ) 

Free an SDP parser.

The function sdp_parser_free() frees an SDP parser object along with the memory blocks associated with it.

Parameters:
p pointer to the SDP parser to be freed

SOFIAPUBFUN char const* sdp_parsing_error ( sdp_parser_t p  ) 

Get a parsing error message.

The function sdp_parsing_error() returns the error message associated with an SDP parser p.

Parameters:
p SDP parser
Returns:
The function sdp_parsing_error() returns a C string describing parsing error, or NULL if no error occurred.

SOFIAPUBFUN sdp_printer_t* sdp_print ( su_home_t home,
sdp_session_t const *  session,
char  msgbuf[],
int  msgsize,
int  flags 
)

Print a SDP description.

The function sdp_print() encodes the contents of the SDP session structure to the msgbuf. The msgbuf has size msgsize bytes. If msgbuf is NULL, the sdp_print() function allocates the required buffer from the home heap.

Parameters:
home Memory home (may be NULL).
session SDP session description structure to be encoded.
msgbuf Buffer to which encoding is stored (may be NULL).
msgsize Size of msgbuf.
flags Flags specifying the encoding options.
The flags specify encoding options as follows:

Returns:
The function sdp_print() always returns a handle to an sdp_printer_t object.

SOFIAPUBFUN void sdp_printer_free ( sdp_printer_t p  ) 

Free a SDP printer.

The function sdp_printer_free() frees the printer object p and the message buffer possibly associated with it.

Parameters:
p Pointer to an sdp_printer_t object.

SOFIAPUBFUN char const* sdp_printing_error ( sdp_printer_t p  ) 

Get encoding error.

The function sdp_printing_error() returns a message describing encoding error.

Parameters:
p Pointer to an sdp_printer_t object.
Returns:
The function sdp_printing_error() returns a pointer to C string descibing printing errors, or NULL if no error were encountered.

SOFIAPUBFUN sdp_repeat_t* sdp_repeat_dup ( su_home_t h,
sdp_repeat_t const *  r 
)

Duplicate an SDP repeat structure.

The function sdp_repeat_dup() duplicates (deeply copies) an SDP repeat description r allocating memory using memory home.

Parameters:
h Memory home
r SDP repeat description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_repeat_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_rtpmap_t* sdp_rtpmap_dup ( su_home_t h,
sdp_rtpmap_t const *  rm 
)

Duplicate an rtpmap structure.

The function sdp_rtpmap_dup() duplicates (deeply copies) an SDP rtpmap list rm allocating memory using memory home.

Parameters:
h Memory home
rm SDP rtpmap description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_rtpmap_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_rtpmap_t* sdp_rtpmap_find_matching ( sdp_rtpmap_t const *  list,
sdp_rtpmap_t const *  rm 
)

Search for matching rtpmap from list.

Note:
The a=fmtp: for the codecs are not compared.

SOFIAPUBFUN int sdp_sanity_check ( sdp_parser_t p  ) 

Validates that all mandatory fields exist.

Checks that all necessary fields (v=, o=) exists in the given sdp. If strict, check that all mandatory fields (c=, o=, s=, t=) are present. This function also goes through all media, marks rejected media as such, and updates the mode accordingly.

Return values:
0 if parsed SDP description is valid
-1 if some SDP line is missing
-2 if c= line is missing

SOFIAPUBFUN sdp_session_t* sdp_session ( sdp_parser_t p  ) 

Retrieve an SDP session structure.

The function sdp_session() returns a pointer to the SDP session structure associated with the SDP parser p. The pointer and all the data in the structure are valid until sdp_parser_free() is called.

Parameters:
p SDP parser
Returns:
The function sdp_session() returns a pointer to an parsed SDP message or NULL, if an error has occurred.

SOFIAPUBFUN sdp_session_t* sdp_session_dup ( su_home_t h,
sdp_session_t const *  sdp 
)

Duplicate an SDP session description structure.

The function sdp_session_dup() duplicates (deeply copies) an SDP session description sdp allocating memory using memory home.

Parameters:
h Memory home
sdp SDP session description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_session_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_time_t* sdp_time_dup ( su_home_t h,
sdp_time_t const *  t 
)

Duplicate an SDP time structure.

The function sdp_time_dup() duplicates (deeply copies) an SDP time description t allocating memory using memory home.

Parameters:
h Memory home
t SDP time description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_time_t structure is returned, otherwise NULL is returned.

SOFIAPUBFUN sdp_zone_t* sdp_zone_dup ( su_home_t h,
sdp_zone_t const *  z 
)

Duplicate an SDP timezone structure.

The function sdp_zone_dup() duplicates (deeply copies) an SDP zone description z allocating memory using memory home.

Parameters:
h Memory home
z SDP zone description to be duplicated
Returns:
If successful, a pointer to newly allocated sdp_zone_t structure is returned, otherwise NULL is returned.


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