[{"slug":"a2p-10dlc-campaign-registry","title":"A2P 10DLC Campaign Registry — Brand and Campaign Registration","tags":["signalwire","a2p","10dlc","sms","compliance","campaign-registry","tcr"],"agent_summary":"The Campaign Registry (TCR) is mandatory for 10DLC SMS to US numbers. Covers Brand vs Campaign hierarchy, use case taxonomy, registration flow (3-5 business days), throughput tiers, DCA election, and the December 2025 default-off behaviour for newly purchased numbers.","trigger_phrases":["A2P registration SignalWire","10DLC campaign registry","TCR brand register","EIN messaging registration","use case 2FA marketing","DCA election","campaign verify","T-Mobile daily limit"],"runnable":false},{"slug":"a2p-10dlc-vetting-scoring","title":"A2P 10DLC Vetting and Trust Scoring — TCR Brand Tiers","tags":["a2p","10dlc","tcr","vetting","trust-score","brand-tier","compliance"],"agent_summary":"TCR (The Campaign Registry) assigns each registered Brand a Trust Score (0-100) based on vetting tier (Standard, Enhanced, Sole Proprietor). Higher trust → higher per-second throughput, better delivery rates, fewer carrier filtering events. Enhanced Vetting via WMC Global ($40-$60 one-time) is required for the top throughput tier. Sole Proprietor is a separate tier with hard daily caps.","trigger_phrases":["TCR trust score","A2P brand vetting","Enhanced Vetting WMC Global","10DLC throughput tier","brand score TCR","sole proprietor TCR","a2p brand tier"],"runnable":false},{"slug":"agent-assist","title":"Agent Assist — Real-Time Prompts and Knowledge Surfacing to Live Agents","tags":["agent-assist","real-time","live-coaching","knowledge-base","ai-assistant"],"agent_summary":"Agent assist surfaces real-time prompts, knowledge base answers, and CRM context to live human agents during an active call. Pipeline: live transcription (Deepgram/AssemblyAI streaming) → LLM analysis on partial transcript → push suggestions to agent UI via WebSocket. Latency target: under 500ms from caller utterance to suggestion display. Distinct from agent coaching/whisper (which is supervisor voice).","trigger_phrases":["agent assist","real time agent help","live call coaching","next best action voice","knowledge surfacing call","agent screen pop"],"runnable":false},{"slug":"agents-context-builder","title":"Context Builder — Multi-Step Guided Flows in Python Agents SDK","tags":["signalwire","agents-sdk","context-builder","multi-step","guided-flow"],"agent_summary":"Use ContextBuilder when an AI agent needs structured, step-by-step conversations. Up to 50 contexts per builder, 100 steps per context. Covers single-context steps, multi-context with cross-context transitions, system_prompt overrides, and create_simple_context.","trigger_phrases":["ContextBuilder Python","multi-step AI agent flow","guided conversation SignalWire","add_step set_step_criteria","set_valid_contexts","create_simple_context"],"runnable":true},{"slug":"agents-livewire-compat","title":"LiveWire — LiveKit-Compatible API on SignalWire","tags":["signalwire","livewire","livekit","compatibility","agents-sdk"],"agent_summary":"LiveWire is a LiveKit-compatible API surface from SignalWire — drop-in for code written against `livekit.agents`. Covers AgentServer/Agent/AgentSession, the rtc_session decorator, function_tool, JobContext.connect, no-op interrupt semantics, and the lift-and-shift migration from LiveKit code.","trigger_phrases":["LiveWire SignalWire","LiveKit compatibility SignalWire","livekit.agents drop in","function_tool SignalWire","rtc_session entrypoint","migrate LiveKit to SignalWire"],"runnable":true},{"slug":"agents-mcp-gateway","title":"MCP Gateway — Bridge MCP Servers to SignalWire SWAIG","tags":["signalwire","agents-sdk","mcp","mcp-gateway","tool-federation"],"agent_summary":"MCPGateway is an HTTP service that exposes MCP-protocol tool servers as SignalWire SWAIG functions. Covers MCPGateway, MCPManager, MCPClient, the config.json shape, session lifecycle, auth/SSL, and the agent-side AgentBase.add_mcp_server pattern.","trigger_phrases":["MCP gateway SignalWire","expose MCP server as SWAIG","model context protocol SignalWire","MCPClient call_tool","AgentBase add_mcp_server","MCP federation voice AI"],"runnable":true},{"slug":"agents-pom-builder","title":"POM Builder — Prompt Object Model for Agents SDK","tags":["signalwire","agents-sdk","pom","prompt-engineering"],"agent_summary":"PomBuilder constructs structured Markdown or XML prompts for voice AI agents. Sections, subsections, bulleted instructions, incremental additions, serialization, and the relationship between PomBuilder and AgentBase.prompt_add_section.","trigger_phrases":["PomBuilder Python","Prompt Object Model SignalWire","structured AI prompt","prompt_add_section","POM markdown XML render"],"runnable":true},{"slug":"agents-skills-system","title":"Agents Skills System — Prefabs, SkillBase, Multi-Instance, and Discovery","tags":["signalwire","agents-sdk","skills","prefabs","skillbase"],"agent_summary":"Pre-built agent prefabs (ConciergeAgent, FAQBotAgent, InfoGathererAgent, ReceptionistAgent, SurveyAgent) and the custom SkillBase pattern. Covers `add_skill`, multi-instance keying, parameter schemas, REQUIRED_PACKAGES/ENV_VARS validation, and skill discovery directories.","trigger_phrases":["SignalWire skills system","ConciergeAgent FAQBotAgent","custom SignalWire skill","SkillBase REQUIRED_ENV_VARS","add_skill multi instance","register_skill add_skill_directory"],"runnable":true},{"slug":"assemblyai-transcription","title":"AssemblyAI Transcription — Models, Audio Intelligence, LeMUR","tags":["assemblyai","transcription","sentiment","entity-detection","lemur","post-call"],"agent_summary":"Transcribe call recordings with Universal-2 / Universal-3-Pro models. Sentiment analysis, entity detection (44 types), PII redaction, speaker diarization, summarization. LeMUR applies LLMs across batches of up to 200 hours. Node SDK + REST contract.","trigger_phrases":["AssemblyAI transcription","Universal-2 model","LeMUR audio analysis","speaker diarization AssemblyAI","sentiment_analysis: true","entity_detection","PII redaction transcript","AssemblyAI realtime"],"runnable":true},{"slug":"business-hours-logic","title":"Business Hours Logic — Time-of-Day, Day-of-Week, and Holiday Routing","tags":["business-hours","time-routing","swml","scheduling","after-hours","holiday"],"agent_summary":"Route calls differently based on time-of-day, day-of-week, holidays, and timezone. SignalWire SWML uses `cond` blocks with date/time variables, or fetches a schedule from an external API. Handle DST correctly with IANA timezone names, treat 5 PM EST as 4 PM EST during DST. Holidays require an external calendar source — hardcoding is brittle.","trigger_phrases":["business hours routing","after hours call flow","time of day call routing","open closed hours SWML","holiday call routing","timezone call flow"],"runnable":true},{"slug":"byo-sip-trunk-livekit","title":"LiveKit BYO SIP Trunk — Inbound and Outbound with SignalWire","tags":["signalwire","livekit","byo-trunk","sip","voice-ai","integration"],"agent_summary":"Bridge SignalWire PSTN to LiveKit Agents via BYO SIP. Inbound: PSTN→SignalWire DID→SWML connect→LiveKit SIP domain. Outbound: LiveKit→SignalWire SIP Address→PSTN with TLS transport. Includes exact SWML, recording option, and the app-password requirement.","trigger_phrases":["LiveKit SignalWire BYO SIP","LiveKit inbound trunk","LiveKit outbound trunk SignalWire","LiveKit SIP domain","LiveKit transport TLS 3","LiveKit app password"],"runnable":true},{"slug":"byo-sip-trunk-vapi","title":"VAPI BYO SIP Trunk — Inbound and Outbound with SignalWire","tags":["signalwire","vapi","byo-trunk","sip","voice-ai","integration"],"agent_summary":"Bridge SignalWire PSTN to VAPI AI agents via BYO SIP. Inbound: PSTN→SignalWire DID→SWML connect→VAPI. Outbound: VAPI→SignalWire SIP Address→PSTN. Includes exact SWML, credential setup, IP allowlist, and app-password requirement.","trigger_phrases":["VAPI SignalWire BYO SIP","VAPI inbound trunk SignalWire","VAPI outbound trunk SignalWire","credential ID sip.vapi.ai","VAPI app password SignalWire"],"runnable":true},{"slug":"call-attribution-ga4-ghl","title":"Call Attribution — UTM, GA4, GHL, and Multi-Touch Tracking","tags":["call-attribution","ga4","ghl","utm","tracking","dynamic-number-insertion"],"agent_summary":"Attribute phone calls to the marketing source that drove them: paid ads, organic search, direct, referral. Two primary techniques: dynamic number insertion (DNI) per-source, and session-stitching with stored cookies. Push attribution data to GA4 via Measurement Protocol, to GHL as conversation custom fields, and to revenue dashboards via webhooks.","trigger_phrases":["call attribution","dynamic number insertion","DNI","GA4 call tracking","GHL call attribution","UTM phone call","track calls from ads"],"runnable":false},{"slug":"call-quality-metrics","title":"Call Quality Metrics — MOS, Jitter, Packet Loss, R-Factor","tags":["voip","qos","mos","jitter","packet-loss","rtp","sip","troubleshooting"],"agent_summary":"VoIP call quality is measured by MOS (Mean Opinion Score 1.0-5.0), R-factor (0-100), jitter (RTP timing variance), packet loss percentage, and one-way latency (mouth-to-ear). Targets: MOS >= 4.0, jitter < 30ms, packet loss < 1%, latency < 150ms. Most issues trace to network congestion, mis-sized jitter buffers, or codec/MTU misconfiguration.","trigger_phrases":["MOS score","call quality VoIP","jitter packet loss","R-factor","voice quality metric","RTP statistics","PESQ POLQA","one-way audio"],"runnable":false},{"slug":"call-recording-compliance","title":"Call Recording Compliance — One-Party, Two-Party, GDPR, CCPA","tags":["compliance","call-recording","consent","gdpr","ccpa","wiretap-act","legal"],"agent_summary":"US states split into one-party-consent (38 states + federal) and two-party-consent (12 states including CA, FL, IL, PA, WA). Federal Wiretap Act requires one-party minimum. GDPR Article 6 requires lawful basis (typically consent or legitimate interest) plus Article 13/14 transparency notices. CCPA requires consumer notice before recording. Treat every interstate call as two-party-consent territory by default.","trigger_phrases":["call recording consent","one party two party consent","GDPR recording calls","CCPA recording","wiretap act","this call may be recorded","call recording disclosure"],"runnable":false},{"slug":"call-routing-strategies","title":"Call Routing Strategies — Round-Robin, Skill-Based, Geo, Time-of-Day","tags":["call-routing","hunt-group","round-robin","skill-based","ring-strategy","signalwire"],"agent_summary":"Seven primary inbound call routing strategies: simple forward, ring-all, hunt group (sequential), round-robin (load-balanced), skill-based, geo-based, and time-of-day. Each has distinct SWML/LaML patterns and tradeoffs in answer rate, agent fairness, and customer experience. Skill-based requires external state (CRM or DB); the others can run purely in SWML.","trigger_phrases":["call routing strategies","ring strategy","hunt group SWML","round robin call routing","skill based routing","geo routing voice","call queue strategy"],"runnable":true},{"slug":"callback-scheduling","title":"Callback Scheduling — Queue-Back, Scheduled Callbacks, and Virtual Hold","tags":["callback","virtual-hold","queue-back","scheduling","customer-experience"],"agent_summary":"Three callback patterns: queue-back (caller keeps place in queue without holding), scheduled callback (caller picks a specific time), and immediate callback (caller hangs up, agent dials when free). Reduces abandonment by 30-50% and lets queue time scale beyond what callers will tolerate on hold. Implemented in SWML via call termination + scheduled outbound dialing.","trigger_phrases":["callback scheduling","virtual hold","queue back","schedule callback voice","callback when available","save my place"],"runnable":true},{"slug":"cold-sms-engine","title":"Cold SMS Engine — Python Sequencer with Slot Windows and GHL Threading","tags":["cold-sms","sms-sequencer","signal-house","ghl","tcpa","python","supabase"],"agent_summary":"Python-native cold SMS sequencer replacing n8n at scale. Cron-driven, slot-aware, TCPA-compliant. Supabase stores leads + sms_events + opt_outs. Dispatcher runs every 5 minutes, picks due leads by timezone-aware slot windows (morning/midday/evening), sends via Signal House API, mirrors to GHL sub-accounts as conversations + contacts + opportunities. Inbound webhook classifies replies and updates lead state.","trigger_phrases":["cold SMS engine","SMS sequencer Python","Signal House sender","GHL SMS threading","TCPA compliant SMS","bulk SMS at scale","n8n alternative SMS"],"runnable":true},{"slug":"cold-transfer","title":"Cold Transfer — Blind Transfer via SIP REFER and SWML connect","tags":["cold-transfer","blind-transfer","sip-refer","call-flow","signalwire"],"agent_summary":"Cold transfer (blind transfer) is the pattern where the original caller is connected directly to the destination without consultation. The transferring party drops immediately. Implemented in SWML via `connect: { to: ... }` after a brief message, or via SIP REFER without the Replaces header. Faster than warm transfer but caller may have to repeat themselves.","trigger_phrases":["cold transfer","blind transfer","SIP REFER blind","transfer without consultation","direct transfer voice","drop and dial"],"runnable":true},{"slug":"conference-bridging","title":"Conference Bridging — SIP Mixers, Mute, Recording, Coaching","tags":["conference","bridge","mixer","signalwire","swml","multi-party"],"agent_summary":"Conference bridging mixes 3+ audio streams into a single shared room. SignalWire conferences are named rooms; participants join by routing a call into `connect: { to: conference:name }`. Supports mute/unmute, hold, beep on entry/exit, recording, talk-detection, coaching (whisper), barge-in, and dial-out to add participants mid-call.","trigger_phrases":["SignalWire conference","conference bridge","multi party call","join conference room","conference mute","conference coaching","barge in conference"],"runnable":true},{"slug":"dtmf-handling","title":"DTMF Handling — RFC 2833, SIP INFO, In-band Audio","tags":["dtmf","sip","rfc-2833","telephony","ivr","signaling"],"agent_summary":"DTMF (touch-tone) digits travel three ways: in-band audio in the RTP stream, RFC 2833/4733 named telephone events in RTP, or SIP INFO messages out-of-band. RFC 2833 is the default for modern IP telephony. SIP INFO is fallback when codec/transcoding strips RFC 2833 events. In-band fails on low-bitrate codecs and is deprecated for IP-to-IP calls.","trigger_phrases":["DTMF in band","RFC 2833","SIP INFO DTMF","telephone events","DTMF not working","touch tone digits","RFC 4733"],"runnable":false},{"slug":"fish-audio-tts","title":"Fish Audio TTS — Voice Cloning and the s1 Model","tags":["fish-audio","tts","voice-cloning","merlino-voice","audio"],"agent_summary":"Fish Audio's TTS API and voice-cloning model. Covers /v1/tts request shape (text, reference_id, prosody, latency), the Merlino voice clone (model id 3782f7b...), built-in voice presets, /model voice cloning, pricing ($15 / 1M UTF-8 bytes), and Fish vs ElevenLabs trade-offs.","trigger_phrases":["Fish Audio TTS","Merlino voice","voice clone fish audio","fish.audio API","s1 model TTS","Fish Audio vs ElevenLabs","reference_id voice"],"runnable":true},{"slug":"laml-compatibility-layer","title":"LaML / Compatibility API — Migrate Twilio Apps to SignalWire","tags":["signalwire","laml","twilio-migration","compatibility-api","cxml","twiml"],"agent_summary":"SignalWire's Compatibility API lets Twilio TwiML and REST API apps run on SignalWire with three changes: credentials, base URL, webhook URLs. Covers cXML/LaML response generation, the @signalwire/compatibility-api SDK, supported feature surface, and the 'change the from number' caveat.","trigger_phrases":["migrate Twilio to SignalWire","TwiML compatibility SignalWire","LaML SignalWire","cXML SignalWire","@signalwire/compatibility-api","Twilio Account SID to Project ID","SignalWire LaML.VoiceResponse"],"runnable":true},{"slug":"merlino-voice","title":"Merlino Voice — Fish Audio Cloned Voice for Outbound TTS","tags":["merlino-voice","fish-audio","tts","voice-clone","outbound-voice","signalwire"],"agent_summary":"Merlino Voice is Mike's custom-cloned voice on Fish Audio used for branded outbound TTS — agent introductions, voicemail drops, IVR greetings, ringless drops. Distinct from generic Fish Audio TTS because the voice model is identity-locked. Voice ID, default parameters (speed 1.0, energy 0.7), audio formats (mp3 16-bit, opus, wav), and SignalWire integration via SWML play verb.","trigger_phrases":["Merlino voice","Mike Merlino cloned voice","branded TTS voice","agency voice clone","personal voice clone fish audio","Merlino TTS for calls"],"runnable":true},{"slug":"missed-call-workflows","title":"Missed Call Workflows — Text-Back Automation and Recovery","tags":["missed-call","text-back","sms-followup","conversion","automation"],"agent_summary":"When a caller hangs up before reaching a human, automatically text them within 60 seconds with a contextual message that recovers the conversation. Reduces lost leads 40-70% in service industries. Implemented via call event webhooks (no-answer, busy, voicemail) + SMS API, with GHL or CRM integration for thread continuity.","trigger_phrases":["missed call text back","MCTB","missed call followup","recover missed call","no answer SMS","call abandoned recovery"],"runnable":true},{"slug":"mms-handling","title":"MMS Handling — Multimedia Messaging on SignalWire","tags":["mms","sms","messaging","signalwire","media","carrier"],"agent_summary":"MMS (Multimedia Messaging Service) sends images, audio, video, and vCards alongside text. Max file size 5 MB on most US carriers. Supported MIME types: image/jpeg, image/png, image/gif, audio/mpeg, video/mp4. Carriers transcode aggressively. Send via SignalWire LaML with the `MediaUrl` parameter or via REST `/Messages` with `MediaUrl[]`. Subject to the same A2P 10DLC campaign registration as SMS.","trigger_phrases":["send MMS SignalWire","MMS media attachment","image text message","MMS file size limit","multimedia messaging","MediaUrl SignalWire","MMS not delivering"],"runnable":true},{"slug":"rcs-messaging","title":"RCS Messaging — RBM, Google Business Messages, Apple RCS","tags":["rcs","rbm","business-messaging","google","apple","messaging"],"agent_summary":"RCS (Rich Communication Services) is the GSMA-standardized SMS successor. Supports rich media, suggested replies, branded sender, read receipts, and typing indicators. Business-to-consumer RCS in the US is delivered via Google's RBM (RCS Business Messaging) platform. Apple began native RCS support in iOS 18 (2024-09). Carrier rollout still in progress; treat RCS as a fallback-enhanced channel, not a replacement for SMS/MMS.","trigger_phrases":["RCS messaging","RBM Google","rich communication services","branded business messaging","RCS Business Messaging","Apple RCS iOS 18","RCS vs SMS"],"runnable":false},{"slug":"robocall-mitigation","title":"Robocall Mitigation — Carrier Filtering, RMP Filings, and Analytics Tags","tags":["robocall","mitigation","stir-shaken","spam-likely","rmp","fcc-traced-act"],"agent_summary":"Robocall mitigation is the carrier-and-platform-level apparatus that blocks, labels, or filters suspected fraudulent and unwanted calls. Components: STIR/SHAKEN signing, analytics tags (Spam Likely, Scam Likely), carrier-level blocking (T-Mobile Scam Shield, AT&T Call Protect, Verizon Call Filter), FCC Robocall Mitigation Plan (RMP) database filings. Application developers can influence reputation through caller-ID consistency, rate limits, content quality, and answer rates.","trigger_phrases":["robocall mitigation","spam likely tag","scam likely","RMP filing","FCC robocall database","T-Mobile Scam Shield","AT&T Call Protect","improve answer rate"],"runnable":false},{"slug":"sentiment-analysis-pipeline","title":"Sentiment Analysis Pipeline — Call to Outcome Classification","tags":["sentiment","call-analysis","assemblyai","claude","lead-scoring","pipeline"],"agent_summary":"Process call recordings through transcribe → analyze → score → store pipeline. Transcription via AssemblyAI/Deepgram/SignalWire CI. Sentiment + outcome classification via Claude or GPT with structured JSON output. Extract: service_needed, urgency, intent, conversion_probability, sentiment per turn, key entities. Costs ~$0.01-0.05 per call. Saves structured data to lead pipeline for revenue attribution.","trigger_phrases":["call sentiment analysis","call transcription pipeline","lead pipeline","call analysis Claude","AssemblyAI call analysis","outcome classification"],"runnable":true},{"slug":"signalwire-ai-receptionist","title":"SignalWire AI Receptionist — No-Code Voice Agent in the Portal","tags":["signalwire","ai-receptionist","no-code","voice-ai","ai-agent-resource"],"agent_summary":"Build a voice AI receptionist inside the SignalWire portal without writing code. Covers AI Agent Resource setup, prompt configuration, SWAIG tool definitions in the UI, voice/language picker, assigning to a phone number or as a Call Flow Builder node, and billing model.","trigger_phrases":["AI receptionist SignalWire","no-code voice AI","AI Agent Resource setup","AI receptionist prompt","assign AI agent to phone number","AI agent billing per minute"],"runnable":false},{"slug":"signalwire-call-flow-builder","title":"SignalWire Call Flow Builder (CFB)","tags":["signalwire","call-flow-builder","no-code","ivr","visual-editor"],"agent_summary":"Drag-and-drop visual editor in the SignalWire portal. Generates valid SWML under the hood. Node taxonomy (Handle Call, AI Agent, Forward, Gather, Conditions, Request, Set Variables), variable substitution with `%{...}`, building and deploying flows, and CFB-vs-SWML decision rules.","trigger_phrases":["call flow builder","CFB SignalWire","visual call flow","no-code IVR","AI Agent node","Forward to Phone node","Gather Input speech DTMF","Set Variables node"],"runnable":false},{"slug":"signalwire-call-intelligence","title":"SignalWire Call Intelligence Pipeline","tags":["signalwire","call-intelligence","sentiment","hawkeye","birdseye-roi","post-prompt"],"agent_summary":"End-to-end pipeline: inbound call → record_call + live_transcribe + ai → post_prompt extracts structured JSON → webhook saves to DB → dashboard. Includes Relay SDK methods (call.ai, ai_hold, ai_unhold, ai_message), debug webhook streaming, and CRM injection patterns.","trigger_phrases":["call sentiment AI","HawkeyePanel pipeline","BirdsEyeROI calls","extract structured data from call","post_prompt webhook","call.ai_hold ai_unhold","real-time AI control"],"runnable":true},{"slug":"signalwire-python-agents-sdk","title":"SignalWire Python Agents SDK","tags":["signalwire","python","agents-sdk","voice-ai","swaig","swml"],"agent_summary":"AgentBase setup, fluent prompt and parameter configuration, the @tool decorator for SWAIG, FunctionResult chaining, and the AgentServer pattern for serving multiple agents on one port.","trigger_phrases":["how do I build a SignalWire AI agent in python","AgentBase setup","register SWAIG tool decorator","FunctionResult connect hangup","AgentServer multi-agent","post_prompt url callback","Python voice AI SignalWire"],"runnable":true},{"slug":"sms-best-practices","title":"SMS Best Practices — Consent, Opt-Out, Brand ID, Character Limits","tags":["signalwire","sms","compliance","ctia","opt-in","opt-out","segments"],"agent_summary":"CTIA-aligned SMS rules: opt-in confirmation, opt-out in every message, brand identification, full URLs only, prohibited content list, and the segment math (160 GSM-7 / 70 Unicode, 153/67 per segment when split). Apply to 10DLC and toll-free alike.","trigger_phrases":["SMS compliance SignalWire","opt-in opt-out SMS","STOP keyword SMS","SMS segment limit 160","prohibited SMS content SignalWire","snowshoeing SMS","GSM 7 Unicode segments"],"runnable":false},{"slug":"stir-shaken","title":"STIR/SHAKEN — Caller ID Attestation and the TRACED Act","tags":["stir-shaken","caller-id","traced-act","attestation","robocall","sip"],"agent_summary":"STIR/SHAKEN is the FCC-mandated framework that cryptographically signs caller ID on IP-based voice calls. Originating carriers attest to caller identity at three levels — A (full), B (partial), C (gateway) — and downstream carriers verify the SIP Identity header to flag spoofed traffic. Required for all US carriers since 2021-06-30 under the TRACED Act.","trigger_phrases":["STIR SHAKEN","caller ID attestation","TRACED Act","SIP Identity header","attestation A B C","spoofed caller ID","robocall framework","signed caller ID"],"runnable":false},{"slug":"swaig-functions","title":"SWAIG Functions — Live AI Tool Calls","tags":["signalwire","swaig","ai-tools","swml","function-calling"],"agent_summary":"SignalWire AI Gateway functions — JSON schema definitions, the webhook contract, FunctionResult return type, secure tokens, native functions, and the DataMap server-side passthrough alternative.","trigger_phrases":["what is SWAIG","SignalWire AI function","register SWAIG function","SWAIG webhook payload","DataMap vs SWAIG","FunctionResult","AI tool call in SWML"],"runnable":true},{"slug":"swml-ai-verb","title":"SWML ai verb — Voice AI Agent Configuration","tags":["signalwire","swml","ai-verb","voice-ai","post-prompt"],"agent_summary":"The `ai` verb creates a real-time voice AI agent: ASR, LLM, TTS in one block. Covers prompt, params, post_prompt, hints, languages, pronounce, SWAIG, global_data, and the post_prompt_url callback contract.","trigger_phrases":["SWML ai verb","post_prompt_url callback","AI agent prompt config","end_of_speech_timeout","asr_diarize","save_conversation","AI params in SWML"],"runnable":true},{"slug":"swml-connect-verb","title":"SWML connect — Bridge to PSTN, SIP, or AI Platforms","tags":["signalwire","swml","connect","sip","byo-trunk"],"agent_summary":"The `connect` verb bridges the active call to a destination — PSTN, SIP URI, or AI platform endpoint. Covers basic forwarding, simultaneous and sequential dialing, whisper, answer_on_bridge, and SIP URI patterns for BYO trunks.","trigger_phrases":["SWML connect verb","bridge call to PSTN","forward call SIP","ring multiple numbers","answer_on_bridge","whisper before connect","BYO trunk SIP URI"],"runnable":true},{"slug":"swml-context-switch","title":"SWML Context Switch — Multi-Persona AI in One Call","tags":["signalwire","swml","context-switch","multi-persona","ai-routing"],"agent_summary":"The `context_switch` verb (and FunctionResult.switch_context) lets a live AI agent change persona mid-call. Use cases: triage agent → specialist agent, language change, escalation. Covers consolidate semantics and prompt overrides.","trigger_phrases":["context switch SWML","switch AI persona mid-call","consolidate context","triage to specialist agent","FunctionResult.switch_context","swml_change_context"],"runnable":true},{"slug":"swml-data-map","title":"DataMap — Server-Side SWAIG API Passthrough","tags":["signalwire","swaig","datamap","api-integration","no-server"],"agent_summary":"DataMap executes REST API calls on SignalWire's infrastructure — no webhook on your side. Variable substitution table, GET/POST/foreach patterns, expression-only matching, and the right use cases for DataMap vs a Python @tool handler.","trigger_phrases":["DataMap SignalWire","SWAIG without server","API passthrough SignalWire","DataMap foreach loop","DataMap expression match","${args.param} substitution"],"runnable":true},{"slug":"swml-ivr-and-gather","title":"SWML IVR — Prompt, Gather, DTMF, and Speech Input","tags":["signalwire","swml","ivr","prompt","dtmf","gather"],"agent_summary":"Build classic IVR menus in SWML using `prompt` and `play` + `cond`. Covers DTMF capture, speech input, terminators, no-input handling, branching to other sections, and loop guards.","trigger_phrases":["build IVR SWML","DTMF capture SWML","gather input speech","prompt verb SWML","press 1 for sales","no input fallback","IVR loop guard"],"runnable":true},{"slug":"swml-overview","title":"SWML — SignalWire Markup Language Overview","tags":["signalwire","swml","call-flow","voice"],"agent_summary":"SWML is JSON or YAML that defines a call flow. Covers the document shape (version, sections, main), verb categories, expression substitution, and how SWML is served (hosted file, web hook, Call Flow Builder, or generated by Python SDK).","trigger_phrases":["what is SWML","SWML document structure","SWML sections main","SWML version 1.0.0","how to host SWML","SWML vs TwiML"],"runnable":true},{"slug":"swml-record-and-transcribe","title":"SWML Record and Transcribe — Background Recording, Live Transcription, Tap","tags":["signalwire","swml","recording","transcription","live-transcribe","tap"],"agent_summary":"Record calls with `record_call` (background, stereo) and `record` (foreground, voicemail). Stream real-time transcripts via `live_transcribe`. Fork audio to a third party with `tap`. Includes status webhook contract and Deepgram/Google speech-engine config.","trigger_phrases":["record call SWML","record_call vs record","live_transcribe webhook","Deepgram in SignalWire","stereo recording stereo true","stop_record_call","tap SWML","speaker diarization SignalWire"],"runnable":true},{"slug":"toll-free-and-hosted-messaging","title":"Toll-Free Verification and Hosted Messaging","tags":["signalwire","toll-free","hosted-messaging","sms","port-in","loa"],"agent_summary":"Toll-free SMS verification flow (separate from TCR), the Hosted Messaging path for numbers held elsewhere for voice, Letter of Authorization (LOA), and the porting prerequisites. Includes the Sept 30 / Jan 1 form-field changes and Canada-carrier specifics.","trigger_phrases":["toll-free SMS verification","TFN verification SignalWire","hosted messaging SignalWire","Letter of Authorization SMS","port in messaging only","Canada toll-free SMS","Business Registration Number SMS"],"runnable":false},{"slug":"toll-free-vs-short-code","title":"Toll-Free vs Short Code — Decision Matrix for High-Volume SMS","tags":["toll-free","short-code","sms","messaging","throughput","compliance"],"agent_summary":"Toll-free numbers (800/833/844/855/866/877/888) and short codes (5-6 digit dedicated codes) are the two non-10DLC paths for high-volume A2P SMS. Toll-free: low cost ($2/mo lease, no setup fee), 3 MPS throughput after Toll-Free Verification, weeks to provision. Short code: $1000-1500/month lease, 100+ MPS, 4-12 week provisioning, requires CTIA short code application.","trigger_phrases":["toll free vs short code","short code lease cost","TFV toll free verification","5 digit short code","high volume SMS","short code application"],"runnable":false},{"slug":"voicemail-drop","title":"Voicemail Drop — Pre-Recorded Outbound Voicemail Delivery","tags":["voicemail-drop","outbound-voice","amd","answering-machine-detection","signalwire"],"agent_summary":"Voicemail drop is the practice of placing an outbound call, detecting the recipient's voicemail beep, and playing a pre-recorded message — agent never speaks live. Implemented via SignalWire AMD (Answering Machine Detection) + SWML `play` triggered on `machine_end_beep` event. TCPA compliance requires prior express written consent for telemarketing; transactional drops are looser but still rule-bound. Often misused — handle with care.","trigger_phrases":["voicemail drop","pre-recorded voicemail","AMD answering machine detection","ringless voicemail","drop a voicemail","outbound voicemail"],"runnable":true},{"slug":"warm-transfer","title":"Warm Transfer — Attended Transfer via SIP REFER and SWML","tags":["warm-transfer","attended-transfer","sip-refer","call-flow","signalwire"],"agent_summary":"Warm transfer (attended transfer) is the pattern where the transferring party first speaks with the destination, briefs them, then connects the original caller. Implemented via call holding plus dialing a second leg, or via SIP REFER with attended-transfer semantics. SignalWire supports both via SWML `connect` with hold + connect, or via the Compatibility API `<Dial>` and conference bridging.","trigger_phrases":["warm transfer","attended transfer","SIP REFER attended","brief the destination","transfer with consultation","warm handoff voice"],"runnable":true}]