Mavenir · AsyncAPI Specification

Mavenir Byon Events

Version

View Spec View on GitHub TelecommunicationsUnited StatesNetwork VendorNetwork APIsCAMARAOpen GatewayBSSOSSTM ForumOpen RAN5GIMSMessagingNetwork Exposure FunctionStandardsAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-07-25'
method: derived
source: openapi/mavenir-byon-call-handling-openapi.yml, openapi/mavenir-byon-racm-openapi.yml
spec_type: none
surface: websocket + web-push
note: >-
  Mavenir publishes no AsyncAPI document and no webhook catalog — there is no
  developer portal to publish one on. There IS, however, a real and fully specified
  asynchronous surface inside the two Mavenir-authored BYON definitions: a RACM
  session hands the client a WebSocket channel URL, the client registers a device
  push token for out-of-band wakeup, and the gateway then pushes session
  invitation and session status notifications whose payload schemas are declared in
  the call handling spec. Those notification schemas are declared but never bound
  to an operation or a callback in the OpenAPI, so the transport binding below is
  read from the RACM channel contract rather than from a channel declaration. No
  AsyncAPI document is generated here because the channel address, protocol version
  and message envelope are not published — deriving one would mean inventing them.
channels:
- name: notification-channel
  protocol: websocket
  address: 'runtime — RacmResponse.notificationChannelInformation.channelURL'
  direction: gateway-to-client
  established_by: 'openapi/mavenir-byon-racm-openapi.yml#POST /session'
  description: >-
    "The channel url which client need to use for WebSocket creation." The client
    opens this WebSocket after RACM registration and receives call notifications on
    it for the life of the session.
  source: 'openapi/mavenir-byon-racm-openapi.yml#/components/schemas/NotificationChannelInformation'
- name: device-push
  protocol: web-push-fcm
  address: 'external — Firebase Cloud Messaging (client-supplied registration token)'
  direction: network-to-device
  established_by: 'openapi/mavenir-byon-racm-openapi.yml#POST /push'
  description: >-
    Optional. The client provides a device token (deviceId, OSName, OSVersion,
    appName, BundleID, WebToken) so the network can wake the device. The spec notes
    "This is an Optional API, the client could use any external mechanism to update
    the PNS server" and that Chrome browser Web Push is currently supported, with
    desktop Electron and other browsers planned.
  source: 'openapi/mavenir-byon-racm-openapi.yml#/components/schemas/PushInformation'
messages:
- name: SessionInvitationNotification
  direction: gateway-to-client
  trigger: an inbound 1-1 call is offered to this client (termination)
  schema: 'openapi/mavenir-byon-call-handling-openapi.yml#/components/schemas/SessionInvitationNotification'
  required:
  - originatorAddress
  fields:
  - originatorAddress
  - originatorName
  - receiverAddress
  - receiverName
  - offer
  - answer
  - callObjectRef
  - serverCorrelator
  note: >-
    Carries the resourceUrl the client must use to answer — the spec instructs
    clients to take the URL from the invitation notification on termination rather
    than constructing it.
- name: SessionStatusNotification
  direction: gateway-to-client
  trigger: the state of an established or in-progress session changes
  schema: 'openapi/mavenir-byon-call-handling-openapi.yml#/components/schemas/SessionStatusNotification'
  required:
  - status
  fields:
  - status
  - responseCode
  - offer
  - answer
  - receiverName
  - receiverAddress
  - callObjectRef
  - offerRequired
  - serverCorrelator
  - reason
  - sequenceNumber
  note: >-
    responseCode carries the corresponding SIP response code, mainly for
    provisional responses (180, 183, 200). offerRequired set true means the update
    arrived without SDP and the client must send an offer.
event_types:
  source: 'openapi/mavenir-byon-call-handling-openapi.yml#/components/schemas/SessionStatus'
  note: The notification status field is the event type. Enumerated values are fixed by the spec.
  values:
  - Initial
  - InProgress
  - Ringing
  - Proceeding
  - Connected
  - Terminated
  - Hold
  - Resume
  - SessionCancelled
  - Declined
  - Failed
  - Waiting
  - NoAnswer
  - NotReachable
  - Busy
webhooks:
  http_callbacks: false
  note: >-
    There are no HTTP webhooks. Anything integrating with this surface must hold a
    WebSocket open or rely on device push; a server-to-server callback URL is not
    part of the contract.
gaps:
- No AsyncAPI document published by Mavenir.
- Notification schemas are declared in components but never bound to a channel, callback or webhook in the OpenAPI.
- No message envelope, WebSocket subprotocol or framing is specified.
- No delivery guarantee, ordering guarantee or replay mechanism is documented; sequenceNumber exists but its semantics are not defined.
- The CAMARA WebRTC events/subscriptions API that Mavenir co-maintains uses CloudEvents-based subscriptions — a standards artifact, not this Mavenir surface.