# 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.3"},"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","required":false,"schema":{"type":"string"},"description":"Use the `filter` query parameter to retrieve just a subset of a collection.\n"},{"name":"search","in":"query","required":false,"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","required":false,"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","required":false,"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","required":false,"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.3"},"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.3"},"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.3"},"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.3"},"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.3"},"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.3"},"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","required":false,"schema":{"type":"string"},"description":"Use the `filter` query parameter to retrieve just a subset of a collection.\n"},{"name":"search","in":"query","required":false,"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","required":false,"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","required":false,"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","required":false,"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.3"},"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","description":"The PIN number for accessing.\n"},"enable_night_mode":{"type":"boolean","default":false,"description":"Whether to enable night mode.\n"},"exclude_list":{"type":"string","description":"The comma-separated list of extension numbers that cannot be dialed directly.\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.3"},"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","description":"The PIN number for accessing.\n"},"enable_night_mode":{"type":"boolean","default":false,"description":"Whether to enable night mode.\n"},"exclude_list":{"type":"string","description":"The comma-separated list of extension numbers that cannot be dialed directly.\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.3"},"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","description":"The PIN number for accessing.\n"},"enable_night_mode":{"type":"boolean","default":false,"description":"Whether to enable night mode.\n"},"exclude_list":{"type":"string","description":"The comma-separated list of extension numbers that cannot be dialed directly.\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.3"},"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.3"},"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.3"},"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":{"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"},"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"},"url":{"type":"string","minLength":1,"maxLength":1024,"description":"The request url for action url.\n"},"auth":{"type":"string","enum":["DISABLE","BASIC","DIGEST","BEARER"],"default":"DISABLE","description":"The authentication method of action 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"}}}}}}}}},"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.3"},"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":{"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"},"url":{"type":"string","minLength":1,"maxLength":1024,"description":"The request url for action url.\n"},"auth":{"type":"string","enum":["DISABLE","BASIC","DIGEST","BEARER"],"default":"DISABLE","description":"The authentication method of action 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"}}}}}},"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.3"},"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":{"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"},"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"},"url":{"type":"string","minLength":1,"maxLength":1024,"description":"The request url for action url.\n"},"auth":{"type":"string","enum":["DISABLE","BASIC","DIGEST","BEARER"],"default":"DISABLE","description":"The authentication method of action 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"}}}}}},"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.3"},"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":{"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"},"url":{"type":"string","minLength":1,"maxLength":1024,"description":"The request url for action url.\n"},"auth":{"type":"string","enum":["DISABLE","BASIC","DIGEST","BEARER"],"default":"DISABLE","description":"The authentication method of action 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"}}}}}},"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.3"},"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"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.portsip.com/development-portsip/rest-apis/version-22.3/virtual-receptionists.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
