Restores a PBX backup from an uploaded backup ZIP file onto a target customer. To restore a backup stored on the file server, use Restore stored instead.
All restored items get new ids - every reference between the restored items (gotos, audio references, music on hold, users, phones, softkeys) is rewritten accordingly.
Two restore modes exist:
| Mode | Description |
|---|---|
| replace | The existing configuration in the selected categories is deleted from the target customer before the backup is restored. Users are never deleted - they are matched by email address. Use for disaster recovery. |
| deploy | The backup is added on top of the target customers existing configuration. Conflicts (internal numbers, MAC addresses) are reported as warnings. Use for deploying a template onto another customer. |
Behavior worth knowing:
| URL | https://api.telecomx.dk/pbx/backup/restore | |
|---|---|---|
| Method | POST (multipart/form-data) | |
| Access level | OWNER if the target is the users own customer. RESELLER if the customer belongs to the reseller. RESELLER_ADMIN and ADMIN for all customers. |
|
| Fields | file | The backup ZIP file, max 500 MB. |
| customer | [optional] Id of the target customer. Defaults to the users own customer. |
|
| mode | Restore mode: replace or deploy. | |
| include | [optional] Comma separated subset of categories to restore. Defaults to everything the backup contains. Must be categories that exist in the backup. |
|
| dryRun | [optional] true to only validate and report conflicts without changing anything. Default false. |
|
The restore report:
| JSON object | ||
|---|---|---|
| Property | Type | Description |
| mode | String | The restore mode that was used: replace or deploy. |
| dryRun | Boolean | True if this was a test run and nothing was changed. |
| categories | Array | The categories that were restored. |
| created | Object | Number of items created per category, e.g. { dialplan: 42, audio: 17 }. |
| updated | Object | Number of items updated in place per category (e.g. users matched by email address). |
| warnings | Array | List of warnings, see definition below. |
| Warning object | ||
|---|---|---|
| Property | Type | Description |
| type | String | Warning type, see the table below. |
| item | String | What the warning relates to - an item name, phone number, email address or MAC address. |
| message | String | Human readable description of what happened. |
| Warning type | Description |
|---|---|
| NUMBER_DROPPED | A phone number in the backup is not owned by the target customer and was dropped. |
| EXTENSION_NUMBER_IN_USE | An internal extension number is already in use on the target customer - the item was restored without a number. |
| MAC_IN_USE | A SIP phone MAC address is in use by another phone - the phone was restored without a MAC address. |
| USER_CREATED_NO_LOGIN | A user did not exist on the target customer and was created as NO_LOGIN without an email address. |
| USER_SKIPPED | A user could not be created on the target customer (e.g. no valid PBX user product) and was skipped. |
| PRODUCT_MISSING | A referenced product does not exist - the reference was removed. |
| MODEL_MISSING | A referenced SIP phone model does not exist - the phone was skipped. |
| AUDIO_REF_NULLED | An audio reference could not be resolved (audio category not included or file missing) and was cleared. |
| GLOBAL_MOH_MISSING | A referenced shared music on hold class no longer exists - the reference was cleared. |
| VARIABLE_EXISTS | A variable or switch already exists on the target and was not overwritten (deploy mode). |
| VARIABLE_DROPPED | A personal variable belonged to a user that could not be resolved on the target and was dropped. |
| TTS_VOICE_MISSING | A referenced TTS voice no longer exists - playback may fail until a new voice is selected. |
| AUDIO_DOWNLOAD_FAILED | An audio file could not be downloaded from the audio file server when the backup was created. |
| PICTURE_FAILED | The picture of a user could not be backed up or restored. |
| EMPLOYEE_REF_NULLED | An extension referenced a user that could not be resolved on the target customer - restored without a user. |
| EXTENSION_REF_NULLED | An extension reference could not be resolved (dialplan category not included) and was cleared. |
| UNRESOLVED_REFERENCE | A reference (e.g. a value router target) could not be resolved on the target customer and was left as-is. |
{ mode: 'deploy', dryRun: false, categories: [ 'dialplan', 'audio', 'users' ], created: { dialplan: 42, audio: 17, users: 3 }, updated: { users: 8 }, warnings: [ { type: 'NUMBER_DROPPED', item: '+4512345678', message: 'The phone number is not owned by the target customer and was dropped - attach a number manually' } ] }
| Error code | Message | Description |
|---|---|---|
| 403 | access_denied | Insufficient access level |
| 404 | customer | Customer not found |
| 404 | file | No backup file was uploaded |
| 409 | restore | A restore is already running for this customer |
| 422 | file | The file is not a valid PBX backup, or has a newer format version than the server supports |
| 422 | include | The backup does not contain the selected categories |
| 422 | options | Invalid restore options |
| 500 | internal_error | <Unspecified> |