?key=YOUR_KEY on the URL, or the X-Auth header. 401 when the key is missing or wrong. 503 when honeypot is false in GET /api/voice/capabilities or this node is at its session limit. On 503, retry on a new connection.params may carry persona, webhook, and report.{
"type": "start",
"call_id": "your-call-id",
"from": "+15559990000",
"to": "+15551234567",
"sample_rate": 8000,
"encoding": "mulaw",
"params": { "persona": "grandma_edna", "webhook": "https://example.com/hook", "report": "true" }
}{"type":"clear"}, drop any queued playback. The caller interrupted the persona.{"type":"mark","name":"..."} is advisory. Ignore it if you do not need it.| Message | Meaning |
|---|---|
{"type":"transcript","text":"..."} | Words you transcribed yourself. |
{"type":"dtmf","digit":"1"} | A key press. |
{"type":"stop"} | The call ended. Closing the socket has the same effect. |
type field, the same as the filter stream, plus:type | When | Extra fields |
|---|---|---|
session.started | Accepted. Carries the persona object. | persona |
session.error | Speech synthesis or a model refused a request. Ends the session only when the greeting could not be spoken. | error, text |
session.ended carries the verdict, the intel, and the transcript with the persona's name as one speaker and caller as the other. reported_numbers counts the caller plus every callback number filed.report defaults to true. The filing threshold is a score of 0.8. none, Advertising, Surveys, Hang Up, and No Subject Provided are never filed. Other needs 0.85.sip:honeypot@honeypot.callerapi.com:5080 with G.711 (PCMU or PCMA). Add X-CallerAPI-Key: YOUR_KEY. X-Persona, X-Webhook, and X-Report carry the same options.spam_action=honeypot on your domain. No INVITE from you is needed.POST /api/voice/honeypot/twiml or /texml to get the vendor XML.