Inbound Testing

Inbound Testing

Use this checklist to validate end-to-end inbound calling.

0) Prerequisites

  • LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET
  • An inbound number / trunk configured

Provider-specific SIP examples (Twilio, Telnyx, Plivo, Wavix): Provider-specific quickstarts

Related:

1) Run your agent worker

from dotenv import load_dotenv
from siphon.agent import Agent
from siphon.plugins import openai, cartesia, deepgram

load_dotenv()

agent = Agent(
    agent_name="CustomerSupport",
    llm=openai.LLM(),
    tts=cartesia.TTS(),
    stt=deepgram.STT(),
    system_instructions="You are a helpful customer support agent.",
    send_greeting=True,
    greeting_instructions="Thanks for calling. How can I help?",
)

if __name__ == "__main__":
    agent.dev()

2) Create (or verify) the dispatch rule

Create a dispatch rule once (or confirm it already exists):

If you need to set up or confirm a trunk/number:

3) Place a real phone call

Call the phone number associated with your inbound trunk.

Expected behavior:

  • The call is routed to your running worker.
  • If greetings are enabled, you should hear a greeting.

Troubleshooting

  • Verify LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET are set.
  • Ensure your agent_name matches between:
    • the worker (Agent(agent_name=...))
    • the dispatch (Dispatch(agent_name=...))