> ## Documentation Index
> Fetch the complete documentation index at: https://blackbox.dasha.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Register inbound call

> Registers an inbound call that your telephony already holds and returns the SIP destination to bridge it to.
Use this when you own the inbound call flow and decide per call which agent should answer. The call record is
created up front with the supplied variables, so the call ID you receive here is the same ID on the result
webhook, call results and recordings. Bridge the live call to the returned SIP URI and the agent starts.

## Register-then-bridge flow

1. Your telephony receives the inbound call and decides which agent should answer.
2. Call this endpoint with the agent ID, the caller number and any variables the agent needs.
3. Store the returned `callId` and bridge the live call to the returned `sipUri` (`sip:{callId}@sip-reg.blackbox.dasha.ai`).
4. The agent answers as soon as the call arrives. Results arrive on the agent's result webhook with the same `callId`.

## Deadline

`callDeadline` is how long the registration stays valid. If the call is not bridged by then, it is canceled and reported through the result webhook. Default is 10 minutes, maximum 24 hours.

## Response

The response includes the assigned `callId`, the `sipUri` to bridge to, and the stored settings. The call has status `Registered` until the audio arrives.


## OpenAPI

````yaml https://blackbox.dasha.ai/swagger/v1/swagger.json post /api/v1/calls/register
openapi: 3.0.4
info:
  title: Dasha BlackBox Agent API
  description: API for managing AI agents and calls
  contact:
    name: DashaAI Team
    email: support@dasha.ai
  version: v1
servers:
  - url: https://blackbox.dasha.ai
    description: Dasha BlackBox Agent API
security:
  - ApiKey: []
  - OAuth: []
tags:
  - name: ActivityLogs
  - name: Agents
  - name: AgentTestCases
  - name: CallResults
  - name: Calls
  - name: Chats
  - name: Copilot
  - name: CustomerData
  - name: Mcp
  - name: Media
  - name: Misc
  - name: PronunciationDictionaries
  - name: Providers
  - name: SipAliases
  - name: SipCredentials
  - name: SipDomains
  - name: SipPhoneNumbers
  - name: SipRegisterCallWebhook
  - name: TextChat
  - name: TwilioProvider
  - name: Voice
  - name: WebhookTest
  - name: WebIntegrations
  - name: WebSocket
    description: WebSocket endpoints for real-time communication
paths:
  /api/v1/calls/register:
    post:
      tags:
        - Calls
      summary: Register inbound call
      description: >-
        Registers an inbound call that your telephony already holds and returns
        the SIP destination to bridge it to.

        Use this when you own the inbound call flow and decide per call which
        agent should answer. The call record is

        created up front with the supplied variables, so the call ID you receive
        here is the same ID on the result

        webhook, call results and recordings. Bridge the live call to the
        returned SIP URI and the agent starts.
      parameters:
        - name: agentId
          in: query
          description: Agent identifier
          schema:
            type: string
      requestBody:
        description: >-
          Registration details: caller number, called number, variables,
          deadline
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/CallRegisterRequestDto'
              description: >-
                Registration of an inbound call that your telephony already
                holds. Registering creates the call record with its settings
                before the audio arrives, and returns the SIP destination to
                bridge the live call to. The agent starts as soon as the call
                reaches that destination.
          text/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/CallRegisterRequestDto'
              description: >-
                Registration of an inbound call that your telephony already
                holds. Registering creates the call record with its settings
                before the audio arrives, and returns the SIP destination to
                bridge the live call to. The agent starts as soon as the call
                reaches that destination.
          application/*+json:
            schema:
              allOf:
                - $ref: '#/components/schemas/CallRegisterRequestDto'
              description: >-
                Registration of an inbound call that your telephony already
                holds. Registering creates the call record with its settings
                before the audio arrives, and returns the SIP destination to
                bridge the live call to. The agent starts as soon as the call
                reaches that destination.
      responses:
        '201':
          description: Call registered successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallRegisterResponseDto'
        '400':
          description: >-
            Invalid configuration, validation errors, or deadline beyond the
            allowed maximum
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Authentication failed or API key is missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Access denied or agent not accessible
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Agent with specified ID does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '500':
          description: Server error occurred during call registration
        '501':
          description: Register call is not configured on this deployment
components:
  schemas:
    CallRegisterRequestDto:
      required:
        - fromNumber
      type: object
      properties:
        fromNumber:
          minLength: 1
          type: string
          description: >-
            Number of the original caller (E.164 recommended). Stored as the
            call endpoint and reported back on every webhook for this call.
        toNumber:
          type: string
          description: Number that received the inbound call. Optional, informational only.
          default: null
          nullable: true
        additionalData:
          type: object
          additionalProperties: {}
          description: >-
            Data for variable interpolation in agent prompts. Values can be
            referenced in prompts using {{variableName}} syntax. Merged with the
            agent's AdditionalData.
          nullable: true
        callDeadline:
          type: string
          description: >-
            Time until which the registration stays valid. If the call has not
            been bridged to the SIP destination by then, the registration is
            canceled and reported through the result webhook. Defaults to 10
            minutes after registration; cannot exceed 24 hours.
          format: date-time
          default: null
          nullable: true
        sipDomainId:
          type: string
          description: >-
            Identifier of one of your verified custom SIP domains (see
            /api/v1/sip-domains). When set, the returned SIP URI uses that
            domain instead of the shared Dasha domain. The domain must be
            Active.
          format: uuid
          default: null
          nullable: true
      additionalProperties: false
      description: >-
        Registration of an inbound call that your telephony already holds.
        Registering creates the call record with its settings before the audio
        arrives, and returns the SIP destination to bridge the live call to. The
        agent starts as soon as the call reaches that destination.
    CallRegisterResponseDto:
      required:
        - agentId
        - callDeadline
        - callId
        - createdTime
        - direction
        - fromNumber
        - orgId
        - sipUri
        - status
      type: object
      properties:
        callId:
          minLength: 1
          type: string
          description: >-
            Unique identifier for this call. Same value on the result webhook,
            in call results, and in the SIP URI user part.
        sipUri:
          minLength: 1
          type: string
          description: >-
            SIP destination to bridge the live call to, in the form
            sip:{callId}@{domain}.
        sipDomainId:
          type: string
          description: >-
            Custom SIP domain used for the SIP URI, when one was requested. Null
            when the shared Dasha domain is used.
          format: uuid
          nullable: true
        orgId:
          minLength: 1
          type: string
          description: Organization that owns this call.
        agentId:
          minLength: 1
          type: string
          description: Agent that will handle this call.
        fromNumber:
          minLength: 1
          type: string
          description: Number of the original caller, as supplied at registration.
        toNumber:
          type: string
          description: Number that received the inbound call, as supplied at registration.
          nullable: true
        additionalData:
          type: object
          additionalProperties: {}
          description: >-
            Data for variable interpolation in agent prompts, as supplied at
            registration.
          nullable: true
        status:
          allOf:
            - $ref: '#/components/schemas/CallStatus'
          description: >-
            Current status. A fresh registration is Registered; it becomes
            Running when the call reaches the SIP destination and Canceled if
            the deadline passes first.
        direction:
          allOf:
            - $ref: '#/components/schemas/CallDirection'
          description: Always Inbound for registered calls.
        callDeadline:
          type: string
          description: Time until which the registration stays valid.
          format: date-time
        createdTime:
          type: string
          description: Timestamp when the call was registered.
          format: date-time
      additionalProperties: false
      description: >-
        Response after registering an inbound call. Store the call ID: it is the
        correlation key on every webhook and call result for this call. Bridge
        the live call to the SIP URI to start the agent.
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    CallStatus:
      enum:
        - Unknown
        - Created
        - Pending
        - Queued
        - Completed
        - Failed
        - Canceled
        - Running
        - Registered
      type: string
      description: >-
        Current status of a call in its lifecycle. Tracks the call's progress
        from creation through completion or failure.
    CallDirection:
      enum:
        - Outbound
        - Inbound
      type: string
      description: >-
        Direction of a call relative to the agent. Outbound calls are dialed by
        the scheduler; inbound calls are registered in advance and bridged to
        the agent by the customer's telephony.
  securitySchemes:
    ApiKey:
      type: http
      description: API Key Authentication (Bearer {key})
      scheme: Bearer
    OAuth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://auth.dasha.ai/connect/authorize
          scopes:
            platform_api: Platform API

````