Liblinphone: Network parameters

Liblinphone 5.3.0

Typedefs | Enumerations | Functions
Network parameters

Controlling network parameters (ports, mtu...). More...

## Typedefs
typedef enum _LinphoneAuthMethod | LinphoneAuthMethod
| Enum describing the authentication methods.
typedef enum _LinphoneFirewallPolicy | LinphoneFirewallPolicy
| Policy to use to pass through firewalls.
typedef enum _LinphoneLimeState | LinphoneLimeState
typedef struct _LinphoneNatPolicy | LinphoneNatPolicy
| Policy to use to pass through NATs/firewalls.

## Enumerations
enum | _LinphoneAuthMethod { LinphoneAuthHttpDigest = 0 , LinphoneAuthTls = 1 }
| Enum describing the authentication methods. More...
enum | _LinphoneFirewallPolicy { LinphonePolicyNoFirewall = 0 , LinphonePolicyUseNatAddress = 1 , LinphonePolicyUseStun = 2 , LinphonePolicyUseIce = 3 , LinphonePolicyUseUpnp = 4 }
| Policy to use to pass through firewalls. More...
enum | _LinphoneLimeState { LinphoneLimeDisabled = 0 , LinphoneLimeMandatory = 1 , LinphoneLimePreferred = 2 }

## Functions
bool_t | linphone_core_ipv6_enabled (LinphoneCore *core)
| Tells whether IPv6 is enabled or not.
void | linphone_core_enable_ipv6 (LinphoneCore *core, bool_t enable)
| Turns IPv6 support on or off.
bool_t | linphone_core_wifi_only_enabled (LinphoneCore *core)
| Tells whether Wifi only mode is enabled or not.
void | linphone_core_enable_wifi_only (LinphoneCore *core, bool_t enable)
| Turns Wifi only mode on or off.
int | linphone_core_get_audio_port (const LinphoneCore *core)
| Gets the UDP port used for audio streaming.
void | linphone_core_get_audio_port_range (const LinphoneCore *core, int *min_port, int *max_port)
| Get the audio port range from which is randomly chosen the UDP port used for audio streaming.
LinphoneRange * | linphone_core_get_audio_ports_range (const LinphoneCore *core)
| Get the audio port range from which is randomly chosen the UDP port used for audio streaming.
int | linphone_core_get_video_port (const LinphoneCore *core)
| Gets the UDP port used for video streaming.
void | linphone_core_get_video_port_range (const LinphoneCore *core, int *min_port, int *max_port)
| Get the video port range from which is randomly chosen the UDP port used for video streaming.
LinphoneRange * | linphone_core_get_video_ports_range (const LinphoneCore *core)
| Get the video port range from which is randomly chosen the UDP port used for video streaming.
int | linphone_core_get_text_port (const LinphoneCore *core)
| Gets the UDP port used for text streaming.
void | linphone_core_get_text_port_range (const LinphoneCore *core, int *min_port, int *max_port)
| Get the video port range from which is randomly chosen the UDP port used for text streaming.
LinphoneRange * | linphone_core_get_text_ports_range (const LinphoneCore *core)
| Get the text port range from which is randomly chosen the UDP port used for text streaming.
void | linphone_core_set_audio_port (LinphoneCore *core, int port)
| Sets the UDP port used for audio streaming.
void | linphone_core_set_video_port (LinphoneCore *core, int port)
| Sets the UDP port used for video streaming.
void | linphone_core_set_text_port (LinphoneCore *core, int port)
| Sets the UDP port used for text streaming.
LinphoneStatus | linphone_core_set_transports (LinphoneCore *core, const LinphoneTransports *transports)
| Sets the ports to be used for each of transport (UDP or TCP) A zero value port for a given transport means the transport is not used.
LinphoneTransports * | linphone_core_get_transports (LinphoneCore *core)
| Retrieves the port configuration used for each transport (udp, tcp, tls).
LinphoneTransports * | linphone_core_get_transports_used (LinphoneCore *core)
| Retrieves the real port number assigned for each sip transport (udp, tcp, tls).
LinphoneTransports * | linphone_transports_ref (LinphoneTransports *transports)
| Increment refcount.
void | linphone_transports_unref (LinphoneTransports *transports)
| Decrement refcount and possibly free the object.
void * | linphone_transports_get_user_data (const LinphoneTransports *transports)
| Gets the user data in the LinphoneTransports object.
void | linphone_transports_set_user_data (LinphoneTransports *transports, void *user_data)
| Sets the user data in the LinphoneTransports object.
int | linphone_transports_get_udp_port (const LinphoneTransports *transports)
| Gets the UDP port in the LinphoneTransports object.
int | linphone_transports_get_tcp_port (const LinphoneTransports *transports)
| Gets the TCP port in the LinphoneTransports object.
int | linphone_transports_get_tls_port (const LinphoneTransports *transports)
| Gets the TLS port in the LinphoneTransports object.
int | linphone_transports_get_dtls_port (const LinphoneTransports *transports)
| Gets the DTLS port in the LinphoneTransports object.
void | linphone_transports_set_udp_port (LinphoneTransports *transports, int port)
| Sets the UDP port in the LinphoneTransports object.
void | linphone_transports_set_tcp_port (LinphoneTransports *transports, int port)
| Sets the TCP port in the LinphoneTransports object.
void | linphone_transports_set_tls_port (LinphoneTransports *transports, int port)
| Sets the TLS port in the LinphoneTransports object.
void | linphone_transports_set_dtls_port (LinphoneTransports *transports, int port)
| Sets the DTLS port in the LinphoneTransports object.
void | linphone_core_set_stun_server (LinphoneCore *core, const char *server)
| Set the STUN server address to use when the firewall policy is set to STUN.
const char * | linphone_core_get_stun_server (const LinphoneCore *core)
| Get the STUN server address being used.
bool_t | linphone_core_upnp_available (void)
| Return the availability of uPnP.
LinphoneUpnpState | linphone_core_get_upnp_state (const LinphoneCore *core)
| Return the internal state of uPnP.
const char * | linphone_core_get_upnp_external_ipaddress (const LinphoneCore *core)
| Return the external ip address of router.
MS2_DEPRECATED void | linphone_core_set_nat_address (LinphoneCore *core, const char *addr)
| Deprecated.
MS2_DEPRECATED const char * | linphone_core_get_nat_address (const LinphoneCore *core)
| Deprecated.
void | linphone_core_set_nat_policy (LinphoneCore *core, LinphoneNatPolicy *policy)
| Set the policy to use to pass through NATs/firewalls.
void | linphone_core_enable_forced_ice_relay (LinphoneCore *core, bool_t enable)
| Artificially cause the relay path to be selected when ICE is used.
bool_t | linphone_core_forced_ice_relay_enabled (const LinphoneCore *core)
| Indicates whether the ICE relay path is forcibly selected.
LinphoneNatPolicy * | linphone_core_get_nat_policy (const LinphoneCore *core)
| Get The policy that is used to pass through NATs/firewalls.
void | linphone_core_set_network_reachable (LinphoneCore *core, bool_t reachable)
| This method is called by the application to notify the linphone core library when network is reachable.
bool_t | linphone_core_is_network_reachable (LinphoneCore *core)
| return network state either as positioned by the application or by linphone itself.
void | linphone_core_set_sip_network_reachable (LinphoneCore *core, bool_t reachable)
| This method is called by the application to notify the linphone core library when the SIP network is reachable.
void | linphone_core_set_media_network_reachable (LinphoneCore *core, bool_t reachable)
| This method is called by the application to notify the linphone core library when the media (RTP) network is reachable.
void | linphone_core_enable_keep_alive (LinphoneCore *core, bool_t enable)
| Enables signaling keep alive, small udp packet sent periodically to keep udp NAT association.
bool_t | linphone_core_keep_alive_enabled (LinphoneCore *core)
| Is signaling keep alive enabled.
void | linphone_core_set_sip_dscp (LinphoneCore *core, int dscp)
| Set the DSCP field for SIP signaling channel.
int | linphone_core_get_sip_dscp (const LinphoneCore *core)
| Get the DSCP field for SIP signaling channel.
void | linphone_core_set_audio_dscp (LinphoneCore *core, int dscp)
| Set the DSCP field for outgoing audio streams.
int | linphone_core_get_audio_dscp (const LinphoneCore *core)
| Get the DSCP field for outgoing audio streams.
void | linphone_core_set_video_dscp (LinphoneCore *core, int dscp)
| Set the DSCP field for outgoing video streams.
int | linphone_core_get_video_dscp (const LinphoneCore *core)
| Get the DSCP field for outgoing video streams.
void | linphone_core_enable_sdp_200_ack (LinphoneCore *core, bool_t enable)
| Control when media offer is sent in SIP INVITE.
bool_t | linphone_core_sdp_200_ack_enabled (const LinphoneCore *core)
| Media offer control param for SIP INVITE.
void | linphone_core_realtime_text_set_keepalive_interval (LinphoneCore *core, unsigned int interval)
| Set keep alive interval for real time text.
void | linphone_core_set_http_proxy_host (LinphoneCore *core, const char *host)
| Set http proxy address to be used for signaling during next channel connection.
void | linphone_core_set_http_proxy_port (LinphoneCore *core, int port)
| Set http proxy port to be used for signaling.
bool_t | linphone_core_automatic_http_proxy_detection_enabled (const LinphoneCore *core)
| Returns whether automatic http proxy is enabled.
void | linphone_core_enable_automatic_http_proxy_detection (LinphoneCore *core, bool_t enable)
| Enables or disables automatic http proxy detection.
const char * | linphone_core_get_http_proxy_host (const LinphoneCore *core)
| Get http proxy address to be used for signaling.
int | linphone_core_get_http_proxy_port (const LinphoneCore *core)
| Get http proxy port to be used for signaling.
void | linphone_core_set_tls_cert (LinphoneCore *core, const char *tls_cert)
| Sets a TLS certificate used for TLS authentication The certificate won't be stored, you have to set it after each LinphoneCore startup.
void | linphone_core_set_tls_key (LinphoneCore *core, const char *tls_key)
| Sets a TLS key used for TLS authentication The key won't be stored, you have to set it after each LinphoneCore startup.
void | linphone_core_set_tls_cert_path (LinphoneCore *core, const char *tls_cert_path)
| Sets a TLS certificate path used for TLS authentication The path will be stored in the rc file and automatically restored on startup.
void | linphone_core_set_tls_key_path (LinphoneCore *core, const char *tls_key_path)
| Sets a TLS key path used for TLS authentication The path will be stored in the rc file and automatically restored on startup.
const char * | linphone_core_get_tls_cert (const LinphoneCore *core)
| Gets the TLS certificate.
const char * | linphone_core_get_tls_key (const LinphoneCore *core)
| Gets the TLS key.
const char * | linphone_core_get_tls_cert_path (const LinphoneCore *core)
| Gets the path to the TLS certificate file.
const char * | linphone_core_get_tls_key_path (const LinphoneCore *core)
| Gets the path to the TLS key file.
LinphoneNatPolicy * | linphone_core_create_nat_policy (LinphoneCore *core)
| Create a new LinphoneNatPolicy object with every policies being disabled.
MS2_DEPRECATED void | linphone_core_set_sip_port (LinphoneCore *core, int port)
| Sets the UDP port to be used by SIP.
MS2_DEPRECATED int | linphone_core_get_sip_port (LinphoneCore *core)
| Gets the UDP port used by SIP.
MS2_DEPRECATED LinphoneStatus | linphone_core_set_sip_transports (LinphoneCore *core, const LinphoneSipTransports *transports)
| Sets the ports to be used for each of transport (UDP or TCP) A zero value port for a given transport means the transport is not used.
MS2_DEPRECATED LinphoneStatus | linphone_core_get_sip_transports (LinphoneCore *core, LinphoneSipTransports *transports)
| Retrieves the port configuration used for each transport (udp, tcp, tls).
MS2_DEPRECATED void | linphone_core_get_sip_transports_used (LinphoneCore *core, LinphoneSipTransports *tr)
| Retrieves the real port number assigned for each sip transport (udp, tcp, tls).
MS2_DEPRECATED void | linphone_core_set_firewall_policy (LinphoneCore *core, LinphoneFirewallPolicy pol)
| Set the policy to use to pass through firewalls.
MS2_DEPRECATED LinphoneFirewallPolicy | linphone_core_get_firewall_policy (const LinphoneCore *core)
| Get the policy that is used to pass through firewalls.
LinphoneNatPolicy * | linphone_nat_policy_clone (const LinphoneNatPolicy *other)
| Clone an existing LinphoneNatPolicy object.
LinphoneNatPolicy * | linphone_nat_policy_ref (LinphoneNatPolicy *policy)
| Acquire a reference to the LinphoneNatPolicy object.
void | linphone_nat_policy_unref (LinphoneNatPolicy *policy)
| Release reference to the LinphoneNatPolicy object.
void * | linphone_nat_policy_get_user_data (const LinphoneNatPolicy *policy)
| Retrieve the user pointer associated with the LinphoneNatPolicy object.
void | linphone_nat_policy_set_user_data (LinphoneNatPolicy *policy, void *user_data)
| Assign a user pointer to the LinphoneNatPolicy object.
void | linphone_nat_policy_clear (LinphoneNatPolicy *policy)
| Clear a NAT policy (deactivate all protocols and unset the STUN server).
bool_t | linphone_nat_policy_stun_enabled (const LinphoneNatPolicy *policy)
| Tell whether STUN is enabled.
void | linphone_nat_policy_enable_stun (LinphoneNatPolicy *policy, bool_t enable)
| Enable STUN.
bool_t | linphone_nat_policy_turn_enabled (const LinphoneNatPolicy *policy)
| Tell whether TURN is enabled.
void | linphone_nat_policy_enable_turn (LinphoneNatPolicy *policy, bool_t enable)
| Enable TURN.
bool_t | linphone_nat_policy_ice_enabled (const LinphoneNatPolicy *policy)
| Tell whether ICE is enabled.
void | linphone_nat_policy_enable_ice (LinphoneNatPolicy *policy, bool_t enable)
| Enable ICE.
bool_t | linphone_nat_policy_upnp_enabled (const LinphoneNatPolicy *policy)
| Tell whether uPnP is enabled.
void | linphone_nat_policy_enable_upnp (LinphoneNatPolicy *policy, bool_t enable)
| Enable uPnP.
const char * | linphone_nat_policy_get_stun_server (const LinphoneNatPolicy *policy)
| Get the STUN/TURN server to use with this NAT policy.
void | linphone_nat_policy_set_stun_server (LinphoneNatPolicy *policy, const char *stun_server)
| Set the STUN/TURN server to use with this NAT policy.
const char * | linphone_nat_policy_get_nat_v4_address (const LinphoneNatPolicy *policy)
| Get the mandatory v4 IP address to use with this NAT policy as server-reflexive candidate for ICE.
void | linphone_nat_policy_set_nat_v4_address (LinphoneNatPolicy *policy, const char *v4_address)
| Set the mandatory v4 IP address to use with this NAT policy as server-reflexive candidate for ICE.
const char * | linphone_nat_policy_get_nat_v6_address (const LinphoneNatPolicy *policy)
| Get the mandatory v6 IP address to use with this NAT policy as server-reflexive candidate for ICE.
void | linphone_nat_policy_set_nat_v6_address (LinphoneNatPolicy *policy, const char *v4_address)
| Set the mandatory v6 IP address to use with this NAT policy as server-reflexive candidate for ICE.
const char * | linphone_nat_policy_get_stun_server_username (const LinphoneNatPolicy *policy)
| Get the username used to authenticate with the STUN/TURN server.
void | linphone_nat_policy_set_stun_server_username (LinphoneNatPolicy *policy, const char *username)
| Set the username used to authenticate with the STUN/TURN server.
void | linphone_nat_policy_resolve_stun_server (LinphoneNatPolicy *policy)
| Start a STUN server DNS resolution.
const struct addrinfo * | linphone_nat_policy_get_stun_server_addrinfo (LinphoneNatPolicy *policy)
| Get the addrinfo representation of the STUN server address.
void | linphone_nat_policy_enable_udp_turn_transport (LinphoneNatPolicy *policy, bool_t enable)
| Enable UDP TURN transport.
bool_t | linphone_nat_policy_udp_turn_transport_enabled (const LinphoneNatPolicy *policy)
| Tells whether UDP TURN transport is enabled.
void | linphone_nat_policy_enable_tcp_turn_transport (LinphoneNatPolicy *policy, bool_t enable)
| Enable TCP TURN transport.
bool_t | linphone_nat_policy_tcp_turn_transport_enabled (const LinphoneNatPolicy *policy)
| Tells whether TCP TURN transport is enabled.
void | linphone_nat_policy_enable_tls_turn_transport (LinphoneNatPolicy *policy, bool_t enable)
| Enable TLS TURN transport.
bool_t | linphone_nat_policy_tls_turn_transport_enabled (const LinphoneNatPolicy *policy)
| Tells whether TLS TURN transport is enabled.
LinphoneCore * | linphone_nat_policy_get_core (const LinphoneNatPolicy *policy)
| Returns the LinphoneCore object managing this nat policy, if any.

## Detailed Description

Controlling network parameters (ports, mtu...).

## Typedef Documentation

## ◆ LinphoneFirewallPolicy

typedef enum _LinphoneFirewallPolicy LinphoneFirewallPolicy

Policy to use to pass through firewalls.

Deprecated
  03/02/2017 Use LinphoneNatPolicy instead.

## Enumeration Type Documentation

## ◆ _LinphoneAuthMethod

enum _LinphoneAuthMethod

Enum describing the authentication methods.

Enumerator
LinphoneAuthHttpDigest | Digest authentication requested.
LinphoneAuthTls | Client certificate requested.

## ◆ _LinphoneFirewallPolicy

enum _LinphoneFirewallPolicy

Policy to use to pass through firewalls.

Deprecated
  03/02/2017 Use LinphoneNatPolicy instead.

Enumerator
LinphonePolicyNoFirewall | Do not use any mechanism to pass through firewalls.
LinphonePolicyUseNatAddress | Use the specified public adress.
LinphonePolicyUseStun | Use a STUN server to get the public address.
LinphonePolicyUseIce | Use the ICE protocol.
LinphonePolicyUseUpnp | Use the uPnP protocol.

## ◆ _LinphoneLimeState

enum _LinphoneLimeState

Enumerator
LinphoneLimeDisabled | Lime is not used at all.
LinphoneLimeMandatory | Lime is always used.
LinphoneLimePreferred | Lime is used only if we already shared a secret with remote.

## Function Documentation

## ◆ linphone_core_automatic_http_proxy_detection_enabled()

bool_t linphone_core_automatic_http_proxy_detection_enabled | ( | const LinphoneCore * | core | ) |

Returns whether automatic http proxy is enabled.

Parameters

  core | LinphoneCore object

Returns
  TRUE if automatic http proxy is enabled or FALSE.

## ◆ linphone_core_create_nat_policy()

LinphoneNatPolicy * linphone_core_create_nat_policy | ( | LinphoneCore * | core | ) |

Create a new LinphoneNatPolicy object with every policies being disabled.

Parameters

  core | LinphoneCore object

Returns
  A new LinphoneNatPolicy object.

## ◆ linphone_core_enable_automatic_http_proxy_detection()

void linphone_core_enable_automatic_http_proxy_detection | ( | LinphoneCore * | core,
|  | bool_t | enable )

Enables or disables automatic http proxy detection.

Parameters

  core | LinphoneCore object
  enable | TRUE if automatic http proxy is enabled or FALSE.

## ◆ linphone_core_enable_forced_ice_relay()

void linphone_core_enable_forced_ice_relay | ( | LinphoneCore * | core,
|  | bool_t | enable )

Artificially cause the relay path to be selected when ICE is used.

This is mainly a function for test, for example to validate that the relay service (ever TURN or media-aware SIP proxy) is working as expected. Indeed, in many cases a path through host or server reflexive candidate will be found by ICE, which makes difficult to make sure that the relay service is working as expected.

Parameters

  [in] | core | LinphoneCore object
  [in] | enable | boolean value

## ◆ linphone_core_enable_ipv6()

void linphone_core_enable_ipv6 | ( | LinphoneCore * | core,
|  | bool_t | enable )

Turns IPv6 support on or off.

Parameters

  core | LinphoneCore object
  enable | A boolean value telling whether to enable IPv6 support

## ◆ linphone_core_enable_keep_alive()

void linphone_core_enable_keep_alive | ( | LinphoneCore * | core,
|  | bool_t | enable )

Enables signaling keep alive, small udp packet sent periodically to keep udp NAT association.

Parameters

  core | LinphoneCore object
  enable | A boolean value telling whether signaling keep alive is to be enabled

## ◆ linphone_core_enable_sdp_200_ack()

void linphone_core_enable_sdp_200_ack | ( | LinphoneCore * | core,
|  | bool_t | enable )

Control when media offer is sent in SIP INVITE.

Parameters

  core | the LinphoneCore object
  enable | true if INVITE has to be sent whitout SDP.

## ◆ linphone_core_enable_wifi_only()

void linphone_core_enable_wifi_only | ( | LinphoneCore * | core,
|  | bool_t | enable )

Turns Wifi only mode on or off.

If enabled, app won't register when active network isn't WiFi or Ethernet.

Warning
  Only works for Android platform.

Parameters

  core | LinphoneCore object
  enable | A boolean value telling whether to enable IPv6 support

## ◆ linphone_core_forced_ice_relay_enabled()

bool_t linphone_core_forced_ice_relay_enabled | ( | const LinphoneCore * | core | ) |

Indicates whether the ICE relay path is forcibly selected.

Parameters

  [in] | core | LinphoneCore object

Returns
  a boolean value indicating whether forced relay is enabled.

See also
  linphone_core_enable_forced_ice_relay().

## ◆ linphone_core_get_audio_dscp()

int linphone_core_get_audio_dscp | ( | const LinphoneCore * | core | ) |

Get the DSCP field for outgoing audio streams.

The DSCP defines the quality of service in IP packets.

Parameters

  core | LinphoneCore object

Returns
  The current DSCP value

## ◆ linphone_core_get_audio_port()

int linphone_core_get_audio_port | ( | const LinphoneCore * | core | ) |

Gets the UDP port used for audio streaming.

Parameters

  core | LinphoneCore object

Returns
  The UDP port used for audio streaming

## ◆ linphone_core_get_audio_port_range()

void linphone_core_get_audio_port_range | ( | const LinphoneCore * | core,
|  | int * | min_port,
|  | int * | max_port )

Get the audio port range from which is randomly chosen the UDP port used for audio streaming.

Parameters

  | core | LinphoneCore object
  [out] | min_port | The lower bound of the audio port range being used
  [out] | max_port | The upper bound of the audio port range being used

## ◆ linphone_core_get_audio_ports_range()

LinphoneRange * linphone_core_get_audio_ports_range | ( | const LinphoneCore * | core | ) |

Get the audio port range from which is randomly chosen the UDP port used for audio streaming.

Parameters

  core | LinphoneCore object

Returns
  a LinphoneRange object

## ◆ linphone_core_get_firewall_policy()

MS2_DEPRECATED LinphoneFirewallPolicy linphone_core_get_firewall_policy | ( | const LinphoneCore * | core | ) |

Get the policy that is used to pass through firewalls.

Parameters

  core | LinphoneCore object.

Returns
  The LinphoneFirewallPolicy that is being used.

Deprecated
  27/03/2016 Use linphone_core_get_nat_policy() instead

## ◆ linphone_core_get_http_proxy_host()

const char * linphone_core_get_http_proxy_host | ( | const LinphoneCore * | core | ) |

Get http proxy address to be used for signaling.

Parameters

  core | LinphoneCore object

Returns
  hostname of IP adress of the http proxy (can be NULL to disable).

## ◆ linphone_core_get_http_proxy_port()

int linphone_core_get_http_proxy_port | ( | const LinphoneCore * | core | ) |

Get http proxy port to be used for signaling.

Parameters

  core | LinphoneCore object

Returns
  port of the http proxy.

## ◆ linphone_core_get_nat_address()

MS2_DEPRECATED const char * linphone_core_get_nat_address | ( | const LinphoneCore * | core | ) |

Deprecated.

Get the public IP address of NAT being used.

Parameters

  core | LinphoneCore object.

Returns
  The public IP address of NAT being used.

Deprecated
  12/10/2022

## ◆ linphone_core_get_nat_policy()

LinphoneNatPolicy * linphone_core_get_nat_policy | ( | const LinphoneCore * | core | ) |

Get The policy that is used to pass through NATs/firewalls.

It may be overridden by a NAT policy for a specific proxy config.

Parameters

  core | LinphoneCore object

Returns
  LinphoneNatPolicy object in use.

See also
  linphone_account_params_get_nat_policy()

## ◆ linphone_core_get_sip_dscp()

int linphone_core_get_sip_dscp | ( | const LinphoneCore * | core | ) |

Get the DSCP field for SIP signaling channel.

The DSCP defines the quality of service in IP packets.

Parameters

  core | LinphoneCore object

Returns
  The current DSCP value

## ◆ linphone_core_get_sip_port()

MS2_DEPRECATED int linphone_core_get_sip_port | ( | LinphoneCore * | core | ) |

Gets the UDP port used by SIP.

Parameters

  core | LinphoneCore object

Returns
  The UDP port used by SIP

Deprecated
  20/12/2016 use linphone_core_get_sip_transports() instead.

## ◆ linphone_core_get_sip_transports()

MS2_DEPRECATED LinphoneStatus linphone_core_get_sip_transports | ( | LinphoneCore * | core,
|  | LinphoneSipTransports * | transports )

Retrieves the port configuration used for each transport (udp, tcp, tls).

A zero value port for a given transport means the transport is not used. A value of LC_SIP_TRANSPORT_RANDOM (-1) means the port is to be chosen randomly by the system.

Parameters

  | core | LinphoneCore object
  [out] | transports | A LinphoneSipTransports structure that will receive the configured ports

Returns
  0

Deprecated
  18/04/2017

## ◆ linphone_core_get_sip_transports_used()

MS2_DEPRECATED void linphone_core_get_sip_transports_used | ( | LinphoneCore * | core,
|  | LinphoneSipTransports * | tr )

Retrieves the real port number assigned for each sip transport (udp, tcp, tls).

A zero value means that the transport is not activated. If LC_SIP_TRANSPORT_RANDOM was passed to linphone_core_set_sip_transports(), the random port choosed by the system is returned.

Parameters

  | core | LinphoneCore object
  [out] | tr | A LinphoneSipTransports structure that will receive the ports being used

Deprecated
  18/04/2017 Use linphone_core_get_transports_used instead

## ◆ linphone_core_get_stun_server()

const char * linphone_core_get_stun_server | ( | const LinphoneCore * | core | ) |

Get the STUN server address being used.

Parameters

  core | LinphoneCore object

Returns
  The STUN server address being used.

## ◆ linphone_core_get_text_port()

int linphone_core_get_text_port | ( | const LinphoneCore * | core | ) |

Gets the UDP port used for text streaming.

Parameters

  core | LinphoneCore object

Returns
  The UDP port used for text streaming

## ◆ linphone_core_get_text_port_range()

void linphone_core_get_text_port_range | ( | const LinphoneCore * | core,
|  | int * | min_port,
|  | int * | max_port )

Get the video port range from which is randomly chosen the UDP port used for text streaming.

Parameters

  | core | LinphoneCore object
  [out] | min_port | The lower bound of the text port range being used
  [out] | max_port | The upper bound of the text port range being used

## ◆ linphone_core_get_text_ports_range()

LinphoneRange * linphone_core_get_text_ports_range | ( | const LinphoneCore * | core | ) |

Get the text port range from which is randomly chosen the UDP port used for text streaming.

Parameters

  core | LinphoneCore object

Returns
  a LinphoneRange object

## ◆ linphone_core_get_tls_cert()

const char * linphone_core_get_tls_cert | ( | const LinphoneCore * | core | ) |

Gets the TLS certificate.

Parameters

  core | LinphoneCore object

Returns
  the TLS certificate or NULL if not set yet.

## ◆ linphone_core_get_tls_cert_path()

const char * linphone_core_get_tls_cert_path | ( | const LinphoneCore * | core | ) |

Gets the path to the TLS certificate file.

Parameters

  core | LinphoneCore object

Returns
  the TLS certificate path or NULL if not set yet.

## ◆ linphone_core_get_tls_key()

const char * linphone_core_get_tls_key | ( | const LinphoneCore * | core | ) |

Gets the TLS key.

Parameters

  core | LinphoneCore object

Returns
  the TLS key or NULL if not set yet.

## ◆ linphone_core_get_tls_key_path()

const char * linphone_core_get_tls_key_path | ( | const LinphoneCore * | core | ) |

Gets the path to the TLS key file.

Parameters

  core | LinphoneCore object

Returns
  the TLS key path or NULL if not set yet.

## ◆ linphone_core_get_transports()

LinphoneTransports * linphone_core_get_transports | ( | LinphoneCore * | core | ) |

Retrieves the port configuration used for each transport (udp, tcp, tls).

A zero value port for a given transport means the transport is not used. A value of LC_SIP_TRANSPORT_RANDOM (-1) means the port is to be chosen randomly by the system. A value of LC_SIP_TRANSPORT_DONTBIND (-2) means that the socket will not be bound explicitely, in other words liblinphone won't listen for incoming connections at all. This mode is suitable for a pure client application (ex: a mobile application).

Parameters

  core | LinphoneCore object

Returns
  A LinphoneTransports structure with the configured ports

## ◆ linphone_core_get_transports_used()

LinphoneTransports * linphone_core_get_transports_used | ( | LinphoneCore * | core | ) |

Retrieves the real port number assigned for each sip transport (udp, tcp, tls).

A zero value means that the transport is not activated. If LC_SIP_TRANSPORT_RANDOM was passed to linphone_core_set_sip_transports(), the random port choosed by the system is returned.

Parameters

  core | LinphoneCore object

Returns
  A LinphoneTransports structure with the ports being used

## ◆ linphone_core_get_upnp_external_ipaddress()

const char * linphone_core_get_upnp_external_ipaddress | ( | const LinphoneCore * | core | ) |

Return the external ip address of router.

In some cases the uPnP can have an external ip address but not a usable uPnP (state different of Ok).

Parameters

  core | LinphoneCore

Returns
  a null terminated string containing the external ip address. If the the external ip address is not available return null.

## ◆ linphone_core_get_upnp_state()

LinphoneUpnpState linphone_core_get_upnp_state | ( | const LinphoneCore * | core | ) |

Return the internal state of uPnP.

Parameters

  core | LinphoneCore

Returns
  an LinphoneUpnpState.

## ◆ linphone_core_get_video_dscp()

int linphone_core_get_video_dscp | ( | const LinphoneCore * | core | ) |

Get the DSCP field for outgoing video streams.

The DSCP defines the quality of service in IP packets.

Parameters

  core | LinphoneCore object

Returns
  The current DSCP value

## ◆ linphone_core_get_video_port()

int linphone_core_get_video_port | ( | const LinphoneCore * | core | ) |

Gets the UDP port used for video streaming.

Parameters

  core | LinphoneCore object

Returns
  The UDP port used for video streaming

## ◆ linphone_core_get_video_port_range()

void linphone_core_get_video_port_range | ( | const LinphoneCore * | core,
|  | int * | min_port,
|  | int * | max_port )

Get the video port range from which is randomly chosen the UDP port used for video streaming.

Parameters

  | core | LinphoneCore object
  [out] | min_port | The lower bound of the video port range being used
  [out] | max_port | The upper bound of the video port range being used

## ◆ linphone_core_get_video_ports_range()

LinphoneRange * linphone_core_get_video_ports_range | ( | const LinphoneCore * | core | ) |

Get the video port range from which is randomly chosen the UDP port used for video streaming.

Parameters

  core | LinphoneCore object

Returns
  a LinphoneRange object

## ◆ linphone_core_ipv6_enabled()

bool_t linphone_core_ipv6_enabled | ( | LinphoneCore * | core | ) |

Tells whether IPv6 is enabled or not.

Parameters

  core | LinphoneCore object

Returns
  A boolean value telling whether IPv6 is enabled or not

See also
  linphone_core_enable_ipv6() for more details on how IPv6 is supported in liblinphone.

## ◆ linphone_core_is_network_reachable()

bool_t linphone_core_is_network_reachable | ( | LinphoneCore * | core | ) |

return network state either as positioned by the application or by linphone itself.

Parameters

  core | the LinphoneCore object

Returns
  TRUE if network is reachable, FALSE otherwise

## ◆ linphone_core_keep_alive_enabled()

bool_t linphone_core_keep_alive_enabled | ( | LinphoneCore * | core | ) |

Is signaling keep alive enabled.

Parameters

  core | LinphoneCore object

Returns
  A boolean value telling whether signaling keep alive is enabled

## ◆ linphone_core_realtime_text_set_keepalive_interval()

void linphone_core_realtime_text_set_keepalive_interval | ( | LinphoneCore * | core,
|  | unsigned int | interval )

Set keep alive interval for real time text.

Parameters

  core | LinphoneCore object
  interval | The keep alive interval of real time text, 25000 by default.

## ◆ linphone_core_sdp_200_ack_enabled()

bool_t linphone_core_sdp_200_ack_enabled | ( | const LinphoneCore * | core | ) |

Media offer control param for SIP INVITE.

Parameters

  core | the LinphoneCore object

Returns
  true if INVITE has to be sent whitout SDP.

## ◆ linphone_core_set_audio_dscp()

void linphone_core_set_audio_dscp | ( | LinphoneCore * | core,
|  | int | dscp )

Set the DSCP field for outgoing audio streams.

The DSCP defines the quality of service in IP packets.

Parameters

  core | LinphoneCore object
  dscp | The DSCP value to set

## ◆ linphone_core_set_audio_port()

void linphone_core_set_audio_port | ( | LinphoneCore * | core,
|  | int | port )

Sets the UDP port used for audio streaming.

A value of -1 will request the system to allocate the local port randomly. This is recommended in order to avoid firewall warnings.

Parameters

  core | LinphoneCore object
  port | The UDP port to use for audio streaming

## ◆ linphone_core_set_firewall_policy()

MS2_DEPRECATED void linphone_core_set_firewall_policy | ( | LinphoneCore * | core,
|  | LinphoneFirewallPolicy | pol )

Set the policy to use to pass through firewalls.

Parameters

  core | LinphoneCore object.
  pol | The LinphoneFirewallPolicy to use.

Deprecated
  30/03/2016 Use linphone_core_set_nat_policy() instead.

## ◆ linphone_core_set_http_proxy_host()

void linphone_core_set_http_proxy_host | ( | LinphoneCore * | core,
|  | const char * | host )

Set http proxy address to be used for signaling during next channel connection.

Use linphone_core_set_network_reachable() FASLE/TRUE to force channel restart.

Parameters

  core | LinphoneCore object
  host | Hostname of IP adress of the http proxy (can be NULL to disable).

## ◆ linphone_core_set_http_proxy_port()

void linphone_core_set_http_proxy_port | ( | LinphoneCore * | core,
|  | int | port )

Set http proxy port to be used for signaling.

Parameters

  core | LinphoneCore object
  port | of the http proxy.

## ◆ linphone_core_set_media_network_reachable()

void linphone_core_set_media_network_reachable | ( | LinphoneCore * | core,
|  | bool_t | reachable )

This method is called by the application to notify the linphone core library when the media (RTP) network is reachable.

This is for advanced usage, when SIP and RTP layers are required to use different interfaces. Most applications just need linphone_core_set_network_reachable().

Parameters

  core | the LinphoneCore object
  reachable | TRUE if network is reachable, FALSE otherwise

## ◆ linphone_core_set_nat_address()

MS2_DEPRECATED void linphone_core_set_nat_address | ( | LinphoneCore * | core,
|  | const char * | addr )

Deprecated.

This function was used to force a given IP address to appear in SDP. Unfortunately, this cannot work as explained by https://www.rfc-editor.org/rfc/rfc5389#section-2 .

Parameters

  core | LinphoneCore object.
  addr | The public IP address of NAT to use.

Deprecated
  12/10/2022

## ◆ linphone_core_set_nat_policy()

void linphone_core_set_nat_policy | ( | LinphoneCore * | core,
|  | LinphoneNatPolicy * | policy )

Set the policy to use to pass through NATs/firewalls.

It may be overridden by a NAT policy for a specific proxy config.

Parameters

  core | LinphoneCore object
  policy | LinphoneNatPolicy object

See also
  linphone_account_params_set_nat_policy()

## ◆ linphone_core_set_network_reachable()

void linphone_core_set_network_reachable | ( | LinphoneCore * | core,
|  | bool_t | reachable )

This method is called by the application to notify the linphone core library when network is reachable.

Calling this method with true trigger linphone to initiate a registration process for all proxies. Calling this method disables the automatic network detection mode. It means you must call this method after each network state changes.

Parameters

  core | the LinphoneCore object
  reachable | TRUE if network is reachable, FALSE otherwise

## ◆ linphone_core_set_sip_dscp()

void linphone_core_set_sip_dscp | ( | LinphoneCore * | core,
|  | int | dscp )

Set the DSCP field for SIP signaling channel.

The DSCP defines the quality of service in IP packets.

Parameters

  core | LinphoneCore object
  dscp | The DSCP value to set

## ◆ linphone_core_set_sip_network_reachable()

void linphone_core_set_sip_network_reachable | ( | LinphoneCore * | core,
|  | bool_t | reachable )

This method is called by the application to notify the linphone core library when the SIP network is reachable.

This is for advanced usage, when SIP and RTP layers are required to use different interfaces. Most applications just need linphone_core_set_network_reachable().

Parameters

  core | the LinphoneCore object
  reachable | TRUE if network is reachable, FALSE otherwise

## ◆ linphone_core_set_sip_port()

MS2_DEPRECATED void linphone_core_set_sip_port | ( | LinphoneCore * | core,
|  | int | port )

Sets the UDP port to be used by SIP.

Parameters

  core | LinphoneCore object
  port | The UDP port to be used by SIP

Deprecated
  20/12/2016 use linphone_core_set_sip_transports() instead.

## ◆ linphone_core_set_sip_transports()

MS2_DEPRECATED LinphoneStatus linphone_core_set_sip_transports | ( | LinphoneCore * | core,
|  | const LinphoneSipTransports * | transports )

Sets the ports to be used for each of transport (UDP or TCP) A zero value port for a given transport means the transport is not used.

A value of LC_SIP_TRANSPORT_RANDOM (-1) means the port is to be choosen randomly by the system.

Parameters

  core | LinphoneCore object
  transports | A LinphoneSipTransports structure giving the ports to use

Returns
  0

Deprecated
  18/04/2017 Use linphone_core_set_transports instead

## ◆ linphone_core_set_stun_server()

void linphone_core_set_stun_server | ( | LinphoneCore * | core,
|  | const char * | server )

Set the STUN server address to use when the firewall policy is set to STUN.

Parameters

  core | LinphoneCore object
  server | The STUN server address to use.

## ◆ linphone_core_set_text_port()

void linphone_core_set_text_port | ( | LinphoneCore * | core,
|  | int | port )

Sets the UDP port used for text streaming.

A value if -1 will request the system to allocate the local port randomly. This is recommended in order to avoid firewall warnings.

Parameters

  core | LinphoneCore object
  port | The UDP port to use for text streaming

## ◆ linphone_core_set_tls_cert()

void linphone_core_set_tls_cert | ( | LinphoneCore * | core,
|  | const char * | tls_cert )

Sets a TLS certificate used for TLS authentication The certificate won't be stored, you have to set it after each LinphoneCore startup.

Parameters

  core | LinphoneCore object
  tls_cert | the TLS certificate.

## ◆ linphone_core_set_tls_cert_path()

void linphone_core_set_tls_cert_path | ( | LinphoneCore * | core,
|  | const char * | tls_cert_path )

Sets a TLS certificate path used for TLS authentication The path will be stored in the rc file and automatically restored on startup.

Parameters

  core | LinphoneCore object
  tls_cert_path | path to the TLS certificate.

## ◆ linphone_core_set_tls_key()

void linphone_core_set_tls_key | ( | LinphoneCore * | core,
|  | const char * | tls_key )

Sets a TLS key used for TLS authentication The key won't be stored, you have to set it after each LinphoneCore startup.

Parameters

  core | LinphoneCore object
  tls_key | the TLS key.

## ◆ linphone_core_set_tls_key_path()

void linphone_core_set_tls_key_path | ( | LinphoneCore * | core,
|  | const char * | tls_key_path )

Sets a TLS key path used for TLS authentication The path will be stored in the rc file and automatically restored on startup.

Parameters

  core | LinphoneCore object
  tls_key_path | path to the TLS key.

## ◆ linphone_core_set_transports()

LinphoneStatus linphone_core_set_transports | ( | LinphoneCore * | core,
|  | const LinphoneTransports * | transports )

Sets the ports to be used for each of transport (UDP or TCP) A zero value port for a given transport means the transport is not used.

A value of LC_SIP_TRANSPORT_RANDOM (-1) means the port is to be choosen randomly by the system. A value of LC_SIP_TRANSPORT_DONTBIND (-2) means that the socket will not be bound explicitely, in other words liblinphone won't listen for incoming connections at all. This mode is suitable for a pure client application (ex: a mobile application).

Parameters

  core | LinphoneCore object
  transports | A LinphoneSipTransports structure giving the ports to use

Returns
  0

## ◆ linphone_core_set_video_dscp()

void linphone_core_set_video_dscp | ( | LinphoneCore * | core,
|  | int | dscp )

Set the DSCP field for outgoing video streams.

The DSCP defines the quality of service in IP packets.

Parameters

  core | LinphoneCore object
  dscp | The DSCP value to set

## ◆ linphone_core_set_video_port()

void linphone_core_set_video_port | ( | LinphoneCore * | core,
|  | int | port )

Sets the UDP port used for video streaming.

A value of -1 will request the system to allocate the local port randomly. This is recommended in order to avoid firewall warnings.

Parameters

  core | LinphoneCore object
  port | The UDP port to use for video streaming

## ◆ linphone_core_upnp_available()

bool_t linphone_core_upnp_available | ( | void |  | ) |

Return the availability of uPnP.

Returns
  true if uPnP is available otherwise return false.

## ◆ linphone_core_wifi_only_enabled()

bool_t linphone_core_wifi_only_enabled | ( | LinphoneCore * | core | ) |

Tells whether Wifi only mode is enabled or not.

Warning
  Only works for Android platform.

Parameters

  core | LinphoneCore object

Returns
  A boolean value telling whether Wifi only mode is enabled or not

## ◆ linphone_nat_policy_clear()

void linphone_nat_policy_clear | ( | LinphoneNatPolicy * | policy | ) |

Clear a NAT policy (deactivate all protocols and unset the STUN server).

Parameters

  policy | LinphoneNatPolicy object.

## ◆ linphone_nat_policy_clone()

LinphoneNatPolicy * linphone_nat_policy_clone | ( | const LinphoneNatPolicy * | other | ) |

Clone an existing LinphoneNatPolicy object.

Parameters

  other | LinphoneNatPolicy object.

Returns
  A clone of the original LinphoneNatPolicy object.

## ◆ linphone_nat_policy_enable_ice()

void linphone_nat_policy_enable_ice | ( | LinphoneNatPolicy * | policy,
|  | bool_t | enable )

Enable ICE.

ICE can be enabled without STUN/TURN, in which case only the local candidates will be used.

Parameters

  policy | LinphoneNatPolicy object
  enable | Boolean value telling whether to enable ICE.

## ◆ linphone_nat_policy_enable_stun()

void linphone_nat_policy_enable_stun | ( | LinphoneNatPolicy * | policy,
|  | bool_t | enable )

Enable STUN.

If TURN is also enabled, TURN will be used instead of STUN.

Parameters

  policy | LinphoneNatPolicy object
  enable | Boolean value telling whether to enable STUN.

## ◆ linphone_nat_policy_enable_tcp_turn_transport()

void linphone_nat_policy_enable_tcp_turn_transport | ( | LinphoneNatPolicy * | policy,
|  | bool_t | enable )

Enable TCP TURN transport.

Used when TURN is enabled.

Parameters

  policy | LinphoneNatPolicy object
  enable | Boolean value telling whether to enable TCP TURN transport.

## ◆ linphone_nat_policy_enable_tls_turn_transport()

void linphone_nat_policy_enable_tls_turn_transport | ( | LinphoneNatPolicy * | policy,
|  | bool_t | enable )

Enable TLS TURN transport.

Used when TURN is enabled.

Parameters

  policy | LinphoneNatPolicy object
  enable | Boolean value telling whether to enable TLS TURN transport.

## ◆ linphone_nat_policy_enable_turn()

void linphone_nat_policy_enable_turn | ( | LinphoneNatPolicy * | policy,
|  | bool_t | enable )

Enable TURN.

If STUN is also enabled, it is ignored and TURN is used.

Parameters

  policy | LinphoneNatPolicy object
  enable | Boolean value telling whether to enable TURN.

## ◆ linphone_nat_policy_enable_udp_turn_transport()

void linphone_nat_policy_enable_udp_turn_transport | ( | LinphoneNatPolicy * | policy,
|  | bool_t | enable )

Enable UDP TURN transport.

Used when TURN is enabled.

Parameters

  policy | LinphoneNatPolicy object
  enable | Boolean value telling whether to enable UDP TURN transport.

## ◆ linphone_nat_policy_enable_upnp()

void linphone_nat_policy_enable_upnp | ( | LinphoneNatPolicy * | policy,
|  | bool_t | enable )

Enable uPnP.

This has the effect to disable every other policies (ICE, STUN and TURN).

Parameters

  policy | LinphoneNatPolicy object
  enable | Boolean value telling whether to enable uPnP.

## ◆ linphone_nat_policy_get_core()

LinphoneCore * linphone_nat_policy_get_core | ( | const LinphoneNatPolicy * | policy | ) |

Returns the LinphoneCore object managing this nat policy, if any.

Parameters

  policy | LinphoneNatPolicy object

Returns
  the LinphoneCore object associated.

## ◆ linphone_nat_policy_get_nat_v4_address()

const char * linphone_nat_policy_get_nat_v4_address | ( | const LinphoneNatPolicy * | policy | ) |

Get the mandatory v4 IP address to use with this NAT policy as server-reflexive candidate for ICE.

Used when STUN or TURN are enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  the nat v4 address.

## ◆ linphone_nat_policy_get_nat_v6_address()

const char * linphone_nat_policy_get_nat_v6_address | ( | const LinphoneNatPolicy * | policy | ) |

Get the mandatory v6 IP address to use with this NAT policy as server-reflexive candidate for ICE.

Used when STUN or TURN are enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  the nat v4 address.

## ◆ linphone_nat_policy_get_stun_server()

const char * linphone_nat_policy_get_stun_server | ( | const LinphoneNatPolicy * | policy | ) |

Get the STUN/TURN server to use with this NAT policy.

Used when STUN or TURN are enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  The STUN server used by this NAT policy.

## ◆ linphone_nat_policy_get_stun_server_addrinfo()

const struct addrinfo * linphone_nat_policy_get_stun_server_addrinfo | ( | LinphoneNatPolicy * | policy | ) |

Get the addrinfo representation of the STUN server address.

WARNING: This function may block for up to 1 second.

Parameters

  policy | LinphoneNatPolicy object

Returns
  addrinfo representation of the STUN server address.

## ◆ linphone_nat_policy_get_stun_server_username()

const char * linphone_nat_policy_get_stun_server_username | ( | const LinphoneNatPolicy * | policy | ) |

Get the username used to authenticate with the STUN/TURN server.

The authentication will search for a LinphoneAuthInfo with this username. If it is not set the username of the currently used LinphoneProxyConfig is used to search for a LinphoneAuthInfo.

Parameters

  policy | LinphoneNatPolicy object

Returns
  The username used to authenticate with the STUN/TURN server.

## ◆ linphone_nat_policy_get_user_data()

void * linphone_nat_policy_get_user_data | ( | const LinphoneNatPolicy * | policy | ) |

Retrieve the user pointer associated with the LinphoneNatPolicy object.

Parameters

  policy | LinphoneNatPolicy object.

Returns
  The user pointer associated with the LinphoneNatPolicy object.

## ◆ linphone_nat_policy_ice_enabled()

bool_t linphone_nat_policy_ice_enabled | ( | const LinphoneNatPolicy * | policy | ) |

Tell whether ICE is enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  Boolean value telling whether ICE is enabled.

## ◆ linphone_nat_policy_ref()

LinphoneNatPolicy * linphone_nat_policy_ref | ( | LinphoneNatPolicy * | policy | ) |

Acquire a reference to the LinphoneNatPolicy object.

Parameters

  policy | LinphoneNatPolicy object.

Returns
  The same LinphoneNatPolicy object.

## ◆ linphone_nat_policy_resolve_stun_server()

void linphone_nat_policy_resolve_stun_server | ( | LinphoneNatPolicy * | policy | ) |

Start a STUN server DNS resolution.

Parameters

  policy | LinphoneNatPolicy object

## ◆ linphone_nat_policy_set_nat_v4_address()

void linphone_nat_policy_set_nat_v4_address | ( | LinphoneNatPolicy * | policy,
|  | const char * | v4_address )

Set the mandatory v4 IP address to use with this NAT policy as server-reflexive candidate for ICE.

The IP address is used only if no stun server is set for server-reflexive candidate gathering. Using this method is useful when Liblinphone is used in a server product, when the server does not own the public IP address. Used when STUN or TURN are enabled.

Parameters

  policy | LinphoneNatPolicy object
  v4_address | The STUN server to use with this NAT policy.

## ◆ linphone_nat_policy_set_nat_v6_address()

void linphone_nat_policy_set_nat_v6_address | ( | LinphoneNatPolicy * | policy,
|  | const char * | v4_address )

Set the mandatory v6 IP address to use with this NAT policy as server-reflexive candidate for ICE.

The IP address is used only if no stun server is set for server-reflexive candidate gathering. Using this method is useful when Liblinphone is used in a server product, when the server does not own the public IP address. Used when STUN or TURN are enabled.

Parameters

  policy | LinphoneNatPolicy object
  v4_address | The STUN server to use with this NAT policy.

## ◆ linphone_nat_policy_set_stun_server()

void linphone_nat_policy_set_stun_server | ( | LinphoneNatPolicy * | policy,
|  | const char * | stun_server )

Set the STUN/TURN server to use with this NAT policy.

Used when STUN or TURN are enabled.

Parameters

  policy | LinphoneNatPolicy object
  stun_server | The STUN server to use with this NAT policy.

## ◆ linphone_nat_policy_set_stun_server_username()

void linphone_nat_policy_set_stun_server_username | ( | LinphoneNatPolicy * | policy,
|  | const char * | username )

Set the username used to authenticate with the STUN/TURN server.

The authentication will search for a LinphoneAuthInfo with this username. If it is not set the username of the currently used LinphoneProxyConfig is used to search for a LinphoneAuthInfo.

Parameters

  policy | LinphoneNatPolicy object
  username | The username used to authenticate with the STUN/TURN server.

## ◆ linphone_nat_policy_set_user_data()

void linphone_nat_policy_set_user_data | ( | LinphoneNatPolicy * | policy,
|  | void * | user_data )

Assign a user pointer to the LinphoneNatPolicy object.

Parameters

  policy | LinphoneNatPolicy object.
  user_data | The user pointer to associate with the LinphoneNatPolicy object.

## ◆ linphone_nat_policy_stun_enabled()

bool_t linphone_nat_policy_stun_enabled | ( | const LinphoneNatPolicy * | policy | ) |

Tell whether STUN is enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  Boolean value telling whether STUN is enabled.

## ◆ linphone_nat_policy_tcp_turn_transport_enabled()

bool_t linphone_nat_policy_tcp_turn_transport_enabled | ( | const LinphoneNatPolicy * | policy | ) |

Tells whether TCP TURN transport is enabled.

Used when TURN is enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  Boolean value telling whether TCP TURN transport is enabled.

## ◆ linphone_nat_policy_tls_turn_transport_enabled()

bool_t linphone_nat_policy_tls_turn_transport_enabled | ( | const LinphoneNatPolicy * | policy | ) |

Tells whether TLS TURN transport is enabled.

Used when TURN is enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  Boolean value telling whether TLS TURN transport is enabled.

## ◆ linphone_nat_policy_turn_enabled()

bool_t linphone_nat_policy_turn_enabled | ( | const LinphoneNatPolicy * | policy | ) |

Tell whether TURN is enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  Boolean value telling whether TURN is enabled.

## ◆ linphone_nat_policy_udp_turn_transport_enabled()

bool_t linphone_nat_policy_udp_turn_transport_enabled | ( | const LinphoneNatPolicy * | policy | ) |

Tells whether UDP TURN transport is enabled.

Used when TURN is enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  Boolean value telling whether UDP TURN transport is enabled.

## ◆ linphone_nat_policy_unref()

void linphone_nat_policy_unref | ( | LinphoneNatPolicy * | policy | ) |

Release reference to the LinphoneNatPolicy object.

Parameters

  policy | LinphoneNatPolicy object.

## ◆ linphone_nat_policy_upnp_enabled()

bool_t linphone_nat_policy_upnp_enabled | ( | const LinphoneNatPolicy * | policy | ) |

Tell whether uPnP is enabled.

Parameters

  policy | LinphoneNatPolicy object

Returns
  Boolean value telling whether uPnP is enabled.

## ◆ linphone_transports_get_dtls_port()

int linphone_transports_get_dtls_port | ( | const LinphoneTransports * | transports | ) |

Gets the DTLS port in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object

Returns
  the DTLS port

## ◆ linphone_transports_get_tcp_port()

int linphone_transports_get_tcp_port | ( | const LinphoneTransports * | transports | ) |

Gets the TCP port in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object

Returns
  the TCP port

## ◆ linphone_transports_get_tls_port()

int linphone_transports_get_tls_port | ( | const LinphoneTransports * | transports | ) |

Gets the TLS port in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object

Returns
  the TLS port

## ◆ linphone_transports_get_udp_port()

int linphone_transports_get_udp_port | ( | const LinphoneTransports * | transports | ) |

Gets the UDP port in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object

Returns
  the UDP port

## ◆ linphone_transports_get_user_data()

void * linphone_transports_get_user_data | ( | const LinphoneTransports * | transports | ) |

Gets the user data in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports

Returns
  the user data.

## ◆ linphone_transports_ref()

LinphoneTransports * linphone_transports_ref | ( | LinphoneTransports * | transports | ) |

Increment refcount.

Parameters

  transports | LinphoneTransports object

Returns
  the same LinphoneTransports object

## ◆ linphone_transports_set_dtls_port()

void linphone_transports_set_dtls_port | ( | LinphoneTransports * | transports,
|  | int | port )

Sets the DTLS port in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object
  port | the DTLS port

## ◆ linphone_transports_set_tcp_port()

void linphone_transports_set_tcp_port | ( | LinphoneTransports * | transports,
|  | int | port )

Sets the TCP port in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object
  port | the TCP port

## ◆ linphone_transports_set_tls_port()

void linphone_transports_set_tls_port | ( | LinphoneTransports * | transports,
|  | int | port )

Sets the TLS port in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object
  port | the TLS port

## ◆ linphone_transports_set_udp_port()

void linphone_transports_set_udp_port | ( | LinphoneTransports * | transports,
|  | int | port )

Sets the UDP port in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object
  port | the UDP port

## ◆ linphone_transports_set_user_data()

void linphone_transports_set_user_data | ( | LinphoneTransports * | transports,
|  | void * | user_data )

Sets the user data in the LinphoneTransports object.

Parameters

  transports | the LinphoneTransports object
  user_data | the user data

## ◆ linphone_transports_unref()

void linphone_transports_unref | ( | LinphoneTransports * | transports | ) |

Decrement refcount and possibly free the object.

Parameters

  transports | LinphoneTransports object