Cisco Voice Portal Call Control API

Provides programmatic access to call control functions on the CVP Call Server including active call management, call routing, transfers, SIP session monitoring, and health status of the call processing component.

OpenAPI Specification

cisco-voice-portal-call-control-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Cisco Voice Portal Call Control API
  description: >-
    The Cisco Unified Customer Voice Portal (CVP) Call Control API provides
    programmatic access to call control functions on the CVP Call Server. The
    Call Server is the SIP-based call control component that manages call
    routing, transfers, and session management within the CVP deployment. It
    integrates with Cisco Unified ICM/UCCE for intelligent call routing and
    with Cisco Unified Communications Manager (CUCM) for agent delivery. This
    API exposes management and monitoring operations for active call sessions
    and call routing configuration on the Call Server component, typically
    accessible on port 8000.
  version: 12.6.0
  contact:
    name: Cisco Developer Support
    url: https://developer.cisco.com/
  license:
    name: Cisco DevNet
    url: https://developer.cisco.com/site/license/
  x-provider: cisco
  x-product: unified-customer-voice-portal
servers:
- url: https://{call-server}:8000/cvp/rest
  description: CVP Call Server REST management interface
  variables:
    call-server:
      default: cvp-callserver.example.com
      description: Hostname or IP of the CVP Call Server
paths:
  /call:
    get:
      operationId: listActiveCalls
      summary: Cisco Voice Portal List Active Calls
      description: >-
        Retrieves a list of all currently active calls on this Call Server.
        Each entry includes the call GUID, current state, and associated
        SIP session information.
      tags:
      - Call Management
      parameters:
      - name: state
        in: query
        description: Filter by call state
        schema:
          type: string
          enum:
          - ringing
          - connected
          - queued
          - self_service
          - transferring
      - name: calledNumber
        in: query
        description: Filter by DNIS
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          default: 100
          maximum: 1000
      responses:
        '200':
          description: List of active calls
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalActiveCalls:
                    type: integer
                  calls:
                    type: array
                    items:
                      $ref: '#/components/schemas/ActiveCall'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /call/{callGuid}:
    get:
      operationId: getCallDetails
      summary: Cisco Voice Portal Get Active Call Details
      description: >-
        Retrieves detailed information about a specific active call, including
        SIP session details, current state, call variables, and routing
        information.
      tags:
      - Call Management
      parameters:
      - $ref: '#/components/parameters/CallGuid'
      responses:
        '200':
          description: Call details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActiveCallDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Call not found or no longer active
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /call/{callGuid}/transfer:
    post:
      operationId: transferCall
      summary: Cisco Voice Portal Transfer an Active Call
      description: >-
        Initiates a transfer of an active call to a specified destination. The
        transfer can be a blind transfer or a consultation transfer. This
        operation sends the appropriate SIP REFER or re-INVITE to execute
        the transfer.
      tags:
      - Call Management
      parameters:
      - $ref: '#/components/parameters/CallGuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferRequest'
      responses:
        '202':
          description: Transfer initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallOperationResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Call not found or no longer active
        '409':
          description: Call is in a state that does not allow transfer
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /call/{callGuid}/terminate:
    post:
      operationId: terminateCall
      summary: Cisco Voice Portal Terminate an Active Call
      description: >-
        Terminates an active call by sending a SIP BYE request. The call is
        disconnected and a CDR is generated.
      tags:
      - Call Management
      parameters:
      - $ref: '#/components/parameters/CallGuid'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
                  description: Reason for termination
                  enum:
                  - administrative
                  - timeout
                  - error
                  - requested
      responses:
        '200':
          description: Call terminated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallOperationResult'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Call not found or already terminated
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /call/{callGuid}/variables:
    get:
      operationId: getCallVariables
      summary: Cisco Voice Portal Get Call Variables
      description: >-
        Retrieves the Expanded Call Context (ECC) variables and peripheral
        variables associated with an active call. These variables carry
        data between CVP, ICM, and the VXML application.
      tags:
      - Call Management
      parameters:
      - $ref: '#/components/parameters/CallGuid'
      responses:
        '200':
          description: Call variables
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallVariables'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Call not found
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: setCallVariables
      summary: Cisco Voice Portal Set Call Variables
      description: >-
        Sets or updates ECC variables on an active call. These variables
        are passed to the VXML application and to ICM for routing decisions.
      tags:
      - Call Management
      parameters:
      - $ref: '#/components/parameters/CallGuid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallVariablesUpdate'
      responses:
        '200':
          description: Variables updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallVariables'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Call not found
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /routing/lookup:
    post:
      operationId: routingLookup
      summary: Cisco Voice Portal Perform a Routing Lookup
      description: >-
        Performs a routing lookup to determine the call treatment for a given
        dialed number. This queries the configured dialed number patterns
        and returns the routing decision without initiating an actual call.
        Useful for testing and validation.
      tags:
      - Call Routing
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - dialedNumber
              properties:
                dialedNumber:
                  type: string
                  description: The dialed number to look up
                callingNumber:
                  type: string
                  description: Optional calling number for context
      responses:
        '200':
          description: Routing lookup result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoutingResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sip/session:
    get:
      operationId: listSipSessions
      summary: Cisco Voice Portal List Active Sip Sessions
      description: >-
        Retrieves information about active SIP sessions (dialogs) on the Call
        Server. Each SIP session corresponds to an active call leg.
      tags:
      - SIP Sessions
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
          default: 100
      responses:
        '200':
          description: Active SIP sessions
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalSessions:
                    type: integer
                  sessions:
                    type: array
                    items:
                      $ref: '#/components/schemas/SipSession'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sip/session/{sessionId}:
    get:
      operationId: getSipSession
      summary: Cisco Voice Portal Get Sip Session Details
      description: >-
        Retrieves detailed SIP session information including SIP headers,
        dialog state, and associated call GUID.
      tags:
      - SIP Sessions
      parameters:
      - name: sessionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: SIP session details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SipSessionDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Session not found
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /health:
    get:
      operationId: getCallServerHealth
      summary: Cisco Voice Portal Get Call Server Health Status
      description: >-
        Retrieves the health and resource status of the Call Server, including
        active call count, SIP stack status, and connectivity to upstream
        components (ICM, CUCM, VXML Server).
      tags:
      - Health
      responses:
        '200':
          description: Call Server health status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthStatus'
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /health/connectivity:
    get:
      operationId: getConnectivityStatus
      summary: Cisco Voice Portal Get Connectivity Status to Upstream Components
      description: >-
        Checks and reports the connectivity status to all configured upstream
        components including ICM/UCCE, CUCM clusters, VXML Servers, and
        Reporting Server.
      tags:
      - Health
      responses:
        '200':
          description: Connectivity status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectivityStatus'
        '500':
          $ref: '#/components/responses/InternalError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication using CVP Call Server credentials
  parameters:
    CallGuid:
      name: callGuid
      in: path
      required: true
      description: Globally unique call identifier
      schema:
        type: string
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required or credentials invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    ActiveCall:
      type: object
      properties:
        callGuid:
          type: string
          description: Globally unique call identifier
          example: '500123'
        state:
          type: string
          enum:
          - ringing
          - connected
          - queued
          - self_service
          - transferring
          - on_hold
          example: ringing
        callingNumber:
          type: string
          description: Caller ANI
          example: example_value
        calledNumber:
          type: string
          description: Called DNIS
          example: example_value
        startTime:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        duration:
          type: integer
          description: Current call duration in seconds
          example: 10
        applicationName:
          type: string
          description: Current VXML application handling the call
          example: example_value
    ActiveCallDetail:
      type: object
      properties:
        callGuid:
          type: string
          example: '500123'
        state:
          type: string
          enum:
          - ringing
          - connected
          - queued
          - self_service
          - transferring
          - on_hold
          example: ringing
        callingNumber:
          type: string
          example: example_value
        calledNumber:
          type: string
          example: example_value
        startTime:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        duration:
          type: integer
          example: 10
        applicationName:
          type: string
          example: example_value
        sipCallId:
          type: string
          description: SIP Call-ID
          example: '500123'
        sipFromTag:
          type: string
          example: example_value
        sipToTag:
          type: string
          example: example_value
        icmRouteResult:
          type: object
          properties:
            routeLabel:
              type: string
            skillGroup:
              type: string
            agentId:
              type: string
          example: example_value
        vxmlServer:
          type: string
          description: VXML Server currently handling the call
          example: example_value
        callHistory:
          type: array
          items:
            type: object
            properties:
              timestamp:
                type: string
                format: date-time
              event:
                type: string
              details:
                type: string
          description: Chronological list of call events
          example: []
        eccVariables:
          type: object
          additionalProperties:
            type: string
          example: example_value
    TransferRequest:
      type: object
      required:
      - destination
      properties:
        destination:
          type: string
          description: >-
            Transfer destination (phone number, SIP URI, or agent extension)
          example: example_value
        transferType:
          type: string
          enum:
          - blind
          - consultation
          default: blind
          description: Type of transfer
          example: blind
        label:
          type: string
          description: >-
            ICM label for the transfer destination. Used when routing through
            ICM/UCCE.
          example: Example Title
        eccVariables:
          type: object
          additionalProperties:
            type: string
          description: ECC variables to pass with the transfer
          example: example_value
    CallOperationResult:
      type: object
      properties:
        callGuid:
          type: string
          example: '500123'
        operation:
          type: string
          example: example_value
        status:
          type: string
          enum:
          - success
          - pending
          - failed
          example: success
        message:
          type: string
          example: example_value
        timestamp:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    CallVariables:
      type: object
      properties:
        callGuid:
          type: string
          example: '500123'
        eccVariables:
          type: object
          additionalProperties:
            type: string
          description: Expanded Call Context variables
          example: example_value
        peripheralVariables:
          type: object
          properties:
            peripheral1:
              type: string
            peripheral2:
              type: string
            peripheral3:
              type: string
            peripheral4:
              type: string
            peripheral5:
              type: string
            peripheral6:
              type: string
            peripheral7:
              type: string
            peripheral8:
              type: string
            peripheral9:
              type: string
            peripheral10:
              type: string
          description: ICM peripheral variables (1-10)
          example: example_value
        callVariables:
          type: object
          properties:
            callVariable1:
              type: string
            callVariable2:
              type: string
            callVariable3:
              type: string
            callVariable4:
              type: string
            callVariable5:
              type: string
            callVariable6:
              type: string
            callVariable7:
              type: string
            callVariable8:
              type: string
            callVariable9:
              type: string
            callVariable10:
              type: string
          description: ICM call variables (1-10)
          example: example_value
    CallVariablesUpdate:
      type: object
      properties:
        eccVariables:
          type: object
          additionalProperties:
            type: string
          example: example_value
        peripheralVariables:
          type: object
          additionalProperties:
            type: string
          example: example_value
        callVariables:
          type: object
          additionalProperties:
            type: string
          example: example_value
    RoutingResult:
      type: object
      properties:
        dialedNumber:
          type: string
          example: example_value
        matched:
          type: boolean
          description: Whether a matching pattern was found
          example: true
        matchedPattern:
          type: string
          description: The dialed number pattern that matched
          example: example_value
        callType:
          type: string
          enum:
          - preroute
          - translation_route
          - post_route
          example: preroute
        applicationName:
          type: string
          description: Application that would handle the call
          example: example_value
        routeDestination:
          type: string
          description: Resulting route destination
          example: example_value
    SipSession:
      type: object
      properties:
        sessionId:
          type: string
          example: '500123'
        callId:
          type: string
          description: SIP Call-ID
          example: '500123'
        callGuid:
          type: string
          description: Associated CVP call GUID
          example: '500123'
        state:
          type: string
          enum:
          - initial
          - early
          - confirmed
          - terminated
          example: initial
        method:
          type: string
          description: Initial SIP method (INVITE)
          example: example_value
        fromUri:
          type: string
          example: example_value
        toUri:
          type: string
          example: example_value
        startTime:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    SipSessionDetail:
      type: object
      properties:
        sessionId:
          type: string
          example: '500123'
        callId:
          type: string
          example: '500123'
        callGuid:
          type: string
          example: '500123'
        state:
          type: string
          example: example_value
        fromUri:
          type: string
          example: example_value
        toUri:
          type: string
          example: example_value
        fromTag:
          type: string
          example: example_value
        toTag:
          type: string
          example: example_value
        cseq:
          type: integer
          example: 10
        transport:
          type: string
          enum:
          - UDP
          - TCP
          - TLS
          example: UDP
        localAddress:
          type: string
          example: example_value
        remoteAddress:
          type: string
          example: example_value
        startTime:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        lastActivityTime:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    HealthStatus:
      type: object
      properties:
        serverName:
          type: string
          example: example_value
        status:
          type: string
          enum:
          - healthy
          - degraded
          - unhealthy
          example: healthy
        uptime:
          type: string
          description: Server uptime duration
          example: example_value
        version:
          type: string
          example: example_value
        activeCalls:
          type: integer
          example: 10
        maxCalls:
          type: integer
          description: Maximum concurrent call capacity
          example: 10
        sipStackStatus:
          type: string
          enum:
          - running
          - stopped
          - error
          example: running
        cpuUsage:
          type: number
          format: float
          example: 42.5
        memoryUsage:
          type: number
          format: float
          example: 42.5
        timestamp:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    ConnectivityStatus:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        connections:
          type: array
          items:
            type: object
            properties:
              component:
                type: string
                enum:
                - ICM
                - CUCM
                - VXMLServer
                - ReportingServer
                - MediaServer
              hostname:
                type: string
              ipAddress:
                type: string
              port:
                type: integer
              status:
                type: string
                enum:
                - connected
                - disconnected
                - timeout
                - error
              latency:
                type: integer
                description: Connection latency in milliseconds
              lastSuccessfulContact:
                type: string
                format: date-time
          example: []
    Error:
      type: object
      properties:
        code:
          type: string
          example: example_value
        message:
          type: string
          example: example_value
        details:
          type: string
          example: example_value
        timestamp:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
security:
- basicAuth: []
tags:
- name: Call Management
  description: Manage and control active calls
- name: Call Routing
  description: Call routing lookup and testing
- name: Health
  description: Call Server health and connectivity status
- name: SIP Sessions
  description: Monitor SIP session details