- Phone audio as it is: G.711 µ-law or A-law at 8 kHz in, the same format back, as binary WebSocket frames.
- Callers can talk over Nur and it stops; it waits through their pauses instead of cutting in.
- Your systems as tools. Nur looks up an order or books a slot through functions your bridge runs, and passes the call to a person through one you define.
- What the caller said and Nur’s words, as events on the same socket.
- Arabic dialects and more than a hundred languages, switching when the caller does.
Run it
answer(call) handles one call. call is your phone system’s side of it:
the caller’s audio as it arrives, and a way to play, stop and transfer.
bridge.py
{"type": "audio/pcma"} for A-law. Send audio at the pace the call
produces it: Nur hears the end of a turn from the timing.
Make it yours
- Look things up. Add function tools such as
check_orderand answer each call with its result, thenresponse.create. See Tools and MCP servers. - Say a disclosure word for word. A
force_messagewith"interruptible": falseplays before anything the caller says is heard. See Scripted lines. - Names and product words. List them in
audio.input.transcription.keytermsso the transcript expects them. - Keep the record.
conversation.item.input_audio_transcription.completedcarries each caller turn as text, andresponse.output_audio_transcript.doneeach of Nur’s. - Call customers back. Nur can also place calls itself. See Phone calls.
Next
Live conversation
Session settings, binary audio, interruptions and every event.
Tools and MCP servers
Functions your bridge runs, and servers EESI runs for you.
Voices
Built-in voices, or a clone of your brand’s own.
Phone calls
Nur places a call and holds the conversation you describe.