> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Advance the IVR flow after caller input

> Internal jambonz `gather` action-hook that drives the visual IVR flow-builder. It fires when a caller responds at an IVR menu node with DTMF digits or speech; the handler matches the input against the node's branches, walks to the next node in the flow, and returns that node's jambonz verbs (another menu, a message, a transfer, or a record step), or a hangup when the flow ends or no branch matches. Signed with the jambonz webhook HMAC and not intended for direct client use. Fails OPEN (continues the walk or hangs up cleanly) on malformed input so a valid caller response is never turned into a dropped call.



## OpenAPI

````yaml /openapi.yaml post /api/v1/jambonz/ivr-step
openapi: 3.1.0
info:
  title: Devotel CPaaS API
  description: Orbit by Devotel — Communications Platform as a Service API
  version: 1.0.0
  contact:
    name: Devotel
    url: https://devotel.io
    email: support@devotel.io
  license:
    name: Proprietary
servers:
  - url: https://api.orbit.devotel.io
    description: Production
security:
  - Bearer: []
  - ApiKey: []
tags:
  - name: Messages
    description: >-
      Send and manage messages across all channels (SMS, WhatsApp, RCS, Email,
      Viber, etc.)
  - name: Fax
    description: >-
      List and track fax (MMS/T.38) transmissions on Telnyx-backed fax numbers
      (sending flows through the Messaging API)
  - name: Agents
    description: AI agent creation, configuration, and execution
  - name: Voice
    description: Voice calls, IVR, conferencing, and SIP trunking
  - name: OnCall
    description: On-call rotations and escalation policy planning for incident alerting
  - name: Webhooks
    description: Webhook endpoint management and delivery logs
  - name: Numbers
    description: Phone number search, provisioning, and configuration
  - name: Brand Identity
    description: >-
      Unified cross-channel brand trust posture (10DLC, toll-free, WhatsApp,
      RCS, branded calling, number KYC)
  - name: Contacts
    description: Contact management, segmentation, and lifecycle tracking
  - name: Campaigns
    description: Marketing campaign orchestration and analytics
  - name: Flows
    description: Automation flow builder and execution engine
  - name: Templates
    description: Message template management and approval workflows
  - name: Settings
    description: Organization, channel, and user preference settings
  - name: Verify
    description: OTP generation and verification across channels
  - name: Push
    description: Push notification delivery via FCM and APNs
  - name: Integrations
    description: Third-party service connections and OAuth management
  - name: CDP
    description: >-
      Customer Data Platform — activation surface (CRM object sync, streaming
      destinations, ad-audience activation)
  - name: Files
    description: >-
      Server-to-server media upload, listing, retrieval, and deletion
      (signed-URL backed)
  - name: Commerce
    description: >-
      Omnichannel conversational-commerce — persistent cart + checkout state
      machine, channel-agnostic hosted pay-by-link, native WhatsApp checkout,
      and AP2-style agent payment mandates.
  - name: Sync
    description: >-
      Real-time shared-state primitive (Twilio Sync parity) — Documents, Maps,
      Lists, and ephemeral Streams, with change events relayed over the
      /api/v1/ws/sync WebSocket gateway
  - name: Risk
    description: >-
      Unified cross-channel Trust & Fraud risk scoring — fuses SMS-pumping,
      URL-reputation, Verify Fraud Guard, and Voice Biometrics signals into one
      composite verdict queryable before a send or a call.
  - name: Orby
    description: >-
      In-dashboard Orby operator assistant: streamed assistant turns,
      conversation threads, product knowledge-base search, and the tool-action
      approval gate. Available to signed-in operators only (dashboard session
      auth — API-key requests are rejected).
paths:
  /api/v1/jambonz/ivr-step:
    post:
      summary: Advance the IVR flow after caller input
      description: >-
        Internal jambonz `gather` action-hook that drives the visual IVR
        flow-builder. It fires when a caller responds at an IVR menu node with
        DTMF digits or speech; the handler matches the input against the node's
        branches, walks to the next node in the flow, and returns that node's
        jambonz verbs (another menu, a message, a transfer, or a record step),
        or a hangup when the flow ends or no branch matches. Signed with the
        jambonz webhook HMAC and not intended for direct client use. Fails OPEN
        (continues the walk or hangs up cleanly) on malformed input so a valid
        caller response is never turned into a dropped call.
      parameters:
        - in: query
          name: callSid
          description: jambonz call SID (also accepted in the body as `call_sid`).
          schema:
            type: string
        - in: query
          name: nodeId
          description: Id of the IVR flow node the caller is responding to.
          schema:
            type: string
        - in: query
          name: kind
          description: The kind of step being resumed (e.g. `step`).
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                call_sid:
                  type: string
                  description: jambonz call SID of the IVR leg.
                digits:
                  type: string
                  description: DTMF digits the caller entered.
                speech:
                  type: string
                  description: Recognised speech result, when the node gathers speech.
                reason:
                  type: string
                  description: >-
                    Set by jambonz when the gather completed without a match
                    (e.g. timeout).
            example:
              call_sid: 5f9c3b1a-2d4e-4f6a-8b0c-1e2d3f4a5b6c
              digits: '2'
      responses:
        '200':
          description: >-
            The jambonz verbs for the next IVR node reached by the caller's
            input, or a `hangup` verb when the flow ends or no branch matches.
          content:
            application/json:
              schema:
                type: array
                description: jambonz verb array.
                items:
                  type: object
                  properties:
                    verb:
                      type: string
              example:
                - verb: say
                  text: Connecting you to sales.
                - verb: enqueue
                  name: sales
components:
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Dashboard JWT token from Clerk
    ApiKey:
      type: apiKey
      name: X-API-Key
      in: header
      description: Server-to-server API key (dv_live_sk_*)

````