Group PJMEDIA_TRANSPORT_ICE

group PJMEDIA_TRANSPORT_ICE

Interactive Connectivity Establishment (ICE) transport.

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

Enums

enum pjmedia_transport_ice_options

Options that can be specified when creating ICE transport.

Values:

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.

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)

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 pjmedia_ice_create() 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.

struct pjmedia_ice_cb
#include <transport_ice.h>

Structure containing callbacks to receive ICE notifications.

struct pjmedia_ice_transport_info
#include <transport_ice.h>

This structure specifies ICE transport specific info. This structure will be filled in media transport specific info.