Mavenir · Arazzo Workflow

Place and manage a 1-1 VVoIP call (Mavenir BYON)

Version 1.0.0

Originate a one-to-one voice/video session on a Mavenir BYON call handling deployment, read it back, drive it to Connected, then terminate it. Every operationId is verified against openapi/mavenir-byon-call-handling-openapi.yml. This workflow cannot be run against Mavenir — the spec templates {apiRoot} with a http://localhost:9091 default, so it must be pointed at an operator's WebRTC Gateway deployment. The companion RACM spec is not referenced as a source because it declares no operationIds.

1 workflow 1 source API 1 provider
View Spec View on GitHub TelecommunicationsUnited StatesNetwork VendorNetwork APIsCAMARAOpen GatewayBSSOSSTM ForumOpen RAN5GIMSMessagingNetwork Exposure FunctionStandardsArazzoWorkflows

Provider

mavenir

Workflows

place-and-manage-vvoip-call
Create a VVoIP session, check it, update its status, and end it.
Requires a clientId already minted by the RACM registration flow and an HTTP Bearer access token from the operator's auth server. transactionId is required on every step. clientCorrelator makes step 1 safely retryable.
4 steps inputs: answerSdp, clientCorrelator, clientId, offerSdp, originatorAddress, originatorName, receiverAddress, receiverName outputs: finalStatus, resourceUrl
1
create-session
Originate the 1-1 voice/video session with an SDP offer.
2
get-session
Read the session back. Use the resourceUrl from step 1 rather than building a URL.
3
connect-session
Move the session to Connected with the SDP answer (SIP responseCode 200). Mirrors the exMT200 example in the spec.
4
end-session
Cancel, decline or terminate the session. SAFETY-CRITICAL — this drops a live call. See agentic-access/mavenir-agentic-access.yml.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Place and manage a 1-1 VVoIP call (Mavenir BYON)
  version: 1.0.0
  description: >-
    Originate a one-to-one voice/video session on a Mavenir BYON call handling
    deployment, read it back, drive it to Connected, then terminate it. Every
    operationId is verified against
    openapi/mavenir-byon-call-handling-openapi.yml. This workflow cannot be run
    against Mavenir — the spec templates {apiRoot} with a http://localhost:9091
    default, so it must be pointed at an operator's WebRTC Gateway deployment. The
    companion RACM spec is not referenced as a source because it declares no
    operationIds.
sourceDescriptions:
- name: onetoonecallApi
  url: ../openapi/mavenir-onetoonecall-api-openapi.yml
  type: openapi
workflows:
- workflowId: place-and-manage-vvoip-call
  summary: Create a VVoIP session, check it, update its status, and end it.
  description: >-
    Requires a clientId already minted by the RACM registration flow and an HTTP
    Bearer access token from the operator's auth server. transactionId is required
    on every step. clientCorrelator makes step 1 safely retryable.
  inputs:
    type: object
    required:
    - clientId
    - originatorAddress
    - receiverAddress
    - offerSdp
    properties:
      clientId:
        type: string
        description: Client Id assigned by the WebRTC Gateway during RACM registration.
      originatorAddress:
        type: string
        description: 'Originator URI, e.g. tel:+911234567890'
      receiverAddress:
        type: string
        description: 'Receiver URI, e.g. tel:+911234567891'
      originatorName:
        type: string
      receiverName:
        type: string
      offerSdp:
        type: string
        description: Inline SDP offer (RFC 4566).
      answerSdp:
        type: string
        description: Inline SDP answer used when moving the session to Connected.
      clientCorrelator:
        type: string
        description: Client-generated UUID; the gateway returns it unaltered.
  steps:
  - stepId: create-session
    description: Originate the 1-1 voice/video session with an SDP offer.
    operationId: $sourceDescriptions.onetoonecallApi.postSessions
    parameters:
    - name: transactionId
      in: header
      value: $inputs.clientCorrelator
    - name: clientId
      in: header
      value: $inputs.clientId
    requestBody:
      contentType: application/json
      payload:
        originatorAddress: $inputs.originatorAddress
        originatorName: $inputs.originatorName
        receiverAddress: $inputs.receiverAddress
        receiverName: $inputs.receiverName
        offer:
          sdp: $inputs.offerSdp
        clientCorrelator: $inputs.clientCorrelator
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      resourceUrl: $response.body#/resourceUrl
      status: $response.body#/status
  - stepId: get-session
    description: Read the session back. Use the resourceUrl from step 1 rather than building a URL.
    operationId: $sourceDescriptions.onetoonecallApi.getSessionDetailsById
    parameters:
    - name: transactionId
      in: header
      value: $inputs.clientCorrelator
    - name: clientId
      in: header
      value: $inputs.clientId
    - name: sessionId
      in: path
      value: $steps.create-session.outputs.resourceUrl
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      currentStatus: $response.body#/status
  - stepId: connect-session
    description: >-
      Move the session to Connected with the SDP answer (SIP responseCode 200).
      Mirrors the exMT200 example in the spec.
    operationId: $sourceDescriptions.onetoonecallApi.postSessionStatus
    parameters:
    - name: transactionId
      in: header
      value: $inputs.clientCorrelator
    - name: clientId
      in: header
      value: $inputs.clientId
    - name: sessionId
      in: path
      value: $steps.create-session.outputs.resourceUrl
    requestBody:
      contentType: application/json
      payload:
        status: Connected
        responseCode: 200
        answer:
          sdp: $inputs.answerSdp
    successCriteria:
    - condition: $statusCode == 200
  - stepId: end-session
    description: >-
      Cancel, decline or terminate the session. SAFETY-CRITICAL — this drops a live
      call. See agentic-access/mavenir-agentic-access.yml.
    operationId: $sourceDescriptions.onetoonecallApi.deleteSessionById
    parameters:
    - name: transactionId
      in: header
      value: $inputs.clientCorrelator
    - name: clientId
      in: header
      value: $inputs.clientId
    - name: sessionId
      in: path
      value: $steps.create-session.outputs.resourceUrl
    successCriteria:
    - condition: $statusCode == 204
  outputs:
    resourceUrl: $steps.create-session.outputs.resourceUrl
    finalStatus: $steps.get-session.outputs.currentStatus

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/mavenir-byon-place-and-manage-call"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.