# ServerOptions

<a id="serveroptions"></a>

# ServerOptions

```cpp
#include <icy/turn/server/server.h>

struct ServerOptions
```

[Defined in src/turn/include/icy/turn/server/server.h:53](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L53)

[Configuration](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) options for the TURN server.

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| `std::string` | [`software`](#software-1)  |  |
| `std::string` | [`realm`](#realm)  |  |
| `uint32_t` | [`allocationDefaultLifetime`](#allocationdefaultlifetime)  |  |
| `uint32_t` | [`allocationMaxLifetime`](#allocationmaxlifetime)  |  |
| `int` | [`allocationMaxPermissions`](#allocationmaxpermissions)  |  |
| `int` | [`timerInterval`](#timerinterval-1)  |  |
| `int` | [`earlyMediaBufferSize`](#earlymediabuffersize)  |  |
| [`net::Address`](https://auscaster.com/icey/docs/api-reference/icy-net-Address.md#address) | [`listenAddr`](#listenaddr)  | The TCP and UDP bind() address. |
| `std::string` | [`externalIP`](#externalip)  | The external public facing IP address of the server. |
| `bool` | [`enableTCP`](#enabletcp)  |  |
| `bool` | [`enableUDP`](#enableudp)  |  |
| `bool` | [`enableLocalIPPermissions`](#enablelocalippermissions)  | Auto-grant permissions for RFC 1918/loopback addresses. |

---

<a id="software-1"></a>

### software

```cpp
std::string software
```

[Defined in src/turn/include/icy/turn/server/server.h:55](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L55)

---

<a id="realm"></a>

### realm

```cpp
std::string realm
```

[Defined in src/turn/include/icy/turn/server/server.h:56](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L56)

---

<a id="allocationdefaultlifetime"></a>

### allocationDefaultLifetime

```cpp
uint32_t allocationDefaultLifetime
```

[Defined in src/turn/include/icy/turn/server/server.h:58](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L58)

---

<a id="allocationmaxlifetime"></a>

### allocationMaxLifetime

```cpp
uint32_t allocationMaxLifetime
```

[Defined in src/turn/include/icy/turn/server/server.h:59](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L59)

---

<a id="allocationmaxpermissions"></a>

### allocationMaxPermissions

```cpp
int allocationMaxPermissions
```

[Defined in src/turn/include/icy/turn/server/server.h:60](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L60)

---

<a id="timerinterval-1"></a>

### timerInterval

```cpp
int timerInterval
```

[Defined in src/turn/include/icy/turn/server/server.h:61](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L61)

---

<a id="earlymediabuffersize"></a>

### earlyMediaBufferSize

```cpp
int earlyMediaBufferSize
```

[Defined in src/turn/include/icy/turn/server/server.h:62](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L62)

---

<a id="listenaddr"></a>

### listenAddr

```cpp
net::Address listenAddr
```

Type: [`net::Address`](https://auscaster.com/icey/docs/api-reference/icy-net-Address.md#address)

[Defined in src/turn/include/icy/turn/server/server.h:64](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L64)

The TCP and UDP bind() address.

---

<a id="externalip"></a>

### externalIP

```cpp
std::string externalIP
```

[Defined in src/turn/include/icy/turn/server/server.h:65](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L65)

The external public facing IP address of the server.

---

<a id="enabletcp"></a>

### enableTCP

```cpp
bool enableTCP
```

[Defined in src/turn/include/icy/turn/server/server.h:67](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L67)

---

<a id="enableudp"></a>

### enableUDP

```cpp
bool enableUDP
```

[Defined in src/turn/include/icy/turn/server/server.h:68](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L68)

---

<a id="enablelocalippermissions"></a>

### enableLocalIPPermissions

```cpp
bool enableLocalIPPermissions
```

[Defined in src/turn/include/icy/turn/server/server.h:69](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L69)

Auto-grant permissions for RFC 1918/loopback addresses.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`ServerOptions`](#serveroptions-1) `inline` |  |

---

<a id="serveroptions-1"></a>

### ServerOptions

`inline`

```cpp
inline ServerOptions()
```

[Defined in src/turn/include/icy/turn/server/server.h:71](https://github.com/auscaster/icey/blob/main/src/turn/include/icy/turn/server/server.h#L71)
