Reference11r1:Concept ICE: Difference between revisions

From innovaphone wiki
Jump to navigation Jump to search
Line 6: Line 6:


==Overview==
==Overview==
ICE is a protocol for finding and selecting a working network path between two media endpoints.
ICE is a protocol for finding and selecting a working network path between two media endpoints. The basic idea is that each endpoint discovers all its addresses that could be used to receive media. Those ''candidates'' are sent to the other endpoint. Then all combinations of local and remote candidates are tested. The best working combination is used for the actual media stream. If there is no working combination, the call can be disconnected.
 
ICE is designed to solve the following problems:
;NAT traversal:ICE uses STUN to create NAT mappings and to detect the own public IP address and port. In contrast to other mechanisms ICE also works if both endpoints are behind NAT.
;Avoid no media / one-way media: Network paths that don't work or just work in one direction are not selected by ICE. So if ICE connects there is always media in both directions.
;IPv4 and IPv6: ICE includes a selection of the IP version. This is good news for migrating from IPv4 to IPv6 because it always selects the working version without the requirement of any additional configuration.


==Configuration==
==Configuration==

Revision as of 18:58, 25 August 2014


Applies To

This information applies to

  • all innovaphone devices from V11

Overview

ICE is a protocol for finding and selecting a working network path between two media endpoints. The basic idea is that each endpoint discovers all its addresses that could be used to receive media. Those candidates are sent to the other endpoint. Then all combinations of local and remote candidates are tested. The best working combination is used for the actual media stream. If there is no working combination, the call can be disconnected.

ICE is designed to solve the following problems:

NAT traversal
ICE uses STUN to create NAT mappings and to detect the own public IP address and port. In contrast to other mechanisms ICE also works if both endpoints are behind NAT.
Avoid no media / one-way media
Network paths that don't work or just work in one direction are not selected by ICE. So if ICE connects there is always media in both directions.
IPv4 and IPv6
ICE includes a selection of the IP version. This is good news for migrating from IPv4 to IPv6 because it always selects the working version without the requirement of any additional configuration.

Configuration

Activation

From v11 ICE is the default call establishment mechanism, so it does not have to be activated. However if needed it can be deactivated using an interop config option.

 config add H323 /ice-disabled
 config add SIP /ice-disabled
 config add SIPS /ice-disabled
 config add TSIP /ice-disabled
 config add TSIPS /ice-disabled

STUN

The STUN server is used for gathering server reflexive candidates. The server configuration is a string in one of the following formats:

  • a single DNS name and an optional port (e.g. stun.example.com:1234).
  • a comma separated list of one or two IP addresses and optional ports (e.g. 172.16.13.1:1234,172.16.13.2).

The STUN server string can be configured at the following places:

  • For many boxes using the DHCP Server (on page IP4/ETHx/DHCP-Server)
  • For an individual box (on page IP4/General/STUN)
  • For an individual registration (as part of the configuration of the registration)

If it is configured in more than one place, the more specific one is used. For example the configuration at the registration overwrites the DHCP config.

Tracing

Activation

Traces for debugging ICE can be activated at the signalling module. The trace flags are also available on the debug.xml page.

config add H323 /ice-trace on
config add SIP /ice-trace on
config add SIPS /ice-trace on
config add TSIP /ice-trace on
config add TSIPS /ice-trace on

Reading traces