# Initialization

> Reference the Vivox Core SDK API.

## Classes

|        | Name                                                                                                             |
| ------ | ---------------------------------------------------------------------------------------------------------------- |
| struct | **[vx\_sdk\_config](./structvx__sdk__config.md)** Configuration options that are passed to \[vx\_initialize3()]. |

## Types

|                                                              | Name                                                                                                              |
| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
| typedef struct [vx\_sdk\_config](./structvx__sdk__config.md) | **[vx\_sdk\_config\_t](#typedef-vx_sdk_config_t)** Configuration options that are passed to \[vx\_initialize3()]. |

## Functions

|                         | Name                                                                                                                                                                                                                                         |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| VIVOXSDK\_DLLEXPORT int | **[vx\_initialize3](#function-vx_initialize3)**([vx\_sdk\_config\_t](#typedef-vx_sdk_config_t) \* config, size\_t config\_size)An application must call this API before calling any other Vivox API, except \[vx\_get\_default\_config3()];. |
| VIVOXSDK\_DLLEXPORT int | **[vx\_is\_initialized](#function-vx_is_initialized)**(void )Check if the Vivox SDK was initialized with an [vx\_initialize3()](#function-vx_initialize3) call, and not yet uninitialized with an \[vx\_uninitialize()] call.                |
| VIVOXSDK\_DLLEXPORT int | **[vx\_get\_default\_config3](#function-vx_get_default_config3)**([vx\_sdk\_config\_t](#typedef-vx_sdk_config_t) \* config, size\_t config\_size)An application must call this API before calling any other Vivox API.                       |
| VIVOXSDK\_DLLEXPORT int | **[vx\_uninitialize](#function-vx_uninitialize)**(void )An application must call this before exit.                                                                                                                                           |

## Types Documentation

### typedef vx\_sdk\_config\_t

```text
typedef struct vx_sdk_config vx_sdk_config_t;
```

Configuration options that are passed to \[vx\_initialize3()].

## Functions Documentation

### function vx\_initialize3

```text
VIVOXSDK_DLLEXPORT int vx_initialize3(
    vx_sdk_config_t * config,
    size_t config_size
)
```

An application must call this API before calling any other Vivox API, except \[vx\_get\_default\_config3()];.

**Return**: - 0 if successful, non-zero if failed.

### function vx\_is\_initialized

```text
VIVOXSDK_DLLEXPORT int vx_is_initialized(
    void 
)
```

Check if the Vivox SDK was initialized with an [vx\_initialize3()](#function-vx_initialize3) call, and not yet uninitialized with an \[vx\_uninitialize()] call.

**Return**: - 0 if not initialized, non-zero if initialized.

### function vx\_get\_default\_config3

```text
VIVOXSDK_DLLEXPORT int vx_get_default_config3(
    vx_sdk_config_t * config,
    size_t config_size
)
```

An application must call this API before calling any other Vivox API.

**Return**: - 0 if successful, non-zero if failed.

### function vx\_uninitialize

```text
VIVOXSDK_DLLEXPORT int vx_uninitialize(
    void 
)
```

An application must call this before exit.

**Return**: - 0 if successful, non-zero if failed.
