## FsRawUdpStreamTransmitter

FsRawUdpStreamTransmitter — A stream transmitter object for UDP with STUN

## Synopsis

                        FsRawUdpStreamTransmitter;

## Properties

      "stun-ip"                  gchar*                : Read / Write / Construct Only
      "stun-port"                guint                 : Read / Write / Construct Only
      "stun-timeout"             guint                 : Read / Write / Construct Only
      "upnp-discovery"           gboolean              : Read / Write / Construct Only
      "upnp-discovery-timeout"   guint                 : Read / Write / Construct Only
      "upnp-mapping"             gboolean              : Read / Write / Construct Only
      "upnp-mapping-timeout"     guint                 : Read / Write / Construct Only
      "upnp-request-timeout"     guint                 : Read / Write / Construct Only

## Description

This transmitter sends and receives unicast UDP packets.

It will detect its own address using a STUN request if the "stun-ip" and "stun-port" properties are set. If the STUN request does not get a reply or no STUN is requested. It will return the IP address of all the local network interfaces, listing link-local addresses after other addresses and the loopback interface last.

You can configure the address and port it will listen on by setting the "preferred-local-candidates" property. This property will contain a GList of FsCandidate. These FsCandidate must be for FS_NETWORK_PROTOCOL_UDP. These port and/or the ip can be set on these candidates to force them, and this is per-component. If not all components have a port set, the following components will be on the following ports. There is no guarantee that the requested port will be available so a different port may the native candidate. But it is guaranteed that components that do not have specified ports will be sequential.

Example: Candidate {proto=UDP, component_id=RTP, ip=NULL, port=9098} will produce native candidates ({component_id=RTP, ip=IP, port=9078},{component_id=RTCP, ip=IP, port=9079}) or if this one is not available ({component_id=RTP, ip=IP, port=9080},{component_id=RTCP, ip=IP, port=9081}). The default port starts at 7078 for the first component.

The name of this transmitter is "rawudp".

## Details

### FsRawUdpStreamTransmitter

    typedef struct {
      FsStreamTransmitter parent;
    } FsRawUdpStreamTransmitter;

All members are private, access them using methods and properties

FsStreamTransmitter `parent`; | Parent object

## Property Details

### The `"stun-ip"` property

      "stun-ip"                  gchar*                : Read / Write / Construct Only

The IPv4 address of the STUN server as a x.x.x.x string.

Default value: NULL

### The `"stun-port"` property

      "stun-port"                guint                 : Read / Write / Construct Only

The IPv4 UDP port of the STUN server as a .

Allowed values: [1,65535]

Default value: 3478

### The `"stun-timeout"` property

      "stun-timeout"             guint                 : Read / Write / Construct Only

How long to wait for for the STUN reply (in seconds) before giving up.

Allowed values: >= 1

Default value: 30

### The `"upnp-discovery"` property

      "upnp-discovery"           gboolean              : Read / Write / Construct Only

Tries to discovery the external IP with UPnP if stun fails.

Default value: TRUE

### The `"upnp-discovery-timeout"` property

      "upnp-discovery-timeout"   guint                 : Read / Write / Construct Only

After this period, UPnP discovery is considered to have failed and the local IP is returned.

Default value: 10

### The `"upnp-mapping"` property

      "upnp-mapping"             gboolean              : Read / Write / Construct Only

Tries to map ports using UPnP if enabled.

Default value: TRUE

### The `"upnp-mapping-timeout"` property

      "upnp-mapping-timeout"     guint                 : Read / Write / Construct Only

The UPnP port mappings expire after this period if the app has crashed (in seconds).

Default value: 600

### The `"upnp-request-timeout"` property

      "upnp-request-timeout"     guint                 : Read / Write / Construct Only

After this delay, UPnP requests fails.

Allowed values: [1,600]

Default value: 10

## See Also

FsMulticastStreamTransmitter