liblinphone
3.8.0
|
typedef struct _LinphoneTunnelConfig LinphoneTunnelConfig |
This set of methods enhance LinphoneCore functionalities in order to provide an easy to use API to
It takes in charge automatically the SIP registration procedure when connecting or disconnecting to a tunnel server. No other action on LinphoneCore is required to enable full operation in tunnel mode.
typedef enum _LinphoneTunnelMode LinphoneTunnelMode |
Enum describing the tunnel modes.
typedef struct _LinphoneTunnel LinphoneTunnel |
Linphone tunnel object.
enum _LinphoneTunnelMode |
LinphoneTunnelMode linphone_tunnel_mode_from_string | ( | const char * | string | ) |
Convert a string into LinphoneTunnelMode enum
string | String to convert |
const char* linphone_tunnel_mode_to_string | ( | LinphoneTunnelMode | mode | ) |
Convert a tunnel mode enum into string
mode | Enum to convert |
Create a new tunnel configuration
void linphone_tunnel_config_set_host | ( | LinphoneTunnelConfig * | tunnel, |
const char * | host | ||
) |
Set the IP address or hostname of the tunnel server.
tunnel | LinphoneTunnelConfig object |
host | The tunnel server IP address or hostname |
const char* linphone_tunnel_config_get_host | ( | const LinphoneTunnelConfig * | tunnel | ) |
Get the IP address or hostname of the tunnel server.
tunnel | LinphoneTunnelConfig object |
void linphone_tunnel_config_set_port | ( | LinphoneTunnelConfig * | tunnel, |
int | port | ||
) |
Set tls port of server.
tunnel | LinphoneTunnelConfig object |
port | The tunnel server TLS port, recommended value is 443 |
int linphone_tunnel_config_get_port | ( | const LinphoneTunnelConfig * | tunnel | ) |
Get the TLS port of the tunnel server.
tunnel | LinphoneTunnelConfig object |
void linphone_tunnel_config_set_remote_udp_mirror_port | ( | LinphoneTunnelConfig * | tunnel, |
int | remote_udp_mirror_port | ||
) |
Set the remote port on the tunnel server side used to test UDP reachability. This is used when the mode is set auto, to detect whether the tunnel has to be enabled or not.
tunnel | LinphoneTunnelConfig object |
remote_udp_mirror_port | The remote port on the tunnel server side used to test UDP reachability, set to -1 to disable the feature |
int linphone_tunnel_config_get_remote_udp_mirror_port | ( | const LinphoneTunnelConfig * | tunnel | ) |
Get the remote port on the tunnel server side used to test UDP reachability. This is used when the mode is set auto, to detect whether the tunnel has to be enabled or not.
tunnel | LinphoneTunnelConfig object |
void linphone_tunnel_config_set_delay | ( | LinphoneTunnelConfig * | tunnel, |
int | delay | ||
) |
Set the UDP packet round trip delay in ms for a tunnel configuration.
tunnel | LinphoneTunnelConfig object |
delay | The UDP packet round trip delay in ms considered as acceptable (recommended value is 1000 ms). |
int linphone_tunnel_config_get_delay | ( | const LinphoneTunnelConfig * | tunnel | ) |
Get the UDP packet round trip delay in ms for a tunnel configuration.
tunnel | LinphoneTunnelConfig object |
void linphone_tunnel_config_destroy | ( | LinphoneTunnelConfig * | tunnel | ) |
Destroy a tunnel configuration
tunnel | LinphoneTunnelConfig object |
void linphone_tunnel_add_server | ( | LinphoneTunnel * | tunnel, |
LinphoneTunnelConfig * | tunnel_config | ||
) |
Add a tunnel server configuration.
tunnel | LinphoneTunnel object |
tunnel_config | LinphoneTunnelConfig object |
void linphone_tunnel_remove_server | ( | LinphoneTunnel * | tunnel, |
LinphoneTunnelConfig * | tunnel_config | ||
) |
Remove a tunnel server configuration.
tunnel | LinphoneTunnel object |
tunnel_config | LinphoneTunnelConfig object |
const MSList* linphone_tunnel_get_servers | ( | const LinphoneTunnel * | tunnel | ) |
Get added servers
tunnel | LinphoneTunnel object |
void linphone_tunnel_clean_servers | ( | LinphoneTunnel * | tunnel | ) |
Remove all tunnel server addresses previously entered with linphone_tunnel_add_server()
tunnel | LinphoneTunnel object |
void linphone_tunnel_set_mode | ( | LinphoneTunnel * | tunnel, |
LinphoneTunnelMode | mode | ||
) |
Set the tunnel mode. The tunnel mode can be 'enable', 'disable' or 'auto' If the mode is set to 'auto', the tunnel manager will try to established an RTP session with the tunnel server on the UdpMirrorPort. If the connection fail, the tunnel is automatically activated whereas the tunnel is automatically disabled if the connection succeed.
tunnel | LinphoneTunnel object |
mode | The desired LinphoneTunnelMode |
LinphoneTunnelMode linphone_tunnel_get_mode | ( | const LinphoneTunnel * | tunnel | ) |
Get the tunnel mode
tunnel | LinphoneTunnel object |
bool_t linphone_tunnel_get_activated | ( | const LinphoneTunnel * | tunnel | ) |
Returns whether the tunnel is activated. If mode is set to auto, this gives indication whether the automatic detection determined that tunnel was necessary or not.
tunnel | the tunnel |
bool_t linphone_tunnel_connected | ( | const LinphoneTunnel * | tunnel | ) |
Check whether the tunnel is connected
tunnel | LinphoneTunnel object |
void linphone_tunnel_reconnect | ( | LinphoneTunnel * | tunnel | ) |
Force reconnection to the tunnel server. This method is useful when the device switches from wifi to Edge/3G or vice versa. In most cases the tunnel client socket won't be notified promptly that its connection is now zombie, so it is recommended to call this method that will cause the lost connection to be closed and new connection to be issued.
tunnel | LinphoneTunnel object |
void linphone_tunnel_enable_sip | ( | LinphoneTunnel * | tunnel, |
bool_t | enable | ||
) |
Set whether SIP packets must be directly sent to a UA or pass through the tunnel
tunnel | LinphoneTunnel object |
enable | If true, SIP packets shall pass through the tunnel |
bool_t linphone_tunnel_sip_enabled | ( | const LinphoneTunnel * | tunnel | ) |
Check whether tunnel is set to transport SIP packets
tunnel | LinphoneTunnel object |
void linphone_tunnel_set_http_proxy | ( | LinphoneTunnel * | tunnel, |
const char * | host, | ||
int | port, | ||
const char * | username, | ||
const char * | passwd | ||
) |
Set an optional http proxy to go through when connecting to tunnel server.
tunnel | LinphoneTunnel object |
host | http proxy host |
port | http proxy port |
username | Optional http proxy username if the proxy request authentication. Currently only basic authentication is supported. Use NULL if not needed. |
passwd | Optional http proxy password. Use NULL if not needed. |
void linphone_tunnel_get_http_proxy | ( | LinphoneTunnel * | tunnel, |
const char ** | host, | ||
int * | port, | ||
const char ** | username, | ||
const char ** | passwd | ||
) |
Retrieve optional http proxy configuration previously set with linphone_tunnel_set_http_proxy().
tunnel | LinphoneTunnel object |
host | http proxy host |
port | http proxy port |
username | Optional http proxy username if the proxy request authentication. Currently only basic authentication is supported. Use NULL if not needed. |
passwd | Optional http proxy password. Use NULL if not needed. |
void linphone_tunnel_set_http_proxy_auth_info | ( | LinphoneTunnel * | tunnel, |
const char * | username, | ||
const char * | passwd | ||
) |
Set authentication info for the http proxy
tunnel | LinphoneTunnel object |
username | User name |
passwd | Password |
void linphone_tunnel_enable | ( | LinphoneTunnel * | tunnel, |
bool_t | enabled | ||
) |
Sets whether tunneling of SIP and RTP is required.
tunnel | object |
enabled | If true enter in tunneled mode, if false exits from tunneled mode. The TunnelManager takes care of refreshing SIP registration when switching on or off the tunneled mode. |
bool_t linphone_tunnel_enabled | ( | const LinphoneTunnel * | tunnel | ) |
Check whether tunnel is enabled
tunnel | Tunnel object |
void linphone_tunnel_auto_detect | ( | LinphoneTunnel * | tunnel | ) |
Start tunnel need detection.
tunnel | object In auto detect mode, the tunnel manager try to establish a real time rtp communication with the tunnel server on specified port. In case of success, the tunnel is automatically turned off. Otherwise, if no udp communication is feasible, tunnel mode is turned on. Call this method each time to run the auto detection algorithm |
bool_t linphone_tunnel_auto_detect_enabled | ( | LinphoneTunnel * | tunnel | ) |
Tell whether tunnel auto detection is enabled.
[in] | tunnel | LinphoneTunnel object. |