JARVIS HUB
INITIALIZING...
JARVIS HUB v1.0 — STARTUP SEQUENCE

Voice

STREAM SERVER DOWN
// TWILIO VOICE + MEDIA STREAMS
VOICE STREAM SERVER (port 3337)
Process
DOWN
STT (Deepgram)
OFF
TTS (OpenAI)
OFF
Port
3337

To enable full voice:

Add to .env on jarvis-db: DEEPGRAM_API_KEY=... OPENAI_API_KEY=...

Restart: launchctl stop com.jarvis.voice-stream && launchctl start com.jarvis.voice-stream

TWILIO VOICE ACCOUNTS
No Twilio accounts configured. Add one in Channels.
TWILIO CONFIGURATION
Voice Webhook URL (Twilio Console → Phone Number → Voice)
https://<tunnel>/api/channels/twilio/<accountId>/voice
TwiML Flow: Answer + Stream
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say>Hello, this is Jarvis. How can I help?</Say>
  <Connect>
    <Stream url="wss://YOUR_TUNNEL:3337/media" />
  </Connect>
</Response>
SMS/WhatsApp Webhook URL
https://<tunnel>/api/channels/twilio/<accountId>
CALL FLOW

1. Caller dials Twilio number

2. Twilio POSTs to voice webhook → returns TwiML with Gather or Connect/Stream

3a. Gather mode (simple): Twilio transcribes speech and POSTs SpeechResult → Claude answers → TTS via Say

3b. Stream mode (low latency): Twilio streams μ-law audio to WS :3337 → Deepgram STT → Claude → OpenAI TTS → back to Twilio

4. Response sent via outbound message or TwiML redirect