|
HOME
SIP/media Features
High Performance SIP
Small Footprint SIP
Symbian Port
FAQ
Documentation
Licensing
Download
Development (Trac)
Projects using pjsip
Mailing List
Open Source Links
About: PJLIB, PJLIB-UTIL, PJSIP, and PJMEDIA are created by: Benny Prijono <bennylp pjsip.org>
|
|
Home --> Documentations --> PJMEDIA Reference
SDP Parsing and Data Structure
[Media Sessions]
Detailed Description
The basic SDP session descriptor and elements are described in header file <pjmedia/sdp.h>. This file contains declaration for SDP session descriptor and SDP media descriptor, along with their attributes. This file also declares functions to parse SDP message.
|
Data Structures |
| struct | pjmedia_sdp_attr |
| struct | pjmedia_sdp_rtpmap |
| struct | pjmedia_sdp_fmtp |
| struct | pjmedia_sdp_rtcp_attr |
| struct | pjmedia_sdp_conn |
| struct | pjmedia_sdp_media |
| struct | pjmedia_sdp_session |
Defines |
| #define | PJMEDIA_MAX_SDP_FMT 32 |
| #define | PJMEDIA_MAX_SDP_ATTR (PJMEDIA_MAX_SDP_FMT*2 + 4) |
| #define | PJMEDIA_MAX_SDP_MEDIA 16 |
Typedefs |
| typedef struct pjmedia_sdp_attr | pjmedia_sdp_attr |
| typedef struct pjmedia_sdp_rtpmap | pjmedia_sdp_rtpmap |
| typedef struct pjmedia_sdp_fmtp | pjmedia_sdp_fmtp |
| typedef struct pjmedia_sdp_conn | pjmedia_sdp_conn |
| typedef struct pjmedia_sdp_media | pjmedia_sdp_media |
| typedef struct pjmedia_sdp_session | pjmedia_sdp_session |
Functions |
| pjmedia_sdp_attr * | pjmedia_sdp_attr_create (pj_pool_t *pool, const char *name, const pj_str_t *value) |
| pjmedia_sdp_attr * | pjmedia_sdp_attr_clone (pj_pool_t *pool, const pjmedia_sdp_attr *attr) |
| pjmedia_sdp_attr * | pjmedia_sdp_attr_find (unsigned count, pjmedia_sdp_attr *const attr_array[], const pj_str_t *name, const pj_str_t *fmt) |
| pjmedia_sdp_attr * | pjmedia_sdp_attr_find2 (unsigned count, pjmedia_sdp_attr *const attr_array[], const char *name, const pj_str_t *fmt) |
| pj_status_t | pjmedia_sdp_attr_add (unsigned *count, pjmedia_sdp_attr *attr_array[], pjmedia_sdp_attr *attr) |
| unsigned | pjmedia_sdp_attr_remove_all (unsigned *count, pjmedia_sdp_attr *attr_array[], const char *name) |
| pj_status_t | pjmedia_sdp_attr_remove (unsigned *count, pjmedia_sdp_attr *attr_array[], pjmedia_sdp_attr *attr) |
| pj_status_t | pjmedia_sdp_attr_to_rtpmap (pj_pool_t *pool, const pjmedia_sdp_attr *attr, pjmedia_sdp_rtpmap **p_rtpmap) |
| pj_status_t | pjmedia_sdp_attr_get_rtpmap (const pjmedia_sdp_attr *attr, pjmedia_sdp_rtpmap *rtpmap) |
| pj_status_t | pjmedia_sdp_rtpmap_to_attr (pj_pool_t *pool, const pjmedia_sdp_rtpmap *rtpmap, pjmedia_sdp_attr **p_attr) |
| pj_status_t | pjmedia_sdp_attr_get_fmtp (const pjmedia_sdp_attr *attr, pjmedia_sdp_fmtp *fmtp) |
| pj_status_t | pjmedia_sdp_attr_get_rtcp (const pjmedia_sdp_attr *attr, pjmedia_sdp_rtcp_attr *rtcp) |
| pjmedia_sdp_attr * | pjmedia_sdp_attr_create_rtcp (pj_pool_t *pool, const pj_sockaddr *a) |
| pjmedia_sdp_conn * | pjmedia_sdp_conn_clone (pj_pool_t *pool, const pjmedia_sdp_conn *rhs) |
| pjmedia_sdp_media * | pjmedia_sdp_media_clone (pj_pool_t *pool, const pjmedia_sdp_media *rhs) |
| pjmedia_sdp_attr * | pjmedia_sdp_media_find_attr (const pjmedia_sdp_media *m, const pj_str_t *name, const pj_str_t *fmt) |
| pjmedia_sdp_attr * | pjmedia_sdp_media_find_attr2 (const pjmedia_sdp_media *m, const char *name, const pj_str_t *fmt) |
| pj_status_t | pjmedia_sdp_media_add_attr (pjmedia_sdp_media *m, pjmedia_sdp_attr *attr) |
| unsigned | pjmedia_sdp_media_remove_all_attr (pjmedia_sdp_media *m, const char *name) |
| pj_status_t | pjmedia_sdp_media_remove_attr (pjmedia_sdp_media *m, pjmedia_sdp_attr *attr) |
| pj_status_t | pjmedia_sdp_media_cmp (const pjmedia_sdp_media *sd1, const pjmedia_sdp_media *sd2, unsigned option) |
| pj_status_t | pjmedia_sdp_transport_cmp (const pj_str_t *t1, const pj_str_t *t2) |
| pj_status_t | pjmedia_sdp_media_deactivate (pj_pool_t *pool, pjmedia_sdp_media *m) |
| pj_status_t | pjmedia_sdp_parse (pj_pool_t *pool, char *buf, pj_size_t len, pjmedia_sdp_session **p_sdp) |
| int | pjmedia_sdp_print (const pjmedia_sdp_session *sdp, char *buf, pj_size_t size) |
| pj_status_t | pjmedia_sdp_validate (const pjmedia_sdp_session *sdp) |
| pjmedia_sdp_session * | pjmedia_sdp_session_clone (pj_pool_t *pool, const pjmedia_sdp_session *sdp) |
| pj_status_t | pjmedia_sdp_session_cmp (const pjmedia_sdp_session *sd1, const pjmedia_sdp_session *sd2, unsigned option) |
Define Documentation
| #define PJMEDIA_MAX_SDP_FMT 32 |
The PJMEDIA_MAX_SDP_FMT macro defines maximum format in a media line.
| #define PJMEDIA_MAX_SDP_ATTR (PJMEDIA_MAX_SDP_FMT*2 + 4) |
The PJMEDIA_MAX_SDP_ATTR macro defines maximum SDP attributes in media and session descriptor.
| #define PJMEDIA_MAX_SDP_MEDIA 16 |
The PJMEDIA_MAX_SDP_MEDIA macro defines maximum SDP media lines in a SDP session descriptor.
Typedef Documentation
Function Documentation
Create SDP attribute.
- Parameters:
-
| pool | Pool to create the attribute. |
| name | Attribute name. |
| value | Optional attribute value. |
- Returns:
- The new SDP attribute.
Clone attribute
- Parameters:
-
| pool | Pool to be used. |
| attr | The attribute to clone. |
- Returns:
- New attribute as cloned from the attribute.
Find the first attribute with the specified type.
- Parameters:
-
| count | Number of attributes in the array. |
| attr_array | Array of attributes. |
| name | Attribute name to find. |
| fmt | Optional string to indicate which payload format to find for rtpmap and fmt attributes. For other types of attributes, the value should be NULL. |
- Returns:
- The specified attribute, or NULL if it can't be found.
- See also:
- pjmedia_sdp_attr_find2, pjmedia_sdp_media_find_attr, pjmedia_sdp_media_find_attr2
Find the first attribute with the specified type.
- Parameters:
-
| count | Number of attributes in the array. |
| attr_array | Array of attributes. |
| name | Attribute name to find. |
| fmt | Optional string to indicate which payload format to find for rtpmap and fmt attributes. For other types of attributes, the value should be NULL. |
- Returns:
- The specified attribute, or NULL if it can't be found.
- See also:
- pjmedia_sdp_attr_find, pjmedia_sdp_media_find_attr, pjmedia_sdp_media_find_attr2
Add a new attribute to array of attributes.
- Parameters:
-
| count | Number of attributes in the array. |
| attr_array | Array of attributes. |
| attr | The attribute to add. |
- Returns:
- PJ_SUCCESS or the error code.
- See also:
- pjmedia_sdp_media_add_attr
| unsigned pjmedia_sdp_attr_remove_all |
( |
unsigned * |
count, |
|
|
pjmedia_sdp_attr * |
attr_array[], |
|
|
const char * |
name | |
|
) |
| | |
Remove all attributes with the specified name in array of attributes.
- Parameters:
-
| count | Number of attributes in the array. |
| attr_array | Array of attributes. |
| name | Attribute name to find. |
- Returns:
- Number of attributes removed.
- See also:
- pjmedia_sdp_media_remove_all_attr
Remove the specified attribute from the attribute array.
- Parameters:
-
| count | Number of attributes in the array. |
| attr_array | Array of attributes. |
| attr | The attribute instance to remove. |
- Returns:
- PJ_SUCCESS when attribute has been removed, or PJ_ENOTFOUND when the attribute can not be found.
- See also:
- pjmedia_sdp_media_remove_attr
Convert generic attribute to SDP rtpmap. This function allocates a new attribute and call pjmedia_sdp_attr_get_rtpmap().
- Parameters:
-
| pool | Pool used to create the rtpmap attribute. |
| attr | Generic attribute to be converted to rtpmap, which name must be "rtpmap". |
| p_rtpmap | Pointer to receive SDP rtpmap attribute. |
- Returns:
- PJ_SUCCESS if the attribute can be successfully converted to rtpmap type.
- See also:
- pjmedia_sdp_attr_get_rtpmap
Get the rtpmap representation of the same SDP attribute.
- Parameters:
-
| attr | Generic attribute to be converted to rtpmap, which name must be "rtpmap". |
| rtpmap | SDP rtpmap attribute to be initialized. |
- Returns:
- PJ_SUCCESS if the attribute can be successfully converted to rtpmap attribute.
- See also:
- pjmedia_sdp_attr_to_rtpmap
Convert rtpmap attribute to generic attribute.
- Parameters:
-
| pool | Pool to be used. |
| rtpmap | The rtpmap attribute. |
| p_attr | Pointer to receive the generic SDP attribute. |
- Returns:
- PJ_SUCCESS on success.
Get the fmtp representation of the same SDP attribute.
- Parameters:
-
| attr | Generic attribute to be converted to fmtp, which name must be "fmtp". |
| fmtp | SDP fmtp attribute to be initialized. |
- Returns:
- PJ_SUCCESS on success.
Parse a generic SDP attribute to get SDP rtcp attribute values.
- Parameters:
-
| attr | Generic attribute to be converted to rtcp, which name must be "rtcp". |
| rtcp | SDP rtcp attribute to be initialized. |
- Returns:
- PJ_SUCCESS on success.
Create a=rtcp attribute.
- Parameters:
-
| pool | Pool to create the attribute. |
| a | Socket address. |
- Returns:
- SDP RTCP attribute.
Clone connection info.
- Parameters:
-
| pool | Pool to allocate memory for the new connection info. |
| rhs | The connection into to clone. |
- Returns:
- The new connection info.
Clone SDP media description.
- Parameters:
-
| pool | Pool to allocate memory for the new media description. |
| rhs | The media descriptin to clone. |
- Returns:
- New media description.
Find the first occurence of the specified attribute name in the media descriptor. Optionally the format may be specified.
- Parameters:
-
| m | The SDP media description. |
| name | Attribute name to find. |
| fmt | Optional payload type to match in the attribute list, when the attribute is rtpmap or fmtp. For other types of SDP attributes, this value should be NULL. |
- Returns:
- The first instance of the specified attribute or NULL.
Find the first occurence of the specified attribute name in the SDP media descriptor. Optionally the format may be specified.
- Parameters:
-
| m | The SDP media description. |
| name | Attribute name to find. |
| fmt | Optional payload type to match in the attribute list, when the attribute is rtpmap or fmtp. For other types of SDP attributes, this value should be NULL. |
- Returns:
- The first instance of the specified attribute or NULL.
Add new attribute to the media descriptor.
- Parameters:
-
| m | The SDP media description. |
| attr | Attribute to add. |
- Returns:
- PJ_SUCCESS or the appropriate error code.
| unsigned pjmedia_sdp_media_remove_all_attr |
( |
pjmedia_sdp_media * |
m, |
|
|
const char * |
name | |
|
) |
| | |
Remove all attributes with the specified name from the SDP media descriptor.
- Parameters:
-
| m | The SDP media description. |
| name | Attribute name to remove. |
- Returns:
- The number of attributes removed.
Remove the occurence of the specified attribute from the SDP media descriptor.
- Parameters:
-
| m | The SDP media descriptor. |
| attr | The attribute to find and remove. |
- Returns:
- PJ_SUCCESS if the attribute can be found and has been removed from the array.
Compare two SDP media for equality.
- Parameters:
-
| sd1 | The first SDP media to compare. |
| sd2 | The second SDP media to compare. |
| option | Comparison option, which should be zero for now. |
- Returns:
- PJ_SUCCESS when both SDP medias are equal, or the appropriate status code describing which part of the descriptors that are not equal.
Compare two media transports for compatibility.
- Parameters:
-
| t1 | The first media transport to compare. |
| t2 | The second media transport to compare. |
- Returns:
- PJ_SUCCESS when both media transports are compatible, otherwise returns PJMEDIA_SDP_ETPORTNOTEQUAL.
Deactivate SDP media.
- Parameters:
-
| m | The SDP media to deactivate. |
- Returns:
- PJ_SUCCESS when SDP media successfully deactivated, otherwise appropriate status code returned.
Parse SDP message.
- Parameters:
-
| pool | The pool to allocate SDP session description. |
| buf | The message buffer. |
| len | The length of the message. |
| p_sdp | Pointer to receive the SDP session descriptor. |
- Returns:
- PJ_SUCCESS if message was successfully parsed into SDP session descriptor.
Print SDP description to a buffer.
- Parameters:
-
| sdp | The SDP session description. |
| buf | The buffer. |
| size | The buffer length. |
- Returns:
- the length printed, or -1 if the buffer is too short.
Perform semantic validation for the specified SDP session descriptor. This function perform validation beyond just syntactic verification, such as to verify the value of network type and address type, check the connection line, and verify that rtpmap attribute is present when dynamic payload type is used.
- Parameters:
-
| sdp | The SDP session descriptor to validate. |
- Returns:
- PJ_SUCCESS on success.
Clone SDP session descriptor.
- Parameters:
-
| pool | The pool used to clone the session. |
| sdp | The SDP session to clone. |
- Returns:
- New SDP session.
Compare two SDP session for equality.
- Parameters:
-
| sd1 | The first SDP session to compare. |
| sd2 | The second SDP session to compare. |
| option | Must be zero for now. |
- Returns:
- PJ_SUCCESS when both SDPs are equal, or otherwise the status code indicates which part of the session descriptors are not equal.
PJMEDIA small footprint Open Source media stack
(C)2003-2008 Benny Prijono
|
|