# Web Cloud › Telephony › SIP Lines › Phones & Softphones API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Web Cloud product's sections: https://developers.eu.ovhcloud.com/reference/web-cloud/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 81 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/web-cloud/telephony/sip-lines/phones-softphones.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/web-cloud/telephony/sip-lines/phones-softphones.json?format=openapi3

## Operations

- `GET /telephony/spare` — List spare phones
- `GET /telephony/spare/brands` — Get all available spare brands
- `GET /telephony/spare/{spare}` — Get a spare phone
- `DELETE /telephony/spare/{spare}` — Delete a spare phone
- `GET /telephony/spare/{spare}/compatibleReplacement` — List phones replaceable by the spare
- `POST /telephony/spare/{spare}/replace` — Replace a phone with the spare
- `GET /telephony/spare/{spare}/serviceInfos` — Get service information
- `PUT /telephony/spare/{spare}/serviceInfos` — Update service information
- `GET /telephony/{billingAccount}/availableDevices` — List phone devices
- `GET /telephony/{billingAccount}/line/{serviceName}/activateNewPhone` — Check for a new phone to activate
- `POST /telephony/{billingAccount}/line/{serviceName}/activateNewPhone` — Activate a new phone
- `POST /telephony/{billingAccount}/line/{serviceName}/associateDevice` — Associate a device
- `POST /telephony/{billingAccount}/line/{serviceName}/dissociateDevice` — Dissociate a device
- `GET /telephony/{billingAccount}/line/{serviceName}/listAssociablePhones` — List associable phones
- `GET /telephony/{billingAccount}/line/{serviceName}/phone` — Get the phone
- `PUT /telephony/{billingAccount}/line/{serviceName}/phone` — Update the phone
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/adminCredentials` — Get the phone admin credentials
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/changePhoneConfiguration` — Change the phone configuration
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/functionKey` — List function keys
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}` — Get a function key
- `PUT /telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}` — Update a function key
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}/availableFunction` — List available functions
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/merchandiseAvailable` — List exchange phones
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook` — List phonebooks
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}` — Get a phonebook
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/phonebook` — Create a phonebook
- `DELETE /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}` — Delete a phonebook
- `PUT /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}` — Update a phonebook
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/export` — Export contacts
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/import` — Import contacts
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact` — List contacts
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}` — Get a contact
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact` — Create a contact
- `DELETE /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}` — Delete a contact
- `PUT /telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}` — Update a contact
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/reboot` — Reboot the phone
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/refreshScreen` — Refresh the phone screen
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/resetConfig` — Reset the phone configuration
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/rma` — List RMAs
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}` — Get an RMA
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/rma` — Create an RMA
- `DELETE /telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}` — Cancel an RMA
- `PUT /telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}` — Update an RMA
- `POST /telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}/changeType` — Change the RMA type
- `GET /telephony/{billingAccount}/line/{serviceName}/phone/supportsPhonebook` — Check phonebook support
- `GET /telephony/{billingAccount}/line/{serviceName}/phoneCanBeAssociable` — List phones with a free SIP slot
- `GET /telephony/{billingAccount}/oldPhone` — List unreturned old phones
- `GET /telephony/{billingAccount}/phonebook` — List phonebooks
- `GET /telephony/{billingAccount}/phonebook/{bookKey}` — Get a phonebook
- `POST /telephony/{billingAccount}/phonebook` — Create a phonebook
- `DELETE /telephony/{billingAccount}/phonebook/{bookKey}` — Delete a phonebook
- `PUT /telephony/{billingAccount}/phonebook/{bookKey}` — Update a phonebook
- `GET /telephony/{billingAccount}/phonebook/{bookKey}/export` — Export contacts
- `POST /telephony/{billingAccount}/phonebook/{bookKey}/import` — Import contacts
- `GET /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact` — List contacts
- `GET /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}` — Get a contact
- `POST /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact` — Create a contact
- `DELETE /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}` — Delete a contact
- `PUT /telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}` — Update a contact
- `GET /telephony/accessories` — Get all available accessories
- `GET /telephony/softphone/storeLinks` — Get the softphone store links
- `GET /telephony/softphone/themes` — List softphone themes
- `GET /telephony/softphone/themes/{themeId}` — Get a softphone theme
- `GET /telephony/{billingAccount}/line/{serviceName}/softphone/beta` — Get the softphone beta status
- `PUT /telephony/{billingAccount}/line/{serviceName}/softphone/beta` — Update the softphone beta status
- `GET /telephony/{billingAccount}/line/{serviceName}/softphone/devices` — List softphone devices
- `POST /telephony/{billingAccount}/line/{serviceName}/softphone/devices/disconnect` — Disconnect all softphone devices
- `DELETE /telephony/{billingAccount}/line/{serviceName}/softphone/devices/{deviceId}` — Delete a softphone device
- `GET /telephony/{billingAccount}/line/{serviceName}/softphone/logo` — Get the line softphone logo
- `PUT /telephony/{billingAccount}/line/{serviceName}/softphone/logo` — Update the line softphone logo
- `DELETE /telephony/{billingAccount}/line/{serviceName}/softphone/logo` — Delete the line softphone logo
- `GET /telephony/{billingAccount}/line/{serviceName}/softphone/status` — Get the line softphone status
- `GET /telephony/{billingAccount}/line/{serviceName}/softphone/theme` — Get the line softphone theme
- `PUT /telephony/{billingAccount}/line/{serviceName}/softphone/theme` — Update the line softphone theme
- `DELETE /telephony/{billingAccount}/line/{serviceName}/softphone/theme` — Delete the line softphone theme
- `POST /telephony/{billingAccount}/line/{serviceName}/softphone/token` — Generate a provisioning token
- `GET /telephony/{billingAccount}/softphone/logo` — Get the billing account softphone logo
- `PUT /telephony/{billingAccount}/softphone/logo` — Update the billing account softphone logo
- `DELETE /telephony/{billingAccount}/softphone/logo` — Delete the billing account softphone logo
- `GET /telephony/{billingAccount}/softphone/theme` — Get the billing account softphone theme
- `PUT /telephony/{billingAccount}/softphone/theme` — Update the billing account softphone theme

## List spare phones

`GET /1.0/telephony/spare`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-spare

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:spare/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `iamTags` | query | object |  | Filter resources on IAM tags |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/spare" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/spare")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/spare");

print_r($result);
?>
```

## Get all available spare brands

`GET /1.0/telephony/spare/brands`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-spare-brands

**Status:** Stable production version  
**Authentication:** none (public operation)

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/spare/brands" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/spare/brands")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/spare/brands");

print_r($result);
?>
```

## Get a spare phone

`GET /1.0/telephony/spare/{spare}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-spare-spare

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:spare/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `spare` | path | string | yes | The internal name of your spare |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | spare.telephony.TelephonySpareWithIAM | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `brand` | string | read-only | Phone brand model |
| `iam` | iam.ResourceMetadata | read-only | IAM resource metadata |
| `iam.displayName` | string | read-only | Resource display name |
| `iam.id` | string (uuid) | read-only | Unique identifier of the resource |
| `iam.state` | iam.ResourceMetadata.StateEnum | read-only | Resource state — one of `EXPIRED`, `IN_CREATION`, `OK`, `SUSPENDED` |
| `iam.tags` | object | read-only | Resource tags. Tags that were internally computed are prefixed with ovh: |
| `iam.urn` | string | read-only | Unique resource name used in policies |
| `macAddress` | string | read-only | Mac address |
| `protocol` | telephony.ProtocolEnum | read-only | Phone protocol — one of `mgcp`, `sip` |

```json
{
  "brand": "string",
  "iam": {
    "displayName": "string",
    "id": "00000000-0000-0000-0000-000000000000",
    "state": "EXPIRED",
    "tags": {
      "key": "string"
    },
    "urn": "string"
  },
  "macAddress": "string",
  "protocol": "mgcp"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/spare/{spare}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/spare/{spare}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/spare/{spare}");

print_r($result);
?>
```

## Delete a spare phone

`DELETE /1.0/telephony/spare/{spare}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-spare-spare

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:spare/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `spare` | path | string | yes | The internal name of your spare |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/spare/{spare}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/spare/{spare}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/spare/{spare}");

print_r($result);
?>
```

## List phones replaceable by the spare

`GET /1.0/telephony/spare/{spare}/compatibleReplacement`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-spare-spare-compatiblereplacement

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:spare/compatibleReplacement/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `spare` | path | string | yes | The internal name of your spare |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/spare/{spare}/compatibleReplacement" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/spare/{spare}/compatibleReplacement")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/spare/{spare}/compatibleReplacement");

print_r($result);
?>
```

## Replace a phone with the spare

`POST /1.0/telephony/spare/{spare}/replace`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-spare-spare-replace

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:spare/replace`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `spare` | path | string | yes | The internal name of your spare |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `domain` | string | yes | The phone to replace by the spare |
| `ip` | ipv4 | yes | Public ip of the phone |

```json
{
  "domain": "string",
  "ip": "192.0.2.0"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/spare/{spare}/replace" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/spare/{spare}/replace",
	domain = None, # The phone to replace by the spare (type: string)
	ip = None, # Public ip of the phone (type: ipv4)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/spare/{spare}/replace", array(
	domain => null, // The phone to replace by the spare (type: string)
	ip => null, // Public ip of the phone (type: ipv4)
));

print_r($result);
?>
```

## Get service information

`GET /1.0/telephony/spare/{spare}/serviceInfos`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-spare-spare-serviceinfos

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:spare/serviceInfos/get`

Get service information. Returns the status, creation and expiration dates, contacts and renewal settings of the service.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `spare` | path | string | yes | The internal name of your spare |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | services.Service | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `canDeleteAtExpiration` | boolean | read-only | Indicates that the service can be set up to be deleted at expiration |
| `contactAdmin` | string | read-only |  |
| `contactBilling` | string | read-only |  |
| `contactTech` | string | read-only |  |
| `creation` | string (date) | read-only |  |
| `domain` | string | read-only |  |
| `engagedUpTo` | string (date) | read-only |  |
| `expiration` | string (date) | read-only |  |
| `possibleRenewPeriod` | integer[] | read-only | All the possible renew period of your service in month |
| `renew` | service.RenewType |  | Way of handling the renew |
| `renew.automatic` | boolean |  | The service is automatically renewed |
| `renew.deleteAtExpiration` | boolean |  | The service will be deleted at expiration |
| `renew.forced` | boolean |  | The service forced to be renewed |
| `renew.manualPayment` | boolean |  | The service needs to be manually renewed and paid |
| `renew.period` | integer |  | period of renew in month |
| `renewalType` | service.RenewalTypeEnum | read-only | Detailed renewal type of a service — one of `automaticForcedProduct`, `automaticV2012`, `automaticV2014`, `automaticV2016`, `automaticV2024`, `manual`, `oneShot`, `option` |
| `serviceId` | integer | read-only |  |
| `status` | service.StateEnum | read-only | one of `autorenewInProgress`, `expired`, `inCreation`, `ok`, `pendingDebt`, `unPaid` |

```json
{
  "canDeleteAtExpiration": true,
  "contactAdmin": "string",
  "contactBilling": "string",
  "contactTech": "string",
  "creation": "2024-01-01",
  "domain": "string",
  "engagedUpTo": "2024-01-01",
  "expiration": "2024-01-01",
  "possibleRenewPeriod": [
    0
  ],
  "renew": {
    "automatic": true,
    "deleteAtExpiration": true,
    "forced": true,
    "manualPayment": true,
    "period": 0
  },
  "renewalType": "automaticForcedProduct",
  "serviceId": 0,
  "status": "autorenewInProgress"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/spare/{spare}/serviceInfos" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/spare/{spare}/serviceInfos")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/spare/{spare}/serviceInfos");

print_r($result);
?>
```

## Update service information

`PUT /1.0/telephony/spare/{spare}/serviceInfos`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-spare-spare-serviceinfos

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:spare/serviceInfos/edit`

Update service information. Updates the renewal settings of the service: automatic renewal, period, or deletion at expiration.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `spare` | path | string | yes | The internal name of your spare |

### Request body (required)

Type: `services.Service`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `canDeleteAtExpiration` | boolean | read-only | Indicates that the service can be set up to be deleted at expiration |
| `contactAdmin` | string | read-only |  |
| `contactBilling` | string | read-only |  |
| `contactTech` | string | read-only |  |
| `creation` | string (date) | read-only |  |
| `domain` | string | read-only |  |
| `engagedUpTo` | string (date) | read-only |  |
| `expiration` | string (date) | read-only |  |
| `possibleRenewPeriod` | integer[] | read-only | All the possible renew period of your service in month |
| `renew` | service.RenewType |  | Way of handling the renew |
| `renew.automatic` | boolean |  | The service is automatically renewed |
| `renew.deleteAtExpiration` | boolean |  | The service will be deleted at expiration |
| `renew.forced` | boolean |  | The service forced to be renewed |
| `renew.manualPayment` | boolean |  | The service needs to be manually renewed and paid |
| `renew.period` | integer |  | period of renew in month |
| `renewalType` | service.RenewalTypeEnum | read-only | Detailed renewal type of a service — one of `automaticForcedProduct`, `automaticV2012`, `automaticV2014`, `automaticV2016`, `automaticV2024`, `manual`, `oneShot`, `option` |
| `serviceId` | integer | read-only |  |
| `status` | service.StateEnum | read-only | one of `autorenewInProgress`, `expired`, `inCreation`, `ok`, `pendingDebt`, `unPaid` |

```json
{
  "renew": {
    "automatic": true,
    "deleteAtExpiration": true,
    "forced": true,
    "manualPayment": true,
    "period": 0
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/spare/{spare}/serviceInfos" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: services.Service
result = client.put("/telephony/spare/{spare}/serviceInfos",
	renew = None, # Way of handling the renew (type: service.RenewType, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: services.Service
$result = $ovh->put("/telephony/spare/{spare}/serviceInfos", array(
	renew => null, // Way of handling the renew (type: service.RenewType, nullable)
));

print_r($result);
?>
```

## List phone devices

`GET /1.0/telephony/{billingAccount}/availableDevices`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-availabledevices

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:availableDevices/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.AvailableDevice[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `availableSlots` | integer |  | Number of line slots still available on this device |
| `brand` | string |  | Brand of the device |
| `description` | string |  | Public description of the device |
| `lines` | telephony.AvailableDeviceLine[] |  | Lines currently assigned to this device |
| `lines[].billingAccount` | string |  | Name of the billing account the line belongs to |
| `lines[].description` | string |  | Description of the line |
| `lines[].isRoot` | boolean |  | Whether this line is the root line of the device |
| `lines[].numberInternational` | string |  | The international phone number of the line |
| `linesCount` | integer |  | Number of lines currently assigned to this device |
| `macAddress` | string |  | MAC address of the device |
| `maxLines` | integer |  | Maximum number of lines the device can handle |

```json
[
  {
    "availableSlots": 0,
    "brand": "string",
    "description": "string",
    "lines": [
      {
        "billingAccount": "string",
        "description": "string",
        "isRoot": true,
        "numberInternational": "string"
      }
    ],
    "linesCount": 0,
    "macAddress": "string",
    "maxLines": 0
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/availableDevices" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/availableDevices")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/availableDevices");

print_r($result);
?>
```

## Check for a new phone to activate

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/activateNewPhone`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-activatenewphone

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/activateNewPhone/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/activateNewPhone" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/activateNewPhone")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/activateNewPhone");

print_r($result);
?>
```

## Activate a new phone

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/activateNewPhone`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-activatenewphone

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/activateNewPhone/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/activateNewPhone" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/line/{serviceName}/activateNewPhone")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/activateNewPhone");

print_r($result);
?>
```

## Associate a device

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/associateDevice`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-associatedevice

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/associateDevice/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ipAddress` | ipv4 |  | The public phone IP address allowed to get phone's configuration |
| `macAddress` | string | yes | The mac address of the device you want to associate to the line (format: AABBCCDDEEFF) |
| `slot` | integer |  | The slot or line position on the device (from 1 to N. N is the maximum number of lines/slots available on the device) |

```json
{
  "ipAddress": "192.0.2.0",
  "macAddress": "string",
  "slot": 0
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/associateDevice" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: long
result = client.post("/telephony/{billingAccount}/line/{serviceName}/associateDevice",
	ipAddress = None, # The public phone IP address allowed to get phone's configuration (type: ipv4, nullable)
	macAddress = None, # The mac address of the device you want to associate to the line (format: AABBCCDDEEFF) (type: string)
	slot = None, # The slot or line position on the device (from 1 to N. N is the maximum number of lines/slots available on the device) (type: long, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: long
$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/associateDevice", array(
	ipAddress => null, // The public phone IP address allowed to get phone's configuration (type: ipv4, nullable)
	macAddress => null, // The mac address of the device you want to associate to the line (format: AABBCCDDEEFF) (type: string)
	slot => null, // The slot or line position on the device (from 1 to N. N is the maximum number of lines/slots available on the device) (type: long, nullable)
));

print_r($result);
?>
```

## Dissociate a device

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/dissociateDevice`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-dissociatedevice

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/dissociateDevice/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ipAddress` | ipv4 |  | The public phone IP address allowed to get phone's configuration |
| `macAddress` | string | yes | The mac address of the device you want to dissociate from the line (format: AABBCCDDEEFF) |

```json
{
  "ipAddress": "192.0.2.0",
  "macAddress": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/dissociateDevice" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/line/{serviceName}/dissociateDevice",
	ipAddress = None, # The public phone IP address allowed to get phone's configuration (type: ipv4, nullable)
	macAddress = None, # The mac address of the device you want to dissociate from the line (format: AABBCCDDEEFF) (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/dissociateDevice", array(
	ipAddress => null, // The public phone IP address allowed to get phone's configuration (type: ipv4, nullable)
	macAddress => null, // The mac address of the device you want to dissociate from the line (format: AABBCCDDEEFF) (type: string)
));

print_r($result);
?>
```

## List associable phones

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/listAssociablePhones`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-listassociablephones

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/listAssociablePhones/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.LinePhoneAssociable[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `associatedLines` | telephony.LinePhoneAssociableConfiguredLines[] |  | Current lines configured on the phone |
| `associatedLines[].description` | string |  | The line description |
| `associatedLines[].serviceName` | string |  | Service name of the line |
| `brand` | string |  | Brand name of the phone |
| `maxLines` | integer |  | Maximum quantity of lines managed by the phone |
| `protocol` | telephony.ProtocolEnum |  | Phone protocol — one of `mgcp`, `sip` |

```json
[
  {
    "associatedLines": [
      {
        "description": "string",
        "serviceName": "string"
      }
    ],
    "brand": "string",
    "maxLines": 0,
    "protocol": "mgcp"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/listAssociablePhones" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/listAssociablePhones")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/listAssociablePhones");

print_r($result);
?>
```

## Get the phone

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.Phone | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `brand` | string | read-only | Brand name |
| `description` | string | read-only | The phone description |
| `macAddress` | string | read-only | Mac Address |
| `maxSimultaneousCalls` | integer | read-only | Maximum simultaneous calls managed by the phone |
| `maxline` | integer | read-only | Maximum number of lines managed by a phone |
| `mgcpIpRestriction` | ip |  | The ip restriction of your MGCP phone |
| `phoneConfiguration` | telephony.PhoneConfigurationProperty[] | read-only | Current phone properties |
| `phoneConfiguration[].default` | string |  | Default property value |
| `phoneConfiguration[].description` | string |  | Property description |
| `phoneConfiguration[].enum` | string[] |  | Property value possibilities |
| `phoneConfiguration[].group` | string |  | The property group |
| `phoneConfiguration[].level` | telephony.PhoneConfigurationLevelEnum |  | Provisioning level — one of `admin`, `expert` |
| `phoneConfiguration[].maxlength` | integer |  | Max string chars |
| `phoneConfiguration[].name` | string |  | The property name |
| `phoneConfiguration[].rangeValue` | complexType.Range_long |  | Range property value |
| `phoneConfiguration[].rangeValue.from` | integer |  |  |
| `phoneConfiguration[].rangeValue.to` | integer |  |  |
| `phoneConfiguration[].type` | telephony.PhoneConfigurationTypeEnum |  | Provisioning type — one of `boolean`, `enum`, `hidden`, `ipv4`, `numeric`, `string` |
| `phoneConfiguration[].value` | string |  | Current property value |
| `protocol` | telephony.ProtocolEnum | read-only | Phone protocol — one of `mgcp`, `sip` |
| `userPassword` | string (password) | read-only | The phone user password |

```json
{
  "brand": "string",
  "description": "string",
  "macAddress": "string",
  "maxSimultaneousCalls": 0,
  "maxline": 0,
  "mgcpIpRestriction": "192.0.2.0",
  "phoneConfiguration": [
    {
      "default": "string",
      "description": "string",
      "enum": [
        "string"
      ],
      "group": "string",
      "level": "admin",
      "maxlength": 0,
      "name": "string",
      "rangeValue": {
        "from": 0,
        "to": 0
      },
      "type": "boolean",
      "value": "string"
    }
  ],
  "protocol": "mgcp",
  "userPassword": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone");

print_r($result);
?>
```

## Update the phone

`PUT /1.0/telephony/{billingAccount}/line/{serviceName}/phone`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-line-servicename-phone

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.Phone`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `brand` | string | read-only | Brand name |
| `description` | string | read-only | The phone description |
| `macAddress` | string | read-only | Mac Address |
| `maxSimultaneousCalls` | integer | read-only | Maximum simultaneous calls managed by the phone |
| `maxline` | integer | read-only | Maximum number of lines managed by a phone |
| `mgcpIpRestriction` | ip |  | The ip restriction of your MGCP phone |
| `phoneConfiguration` | telephony.PhoneConfigurationProperty[] | read-only | Current phone properties |
| `phoneConfiguration[].default` | string |  | Default property value |
| `phoneConfiguration[].description` | string |  | Property description |
| `phoneConfiguration[].enum` | string[] |  | Property value possibilities |
| `phoneConfiguration[].group` | string |  | The property group |
| `phoneConfiguration[].level` | telephony.PhoneConfigurationLevelEnum |  | Provisioning level — one of `admin`, `expert` |
| `phoneConfiguration[].maxlength` | integer |  | Max string chars |
| `phoneConfiguration[].name` | string |  | The property name |
| `phoneConfiguration[].rangeValue` | complexType.Range_long |  | Range property value |
| `phoneConfiguration[].rangeValue.from` | integer |  |  |
| `phoneConfiguration[].rangeValue.to` | integer |  |  |
| `phoneConfiguration[].type` | telephony.PhoneConfigurationTypeEnum |  | Provisioning type — one of `boolean`, `enum`, `hidden`, `ipv4`, `numeric`, `string` |
| `phoneConfiguration[].value` | string |  | Current property value |
| `protocol` | telephony.ProtocolEnum | read-only | Phone protocol — one of `mgcp`, `sip` |
| `userPassword` | string (password) | read-only | The phone user password |

```json
{
  "mgcpIpRestriction": "192.0.2.0"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.Phone
result = client.put("/telephony/{billingAccount}/line/{serviceName}/phone",
	mgcpIpRestriction = None, # The ip restriction of your MGCP phone (type: ip, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.Phone
$result = $ovh->put("/telephony/{billingAccount}/line/{serviceName}/phone", array(
	mgcpIpRestriction => null, // The ip restriction of your MGCP phone (type: ip, nullable)
));

print_r($result);
?>
```

## Get the phone admin credentials

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/adminCredentials`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-admincredentials

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/adminCredentials/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PhoneCredentials | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `login` | string |  | Username to access the web interface of the phone |
| `password` | string (password) |  | Password to access the web interface of the phone |

```json
{
  "login": "string",
  "password": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/adminCredentials" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/adminCredentials")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/adminCredentials");

print_r($result);
?>
```

## Change the phone configuration

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/changePhoneConfiguration`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-changephoneconfiguration

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/changePhoneConfiguration`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `autoReboot` | boolean |  | Automatically reboot phone when applying the configuration |
| `newConfigurations` | complexType.SafeKeyValue_string[] |  | Name value pairs of provisioning options |
| `newConfigurations[].key` | string |  |  |
| `newConfigurations[].value` | string |  |  |

```json
{
  "autoReboot": true,
  "newConfigurations": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/changePhoneConfiguration" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/changePhoneConfiguration",
	autoReboot = None, # Automatically reboot phone when applying the configuration (type: boolean, nullable)
	newConfigurations = None, # Name value pairs of provisioning options (type: complexType.SafeKeyValue<string>[], nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/changePhoneConfiguration", array(
	autoReboot => null, // Automatically reboot phone when applying the configuration (type: boolean, nullable)
	newConfigurations => null, // Name value pairs of provisioning options (type: complexType.SafeKeyValue<string>[], nullable)
));

print_r($result);
?>
```

## List function keys

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/functionKey`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-functionkey

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/functionKey/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer[] | successful operation |

```json
[
  0
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/functionKey" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/functionKey")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/functionKey");

print_r($result);
?>
```

## Get a function key

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-functionkey-keynum

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/functionKey/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `keyNum` | path | integer | yes | The number of the function key |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.FunctionKey | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `default` | string | read-only | The default function used by the key |
| `function` | string |  | The function active on the key |
| `keyNum` | integer | read-only | The number of the function key |
| `label` | string | read-only | The key label |
| `parameter` | string |  | The function parameter |
| `type` | string | read-only | The key type |

```json
{
  "default": "string",
  "function": "string",
  "keyNum": 0,
  "label": "string",
  "parameter": "string",
  "type": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}");

print_r($result);
?>
```

## Update a function key

`PUT /1.0/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-line-servicename-phone-functionkey-keynum

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/functionKey/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `keyNum` | path | integer | yes | The number of the function key |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.FunctionKey`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `default` | string | read-only | The default function used by the key |
| `function` | string |  | The function active on the key |
| `keyNum` | integer | read-only | The number of the function key |
| `label` | string | read-only | The key label |
| `parameter` | string |  | The function parameter |
| `type` | string | read-only | The key type |

```json
{
  "function": "string",
  "parameter": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.FunctionKey
result = client.put("/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}",
	function = None, # The function active on the key (type: string, nullable)
	parameter = None, # The function parameter (type: string, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.FunctionKey
$result = $ovh->put("/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}", array(
	function => null, // The function active on the key (type: string, nullable)
	parameter => null, // The function parameter (type: string, nullable)
));

print_r($result);
?>
```

## List available functions

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}/availableFunction`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-functionkey-keynum-availablefunction

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/functionKey/availableFunction/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `keyNum` | path | integer | yes | The number of the function key |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}/availableFunction" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}/availableFunction")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/functionKey/{keyNum}/availableFunction");

print_r($result);
?>
```

## List exchange phones

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/merchandiseAvailable`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-merchandiseavailable

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/merchandiseAvailable/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.HardwareOffer[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string |  | The telephony description |
| `name` | string |  | The telephony name |
| `price` | order.Price |  | Telephony price |
| `price.currencyCode` | order.CurrencyCodeEnum |  | one of `AUD`, `CAD`, `CZK`, `EUR`, `GBP`, `INR`, `LTL`, `MAD`, `N/A`, `PLN`, `SGD`, `TND`, … |
| `price.text` | string |  |  |
| `price.value` | number |  |  |
| `url` | string |  | An URL to telephony details |

```json
[
  {
    "description": "string",
    "name": "string",
    "price": {
      "currencyCode": "AUD",
      "text": "string",
      "value": 0
    },
    "url": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/merchandiseAvailable" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/merchandiseAvailable")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/merchandiseAvailable");

print_r($result);
?>
```

## List phonebooks

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-phonebook

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook");

print_r($result);
?>
```

## Get a phonebook

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-phonebook-bookkey

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.Phonebook | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `bookKey` | string | read-only | Identifier of the phonebook |
| `isReadonly` | boolean |  | Set if phonebook is readonly |
| `name` | string |  | Phonebook name |
| `phoneKey` | string | read-only | Phone key identifier between the phone and phonebooks |

```json
{
  "bookKey": "string",
  "isReadonly": true,
  "name": "string",
  "phoneKey": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}");

print_r($result);
?>
```

## Create a phonebook

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-phonebook

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | Name of the wanted phonebook |

```json
{
  "name": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string | successful operation |

```json
"string"
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: string
result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook",
	name = None, # Name of the wanted phonebook (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: string
$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook", array(
	name => null, // Name of the wanted phonebook (type: string)
));

print_r($result);
?>
```

## Delete a phonebook

`DELETE /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-line-servicename-phone-phonebook-bookkey

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}");

print_r($result);
?>
```

## Update a phonebook

`PUT /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-line-servicename-phone-phonebook-bookkey

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.Phonebook`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `bookKey` | string | read-only | Identifier of the phonebook |
| `isReadonly` | boolean |  | Set if phonebook is readonly |
| `name` | string |  | Phonebook name |
| `phoneKey` | string | read-only | Phone key identifier between the phone and phonebooks |

```json
{
  "isReadonly": true,
  "name": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.Phonebook
result = client.put("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}",
	isReadonly = None, # Set if phonebook is readonly (type: boolean)
	name = None, # Phonebook name (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.Phonebook
$result = $ovh->put("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}", array(
	isReadonly => null, // Set if phonebook is readonly (type: boolean)
	name => null, // Phonebook name (type: string)
));

print_r($result);
?>
```

## Export contacts

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/export`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-phonebook-bookkey-export

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/export/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `format` | query | telephony.ContactsExportFormatsEnum | yes | Format of the file — one of `csv` |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PcsFile | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filename` | string | read-only |  |
| `status` | telephony.PcsFileStatusEnum | read-only | File providing task status — one of `doing`, `done`, `error`, `todo` |
| `url` | string | read-only |  |
| `urlExpirationDatetime` | string (date-time) | read-only |  |

```json
{
  "filename": "string",
  "status": "doing",
  "url": "string",
  "urlExpirationDatetime": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/export" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/export")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/export");

print_r($result);
?>
```

## Import contacts

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/import`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-phonebook-bookkey-import

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/import`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `documentId` | string | yes | ID of the /me/document file you want to import |

```json
{
  "documentId": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | string | read-only | Action associated with the task |
| `message` | string | read-only | Potential failure reason of the task |
| `objectCreated` | string | read-only | Object potentially created at the end of the task |
| `serviceType` | string | read-only |  |
| `status` | telephony.TaskStatusEnum | read-only | Status of the task — one of `doing`, `done`, `error`, `pause`, `todo` |
| `taskId` | integer | read-only |  |

```json
{
  "action": "string",
  "message": "string",
  "objectCreated": "string",
  "serviceType": "string",
  "status": "doing",
  "taskId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/import" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: string
result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/import",
	documentId = None, # ID of the /me/document file you want to import (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: string
$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/import", array(
	documentId => null, // ID of the /me/document file you want to import (type: string)
));

print_r($result);
?>
```

## List contacts

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-phonebook-bookkey-phonebookcontact

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/phonebookContact/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer[] | successful operation |

```json
[
  0
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact");

print_r($result);
?>
```

## Get a contact

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-phonebook-bookkey-phonebookcontact-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/phonebookContact/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `id` | path | integer | yes | Contact identifier |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PhonebookContact | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `group` | string |  | Group name of the phonebook |
| `homeMobile` | phoneNumber |  | Home mobile phone number of the contact |
| `homePhone` | phoneNumber |  | Home landline phone number of the contact |
| `id` | integer | read-only | Contact identifier |
| `name` | string |  | Contact name |
| `surname` | string |  | Contact surname |
| `workMobile` | phoneNumber |  | Mobile phone office number of the contact |
| `workPhone` | phoneNumber |  | Landline phone office number of the contact |

```json
{
  "group": "string",
  "homeMobile": "string",
  "homePhone": "string",
  "id": 0,
  "name": "string",
  "surname": "string",
  "workMobile": "string",
  "workPhone": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}");

print_r($result);
?>
```

## Create a contact

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-phonebook-bookkey-phonebookcontact

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/phonebookContact/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `group` | string | yes | Group name of the phonebook |
| `homeMobile` | phoneNumber |  | Home mobile phone number of the contact |
| `homePhone` | phoneNumber |  | Home landline phone number of the contact |
| `name` | string | yes | Name of the contact |
| `surname` | string | yes | Contact surname |
| `workMobile` | phoneNumber |  | Mobile phone office number of the contact |
| `workPhone` | phoneNumber |  | Landline phone office number of the contact |

```json
{
  "group": "string",
  "homeMobile": "string",
  "homePhone": "string",
  "name": "string",
  "surname": "string",
  "workMobile": "string",
  "workPhone": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer | successful operation |

```json
0
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: phoneNumber
result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact",
	group = None, # Group name of the phonebook (type: string)
	homeMobile = None, # Home mobile phone number of the contact (type: phoneNumber, nullable)
	homePhone = None, # Home landline phone number of the contact (type: phoneNumber, nullable)
	name = None, # Name of the contact (type: string)
	surname = None, # Contact surname (type: string)
	workMobile = None, # Mobile phone office number of the contact (type: phoneNumber, nullable)
	workPhone = None, # Landline phone office number of the contact (type: phoneNumber, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: phoneNumber
$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact", array(
	group => null, // Group name of the phonebook (type: string)
	homeMobile => null, // Home mobile phone number of the contact (type: phoneNumber, nullable)
	homePhone => null, // Home landline phone number of the contact (type: phoneNumber, nullable)
	name => null, // Name of the contact (type: string)
	surname => null, // Contact surname (type: string)
	workMobile => null, // Mobile phone office number of the contact (type: phoneNumber, nullable)
	workPhone => null, // Landline phone office number of the contact (type: phoneNumber, nullable)
));

print_r($result);
?>
```

## Delete a contact

`DELETE /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-line-servicename-phone-phonebook-bookkey-phonebookcontact-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/phonebookContact/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `id` | path | integer | yes | Contact identifier |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}");

print_r($result);
?>
```

## Update a contact

`PUT /1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-line-servicename-phone-phonebook-bookkey-phonebookcontact-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/phonebook/phonebookContact/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `id` | path | integer | yes | Contact identifier |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.PhonebookContact`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `group` | string |  | Group name of the phonebook |
| `homeMobile` | phoneNumber |  | Home mobile phone number of the contact |
| `homePhone` | phoneNumber |  | Home landline phone number of the contact |
| `id` | integer | read-only | Contact identifier |
| `name` | string |  | Contact name |
| `surname` | string |  | Contact surname |
| `workMobile` | phoneNumber |  | Mobile phone office number of the contact |
| `workPhone` | phoneNumber |  | Landline phone office number of the contact |

```json
{
  "group": "string",
  "homeMobile": "string",
  "homePhone": "string",
  "name": "string",
  "surname": "string",
  "workMobile": "string",
  "workPhone": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.PhonebookContact
result = client.put("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}",
	group = None, # Group name of the phonebook (type: string)
	homeMobile = None, # Home mobile phone number of the contact (type: phoneNumber, nullable)
	homePhone = None, # Home landline phone number of the contact (type: phoneNumber, nullable)
	name = None, # Contact name (type: string)
	surname = None, # Contact surname (type: string)
	workMobile = None, # Mobile phone office number of the contact (type: phoneNumber, nullable)
	workPhone = None, # Landline phone office number of the contact (type: phoneNumber, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.PhonebookContact
$result = $ovh->put("/telephony/{billingAccount}/line/{serviceName}/phone/phonebook/{bookKey}/phonebookContact/{id}", array(
	group => null, // Group name of the phonebook (type: string)
	homeMobile => null, // Home mobile phone number of the contact (type: phoneNumber, nullable)
	homePhone => null, // Home landline phone number of the contact (type: phoneNumber, nullable)
	name => null, // Contact name (type: string)
	surname => null, // Contact surname (type: string)
	workMobile => null, // Mobile phone office number of the contact (type: phoneNumber, nullable)
	workPhone => null, // Landline phone office number of the contact (type: phoneNumber, nullable)
));

print_r($result);
?>
```

## Reboot the phone

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/reboot`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-reboot

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/reboot`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | string | read-only | Action associated with the task |
| `message` | string | read-only | Potential failure reason of the task |
| `objectCreated` | string | read-only | Object potentially created at the end of the task |
| `serviceType` | string | read-only |  |
| `status` | telephony.TaskStatusEnum | read-only | Status of the task — one of `doing`, `done`, `error`, `pause`, `todo` |
| `taskId` | integer | read-only |  |

```json
{
  "action": "string",
  "message": "string",
  "objectCreated": "string",
  "serviceType": "string",
  "status": "doing",
  "taskId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/reboot" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/reboot")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/reboot");

print_r($result);
?>
```

## Refresh the phone screen

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/refreshScreen`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-refreshscreen

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/refreshScreen`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | string | read-only | Action associated with the task |
| `message` | string | read-only | Potential failure reason of the task |
| `objectCreated` | string | read-only | Object potentially created at the end of the task |
| `serviceType` | string | read-only |  |
| `status` | telephony.TaskStatusEnum | read-only | Status of the task — one of `doing`, `done`, `error`, `pause`, `todo` |
| `taskId` | integer | read-only |  |

```json
{
  "action": "string",
  "message": "string",
  "objectCreated": "string",
  "serviceType": "string",
  "status": "doing",
  "taskId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/refreshScreen" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/refreshScreen")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/refreshScreen");

print_r($result);
?>
```

## Reset the phone configuration

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/resetConfig`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-resetconfig

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/resetConfig`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ip` | ipv4 | yes | The public ip phone allowed for reset |

```json
{
  "ip": "192.0.2.0"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.ResetPhoneInfo | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `resetCodeInfo` | telephony.ResetPhoneCodeInfo |  | Reset code informations |
| `resetCodeInfo.activationCode` | string |  | Activation code |
| `resetCodeInfo.keyBook` | string |  | Key book url |
| `resetCodeInfo.serverURL` | string |  | Server url |
| `resetPhoneMethod` | telephony.ResetPhoneMethodEnum |  | Which way had been used to reset the phone — one of `code`, `http` |

```json
{
  "resetCodeInfo": {
    "activationCode": "string",
    "keyBook": "string",
    "serverURL": "string"
  },
  "resetPhoneMethod": "code"
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/resetConfig" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: ipv4
result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/resetConfig",
	ip = None, # The public ip phone allowed for reset (type: ipv4)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: ipv4
$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/resetConfig", array(
	ip => null, // The public ip phone allowed for reset (type: ipv4)
));

print_r($result);
?>
```

## List RMAs

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-rma

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/rma/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/rma")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/rma");

print_r($result);
?>
```

## Get an RMA

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-rma-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/rma/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | string | yes | Return merchandise authorisation identifier |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.Rma | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `cancellable` | boolean | read-only | Is the RMA cancellable? |
| `creationDatetime` | string (date-time) | read-only | Creation datetime of the return merchandise authorisation ticket |
| `equipmentReference` | string | read-only | Merchandise reference |
| `id` | string | read-only | Return merchandise authorisation identifier |
| `newMerchandise` | string | read-only | New merchandise brand in case of exchange |
| `offerTypeNew` | telephony.RmaOfferTypeEnum | read-only | Offer type of the new merchandise in case of exchange — one of `deposit`, `loan`, `purchase` |
| `offerTypeOld` | telephony.RmaOfferTypeEnum | read-only | Offer type of the return merchandise — one of `deposit`, `loan`, `purchase` |
| `process` | telephony.RmaReplaceTypeEnum |  | Process determined for merchandise returned — one of `changePhone`, `phoneRestitution`, `undefined` |
| `receptionDatetime` | string (date-time) | read-only | Reception datetime of the return merchandise authorisation ticket |
| `shippingContact` | telephony.Contact |  | Contact information related to the delivery shipping in case of exchange |
| `shippingContact.address` | string |  | Contact address |
| `shippingContact.city` | string |  | Contact city |
| `shippingContact.country` | coreTypes.CountryEnum |  | Contact country — one of `ac`, `ad`, `ae`, `af`, `ag`, `ai`, `al`, `am`, `an`, `ao`, `aq`, `ar`, … |
| `shippingContact.email` | string |  |  |
| `shippingContact.firstname` | string |  | Contact firstname |
| `shippingContact.name` | string |  | Contact name |
| `shippingContact.organisation` | string |  | Contact organisation |
| `shippingContact.phone` | string |  | Contact phone |
| `shippingContact.zip` | string |  | Contact zip |
| `status` | telephony.RmaStatusEnum | read-only | Return merchandise authorisation step — one of `closed`, `open`, `received` |
| `steps` | telephony.RmaStep[] | read-only | Indicates the current status of the RMA with a list of steps |
| `steps[].description` | string |  | A brief description of the step |
| `steps[].doneDate` | string (date-time) |  | The date when this step was done |
| `steps[].infos` | string |  | Additional informations about the step |
| `steps[].name` | telephony.RmaStepNameEnum |  | The name of the RMA step — one of `dispatchJustification`, `equipmentSending`, `equipmentTesting`, `opening`, `parcelReception`, `parcelValidation`, `validation` |
| `steps[].status` | telephony.RmaStepStatusEnum |  | Status of the step — one of `done`, `todo` |
| `terminationDatetime` | string (date-time) | read-only | Termination datetime of the return merchandise authorisation ticket |
| `type` | telephony.RmaTypeEnum | read-only | Typology process of merchandise return — one of `after sale equipment service exchange`, `after sale phone service exchange`, `equipment restitution`, `fast exchange`, `old merchandise reception before exchange`, `phone restitution`, `resends due to shipping lost by the carrier`, `resends due to shipping not withdraw`, `specific return merchandise authorisation`, `termination`, `unknown` |

```json
{
  "cancellable": true,
  "creationDatetime": "2024-01-01T12:00:00Z",
  "equipmentReference": "string",
  "id": "string",
  "newMerchandise": "string",
  "offerTypeNew": "deposit",
  "offerTypeOld": "deposit",
  "process": "changePhone",
  "receptionDatetime": "2024-01-01T12:00:00Z",
  "shippingContact": {
    "address": "string",
    "city": "string",
    "country": "ac",
    "email": "string",
    "firstname": "string",
    "name": "string",
    "organisation": "string",
    "phone": "string",
    "zip": "string"
  },
  "status": "closed",
  "steps": [
    {
      "description": "string",
      "doneDate": "2024-01-01T12:00:00Z",
      "infos": "string",
      "name": "dispatchJustification",
      "status": "done"
    }
  ],
  "terminationDatetime": "2024-01-01T12:00:00Z",
  "type": "after sale equipment service exchange"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}");

print_r($result);
?>
```

## Create an RMA

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-rma

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/rma/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `mondialRelayId` | string |  | Use /supply/mondialRelay entry point to specify a relay point and ignore shipping contact address information entry. |
| `newMerchandise` | string |  | New merchandise brand in case of exchange |
| `shippingContactId` | integer |  | Shipping contact information id from /me entry point |
| `type` | telephony.RmaPublicTypeEnum | yes | Typology process of merchandise return — one of `change to another phone/equipment (restitution first and shipping then)`, `restitution but keep the service enable` |

```json
{
  "mondialRelayId": "string",
  "newMerchandise": "string",
  "shippingContactId": 0,
  "type": "change to another phone/equipment (restitution first and shipping then)"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.RmaReturn | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string |  | Voucher reference identifier of the return merchandise authorisation |

```json
{
  "id": "string"
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/rma",
	mondialRelayId = None, # Use /supply/mondialRelay entry point to specify a relay point and ignore shipping contact address information entry. (type: string, nullable)
	newMerchandise = None, # New merchandise brand in case of exchange (type: string, nullable)
	shippingContactId = None, # Shipping contact information id from /me entry point (type: long, nullable)
	type = None, # Typology process of merchandise return (type: telephony.RmaPublicTypeEnum)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/rma", array(
	mondialRelayId => null, // Use /supply/mondialRelay entry point to specify a relay point and ignore shipping contact address information entry. (type: string, nullable)
	newMerchandise => null, // New merchandise brand in case of exchange (type: string, nullable)
	shippingContactId => null, // Shipping contact information id from /me entry point (type: long, nullable)
	type => null, // Typology process of merchandise return (type: telephony.RmaPublicTypeEnum)
));

print_r($result);
?>
```

## Cancel an RMA

`DELETE /1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-line-servicename-phone-rma-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/rma/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | string | yes | Return merchandise authorisation identifier |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}");

print_r($result);
?>
```

## Update an RMA

`PUT /1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-line-servicename-phone-rma-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/rma/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | string | yes | Return merchandise authorisation identifier |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.Rma`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `cancellable` | boolean | read-only | Is the RMA cancellable? |
| `creationDatetime` | string (date-time) | read-only | Creation datetime of the return merchandise authorisation ticket |
| `equipmentReference` | string | read-only | Merchandise reference |
| `id` | string | read-only | Return merchandise authorisation identifier |
| `newMerchandise` | string | read-only | New merchandise brand in case of exchange |
| `offerTypeNew` | telephony.RmaOfferTypeEnum | read-only | Offer type of the new merchandise in case of exchange — one of `deposit`, `loan`, `purchase` |
| `offerTypeOld` | telephony.RmaOfferTypeEnum | read-only | Offer type of the return merchandise — one of `deposit`, `loan`, `purchase` |
| `process` | telephony.RmaReplaceTypeEnum |  | Process determined for merchandise returned — one of `changePhone`, `phoneRestitution`, `undefined` |
| `receptionDatetime` | string (date-time) | read-only | Reception datetime of the return merchandise authorisation ticket |
| `shippingContact` | telephony.Contact |  | Contact information related to the delivery shipping in case of exchange |
| `shippingContact.address` | string |  | Contact address |
| `shippingContact.city` | string |  | Contact city |
| `shippingContact.country` | coreTypes.CountryEnum |  | Contact country — one of `ac`, `ad`, `ae`, `af`, `ag`, `ai`, `al`, `am`, `an`, `ao`, `aq`, `ar`, … |
| `shippingContact.email` | string |  |  |
| `shippingContact.firstname` | string |  | Contact firstname |
| `shippingContact.name` | string |  | Contact name |
| `shippingContact.organisation` | string |  | Contact organisation |
| `shippingContact.phone` | string |  | Contact phone |
| `shippingContact.zip` | string |  | Contact zip |
| `status` | telephony.RmaStatusEnum | read-only | Return merchandise authorisation step — one of `closed`, `open`, `received` |
| `steps` | telephony.RmaStep[] | read-only | Indicates the current status of the RMA with a list of steps |
| `steps[].description` | string |  | A brief description of the step |
| `steps[].doneDate` | string (date-time) |  | The date when this step was done |
| `steps[].infos` | string |  | Additional informations about the step |
| `steps[].name` | telephony.RmaStepNameEnum |  | The name of the RMA step — one of `dispatchJustification`, `equipmentSending`, `equipmentTesting`, `opening`, `parcelReception`, `parcelValidation`, `validation` |
| `steps[].status` | telephony.RmaStepStatusEnum |  | Status of the step — one of `done`, `todo` |
| `terminationDatetime` | string (date-time) | read-only | Termination datetime of the return merchandise authorisation ticket |
| `type` | telephony.RmaTypeEnum | read-only | Typology process of merchandise return — one of `after sale equipment service exchange`, `after sale phone service exchange`, `equipment restitution`, `fast exchange`, `old merchandise reception before exchange`, `phone restitution`, `resends due to shipping lost by the carrier`, `resends due to shipping not withdraw`, `specific return merchandise authorisation`, `termination`, `unknown` |

```json
{
  "process": "changePhone",
  "shippingContact": {
    "address": "string",
    "city": "string",
    "country": "ac",
    "email": "string",
    "firstname": "string",
    "name": "string",
    "organisation": "string",
    "phone": "string",
    "zip": "string"
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.Rma
result = client.put("/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}",
	process = None, # Process determined for merchandise returned (type: telephony.RmaReplaceTypeEnum)
	shippingContact = None, # Contact information related to the delivery shipping in case of exchange (type: telephony.Contact)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.Rma
$result = $ovh->put("/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}", array(
	process => null, // Process determined for merchandise returned (type: telephony.RmaReplaceTypeEnum)
	shippingContact => null, // Contact information related to the delivery shipping in case of exchange (type: telephony.Contact)
));

print_r($result);
?>
```

## Change the RMA type

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}/changeType`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-phone-rma-id-changetype

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/rma/changeType`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | string | yes | Return merchandise authorisation identifier |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `type` | telephony.RmaChangeTypeEnum | yes | new RMA type — one of `resiliate`, `toSip` |

```json
{
  "type": "resiliate"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}/changeType" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.RmaChangeTypeEnum
result = client.post("/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}/changeType",
	type = None, # new RMA type (type: telephony.RmaChangeTypeEnum)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.RmaChangeTypeEnum
$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/phone/rma/{id}/changeType", array(
	type => null, // new RMA type (type: telephony.RmaChangeTypeEnum)
));

print_r($result);
?>
```

## Check phonebook support

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phone/supportsPhonebook`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phone-supportsphonebook

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/phone/supportsPhonebook/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | boolean | successful operation |

```json
true
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phone/supportsPhonebook" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phone/supportsPhonebook")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phone/supportsPhonebook");

print_r($result);
?>
```

## List phones with a free SIP slot

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/phoneCanBeAssociable`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-phonecanbeassociable

**Status:** Deprecated, will be removed  
**Deprecated** since 2017-05-09, removed on 2016-11-09; use `/telephony/{billingAccount}/line/{serviceName}/listAssociablePhones` instead.  
**IAM actions:** `voip:apiovh:line/phoneCanBeAssociable/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.LinePhone[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `brand` | string |  | Brand name of the phone |
| `description` | string |  | The phone description |
| `fees` | order.Price |  | Setup fees |
| `fees.currencyCode` | order.CurrencyCodeEnum |  | one of `AUD`, `CAD`, `CZK`, `EUR`, `GBP`, `INR`, `LTL`, `MAD`, `N/A`, `PLN`, `SGD`, `TND`, … |
| `fees.text` | string |  |  |
| `fees.value` | number |  |  |
| `maxline` | integer |  | Maximum number of lines managed by a phone |
| `offerType` | telephony.RmaOfferTypeEnum |  | Type of purchase — one of `deposit`, `loan`, `purchase` |
| `price` | order.Price |  | Telephony price |
| `price.currencyCode` | order.CurrencyCodeEnum |  | one of `AUD`, `CAD`, `CZK`, `EUR`, `GBP`, `INR`, `LTL`, `MAD`, `N/A`, `PLN`, `SGD`, `TND`, … |
| `price.text` | string |  |  |
| `price.value` | number |  |  |
| `protocol` | telephony.ProtocolEnum |  | Phone protocol — one of `mgcp`, `sip` |

```json
[
  {
    "brand": "string",
    "description": "string",
    "fees": {
      "currencyCode": "AUD",
      "text": "string",
      "value": 0
    },
    "maxline": 0,
    "offerType": "deposit",
    "price": {
      "currencyCode": "AUD",
      "text": "string",
      "value": 0
    },
    "protocol": "mgcp"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/phoneCanBeAssociable" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/phoneCanBeAssociable")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/phoneCanBeAssociable");

print_r($result);
?>
```

## List unreturned old phones

`GET /1.0/telephony/{billingAccount}/oldPhone`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-oldphone

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:oldPhone/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.OldPhone[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `mac` | string |  | Mac address of the phone |
| `model` | string |  | Model of the phone |

```json
[
  {
    "mac": "string",
    "model": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/oldPhone" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/oldPhone")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/oldPhone");

print_r($result);
?>
```

## List phonebooks

`GET /1.0/telephony/{billingAccount}/phonebook`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-phonebook

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/phonebook")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/phonebook");

print_r($result);
?>
```

## Get a phonebook

`GET /1.0/telephony/{billingAccount}/phonebook/{bookKey}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-phonebook-bookkey

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PhonebookMaster | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `bookKey` | string | read-only | Identifier of the phonebook |
| `name` | string |  | Phone book name |

```json
{
  "bookKey": "string",
  "name": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/phonebook/{bookKey}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/phonebook/{bookKey}");

print_r($result);
?>
```

## Create a phonebook

`POST /1.0/telephony/{billingAccount}/phonebook`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-phonebook

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | Name of the wanted phonebook |

```json
{
  "name": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string | successful operation |

```json
"string"
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: string
result = client.post("/telephony/{billingAccount}/phonebook",
	name = None, # Name of the wanted phonebook (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: string
$result = $ovh->post("/telephony/{billingAccount}/phonebook", array(
	name => null, // Name of the wanted phonebook (type: string)
));

print_r($result);
?>
```

## Delete a phonebook

`DELETE /1.0/telephony/{billingAccount}/phonebook/{bookKey}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-phonebook-bookkey

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/phonebook/{bookKey}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/phonebook/{bookKey}");

print_r($result);
?>
```

## Update a phonebook

`PUT /1.0/telephony/{billingAccount}/phonebook/{bookKey}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-phonebook-bookkey

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |

### Request body (required)

Type: `telephony.PhonebookMaster`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `bookKey` | string | read-only | Identifier of the phonebook |
| `name` | string |  | Phone book name |

```json
{
  "name": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.PhonebookMaster
result = client.put("/telephony/{billingAccount}/phonebook/{bookKey}",
	name = None, # Phone book name (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.PhonebookMaster
$result = $ovh->put("/telephony/{billingAccount}/phonebook/{bookKey}", array(
	name => null, // Phone book name (type: string)
));

print_r($result);
?>
```

## Export contacts

`GET /1.0/telephony/{billingAccount}/phonebook/{bookKey}/export`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-phonebook-bookkey-export

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/export/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `format` | query | telephony.ContactsExportFormatsEnum | yes | Format of the file — one of `csv` |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PcsFile | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filename` | string | read-only |  |
| `status` | telephony.PcsFileStatusEnum | read-only | File providing task status — one of `doing`, `done`, `error`, `todo` |
| `url` | string | read-only |  |
| `urlExpirationDatetime` | string (date-time) | read-only |  |

```json
{
  "filename": "string",
  "status": "doing",
  "url": "string",
  "urlExpirationDatetime": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}/export" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/phonebook/{bookKey}/export")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/phonebook/{bookKey}/export");

print_r($result);
?>
```

## Import contacts

`POST /1.0/telephony/{billingAccount}/phonebook/{bookKey}/import`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-phonebook-bookkey-import

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/import`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `documentId` | string | yes | ID of the /me/document file you want to import |

```json
{
  "documentId": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | string | read-only | Action associated with the task |
| `message` | string | read-only | Potential failure reason of the task |
| `objectCreated` | string | read-only | Object potentially created at the end of the task |
| `serviceType` | string | read-only |  |
| `status` | telephony.TaskStatusEnum | read-only | Status of the task — one of `doing`, `done`, `error`, `pause`, `todo` |
| `taskId` | integer | read-only |  |

```json
{
  "action": "string",
  "message": "string",
  "objectCreated": "string",
  "serviceType": "string",
  "status": "doing",
  "taskId": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}/import" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: string
result = client.post("/telephony/{billingAccount}/phonebook/{bookKey}/import",
	documentId = None, # ID of the /me/document file you want to import (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: string
$result = $ovh->post("/telephony/{billingAccount}/phonebook/{bookKey}/import", array(
	documentId => null, // ID of the /me/document file you want to import (type: string)
));

print_r($result);
?>
```

## List contacts

`GET /1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-phonebook-bookkey-phonebookcontact

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/phonebookContact/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer[] | successful operation |

```json
[
  0
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact");

print_r($result);
?>
```

## Get a contact

`GET /1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-phonebook-bookkey-phonebookcontact-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/phonebookContact/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `id` | path | integer | yes | Contact identifier |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PhonebookContact | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `group` | string |  | Group name of the phonebook |
| `homeMobile` | phoneNumber |  | Home mobile phone number of the contact |
| `homePhone` | phoneNumber |  | Home landline phone number of the contact |
| `id` | integer | read-only | Contact identifier |
| `name` | string |  | Contact name |
| `surname` | string |  | Contact surname |
| `workMobile` | phoneNumber |  | Mobile phone office number of the contact |
| `workPhone` | phoneNumber |  | Landline phone office number of the contact |

```json
{
  "group": "string",
  "homeMobile": "string",
  "homePhone": "string",
  "id": 0,
  "name": "string",
  "surname": "string",
  "workMobile": "string",
  "workPhone": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}");

print_r($result);
?>
```

## Create a contact

`POST /1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-phonebook-bookkey-phonebookcontact

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/phonebookContact/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `group` | string | yes | Group name of the phonebook |
| `homeMobile` | phoneNumber |  | Home mobile phone number of the contact |
| `homePhone` | phoneNumber |  | Home landline phone number of the contact |
| `name` | string | yes | Name of the contact |
| `surname` | string | yes | Contact surname |
| `workMobile` | phoneNumber |  | Mobile phone office number of the contact |
| `workPhone` | phoneNumber |  | Landline phone office number of the contact |

```json
{
  "group": "string",
  "homeMobile": "string",
  "homePhone": "string",
  "name": "string",
  "surname": "string",
  "workMobile": "string",
  "workPhone": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer | successful operation |

```json
0
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: phoneNumber
result = client.post("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact",
	group = None, # Group name of the phonebook (type: string)
	homeMobile = None, # Home mobile phone number of the contact (type: phoneNumber, nullable)
	homePhone = None, # Home landline phone number of the contact (type: phoneNumber, nullable)
	name = None, # Name of the contact (type: string)
	surname = None, # Contact surname (type: string)
	workMobile = None, # Mobile phone office number of the contact (type: phoneNumber, nullable)
	workPhone = None, # Landline phone office number of the contact (type: phoneNumber, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: phoneNumber
$result = $ovh->post("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact", array(
	group => null, // Group name of the phonebook (type: string)
	homeMobile => null, // Home mobile phone number of the contact (type: phoneNumber, nullable)
	homePhone => null, // Home landline phone number of the contact (type: phoneNumber, nullable)
	name => null, // Name of the contact (type: string)
	surname => null, // Contact surname (type: string)
	workMobile => null, // Mobile phone office number of the contact (type: phoneNumber, nullable)
	workPhone => null, // Landline phone office number of the contact (type: phoneNumber, nullable)
));

print_r($result);
?>
```

## Delete a contact

`DELETE /1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-phonebook-bookkey-phonebookcontact-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/phonebookContact/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `id` | path | integer | yes | Contact identifier |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}");

print_r($result);
?>
```

## Update a contact

`PUT /1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-phonebook-bookkey-phonebookcontact-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:phonebook/phonebookContact/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `bookKey` | path | string | yes | Identifier of the phonebook |
| `id` | path | integer | yes | Contact identifier |

### Request body (required)

Type: `telephony.PhonebookContact`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `group` | string |  | Group name of the phonebook |
| `homeMobile` | phoneNumber |  | Home mobile phone number of the contact |
| `homePhone` | phoneNumber |  | Home landline phone number of the contact |
| `id` | integer | read-only | Contact identifier |
| `name` | string |  | Contact name |
| `surname` | string |  | Contact surname |
| `workMobile` | phoneNumber |  | Mobile phone office number of the contact |
| `workPhone` | phoneNumber |  | Landline phone office number of the contact |

```json
{
  "group": "string",
  "homeMobile": "string",
  "homePhone": "string",
  "name": "string",
  "surname": "string",
  "workMobile": "string",
  "workPhone": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.PhonebookContact
result = client.put("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}",
	group = None, # Group name of the phonebook (type: string)
	homeMobile = None, # Home mobile phone number of the contact (type: phoneNumber, nullable)
	homePhone = None, # Home landline phone number of the contact (type: phoneNumber, nullable)
	name = None, # Contact name (type: string)
	surname = None, # Contact surname (type: string)
	workMobile = None, # Mobile phone office number of the contact (type: phoneNumber, nullable)
	workPhone = None, # Landline phone office number of the contact (type: phoneNumber, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.PhonebookContact
$result = $ovh->put("/telephony/{billingAccount}/phonebook/{bookKey}/phonebookContact/{id}", array(
	group => null, // Group name of the phonebook (type: string)
	homeMobile => null, // Home mobile phone number of the contact (type: phoneNumber, nullable)
	homePhone => null, // Home landline phone number of the contact (type: phoneNumber, nullable)
	name => null, // Contact name (type: string)
	surname => null, // Contact surname (type: string)
	workMobile => null, // Mobile phone office number of the contact (type: phoneNumber, nullable)
	workPhone => null, // Landline phone office number of the contact (type: phoneNumber, nullable)
));

print_r($result);
?>
```

## Get all available accessories

`GET /1.0/telephony/accessories`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-accessories

**Status:** Stable production version

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `brand` | query | string |  | Phone brand |
| `country` | query | telephony.ServiceNumberCountryEnum | yes | The country — one of `be`, `ch`, `de`, `es`, `fr`, `gb`, `uk` |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.AccessoryOffer[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string |  | The accessory description |
| `name` | string |  | The accessory name |
| `price` | order.Price |  | Accessory price |
| `price.currencyCode` | order.CurrencyCodeEnum |  | one of `AUD`, `CAD`, `CZK`, `EUR`, `GBP`, `INR`, `LTL`, `MAD`, `N/A`, `PLN`, `SGD`, `TND`, … |
| `price.text` | string |  |  |
| `price.value` | number |  |  |
| `url` | string |  | An URL to accessory details |

```json
[
  {
    "description": "string",
    "name": "string",
    "price": {
      "currencyCode": "AUD",
      "text": "string",
      "value": 0
    },
    "url": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/accessories" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/accessories")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/accessories");

print_r($result);
?>
```

## Get the softphone store links

`GET /1.0/telephony/softphone/storeLinks`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-softphone-storelinks

**Status:** Stable production version

Returns the links to download the softphone application for Android, iOS, macOS and Windows.

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneStoreLinks | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `android` | string | read-only | Android application store link |
| `ios` | string | read-only | iOS application store link |
| `macos` | string | read-only | MacOS application store link |
| `windows` | string | read-only | Windows application store link |

```json
{
  "android": "string",
  "ios": "string",
  "macos": "string",
  "windows": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/softphone/storeLinks" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/softphone/storeLinks")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/softphone/storeLinks");

print_r($result);
?>
```

## List softphone themes

`GET /1.0/telephony/softphone/themes`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-softphone-themes

**Status:** Stable production version

Returns the identifiers of the available softphone themes.

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer[] | successful operation |

```json
[
  0
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/softphone/themes" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/softphone/themes")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/softphone/themes");

print_r($result);
?>
```

## Get a softphone theme

`GET /1.0/telephony/softphone/themes/{themeId}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-softphone-themes-themeid

**Status:** Stable production version

Returns the softphone theme and its main color code.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `themeId` | path | integer | yes | Theme ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneTheme | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `color` | string | read-only | Theme main color code |
| `themeId` | integer | read-only | Theme ID |

```json
{
  "color": "string",
  "themeId": 0
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/softphone/themes/{themeId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/softphone/themes/{themeId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/softphone/themes/{themeId}");

print_r($result);
?>
```

## Get the softphone beta status

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/beta`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-softphone-beta

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/beta/get`

Returns whether the softphone beta is enabled on the line.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneBetaStatus | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | yes | Whether Softphone beta is enabled or disabled |

```json
{
  "enabled": true
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/beta" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/softphone/beta")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/softphone/beta");

print_r($result);
?>
```

## Update the softphone beta status

`PUT /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/beta`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-line-servicename-softphone-beta

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/beta/edit`

Enables or disables the softphone beta on the line.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.SoftphoneBetaStatus`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | yes | Whether Softphone beta is enabled or disabled |

```json
{
  "enabled": true
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneBetaStatus | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `enabled` | boolean | yes | Whether Softphone beta is enabled or disabled |

```json
{
  "enabled": true
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/beta" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.SoftphoneBetaStatus
result = client.put("/telephony/{billingAccount}/line/{serviceName}/softphone/beta",
	enabled = None, # Whether Softphone beta is enabled or disabled (type: boolean)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.SoftphoneBetaStatus
$result = $ovh->put("/telephony/{billingAccount}/line/{serviceName}/softphone/beta", array(
	enabled => null, // Whether Softphone beta is enabled or disabled (type: boolean)
));

print_r($result);
?>
```

## List softphone devices

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/devices`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-softphone-devices

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/devices/get`

Returns the softphone devices registered on the line: name, operating system, user agent and last registration date.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneDevices[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | read-only | Device ID |
| `name` | string | read-only | Device name |
| `os` | string | read-only | Device operating system |
| `updateTime` | string (date-time) | read-only | Last device register date |
| `userAgent` | string | read-only | Device user agent |

```json
[
  {
    "id": "string",
    "name": "string",
    "os": "string",
    "updateTime": "2024-01-01T12:00:00Z",
    "userAgent": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/devices" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/softphone/devices")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/softphone/devices");

print_r($result);
?>
```

## Disconnect all softphone devices

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/devices/disconnect`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-softphone-devices-disconnect

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/devices/disconnect`

Disconnects every softphone device registered on the line.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/devices/disconnect" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/line/{serviceName}/softphone/devices/disconnect")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/softphone/devices/disconnect");

print_r($result);
?>
```

## Delete a softphone device

`DELETE /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/devices/{deviceId}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-line-servicename-softphone-devices-deviceid

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/devices/delete`

Deletes a softphone device registered on the line.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `deviceId` | path | string | yes | Device ID |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/devices/{deviceId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/line/{serviceName}/softphone/devices/{deviceId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/line/{serviceName}/softphone/devices/{deviceId}");

print_r($result);
?>
```

## Get the line softphone logo

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/logo`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-softphone-logo

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/logo/get`

Returns the softphone logo of the line: file name and download URL.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneLogo | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filename` | string | yes | Logo filename |
| `url` | string | yes | URL used to download logo |

```json
{
  "filename": "string",
  "url": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/logo" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/softphone/logo")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/softphone/logo");

print_r($result);
?>
```

## Update the line softphone logo

`PUT /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/logo`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-line-servicename-softphone-logo

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/logo/edit`

Sets the softphone logo of the line from a file name and a URL.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.SoftphoneLogo`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filename` | string | yes | Logo filename |
| `url` | string | yes | URL used to download logo |

```json
{
  "filename": "string",
  "url": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneLogo | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filename` | string | yes | Logo filename |
| `url` | string | yes | URL used to download logo |

```json
{
  "filename": "string",
  "url": "string"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/logo" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.SoftphoneLogo
result = client.put("/telephony/{billingAccount}/line/{serviceName}/softphone/logo",
	filename = None, # Logo filename (type: string)
	url = None, # URL used to download logo (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.SoftphoneLogo
$result = $ovh->put("/telephony/{billingAccount}/line/{serviceName}/softphone/logo", array(
	filename => null, // Logo filename (type: string)
	url => null, // URL used to download logo (type: string)
));

print_r($result);
?>
```

## Delete the line softphone logo

`DELETE /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/logo`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-line-servicename-softphone-logo

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/logo/delete`

Deletes the softphone logo of the line.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/logo" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/line/{serviceName}/softphone/logo")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/line/{serviceName}/softphone/logo");

print_r($result);
?>
```

## Get the line softphone status

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/status`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-softphone-status

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/status/get`

Returns the softphone status of the line: eligibility, beta activation and infrastructure.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneStatus | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `activation` | boolean | read-only | Line beta softphone activation status |
| `eligibility` | boolean | read-only | Line eligibility to softphone |
| `infrastructure` | telephony.SoftphoneInfrastructureEnum | read-only | Line infrastructure — one of `LEGACY`, `NOWI` |

```json
{
  "activation": true,
  "eligibility": true,
  "infrastructure": "LEGACY"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/status" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/softphone/status")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/softphone/status");

print_r($result);
?>
```

## Get the line softphone theme

`GET /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/theme`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-line-servicename-softphone-theme

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/theme/get`

Returns the softphone theme of the line and its main color code.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneTheme | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `color` | string | read-only | Theme main color code |
| `themeId` | integer | read-only | Theme ID |

```json
{
  "color": "string",
  "themeId": 0
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/theme" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/line/{serviceName}/softphone/theme")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/line/{serviceName}/softphone/theme");

print_r($result);
?>
```

## Update the line softphone theme

`PUT /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/theme`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-line-servicename-softphone-theme

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/theme/edit`

Sets the softphone theme of the line from a theme identifier.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.SoftphoneThemeInput`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `themeId` | integer | yes | Theme ID |

```json
{
  "themeId": 0
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneTheme | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `color` | string | read-only | Theme main color code |
| `themeId` | integer | read-only | Theme ID |

```json
{
  "color": "string",
  "themeId": 0
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/theme" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.SoftphoneThemeInput
result = client.put("/telephony/{billingAccount}/line/{serviceName}/softphone/theme",
	themeId = None, # Theme ID (type: integer)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.SoftphoneThemeInput
$result = $ovh->put("/telephony/{billingAccount}/line/{serviceName}/softphone/theme", array(
	themeId => null, // Theme ID (type: integer)
));

print_r($result);
?>
```

## Delete the line softphone theme

`DELETE /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/theme`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-line-servicename-softphone-theme

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/theme/delete`

Deletes the softphone theme of the line.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/theme" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/line/{serviceName}/softphone/theme")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/line/{serviceName}/softphone/theme");

print_r($result);
?>
```

## Generate a provisioning token

`POST /1.0/telephony/{billingAccount}/line/{serviceName}/softphone/token`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#post-telephony-billingaccount-line-servicename-softphone-token

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:line/softphone/token/create`

Generates a token to register a softphone device on the line, and sends it to the given email address.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `serviceName` | path | string | yes |  |

### Request body (required)

Type: `telephony.SoftphoneTokenInput`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `email` | string |  | Email to receive the generated provisioning token |

```json
{
  "email": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneToken | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `token` | string (password) | read-only | Provisioning token used to register device |

```json
{
  "token": "string"
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/line/{serviceName}/softphone/token" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.SoftphoneTokenInput
result = client.post("/telephony/{billingAccount}/line/{serviceName}/softphone/token",
	email = None, # Email to receive the generated provisioning token (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.SoftphoneTokenInput
$result = $ovh->post("/telephony/{billingAccount}/line/{serviceName}/softphone/token", array(
	email => null, // Email to receive the generated provisioning token (type: string)
));

print_r($result);
?>
```

## Get the billing account softphone logo

`GET /1.0/telephony/{billingAccount}/softphone/logo`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-softphone-logo

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:softphone/logo/get`

Returns the softphone logo of the billing account: file name and download URL.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneLogo | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filename` | string | yes | Logo filename |
| `url` | string | yes | URL used to download logo |

```json
{
  "filename": "string",
  "url": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/softphone/logo" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/softphone/logo")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/softphone/logo");

print_r($result);
?>
```

## Update the billing account softphone logo

`PUT /1.0/telephony/{billingAccount}/softphone/logo`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-softphone-logo

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:softphone/logo/edit`

Sets the softphone logo of the billing account from a file name and a URL.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Request body (required)

Type: `telephony.SoftphoneLogo`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filename` | string | yes | Logo filename |
| `url` | string | yes | URL used to download logo |

```json
{
  "filename": "string",
  "url": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneLogo | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `filename` | string | yes | Logo filename |
| `url` | string | yes | URL used to download logo |

```json
{
  "filename": "string",
  "url": "string"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/softphone/logo" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.SoftphoneLogo
result = client.put("/telephony/{billingAccount}/softphone/logo",
	filename = None, # Logo filename (type: string)
	url = None, # URL used to download logo (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.SoftphoneLogo
$result = $ovh->put("/telephony/{billingAccount}/softphone/logo", array(
	filename => null, // Logo filename (type: string)
	url => null, // URL used to download logo (type: string)
));

print_r($result);
?>
```

## Delete the billing account softphone logo

`DELETE /1.0/telephony/{billingAccount}/softphone/logo`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#delete-telephony-billingaccount-softphone-logo

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:softphone/logo/delete`

Deletes the softphone logo of the billing account.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/softphone/logo" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/softphone/logo")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/softphone/logo");

print_r($result);
?>
```

## Get the billing account softphone theme

`GET /1.0/telephony/{billingAccount}/softphone/theme`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#get-telephony-billingaccount-softphone-theme

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:softphone/theme/get`

Returns the softphone theme of the billing account and its main color code.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneTheme | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `color` | string | read-only | Theme main color code |
| `themeId` | integer | read-only | Theme ID |

```json
{
  "color": "string",
  "themeId": 0
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/softphone/theme" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/softphone/theme")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/softphone/theme");

print_r($result);
?>
```

## Update the billing account softphone theme

`PUT /1.0/telephony/{billingAccount}/softphone/theme`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/sip-lines/phones-softphones/#put-telephony-billingaccount-softphone-theme

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:softphone/theme/edit`

Sets the softphone theme of the billing account from a theme identifier.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Request body (required)

Type: `telephony.SoftphoneThemeInput`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `themeId` | integer | yes | Theme ID |

```json
{
  "themeId": 0
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.SoftphoneTheme | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `color` | string | read-only | Theme main color code |
| `themeId` | integer | read-only | Theme ID |

```json
{
  "color": "string",
  "themeId": 0
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/softphone/theme" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.SoftphoneThemeInput
result = client.put("/telephony/{billingAccount}/softphone/theme",
	themeId = None, # Theme ID (type: integer)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.SoftphoneThemeInput
$result = $ovh->put("/telephony/{billingAccount}/softphone/theme", array(
	themeId => null, // Theme ID (type: integer)
));

print_r($result);
?>
```
