Skip to content

KAZOO Support Channels

This documentation is curated by 2600Hz as part of the KAZOO open source project. Join our community forums here for peer support. Only features in the docs.2600hz.com/supported space are included as part of our 2600Hz Support Services plan.

Menus#

Menus, IVRs, what ever you call them, allow you to create branches in the callflow based on the caller's input.

About Menus#

The DTMF entered is matched against the "children" keys and that branch is taken.

Additionally, you can branch based on a timeout (no DTMF entered) by using "timeout" in the "children" keys":

{
    "module":"menu",
    "data": {...},
    "children": {
        "1": {"module":"...",...},
        "2": {"module":"...",...},
        "timeout": {"module":"...",...}
    }
}

If no timeout child is specified, the menu is retried (until retries are exceeded).

Schema#

Schema for a menus

Key Description Type Default Required Support Level
allow_record_from_offnet Determines if the record pin can be used by external calls boolean() false false supported
flags.[] string() false supported
flags Flags set by external applications array(string()) false supported
hunt Determines if the callers can dial internal extensions directly boolean() true false supported
hunt_allow A regular expression that an extension the caller dialed must match to be allowed to continue string(1..256) false supported
hunt_deny A regular expression that if matched does not allow the caller to dial directly string(1..256) false supported
interdigit_timeout The amount of time (in milliseconds) to wait for the caller to press the next digit after pressing a digit integer() false supported
max_extension_length The maximum number of digits that can be collected integer() 4 false supported
media.exit_media When a call is transferred from the menu after all retries exhausted this media can be played (prior to transfer if enabled) boolean() | string(3..2048) false supported
media.greeting The ID of a media object that should be used as the menu greeting string(3..2048) false supported
media.invalid_media When the collected digits don't result in a match or hunt this media can be played boolean() | string(3..2048) false supported
media.transfer_media When a call is transferred from the menu, either after all retries exhausted or a successful hunt, this media can be played boolean() | string(3..2048) false supported
media The media (prompt) parameters object() {} false supported
name A friendly name for the menu string(1..128) true supported
record_pin The pin number used to record the menu prompt string(3..6) false supported
retries The number of times a menu should be played until a valid entry is collected integer() 3 false supported
suppress_media Determines if the playing of 'Invalid Entry' is suppressed. boolean() false false supported
timeout The amount of time (in milliseconds) to wait for the caller to begin entering digits integer() false supported

Fetch#

GET /v2/accounts/{ACCOUNT_ID}/menus

curl -v -X GET \
    -H "X-Auth-Token: {AUTH_TOKEN}" \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/menus

Create#

PUT /v2/accounts/{ACCOUNT_ID}/menus

curl -v -X PUT \
    -H "X-Auth-Token: {AUTH_TOKEN}" \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/menus

Fetch#

GET /v2/accounts/{ACCOUNT_ID}/menus/{MENU_ID}

curl -v -X GET \
    -H "X-Auth-Token: {AUTH_TOKEN}" \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/menus/{MENU_ID}

Change#

POST /v2/accounts/{ACCOUNT_ID}/menus/{MENU_ID}

curl -v -X POST \
    -H "X-Auth-Token: {AUTH_TOKEN}" \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/menus/{MENU_ID}

Patch#

PATCH /v2/accounts/{ACCOUNT_ID}/menus/{MENU_ID}

curl -v -X PATCH \
    -H "X-Auth-Token: {AUTH_TOKEN}" \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/menus/{MENU_ID}

Remove#

DELETE /v2/accounts/{ACCOUNT_ID}/menus/{MENU_ID}

curl -v -X DELETE \
    -H "X-Auth-Token: {AUTH_TOKEN}" \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/menus/{MENU_ID}