This page walks you through dialing a single PSTN number from your laptop. We’ll use Python here — every other SDK is documented under SDKs with the same shape.

1. Get credentials

Every SDK loads a JSON service-account file pointed at by the TELEQUICK_CREDENTIALS environment variable. The file looks like:
{
  "tenant_id": "your-tenant",
  "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----",
  "private_key_id": "kid-1"
}
Drop it somewhere safe and export the path:
export TELEQUICK_CREDENTIALS=/path/to/service-account.json

2. Install the SDK

pip install telequick
Native runtimes (Python, Go, Rust, Java, .NET) load telequick_core_ffi.so / .dylib / .dll from disk. Either install it via the bundled package or point TELEQUICK_LIB_PATH at a custom path.

3. Dial

import asyncio
from telequick.client import TeleQuickClient

async def main():
    client = TeleQuickClient(
        endpoint="quic://engine.telequick.dev:9090",
        service_account_path="/path/to/service-account.json",
    )

    async with client.connect_async():
        await client.dial(
            to="sip:+15551234567@example.sip.livekit.cloud",
            trunk_id="default",
            call_from="+18005550100",
            max_duration_ms=60_000,
        )
        await asyncio.sleep(30)  # let events stream in

asyncio.run(main())
What just happened:
  1. The SDK opened a QUIC session with ALPN h3 to the gateway.
  2. It serialized an OriginateRequest envelope and sent it on a fresh bidirectional stream prefixed with [u32 length][u32 method_id=Originate].
  3. The gateway replied on a server-initiated unidirectional stream with CallEvent envelopes (CHANNEL_CREATE → CHANNEL_ANSWER → … → CHANNEL_HANGUP).

4. Receive audio

Hook the audio callback and the SDK delivers each AudioFrame on the same QUIC session:
def on_audio(payload_bytes):
    pcm = client.deserialize_audio_frame(payload_bytes)
    # pcm is raw G.711 µ-law bytes; do whatever you want with it
    ...

client.on_audio_frame = on_audio

Next steps

Architecture

How the gateway, the C++ core, and the SDK FFI fit together.

Authentication

Service accounts, JWT signing, and tenant scoping.

Raw RPC Format

Skip the SDK and talk to the gateway directly.

SDK Reference

Method-by-method docs for every language.