# Virtual Receptionists

Manage your virtual receptionists.

## List virtual receptionist servers

> List virtual receptionist servers.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivr_servers":{"get":{"tags":["Virtual Receptionist"],"operationId":"listVrServers","summary":"List virtual receptionist servers","description":"List virtual receptionist servers.\n","parameters":[{"name":"filter","in":"query","schema":{"type":"string"},"description":"Use the `filter` query parameter to retrieve just a subset of a collection.\n"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Use the `search` query parameter to restrict the results of a request to match a search criterion.\n"},{"name":"orderby","in":"query","schema":{"type":"string"},"description":"Use the `orderby` query parameter to specify the sort order of the items returned from server.  \nThe default order is ascending order.\n"},{"name":"skip","in":"query","schema":{"type":"integer","format":"int32","minimum":0,"default":0},"description":"Use the `skip` query parameter to set the number of items to skip at the start of a collection.\n"},{"name":"top","in":"query","schema":{"type":"integer","format":"int32","minimum":1,"maximum":100,"default":100},"description":"Use the `top` query parameter to specify the page size of the result set.\n"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","format":"int64","minimum":0,"description":"Total number of resource.\n"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist server.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of virtual receptionist server.\n"},"enabled":{"type":"boolean","default":true,"description":"The activate status or deactivated status.\n"},"type":{"type":"string","enum":["INTERNAL","EXTERNAL"],"readOnly":true,"description":"Every PortSIP PBX has a built-in virtual receptionist server marked as `INTERNAL`;   \nNewly added virtual receptionist servers will be marked as \"EXTERNAL\".\n"},"ipv4":{"type":"string","description":"Host IPV4 address.\n"},"ipv6":{"type":"string","description":"Host IPV6 address.\n"}}}}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Create a virtual receptionist server

> Create a virtual receptionist server.  \
> Please note that: at least one of ipv4 or ipv6 must be specified.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivr_servers":{"post":{"tags":["Virtual Receptionist"],"operationId":"createVrServer","summary":"Create a virtual receptionist server","description":"Create a virtual receptionist server.  \nPlease note that: at least one of ipv4 or ipv6 must be specified.\n","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of virtual receptionist server.\n"},"enabled":{"type":"boolean","default":true,"description":"The activate status or deactivated status.\n"},"ipv4":{"type":"string","description":"Host IPV4 address.\n"},"ipv6":{"type":"string","description":"Host IPV6 address.\n"}},"required":["name"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist server.\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Retrieve a virtual receptionist server

> Retrieve a virtual receptionist server.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivr_servers/{id}":{"get":{"tags":["Virtual Receptionist"],"operationId":"showIvrServer","summary":"Retrieve a virtual receptionist server","description":"Retrieve a virtual receptionist server.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist server.\n"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist server.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of virtual receptionist server.\n"},"enabled":{"type":"boolean","default":true,"description":"The activate status or deactivated status.\n"},"ipv4":{"type":"string","description":"Host IPV4 address.\n"},"ipv6":{"type":"string","description":"Host IPV6 address.\n"},"type":{"type":"string","enum":["INTERNAL","EXTERNAL"],"readOnly":true,"description":"Every PortSIP PBX has a built-in virtual receptionist server marked as `INTERNAL`;   \nNewly added virtual receptionist servers will be marked as \"EXTERNAL\".\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Update a virtual receptionist server

> Update a virtual receptionist server.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivr_servers/{id}":{"post":{"tags":["Virtual Receptionist"],"operationId":"updateVrServer","summary":"Update a virtual receptionist server","description":"Update a virtual receptionist server.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist server.\n"},"description":"The unique ID of the virtual receptionist server."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean","default":true,"description":"The activate status or deactivated status.\n"}}}}},"required":true},"responses":{"200":{"description":"OK"},"4XX":{"description":"Error"}}}}}}
```

## Query virtual receptionist server status

> Retrieve a virtual receptionist server's status.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivr_servers/{id}/status":{"get":{"tags":["Virtual Receptionist"],"operationId":"getVrServerStatus","summary":"Query virtual receptionist server status","description":"Retrieve a virtual receptionist server's status.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist server.\n"},"description":"The unique ID of the virtual receptionist server."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","readOnly":true,"properties":{"cpu_usage":{"type":"integer","description":"CPU usage.\n"},"memory_usage":{"type":"integer","description":"Memory usage.\n"},"status":{"type":"string","enum":["ONLINE","OFFLINE"],"description":"Call queue's status:   \n- `ONLINE`: The virtual receptionist server is online.\n- `OFFLINE`: The virtual receptionist server is offline.\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Delete a virtual receptionist server

> Delete a virtual receptionist server<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivr_servers/{id}/destroy":{"post":{"tags":["Virtual Receptionist"],"operationId":"deleteVrServer","summary":"Delete a virtual receptionist server","description":"Delete a virtual receptionist server\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist server.\n"},"description":"The unique ID of the virtual receptionist server."}],"responses":{"204":{"description":"No Content"},"400":{"description":"Invalid server id supplied"},"404":{"description":"Server not found"}}}}}}
```

## Lists virtual receptionists

> Retrieve a collection of virtual receptionists.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs":{"get":{"tags":["Virtual Receptionist"],"operationId":"listVrs","summary":"Lists virtual receptionists","description":"Retrieve a collection of virtual receptionists.\n","parameters":[{"name":"filter","in":"query","schema":{"type":"string"},"description":"Use the `filter` query parameter to retrieve just a subset of a collection.\n"},{"name":"search","in":"query","schema":{"type":"string"},"description":"Use the `search` query parameter to restrict the results of a request to match a search criterion.\n"},{"name":"orderby","in":"query","schema":{"type":"string"},"description":"Use the `orderby` query parameter to specify the sort order of the items returned from server.  \nThe default order is ascending order.\n"},{"name":"skip","in":"query","schema":{"type":"integer","format":"int32","minimum":0,"default":0},"description":"Use the `skip` query parameter to set the number of items to skip at the start of a collection.\n"},{"name":"top","in":"query","schema":{"type":"integer","format":"int32","minimum":1,"maximum":100,"default":100},"description":"Use the `top` query parameter to specify the page size of the result set.\n"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","format":"int64","minimum":0,"description":"Total number of resource.\n"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of virtual receptionist.\n"},"extension_number":{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"}}}}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Create a virtual receptionist.

> Add a new virtual receptionist into system.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs":{"post":{"tags":["Virtual Receptionist"],"operationId":"createVr","summary":"Create a virtual receptionist.","description":"Add a new virtual receptionist into system.\n","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of virtual receptionist.\n"},"extension_number":{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"},"language":{"type":"string","description":"BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"},"dtmf_interval":{"type":"integer","format":"int32","minimum":1,"default":2,"description":"The time to wait for the next DTMF input.\n"},"prompt_file_id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of the file.\n"},"transfer_prompt_file_id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of the file.\n"},"enable_pin":{"type":"boolean","default":true,"description":"Whether the PIN is required for DISA.\n"},"pin":{"type":"string","minLength":6,"maxLength":10,"description":"The PIN number for accessing.   \nThe PIN policies include:  \n1. A sequence of numbers 6-10 digits in length.  \n2. No repeating numbers (e.g. \"111\", \"222\")\n3. No sequential numbers (e.g. \"012\", \"789\")\n"},"timeout_forward_rule":{"type":"object","properties":{"timeout":{"type":"integer","default":30,"description":"Single call timeout\n"},"repeat_times":{"type":"integer","format":"int32","minimum":0,"default":3,"description":"When timeout, the number of times to repeat the prompt tone\n"},"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"failure_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"night_mode_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"custom_forward_rules":{"type":"array","items":{"type":"object","properties":{"user_input":{"type":"string","description":"User input.\n"},"office_hours":{"allOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["GLOBAL","CUSTOM"],"description":"The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"}}},{"type":"object","properties":{"monday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"tuesday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"wednesday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"thursday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"friday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"saturday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"sunday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}}}}]},"office_hours_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"non_office_hours_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"holidays":{"type":"array","items":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"readOnly":true,"description":"The unique ID of holiday.\n"},"description":"A collection of ID of tenant's holiday.\n"},"holiday_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}}}}},"outbound_caller_ids":{"type":"array","items":{"type":"object","properties":{"provider_id":{"allOf":[{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of trunk.\n"}],"description":"The unique ID of trunk.\n"},"caller_id":{"allOf":[{"type":"string","minLength":1,"maxLength":64,"description":"Outbound caller id.\n"}],"description":"The caller ID.\n"},"description":{"type":"string","maxLength":1024,"description":"The descriptive information about this outbound caller id.\n"}}},"description":"A collection of outbound caller IDs.\n"}},"required":["name","extension_number","pin"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Retrieve a virtual receptionist

> Retrieve virtual receptionists server by it's unique ID.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}":{"get":{"tags":["Virtual Receptionist"],"operationId":"getIvr","summary":"Retrieve a virtual receptionist","description":"Retrieve virtual receptionists server by it's unique ID.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","description":"The unique ID of the resource.\n"},"description":"The unique ID of the virtual receptionist."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of virtual receptionist.\n"},"extension_number":{"type":"string","minLength":3,"maxLength":64,"pattern":"[0-9]{3,64}","description":"The extension number.\n"},"language":{"type":"string","description":"BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"},"dtmf_interval":{"type":"integer","format":"int32","minimum":1,"default":2,"description":"The time to wait for the next DTMF input.\n"},"prompt_file_name":{"type":"string","description":"The name of the file.\n"},"prompt_file_size":{"type":"integer","format":"int64","minimum":0,"description":"The file size in bytes.\n"},"prompt_file_url":{"type":"string","readOnly":true,"description":"The relative path to file url for file downloading.\n"},"transfer_prompt_file_name":{"type":"string","description":"The name of the file.\n"},"transfer_prompt_file_size":{"type":"integer","format":"int64","minimum":0,"description":"The file size in bytes.\n"},"transfer_prompt_file_url":{"type":"string","readOnly":true,"description":"The relative path to file url for file downloading.\n"},"enable_pin":{"type":"boolean","default":true,"description":"Whether the PIN is required for DISA.\n"},"pin":{"type":"string","minLength":6,"maxLength":10,"description":"The PIN number for accessing.   \nThe PIN policies include:  \n1. A sequence of numbers 6-10 digits in length.  \n2. No repeating numbers (e.g. \"111\", \"222\")\n3. No sequential numbers (e.g. \"012\", \"789\")\n"},"timeout_forward_rule":{"type":"object","properties":{"timeout":{"type":"integer","default":30,"description":"Single call timeout\n"},"repeat_times":{"type":"integer","format":"int32","minimum":0,"default":3,"description":"When timeout, the number of times to repeat the prompt tone\n"},"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"failure_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"night_mode_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"custom_forward_rules":{"type":"array","items":{"type":"object","properties":{"user_input":{"type":"string","description":"User input.\n"},"office_hours":{"allOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["GLOBAL","CUSTOM"],"description":"The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"}}},{"type":"object","properties":{"monday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"tuesday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"wednesday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"thursday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"friday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"saturday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"sunday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}}}}]},"office_hours_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"non_office_hours_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"holidays":{"type":"array","items":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"readOnly":true,"description":"The unique ID of holiday.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of the holiday.\n"},"region":{"type":"string","description":"A valid country code based on iso3166-1 alpha-3 standard. see: https://www.iso.org/iso-3166-country-codes.html\n"},"consecutive":{"type":"boolean","description":"Whether the holiday consists of consecutive days.\n"},"every_year":{"type":"boolean","description":"Does the holiday take effect every year.\n"},"year_start":{"type":"integer","description":"The start year of holiday.\n"},"year_end":{"type":"integer","description":"The end year of holiday.\n"},"month_start":{"type":"integer","description":"The start month of holiday.\n"},"month_end":{"type":"integer","description":"The end month of holiday.\n"},"day_start":{"type":"integer","description":"The start day of holiday.\n"},"day_end":{"type":"integer","description":"The end day of holiday.\n"},"hour_start":{"type":"integer","description":"The start hour of holiday.\n"},"hour_end":{"type":"integer","description":"The end hour of holiday.\n"},"minute_start":{"type":"integer","description":"The start minute of holiday.\n"},"minute_end":{"type":"integer","description":"The end minute of holiday.\n"}}}},"holiday_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}}}}},"outbound_caller_ids":{"type":"array","items":{"type":"object","properties":{"provider_id":{"allOf":[{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of trunk.\n"}],"description":"The unique ID of trunk.\n"},"caller_id":{"allOf":[{"type":"string","minLength":1,"maxLength":64,"description":"Outbound caller id.\n"}],"description":"The caller ID.\n"},"description":{"type":"string","maxLength":1024,"description":"The descriptive information about this outbound caller id.\n"}}},"description":"A collection of outbound caller IDs.\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Update a virtual receptionist

> Update a virtual receptionist<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}":{"post":{"tags":["Virtual Receptionist"],"operationId":"updateVr","summary":"Update a virtual receptionist","description":"Update a virtual receptionist\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"description":"The unique ID of the virtual receptionist."}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of virtual receptionist.\n"},"language":{"type":"string","description":"BCP 47 Language Tags (The Internet Best Current Practices (BCP) for language tags).\nA language tag is composed of a sequence of one or more subtags such as language, region, variant and script subtags.\nWhen a language tag is comprised of more than one subtag, the subtag values are separated by the \"-\" character.\nYou will most commonly find language tags written with 2 subtags - language and region. For example: en-US.\n"},"dtmf_interval":{"type":"integer","format":"int32","minimum":1,"default":2,"description":"The time to wait for the next DTMF input.\n"},"prompt_file_id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of the file.\n"},"transfer_prompt_file_id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of the file.\n"},"enable_pin":{"type":"boolean","default":true,"description":"Whether the PIN is required for DISA.\n"},"pin":{"type":"string","minLength":6,"maxLength":10,"description":"The PIN number for accessing.   \nThe PIN policies include:  \n1. A sequence of numbers 6-10 digits in length.  \n2. No repeating numbers (e.g. \"111\", \"222\")\n3. No sequential numbers (e.g. \"012\", \"789\")\n"},"timeout_forward_rule":{"type":"object","properties":{"timeout":{"type":"integer","default":30,"description":"Single call timeout\n"},"repeat_times":{"type":"integer","format":"int32","minimum":0,"default":3,"description":"When timeout, the number of times to repeat the prompt tone\n"},"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"failure_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"night_mode_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP"],"description":"Forward actions includes:\n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"custom_forward_rules":{"type":"array","items":{"type":"object","properties":{"user_input":{"type":"string","description":"User input.\n"},"office_hours":{"allOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["GLOBAL","CUSTOM"],"description":"The office hours mode can be either:  \n- `GLOBAL`: Use global office hours.\n- `CUSTOM`: Use specific office hours.\n"}}},{"type":"object","properties":{"monday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"tuesday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"wednesday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"thursday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"friday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"saturday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}},"sunday":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, all day is working time, when disabled, all day is vacation time.\n"},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"09:00\".  \nMust be earlier than `to`.\n"},"to":{"type":"string","description":"The start time for office hour with format `HH:MM` in 24 hour clock, such as \"17:00\".  \nMust be later than `from`.\n"}}},"description":"Multiple start and end time periods make up the working time.\n"}}}}}]},"office_hours_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"non_office_hours_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}},"holidays":{"type":"array","items":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"readOnly":true,"description":"The unique ID of holiday.\n"},"description":"A collection of ID of tenant's holiday.\n"},"holiday_forward_rule":{"type":"object","properties":{"action":{"type":"string","enum":["FORWARD_TO_NUMBER","FORWARD_TO_VOICEMAIL","REPEAT","HANGUP","DISA"],"description":"Forward rule actions for DTMF:   \nCan be either:   \n- `FORWARD_TO_NUMBER`:\n- `FORWARD_TO_VOICEMAIL`:\n- `REPEAT`:\n- `HANGUP`:\n- `DISA`:\n"},"number":{"type":"string","description":"Specify the forwarding destination number.  \nCan be either:  \n- Extension number: The extension number of PortSIP PBX.\n- External number: The numeric sequence of numbers, with or without a plus sign at the beginning.\n"}}}}}},"outbound_caller_ids":{"type":"array","items":{"type":"object","properties":{"provider_id":{"allOf":[{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of trunk.\n"}],"description":"The unique ID of trunk.\n"},"caller_id":{"allOf":[{"type":"string","minLength":1,"maxLength":64,"description":"Outbound caller id.\n"}],"description":"The caller ID.\n"},"description":{"type":"string","maxLength":1024,"description":"The descriptive information about this outbound caller id.\n"}}},"description":"A collection of outbound caller IDs.\n"}}}}}},"responses":{"200":{"description":"OK"},"4XX":{"description":"Error"}}}}}}
```

## Query virtual receptionist's status

> Query virtual receptionist' status by it's unique ID.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}/status":{"get":{"tags":["Virtual Receptionist"],"operationId":"getVrStatus","summary":"Query virtual receptionist's status","description":"Query virtual receptionist' status by it's unique ID.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"description":"The unique ID of the virtual receptionist."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["OFFLINE","ONLINE"],"readOnly":true,"description":"The status of this virtual receptionists.\n- `OFFLINE`:\n- `ONLINE`:\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Delete a virtual receptionist

> Destroy a virtual receptionist.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}/destroy":{"post":{"tags":["Virtual Receptionist"],"operationId":"deleteVrs","summary":"Delete a virtual receptionist","description":"Destroy a virtual receptionist.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"description":"The unique ID of the virtual receptionist."}],"responses":{"204":{"description":"No Content"},"400":{"description":"Invalid virtual receptionists ID supplied."}}}}}}
```

## List action urls

> Retrieves a list of action urls of virtual receptionist.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}/action_urls":{"get":{"tags":["Virtual Receptionist"],"operationId":"listActionUrls","summary":"List action urls","description":"Retrieves a list of action urls of virtual receptionist.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"description":"The unique ID of the virtual receptionist."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"allOf":[{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of action url.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of action url.\n"},"enabled":{"type":"boolean","description":"Whether to enable or not.\n"},"type":{"type":"string","enum":["DTMF","CALLER"],"description":"The action url type.  \nCan be either:  \n- `DTMF`:\n- `CALLER`\n"},"caller_mask":{"type":"string","maxLength":255,"description":"The caller mask of action url.\n"},"dtmf_mask":{"type":"string","maxLength":255,"description":"The DTMF mask of action url.  \nA semicolon-separated list of DTMF number or DTMF number range.  \nFor example: 1000;2000;3000-4000.\n"},"method":{"type":"string","enum":["GET","POST"],"description":"The action url request method.  \nCan be either:  \n- `GET`\n- `POST`:\n"},"headers":{"type":"string","description":"The request headers of action url.\n"},"connection_timeout":{"type":"integer","format":"int32","minimum":0,"default":2,"description":"The connection timeout in seconds.\n"},"request_timeout":{"type":"integer","format":"int32","minimum":0,"default":2,"description":"The request timeout in seconds.\n"}}},{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"description":"Enabled this event or not.\n"},"auth":{"type":"string","enum":["DISABLE","BASIC","DIGEST","BEARER"],"default":"DISABLE","description":"The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"},"username":{"type":"string","minLength":6,"maxLength":64,"pattern":"[a-z0-9]{6,64}","description":"The username for authentication, when auth is `BASIC` or `DIGEST`.\n"},"password":{"type":"string","minLength":6,"maxLength":64,"pattern":"[a-z0-9]{6,64}","description":"The password for authentication, when auth is `BASIC` or `DIGEST`.\n"},"token":{"type":"string","description":"The token for authentication, when auth is `BEARER`.\n"},"url":{"type":"string","minLength":1,"maxLength":128,"pattern":"[a-z0-9]{6,64}","description":"The event url.\n"}}}]}}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Create an action url

> Create an action url for virtual receptionist.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}/action_urls":{"post":{"tags":["Virtual Receptionist"],"operationId":"createActionUrl","summary":"Create an action url","description":"Create an action url for virtual receptionist.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"description":"The unique ID of the virtual receptionist."}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of action url.\n"},"enabled":{"type":"boolean","description":"Whether to enable or not.\n"},"type":{"type":"string","enum":["DTMF","CALLER"],"description":"The action url type.  \nCan be either:  \n- `DTMF`:\n- `CALLER`\n"},"method":{"type":"string","enum":["GET","POST"],"description":"The action url request method.  \nCan be either:  \n- `GET`\n- `POST`:\n"},"headers":{"type":"string","description":"The request headers of action url.\n"},"caller_mask":{"type":"string","maxLength":255,"description":"The caller mask of action url.\n"},"dtmf_mask":{"type":"string","maxLength":255,"description":"The DTMF mask of action url.  \nA semicolon-separated list of DTMF number or DTMF number range.  \nFor example: 1000;2000;3000-4000.\n"},"connection_timeout":{"type":"integer","format":"int32","minimum":0,"default":2,"description":"The connection timeout in seconds.\n"},"request_timeout":{"type":"integer","format":"int32","minimum":0,"default":2,"description":"The request timeout in seconds.\n"}}},{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"description":"Enabled this event or not.\n"},"auth":{"type":"string","enum":["DISABLE","BASIC","DIGEST","BEARER"],"default":"DISABLE","description":"The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"},"username":{"type":"string","minLength":6,"maxLength":64,"pattern":"[a-z0-9]{6,64}","description":"The username for authentication, when auth is `BASIC` or `DIGEST`.\n"},"password":{"type":"string","minLength":6,"maxLength":64,"pattern":"[a-z0-9]{6,64}","description":"The password for authentication, when auth is `BASIC` or `DIGEST`.\n"},"token":{"type":"string","description":"The token for authentication, when auth is `BEARER`.\n"},"url":{"type":"string","minLength":1,"maxLength":128,"pattern":"[a-z0-9]{6,64}","description":"The event url.\n"}}}]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of action url.\n"}}}}}},"4XX":{"description":"Error"}}}}}}
```

## Retrieve action url

> Retrieve details of action url of virtual receptionist.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}/action_urls/{url_id}":{"get":{"tags":["Virtual Receptionist"],"operationId":"showActionUrl","summary":"Retrieve action url","description":"Retrieve details of action url of virtual receptionist.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"description":"The unique ID of the virtual receptionist."},{"name":"url_id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of action url.\n"},"description":"The unique ID of the action url."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"id":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of action url.\n"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of action url.\n"},"enabled":{"type":"boolean","description":"Whether to enable or not.\n"},"type":{"type":"string","enum":["DTMF","CALLER"],"description":"The action url type.  \nCan be either:  \n- `DTMF`:\n- `CALLER`\n"},"caller_mask":{"type":"string","maxLength":255,"description":"The caller mask of action url.\n"},"dtmf_mask":{"type":"string","maxLength":255,"description":"The DTMF mask of action url.  \nA semicolon-separated list of DTMF number or DTMF number range.  \nFor example: 1000;2000;3000-4000.\n"},"method":{"type":"string","enum":["GET","POST"],"description":"The action url request method.  \nCan be either:  \n- `GET`\n- `POST`:\n"},"headers":{"type":"string","description":"The request headers of action url.\n"},"connection_timeout":{"type":"integer","format":"int32","minimum":0,"default":2,"description":"The connection timeout in seconds.\n"},"request_timeout":{"type":"integer","format":"int32","minimum":0,"default":2,"description":"The request timeout in seconds.\n"}}},{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"description":"Enabled this event or not.\n"},"auth":{"type":"string","enum":["DISABLE","BASIC","DIGEST","BEARER"],"default":"DISABLE","description":"The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"},"username":{"type":"string","minLength":6,"maxLength":64,"pattern":"[a-z0-9]{6,64}","description":"The username for authentication, when auth is `BASIC` or `DIGEST`.\n"},"password":{"type":"string","minLength":6,"maxLength":64,"pattern":"[a-z0-9]{6,64}","description":"The password for authentication, when auth is `BASIC` or `DIGEST`.\n"},"token":{"type":"string","description":"The token for authentication, when auth is `BEARER`.\n"},"url":{"type":"string","minLength":1,"maxLength":128,"pattern":"[a-z0-9]{6,64}","description":"The event url.\n"}}}]}}}},"4XX":{"description":"Error"}}}}}}
```

## Update action url

> Set action url of virtual receptionist.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}/action_urls/{url_id}":{"post":{"tags":["Virtual Receptionist"],"operationId":"updateActionUrl","summary":"Update action url","description":"Set action url of virtual receptionist.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"description":"The unique ID of the virtual receptionist."},{"name":"url_id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of action url.\n"},"description":"The unique ID of the action url."}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"description":"The name of action url.\n"},"enabled":{"type":"boolean","description":"Whether to enable or not.\n"},"type":{"type":"string","enum":["DTMF","CALLER"],"description":"The action url type.  \nCan be either:  \n- `DTMF`:\n- `CALLER`\n"},"caller_mask":{"type":"string","maxLength":255,"description":"The caller mask of action url.\n"},"dtmf_mask":{"type":"string","maxLength":255,"description":"The DTMF mask of action url.  \nA semicolon-separated list of DTMF number or DTMF number range.  \nFor example: 1000;2000;3000-4000.\n"},"method":{"type":"string","enum":["GET","POST"],"description":"The action url request method.  \nCan be either:  \n- `GET`\n- `POST`:\n"},"headers":{"type":"string","description":"The request headers of action url.\n"},"connection_timeout":{"type":"integer","format":"int32","minimum":0,"default":2,"description":"The connection timeout in seconds.\n"},"request_timeout":{"type":"integer","format":"int32","minimum":0,"default":2,"description":"The request timeout in seconds.\n"}}},{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"description":"Enabled this event or not.\n"},"auth":{"type":"string","enum":["DISABLE","BASIC","DIGEST","BEARER"],"default":"DISABLE","description":"The authentication method of event URL:  \nCan be either:  \n- `DISABLE`: Disable authentication.\n- `BASIC`: Use basic authentication.\n- `DIGEST`: Use digest authentication.\n- `BEARER`: Use bearer authentication.\n"},"username":{"type":"string","minLength":6,"maxLength":64,"pattern":"[a-z0-9]{6,64}","description":"The username for authentication, when auth is `BASIC` or `DIGEST`.\n"},"password":{"type":"string","minLength":6,"maxLength":64,"pattern":"[a-z0-9]{6,64}","description":"The password for authentication, when auth is `BASIC` or `DIGEST`.\n"},"token":{"type":"string","description":"The token for authentication, when auth is `BEARER`.\n"},"url":{"type":"string","minLength":1,"maxLength":128,"pattern":"[a-z0-9]{6,64}","description":"The event url.\n"}}}]}}}},"responses":{"200":{"description":"OK"},"4XX":{"description":"Error"}}}}}}
```

## Delete an action url

> Destroy an action url from virtual receptionist.<br>

```json
{"openapi":"3.1.0","info":{"title":"PortSIP PBX Rest API","version":"22.0"},"tags":[{"name":"Virtual Receptionist","description":"Manage your virtual receptionists.\n"}],"servers":[{"url":"{protocol}://{hostname}:{port}/api","variables":{"protocol":{"description":"Self-hosted Enterprise Server protocol.","default":"https"},"hostname":{"description":"Self-hosted Enterprise Server hostname.","default":"HOSTNAME"},"port":{"description":"Self-hosted Enterprise Server port.","default":"8887"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/ivrs/{id}/action_urls/{url_id}/destroy":{"post":{"tags":["Virtual Receptionist"],"operationId":"deleteActionUrl","summary":"Delete an action url","description":"Destroy an action url from virtual receptionist.\n","parameters":[{"name":"id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of virtual receptionist.\n"},"description":"The unique ID of the virtual receptionist."},{"name":"url_id","in":"path","required":true,"schema":{"allOf":[{"type":"string","description":"The unique ID of the resource.\n"}],"description":"The unique ID of action url.\n"},"description":"The unique ID of the action url."}],"responses":{"204":{"description":"No Content"},"4XX":{"description":"Error"}}}}}}
```
