pjsip logo pjsip.org
Open source SIP stack and media stack for presence, im/instant messaging, and multimedia communication

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

ICE Media Transport
[Media Transport]


Detailed Description

This describes the implementation of media transport using Interactive Connectivity Establishment (ICE) protocol.


Data Structures

struct  pjmedia_ice_cb

Enumerations

enum  pjmedia_transport_ice_options { PJMEDIA_ICE_NO_SRC_ADDR_CHECKING = 1 }

Functions

pj_status_t pjmedia_ice_create (pjmedia_endpt *endpt, const char *name, unsigned comp_cnt, const pj_ice_strans_cfg *cfg, const pjmedia_ice_cb *cb, pjmedia_transport **p_tp)
pj_status_t pjmedia_ice_create2 (pjmedia_endpt *endpt, const char *name, unsigned comp_cnt, const pj_ice_strans_cfg *cfg, const pjmedia_ice_cb *cb, unsigned options, pjmedia_transport **p_tp)


Enumeration Type Documentation

Options that can be specified when creating ICE transport.

Enumerator:
PJMEDIA_ICE_NO_SRC_ADDR_CHECKING  Normally when remote doesn't use ICE, the ICE transport will continuously check the source address of incoming packets to see if it is different than the configured remote address, and switch the remote address to the source address of the packet if they are different after several packets are received. Specifying this option will disable this feature.


Function Documentation

pj_status_t pjmedia_ice_create ( pjmedia_endpt endpt,
const char *  name,
unsigned  comp_cnt,
const pj_ice_strans_cfg cfg,
const pjmedia_ice_cb cb,
pjmedia_transport **  p_tp 
)

Create the Interactive Connectivity Establishment (ICE) media transport using the specified configuration. When STUN or TURN (or both) is used, the creation operation will complete asynchronously, when STUN resolution and TURN allocation completes. When the initialization completes, the on_ice_complete() complete will be called with op parameter equal to PJ_ICE_STRANS_OP_INIT.

In addition, this transport will also notify the application about the result of ICE negotiation, also in on_ice_complete() callback. In this case the callback will be called with op parameter equal to PJ_ICE_STRANS_OP_NEGOTIATION.

Other than this, application should use the Media Transport API to manipulate this media transport.

Parameters:
endpt The media endpoint.
name Optional name to identify this ICE media transport for logging purposes.
comp_cnt Number of components to be created.
cfg Pointer to configuration settings.
cb Optional structure containing ICE specific callbacks.
p_tp Pointer to receive the media transport instance.
Returns:
PJ_SUCCESS on success, or the appropriate error code.

pj_status_t pjmedia_ice_create2 ( pjmedia_endpt endpt,
const char *  name,
unsigned  comp_cnt,
const pj_ice_strans_cfg cfg,
const pjmedia_ice_cb cb,
unsigned  options,
pjmedia_transport **  p_tp 
)

The same as with additional options param.

Parameters:
endpt The media endpoint.
name Optional name to identify this ICE media transport for logging purposes.
comp_cnt Number of components to be created.
cfg Pointer to configuration settings.
cb Optional structure containing ICE specific callbacks.
options Options, see pjmedia_transport_ice_options.
p_tp Pointer to receive the media transport instance.
Returns:
PJ_SUCCESS on success, or the appropriate error code.

 


PJMEDIA small footprint Open Source media stack
(C)2003-2008 Benny Prijono