Audio Streaming with FreeClimb

Understand what Audio Streaming is, how it works, and when to use it to build smarter, faster voice applications with FreeClimb.

Audio Streaming gives your application direct, real-time access to call audio by establishing a persistent gRPC connection with FreeClimb. Unlike traditional FreeClimb workflows that rely on PerCL commands or REST APIs, Audio Streaming uses a different interaction model. Once active, your app communicates directly with the audio stream, and no further PerCL commands are exchanged.

This approach is designed for advanced voice applications that require low latency, continuous audio exchange, and greater control over how audio is processed.

How Audio Streaming Works

When a call is connected to your FreeClimb application, you can use a PerCL command to initiate Audio Streaming. This command instructs FreeClimb to establish a bidirectional gRPC stream with your application.

Once the stream is active, FreeClimb begins sending audio packets to your gRPC server, and your application has the option to respond with audio as well. This direct channel replaces the usual PerCL-based flow and no further commands are issued from FreeClimb during the streaming session.

Your application is now in full control of the audio interaction. It is responsible for handling incoming audio, managing any outbound responses, and following the requirements defined in the FreeClimb gRPC specification.

Call Flow at a Glance

The diagram below illustrates the flow of a call using Audio Streaming:

Flow chart illustration of a call using Audio Streaming with FreeClimb
  1. A customer places a SIP call.
  2. FreeClimb receives the call and sends a PerCL request.
  3. Your application responds with PerCL that starts audio streaming.
  4. FreeClimb establishes a gRPC connection with your application.
  5. Audio is streamed in real time between FreeClimb and your server.
  6. The connection is maintained until the call ends or streaming is stopped.

When to Use Audio Streaming

Audio Streaming is designed for scenarios where your application needs continuous, real-time access to call audio. It bypasses the traditional PerCL model and hands control of the audio flow directly to your system.

It’s a good fit when:

  • Your application requires low-latency audio processing.
  • You need full control over how audio is received, interpreted, or responded to.
  • You want to maintain a persistent, bidirectional connection throughout the call.

What to Know Before You Start

Before using Audio Streaming, make sure your application is prepared for the following:

  • It must run a gRPC-compatible server that implements the FreeClimb Audio Streaming protocol.
  • Once streaming begins, PerCL command flow is paused, and your app becomes fully responsible for audio handling.
  • The connection must be bidirectional and responsive to avoid dropped sessions or delays.
  • Security and performance tuning are essential for production environments.