---
title: "Perform a voice conversation"
method: POST
path: "/voice/conversation"
---

# Perform a voice conversation

`POST /voice/conversation`

## Headers

- `Content-Type` string, required
- `Authorization` string, required

## Request body

- object
  - `to` object, required — The recipient of the call. The destination phone number. Format with a '+' and country code e.g., +3069485xxxxx (E.164 format). NOTE: limit 1 reqest per second
    - `phone` string — A valid phone number (mobile or landline)
    - `sip` string — A valid sip address. (ex 1111@test.com:55080)
    - `viber` string — A valid phone number. The recipient should have the Viber application installed to be able to receive a Viber call
  - `from` string, required — The sender id for the call. NOTICE: Alphanumeric sender is not supported by all networks (e.g. Greek networks). Check restrictions and features here: https://go.routee.net/#/management/restrictions-and-features.
  - `dialPlan` object — A combination of action verbs to be executed. Can not be empty. Use either "dialPlanUrl" or "dialPlan".
    - `verbs` object[] — An array of SAY, PLAY, DIAL and COLLECT verbs. Check [here](/docs/dialplan-verbs) for possible values
      - string
  - `dialPlanUrl` string — The url which contains a combination of action verbs to be executed. Use either "dialPlanUrl" or "dialPlan".
  - `callback` object — Defines the notification callback information for the progress of Voice conversation
    - `url` string, required — A URL that Routee will POST to, each time your voice call status changes.
    - `strategy` string, required — When the URL will be called. Two possible values: on every status change (OnChange) or when a final status arrives (OnCompletion).
  - `hangupDelay` integer — The time to wait for the call to be answered. Min value: 1. Max value: 60.
  - `maxDuration` integer — Defines the maximum duration. Min value: 1
  - `machineDetection` object — It is used to detect if the call is answered by human or machine and define the desired actions (in case of machine).
    - `strategy` string — The strategy to follow when a machine has been detected. Possible values: "Hangup" (terminate the call) or "Continue" (give another dialplan to execute)
    - `eventUrl` string — The URL that Routee will POST to when a machine is detected (only for "Continue" strategy). A valid dialplan is expected as response.

## Response `200`

200

- object
  - `trackingId` string
  - `direction` string
  - `from` string
  - `to` object
    - `phone` string
  - `dialPlans` object[]
    - `verbs` object[]
      - `type` string
      - `repeat` integer
      - `fileURL` string
      - `bargeIn` boolean
  - `createdAt` string
  - `machineDetection` object
    - `strategy` string

---

[API](https://skmtc.net/routee/apis/auth.md) · [All operations](https://skmtc.net/routee/apis/auth/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/routee/auth/versions/5cef04e8f7d8/schema)
