# SignalWire Developer Documentation > SignalWire provide comprehensive and easy to use APIs that allow developers to create unified communication applications. ## SWML Documentation > The SignalWire Markup Language which allows developers to create communication applications with simple JSON & YAML documents. - [SWML](/swml.md): Get started with SWML (SignalWire Markup Language), a markup and scripting language for quickly writing powerful communication applications in YAML or JSON documents. - [SWML Expressions](/swml/expressions.md): Complete technical reference for JavaScript expressions in SMWL - [Overview](/swml/guides.md): Guides for using SWML. - [SWML AI guides](/swml/guides/ai.md): Guides for using AI with SWML. - [AI Agent with audio playing in the background](/swml/guides/ai/background_audio.md): Learn how to create an AI agent with background audio. - [Using context_switch](/swml/guides/ai/context_switch.md): Learn how to use `context_switch` to shift the focus of the conversation. - [Executing SWML from a SWAIG function](/swml/guides/ai/executing_swml.md): Learn how to execute SWML from a SWAIG function. - [Creating a Santa AI with SWML: Engaging in the Spirit of Christmas](/swml/guides/ai/holiday_special_santa_ai.md): Prerequisites - [Use set_meta_data](/swml/guides/ai/set_meta_data.md): Learn how to use `set_meta_data` to store metadata to reference later. - [SWAIG](/swml/guides/ai/swaig.md): The SignalWire AI Gateway connects your AI Agents to functionality on your backend. - [SWAIG.Function Guides](/swml/guides/ai/swaig/functions.md): Guides for using SWAIG.functions with SignalWire. - [In-Depth Guide to data_map](/swml/guides/ai/swaig/functions/data_map.md): Learn how to use `data_map` in SWML SWAIG functions to process, transform, and utilize incoming data effectively. - [Using toggle_functions](/swml/guides/ai/toggle_functions.md): Learn how to use `toggle_functions` to toggle functions on and off. - [Creating a Voicemail Bot](/swml/guides/ai/voicemail_bot_example.md): Learn how to create a voicemail bot using SWML. - [Call Whisper with SWML](/swml/guides/call-whisper.md): A guide that shows you how to perform a Call Whisper using SWML. - [Creating an IVR with SWML](/swml/guides/creating_ivr.md): Learn how to create an IVR with SWML. - [Deploy SWML](/swml/guides/deployment.md): Learn how to serve SWML scripts from web servers and RELAY applications. - [Methods](/swml/guides/methods.md): Guides for using methods with SWML. - [How are the methods goto, execute and transfer different?](/swml/guides/methods/goto_execute_transfer_disambiguation.md): Learn how to use the goto, execute, and transfer methods in SWML. - [Request](/swml/guides/methods/request.md): Learn how to use the request method in SWML to send HTTP requests to a web server. - [Handling SWML From Code](/swml/guides/remote_server.md): Learn how to handle incomming calls from a remote server using SWML. - [Methods overview](/swml/methods.md): Overview of SWML methods. - [ai](/swml/methods/ai.md): Create an AI agent to interact with users. - [ai.hints](/swml/methods/ai/hints.md): Hints help the AI agent understand certain words or phrases better. Words that can commonly be mispronounced can be added to the hints to help the AI speak more accurately. - [ai.languages](/swml/methods/ai/languages.md): Configure the spoken language of your AI Agent, as well as the TTS engine, voice, and fillers. - [ai.params](/swml/methods/ai/params.md): Parameters for AI that can customize the AI agent's behavior. - [params.conscience](/swml/methods/ai/params/conscience.md): A prompt for AI that reinforces the AI agent's behavior and guardrails throughout the conversation. - [params.hold_music](/swml/methods/ai/params/hold_music.md): A URL for the hold music to play, accepting WAV, Mp3, and FreeSWITCH tone_stream. - [params.interrupt_prompt](/swml/methods/ai/params/interrupt_prompt.md): A prompt for AI that can be passed for when the AI agent is interrupted by the user. - [ai.post_prompt](/swml/methods/ai/post_prompt.md): The final set of instructions and configuration settings to send to the agent. - [ai.post_prompt_url](/swml/methods/ai/post_prompt_url.md): The URL that the user defines to which to send status callbacks and reports. - [ai.prompt](/swml/methods/ai/prompt.md): Establish the set of rules and instructions for the AI agent through a prompt. - [prompt.contexts](/swml/methods/ai/prompt/contexts.md): An object that defines the context steps for the AI. The contexts are used to define the flow of the conversation. - [contexts.steps](/swml/methods/ai/prompt/contexts/steps.md): An array of objects that define the steps in the context. - [prompt.pom](/swml/methods/ai/prompt/pom.md): The prompt object model (POM) is a structured data format for organizing, and rendering prompt instructions for AI agents. - [ai.pronounce](/swml/methods/ai/pronounce.md): Use this object to clarify AI's pronunciation of certain words or expressions. - [ai.SWAIG](/swml/methods/ai/swaig.md): The SignalWire AI Gateway Interface. Allows you to create user-defined functions that can be executed during the dialogue. - [SWAIG.defaults](/swml/methods/ai/swaig/defaults.md): The default settings for all SWAIG functions. - [defaults.web_hook_url](/swml/methods/ai/swaig/defaults/web_hook_url.md): The default URL that the user defines to which to send status callbacks and reports. - [SWAIG.functions](/swml/methods/ai/swaig/functions.md): Functions that can be executed during the interaction with the AI. - [functions.data_map](/swml/methods/ai/swaig/functions/data_map.md): Defines how a SWAIG function should process and respond to the user's input data. - [data_map.expressions](/swml/methods/ai/swaig/functions/data_map/expressions.md): An array of objects that define plain string or regex patterns to match against the user's input. - [data_map.output](/swml/methods/ai/swaig/functions/data_map/output.md): The output object for the SWAIG function. - [data_map.webhooks](/swml/methods/ai/swaig/functions/data_map/webhooks.md): An array of objects that define external API calls. - [webhooks.foreach](/swml/methods/ai/swaig/functions/data_map/webhooks/foreach.md): Iterates over an array of objects and processes an output based on each element in the array. - [functions.fillers](/swml/methods/ai/swaig/functions/fillers.md): The fillers object for the SWAIG function. - [functions.parameters](/swml/methods/ai/swaig/functions/parameters.md): The parameters object for the SWAIG function. - [functions.web_hook_url](/swml/methods/ai/swaig/functions/web_hook_url.md): The URL that the user defines to which to send status callbacks and reports. - [SWAIG.includes](/swml/methods/ai/swaig/includes.md): Remote function signatures to include in SWAIG functions. - [internal_fillers](/swml/methods/ai/swaig/internal_fillers.md): Fillers that help break silence between responses and are played asynchronously during the function call. - [SWAIG.native_functions](/swml/methods/ai/swaig/native_functions.md): The list of prebuilt functions that the AI agent is able to call. - [amazon_bedrock](/swml/methods/amazon_bedrock.md): Create an Amazon Bedrock agent interaction. - [amazon_bedrock.params](/swml/methods/amazon_bedrock/params.md): Parameters for the Amazon Bedrock that can customize the agent's behavior. - [amazon_bedrock.post_prompt](/swml/methods/amazon_bedrock/post_prompt.md): The final set of instructions and configuration settings to send to the Amazon Bedrock agent. - [amazon_bedrock.post_prompt_url](/swml/methods/amazon_bedrock/post_prompt_url.md): The URL that the user defines to which to send status callbacks and reports. - [amazon_bedrock.prompt](/swml/methods/amazon_bedrock/prompt.md): Establish the set of rules and instructions for the Amazon Bedrock agent through a prompt. - [prompt.pom](/swml/methods/amazon_bedrock/prompt/pom.md): The prompt object model (POM) is a structured data format for organizing, and rendering prompt instructions for Amazon Bedrock agents. - [ai.SWAIG](/swml/methods/amazon_bedrock/swaig.md): The SignalWire AI Gateway Interface. Allows you to create user-defined functions that can be executed during the dialogue. - [SWAIG.defaults](/swml/methods/amazon_bedrock/swaig/defaults.md): The default settings for all SWAIG functions. - [defaults.web_hook_url](/swml/methods/amazon_bedrock/swaig/defaults/web_hook_url.md): The default URL that the user defines to which to send status callbacks and reports. - [SWAIG.functions](/swml/methods/amazon_bedrock/swaig/functions.md): Functions that can be executed during the interaction with the Amazon Bedrock agent. - [functions.data_map](/swml/methods/amazon_bedrock/swaig/functions/data_map.md): Defines how a SWAIG function should process and respond to the user's input data. - [data_map.expressions](/swml/methods/amazon_bedrock/swaig/functions/data_map/expressions.md): An array of objects that define plain string or regex patterns to match against the user's input. - [data_map.output](/swml/methods/amazon_bedrock/swaig/functions/data_map/output.md): The output object for the SWAIG function. - [data_map.webhooks](/swml/methods/amazon_bedrock/swaig/functions/data_map/webhooks.md): An array of objects that define external API calls. - [webhooks.foreach](/swml/methods/amazon_bedrock/swaig/functions/data_map/webhooks/foreach.md): Iterates over an array of objects and processes an output based on each element in the array. - [functions.parameters](/swml/methods/amazon_bedrock/swaig/functions/parameters.md): The parameters object for the SWAIG function. - [functions.web_hook_url](/swml/methods/amazon_bedrock/swaig/functions/web_hook_url.md): The URL that the user defines to which to send status callbacks and reports. - [SWAIG Includes](/swml/methods/amazon_bedrock/swaig/includes.md): Remote function signatures to include in SWAIG functions. - [SWAIG.native_functions](/swml/methods/amazon_bedrock/swaig/native_functions.md): The list of prebuilt functions that the Amazon Bedrock agent is able to call. - [answer](/swml/methods/answer.md): Answer incoming call and set an optional maximum duration. - [cond](/swml/methods/cond.md): Execute a sequence of instructions depending on the value of a JavaScript condition. - [connect](/swml/methods/connect.md): Dial a SIP URI or phone number. - [connect.headers](/swml/methods/connect/headers.md): Custom SIP headers to add to INVITE. Has no effect on calls to phone numbers. - [denoise](/swml/methods/denoise.md): Start noise reduction. - [detect_machine](/swml/methods/detect_machine.md): Detect whether the other end of the call is a machine (fax, voicemail, etc.) or a human, using AMD and fax detection. - [enter_queue](/swml/methods/enter_queue.md): Place the call in a queue. - [execute](/swml/methods/execute.md): Execute a specified section or URL as a subroutine, and upon completion, return to the current document. - [goto](/swml/methods/goto.md): Jumps to a defined label in the current SWML section. - [hangup](/swml/methods/hangup.md): Ends the call. - [join_conference](/swml/methods/join_conference.md): Join an ad-hoc audio conference with RELAY and CXML calls. - [join_room](/swml/methods/join_room.md): Join a RELAY Room Session. - [label](/swml/methods/label.md): Mark any point of the SWML section with a label. - [live_transcribe](/swml/methods/live_transcribe.md): Transcribe a voice interaction in real-time. - [live_transcribe.action](/swml/methods/live_transcribe/action.md): The action to be performed during a live transcription session. - [action.start](/swml/methods/live_transcribe/action/start.md): Start a live transcription session. - [action.stop](/swml/methods/live_transcribe/action/stop.md): Stop a live transcription session. - [action.summarize](/swml/methods/live_transcribe/action/summarize.md): Summarize the live transcription. - [live_translate](/swml/methods/live_translate.md): Translate a voice interaction in real-time. - [live_translate.action](/swml/methods/live_translate/action.md): The action to be performed during a live translation session. - [action.inject](/swml/methods/live_translate/action/inject.md): Inject a message into the conversation. - [action.start](/swml/methods/live_translate/action/start.md): Start a live translation session. - [action.stop](/swml/methods/live_translate/action/stop.md): Stop a live translation session. - [action.summarize](/swml/methods/live_translate/action/summarize.md): Summarize the live translation. - [pay](/swml/methods/pay.md): Enable secure payment processing during voice calls. - [pay.parameters](/swml/methods/pay/parameters.md): Pass custom parameters to your payment processor. - [pay.payment_connector_url](/swml/methods/pay/payment_connector_url.md): The payment_connector_url is the URL to make payment requests to upon completion of all required payment details. - [Prompts Object](/swml/methods/pay/prompts.md): Customize the audio prompts played during different stages of the payment process. - [prompts.actions](/swml/methods/pay/prompts/actions.md): Customize the audio prompts played during different stages of the payment process. - [play](/swml/methods/play.md): Play file(s), ringtones, speech or silence. - [prompt](/swml/methods/prompt.md): Play a prompt and wait for input. - [receive_fax](/swml/methods/receive_fax.md): Receive a fax being delivered to this call. - [record](/swml/methods/record.md): Record the call audio in the foreground pausing further SWML execution until recording ends. - [record_call](/swml/methods/record_call.md): Record call in the background. - [request](/swml/methods/request.md): Send a HTTP request to a remote URL. - [return](/swml/methods/return.md): Return from a `execute` method or exit script. - [send_digits](/swml/methods/send_digits.md): Send digit presses as DTMF tones. - [send_fax](/swml/methods/send_fax.md): Send a fax. - [send_sms](/swml/methods/send_sms.md): Send an outbound message to a PSTN phone number. - [set](/swml/methods/set.md): Set script variables to the specified values. - [sip_refer](/swml/methods/sip_refer.md): Send a SIP REFER to a SIP call. - [sleep](/swml/methods/sleep.md): Set the amount of time for the current application to sleep for in milliseconds before continuing to the next action. - [stop_denoise](/swml/methods/stop_denoise.md): Stop noise reduction. - [stop_record_call](/swml/methods/stop_record_call.md): Stop an active background recording. - [stop_tap](/swml/methods/stop_tap.md): Stop an active tap stream. - [switch](/swml/methods/switch.md): Execute different instructions based on a variable's value. - [tap](/swml/methods/tap.md): Start background call tap. Media is streamed over Websocket or RTP to customer controlled URI. - [transfer](/swml/methods/transfer.md): Transfer the execution of the script to a different `SWML section`, `URL`, or `RELAY application`. - [unset](/swml/methods/unset.md): Unset specified variables. - [user_event](/swml/methods/user_event.md): Send custom events to the connected client on the call. - [Quickstart](/swml/quickstart.md): Deploy your first SWML script in minutes with this step-by-step guide - [SWML Template Functions](/swml/reference/template-functions.md): Reference for built-in template transformation functions in SWML - [SWML JSON Schema](/assets/llms-txt/attachments/swml-json-schema.md): The JSON Schema definition for SWML (SignalWire Markup Language). - [SWML Variables](/swml/variables.md): Complete technical reference for SWML variable scopes and variable management. ## SDKs > SignalWire Software Development Kits for building real-time communication applications. - [SDKs Overview](/sdks.md): SignalWire offers a range of SDKs to help you build applications using the SignalWire platform. ### Agents SDK > Build AI-powered voice and messaging applications with the SignalWire Agents SDK. - [Python Agents SDK](/sdks/agents-sdk.md): Build WebRTC-based applications with the SignalWire Browser SDK. - [Browser SDK](/sdks/browser-sdk.md): Build real-time communication applications from your backend with the SignalWire Realtime SDK. - [Realtime Server SDK](/sdks/realtime-sdk.md): The OpenAPI Spec definitions. - [Calling API Spec](/assets/llms-txt/attachments/calling-api.md): The OpenAPI spec for the SignalWire Calling API. - [Chat API Spec](/assets/llms-txt/attachments/chat-api.md): The OpenAPI spec for the SignalWire Chat API. - [Compatibility API Spec](/assets/llms-txt/attachments/compatibility-api.md): The OpenAPI spec for the SignalWire Compatibility API. - [DataSphere API Spec](/assets/llms-txt/attachments/data-sphere-api.md): The OpenAPI spec for the SignalWire DataSphere API. - [Fabric API Spec](/assets/llms-txt/attachments/fabric-api.md): The OpenAPI spec for the SignalWire Fabric API. - [Fax API Spec](/assets/llms-txt/attachments/fax-api.md): The OpenAPI spec for the SignalWire Fax API. - [Logs API Spec](/assets/llms-txt/attachments/logs-api.md): The OpenAPI spec for the SignalWire Logs API. - [Message API Spec](/assets/llms-txt/attachments/message-api.md): The OpenAPI spec for the SignalWire Message API. - [PubSub API Spec](/assets/llms-txt/attachments/pubsub-api.md): The OpenAPI spec for the SignalWire PubSub API. - [Voice API Spec](/assets/llms-txt/attachments/voice-api.md): The OpenAPI spec for the SignalWire Voice API. - [Overview](/rest/compatibility-api/overview.md): SignalWire's REST API allows you to manage and modify calls and messages made to or from your SignalWire phone numbers. - [Error codes](/rest/compatibility-api/overview/error-codes.md): The API defines error codes to convey information about possible issues. - [Paging](/rest/compatibility-api/overview/paging.md): For resources that return many instances, the API will return partial "pages" of results. These results will contain meta information about the entire list of results you can use to see more of the list. - [Authorization](/rest/overview/authorization.md): SignalWire REST APIs support two authentication methods: Basic Authentication and Bearer Authentication. - [Base URL](/rest/overview/base-url.md): Each Space on SignalWire gets its own subdomain and each Space will have its own URLs for accessing the REST API. - [Data Formats](/rest/overview/data-formats.md): A short recap of the data formats commonly used throughout the API. - [Overview](/rest/signalwire-rest/guides.md): A collection of guides that help you get the most out of the SignalWire REST API. - [Assign numbers to a campaign in bulk](/rest/signalwire-rest/guides/campaign-registry/assign-numbers-to-a-campaign-in-bulk.md): Assign numbers to your campaign all in one go - [Delete all number assignments from a campaign](/rest/signalwire-rest/guides/campaign-registry/delete-all-number-assignments.md): Use our REST API to easily remove all of the phone number assignments in your messaging campaign - [Delete all number assignments from multiple campaigns](/rest/signalwire-rest/guides/campaign-registry/delete-all-number-assignments-from-multiple-campaigns.md): Use our REST API to easily remove all of the phone numbers from multiple messaging campaigns at once - [List assigned phone numbers from all campaigns](/rest/signalwire-rest/guides/campaign-registry/list-all-campaign-number-assignments-to-csv.md): Using SignalWire's Campaign Registry APIs, this snippet will find all of your phone number assignments, format a data table, and compile details to help you manage all of your numbers. - [List phone numbers assigned to a campaign](/rest/signalwire-rest/guides/campaign-registry/list-phone-numbers-assigned-to-a-specific-campaign.md): Keep track of what phone numbers belong to each campaign - [Delete all assigned phone numbers](/rest/signalwire-rest/guides/campaign-registry/release-campaign-numbers-from-csv.md): Use our REST APIs to easily remove specific phone number assignments from a campaign - [Use the Datasphere API with curl](/rest/signalwire-rest/guides/datasphere/curl-usage.md): Interact with the Datasphere API with curl. Use different chunking strategies such as `page`, `sentence`, `paragraph`, and `sliding`, and filter results with powerful query options. - [Optimize PDF ingestion and pre-processing](/rest/signalwire-rest/guides/datasphere/pdf-ingestion-best-practices.md): Learn how to optimize PDF ingestion and pre-processing for Datasphere on SignalWire. - [Overview](/rest/signalwire-rest/overview.md): Welcome to SignalWire's REST API. Our REST API is a set of endpoints that make interacting with SignalWire, simple and familiar. - [Error Codes](/rest/signalwire-rest/overview/error-codes.md): When using SignalWire REST APIs, some errors will include error codes. Below, you will find a list of our unique error codes and a short explanation of each to help with error handling and troubleshooting. - [Paging](/rest/signalwire-rest/overview/paging.md): Most top-level API resources support bulk fetching via a list or index method. - [Permissions](/rest/signalwire-rest/overview/permissions.md): A reference for the common permission identifiers. ## Ai - [AI](/ai.md): Programmable, integrated, realtime voice AI - [Create your first phone AI Agent](/ai/get-started.md): Deploy a serverless AI Agent and call it over the PSTN in under 5 minutes - for free - [AI platform capabilities](/ai/get-started/platform-capabilities.md): Learn about the capabilities of SignalWire's AI platform, including natural language processing, voice technology, business applications, advanced features, multi-channel intelligence, real-time analytics, and security. - [Prompt engineering](/ai/get-started/prompt-engineering.md): Learn the fundamentals of prompt engineering and how it can help you create responsive and reliable AI agents for your SignalWire applications. - [Best practices](/ai/get-started/prompt-engineering/best-practices.md): Master the core techniques and guidelines for crafting effective prompts for SignalWire AI Agents. - [Where to apply prompt engineering](/ai/get-started/prompt-engineering/where-to-apply.md): Learn about the different areas where prompt engineering can be applied in SignalWire AI Agents for optimal results. - [AI Guides](/ai/guides.md): Get started with AI using our Quickstart guide. - [Best Practices for Creating a SignalWire AI Agent](/ai/guides/best-practices.md): This guide offers a detailed overview of best practices to make sure your SignalWire Agent operates effectively. - [Integrations](/ai/guides/integrations.md): Learn how to integrate different AI services with SignalWire - [LiveKit integration](/ai/guides/integrations/livekit.md): Integrate LiveKit Agents with SignalWire's infrastructure - [Route inbound calls to a LiveKit Agent](/ai/guides/integrations/livekit/inbound.md): Route calls to LiveKit via SIP and SWML's Connect method. - [Make outbound LiveKit Agent calls via SignalWire](/ai/guides/integrations/livekit/outbound.md): Route LiveKit Calls onto the PSTN with SignalWire. - [VAPI Integration](/ai/guides/integrations/vapi.md): Integrate VAPI AI assistants with SignalWire's infrastructure - [VAPI Inbound Calling](/ai/guides/integrations/vapi/inbound-calls.md): Route incoming calls from SignalWire phone numbers to VAPI AI assistants using SIP trunking - [Outbound Calling](/ai/guides/integrations/vapi/outbound-calls.md): Configure VAPI AI assistants to make outbound calls through SignalWire's infrastructure - [Prompt object model (POM)](/ai/pom.md): A lightweight Python library for structured prompt management with LLMs - [POM technical reference](/ai/pom/technical-reference.md): Learn more about the Prompt Object Model ## Call Flow Builder - [Call Flow Builder](/call-flow-builder.md): Learn about the Call Flow Builder, a visual tool for creating and managing call flows. - [AI Agent](/call-flow-builder/ai-agent.md): Call Flow Builder node to connect to an AI Agent - [Answer Call](/call-flow-builder/answer-call.md): Call Flow Builder node to answer an incoming call. - [Conditions](/call-flow-builder/conditions.md): Call Flow Builder node to add conditions to your call flow. - [Execute SWML](/call-flow-builder/execute-swml.md): Call Flow Builder node to execute a remote SWML document and return to the current document. - [Forward to Phone](/call-flow-builder/forward-to-phone.md): Call Flow Builder node to forward the call to a phone number. - [Gather Input](/call-flow-builder/gather-input.md): Call Flow Builder node to gather input from the caller. - [Handle Call](/call-flow-builder/handle-call.md): Call Flow Builder node to handle an incoming call. - [Hang Up Call](/call-flow-builder/hangup-call.md): Call Flow Builder node to hang up a call. - [Nodes](/call-flow-builder/nodes.md): Call Flow Builder - [Play Audio or TTS](/call-flow-builder/play-audio-or-tts.md): Call Flow Builder node to play audio or TTS to the caller. - [Request](/call-flow-builder/request.md): Call Flow Builder node to make an HTTP request - [Send SMS](/call-flow-builder/send_sms.md): Call Flow Builder node to send an SMS - [Set Variables](/call-flow-builder/set-variables.md): Call Flow Builder node to set variables in the call flow. - [Start Call Recording](/call-flow-builder/start-call-recording.md): Call Flow Builder node to start recording a call. - [Stop Call Recording](/call-flow-builder/stop-call-recording.md): Call Flow Builder node to stop recording a call. - [Unset Variables](/call-flow-builder/unset-variables.md): Call Flow Builder node to unset variables in the call flow. - [Variables](/call-flow-builder/variables.md): Call Flow Builder - [Versioning](/call-flow-builder/version.md): Call Flow Builder - [Voicemail Recording](/call-flow-builder/voicemail-recording.md): Call Flow Builder node to record voicemail messages. ## Cantina - [User Guide for SignalWire Work/Events](/cantina/user-guide.md): A comprehensive user guide for the SignalWire Work and Events products. - [Administrator Guide for SignalWire Work/Events](/cantina/user-guide-for-admin-rights.md): Getting started with an Administrator account ## Chat - [Chat](/chat.md): Programmable, integrated, low-latency Chat APIs and SDKs - [Chat FAQs](/chat/faq.md): Chat can be used to send and receive any JSON-serializable object. - [Getting Started](/chat/getting-started.md): Learn how to get started with the SignalWire Chat API. - [First steps with Chat](/chat/getting-started/chat-first-steps.md): Quickly implement a full-fledged chat into your web application. - [Simple Chat Demo](/chat/getting-started/get-started-with-a-simple-chat-demo.md): In this guide we will explore a simple chat application built using the SignalWire SDK. - [Guides](/chat/guides.md): Learn how to use the SignalWire Chat API. - [Building Chat Apps with React](/chat/guides/build-a-react-chat-application.md): Learn how to build a chat application with React. - [Using Chat to Send SMS and Make Calls](/chat/guides/using-chat-to-send-sms-and-make-calls.md): Learn how to use the SignalWire Chat API to send SMS and make calls. ## Compatibility Api - [Compatibility API](/compatibility-api.md): Learn about SignalWire's Compatibility API, including its API Reference, the cXML Specification, and available Client SDKs. - [Methods](/compatibility-api/api-reference/rest-client-sdks/methods.md): A combined technical reference for methods of the Compatibility API REST Client SDKs, including Node.js, Python, Ruby, and C#. - [Available Phone Numbers](/compatibility-api/client-sdks/api/available-phone-numbers.md): The ability to search for local, toll-free, and mobile phone numbers to purchase. - [Find All Toll-Free Numbers](/compatibility-api/client-sdks/api/available-phone-numbers/find-toll-free.md): Use this endpoint for the AvailablePhoneNumbers method to find available toll-free numbers in the United States. - [List of AvailablePhoneNumber Resources](/compatibility-api/client-sdks/api/available-phone-numbers/list-resources.md): Use this endpoint for the AvailablePhoneNumbers method to return a list of URIs to phone number resources available to the account. - [Search for Local AvailablePhoneNumbers](/compatibility-api/client-sdks/api/available-phone-numbers/search-local.md): Use this endpoint for the AvailablePhoneNumbers method to search for available phone numbers that match your criteria. - [Applications](/compatibility-api/client-sdks/applications.md): An application contains a set of URLs and other data that tells SignalWire how to behave when calls and messages are received. - [Create an Application](/compatibility-api/client-sdks/applications/create.md): Use this endpoint for the Applications method to create a new application within your account. - [Delete an Application](/compatibility-api/client-sdks/applications/delete.md): Use this endpoint for the Applications method to delete an Application. - [Retrieve an Application](/compatibility-api/client-sdks/applications/retrieve.md): Use this endpoint for the Applications method to retrieve Applications associated with your account in a list. - [Update an Application](/compatibility-api/client-sdks/applications/update.md): Use this endpoint for the Applications method to modify the properties of an application. - [Accounts](/compatibility-api/client-sdks/methods/accounts.md): Accounts allow you to list and update your SignalWire Projects. - [List All Accounts](/compatibility-api/client-sdks/methods/accounts/list.md): Use this endpoint for the Accounts method to list all accounts. - [Retrieve an Account](/compatibility-api/client-sdks/methods/accounts/retrieve.md): Use this endpoint for the Accounts method to retrieve a single account. - [Update an Account](/compatibility-api/client-sdks/methods/accounts/update.md): Use this endpoint for the Accounts method to modify the properties of an account. - [Calls](/compatibility-api/client-sdks/methods/calls.md): A call is a connection between SignalWire and another phone. - [Create a Call](/compatibility-api/client-sdks/methods/calls/create.md): Use this endpoint for the Calls method to create a new call. - [Delete a Call](/compatibility-api/client-sdks/methods/calls/delete.md): Use this endpoint for the Calls method to delete a call. - [List All Calls](/compatibility-api/client-sdks/methods/calls/list.md): Use this endpoint for the Calls method to list all of the calls that are associated with your account. - [Retrieve a Call](/compatibility-api/client-sdks/methods/calls/retrieve.md): Use this endpoint for the Calls method to retrieve a single call. - [Update a Call](/compatibility-api/client-sdks/methods/calls/update.md): Use this endpoint for the Calls method to modify an active call. - [Conference Participants](/compatibility-api/client-sdks/methods/conference-participants.md): Conference participants refer to the participants that are actively connected to a conference call. - [Add a Participant](/compatibility-api/client-sdks/methods/conference-participants/add.md): In order to add a participant to a conference call, from the cXML REST API, create an - [Delete a Participant](/compatibility-api/client-sdks/methods/conference-participants/delete.md): Use this endpoint for the Conference Participants method to delete a participant, removing them from the conference call. - [List All Active Participants](/compatibility-api/client-sdks/methods/conference-participants/list.md): Use this endpoint for the Conference Participants method to read all of the active participants that are associated with this conference call. - [Retrieve a Participant](/compatibility-api/client-sdks/methods/conference-participants/retrieve.md): Use this endpoint for the Conference Participants method to retrieve a single participant. - [Update a Participant](/compatibility-api/client-sdks/methods/conference-participants/update.md): Use this endpoint for the Conference Participants method to modify the properties of participant in an active conference call. - [Conferences](/compatibility-api/client-sdks/methods/conferences.md): The Conference resource permits you to search, modify, and manage conferences in your SignalWire account. - [List All Conferences](/compatibility-api/client-sdks/methods/conferences/list.md): Use this endpoint for the Conference method to read all of the conferences that are associated with your SignalWire account. - [Retrieve a Conference](/compatibility-api/client-sdks/methods/conferences/retrieve.md): Use this endpoint for the Conference method to retrieve a single conference. - [Update a Conference](/compatibility-api/client-sdks/methods/conferences/update.md): Use this endpoint for the Conference method to modify the properties of a conference. - [cXML Applications](/compatibility-api/client-sdks/methods/cxml-applications.md): cXML Applications are our serverless hosted service that allows you to easily serve static documents without setting up any infrastructure. - [Create a cXML Application](/compatibility-api/client-sdks/methods/cxml-applications/create.md): Create a new cXML Application by making a POST request to the cXML Application resource. - [Delete a cXML Application](/compatibility-api/client-sdks/methods/cxml-applications/delete.md): Use this endpoint for the cXML Applications method to remove a cXML Application from your Project. - [List all cXML Applications](/compatibility-api/client-sdks/methods/cxml-applications/list.md): Returns a list of your Addresses. - [Retrieve a cXML Application](/compatibility-api/client-sdks/methods/cxml-applications/retrieve.md): Retrieves the details of a cXML Application that has been previously created. - [Update a cXML Application](/compatibility-api/client-sdks/methods/cxml-applications/update.md): To update a cXML Application, make a POST request to the cXML Application resource. - [Fax Media](/compatibility-api/client-sdks/methods/fax-media.md): The Fax Media resource provides detailed information about the media files attached to fax instances. - [Delete a Fax Media](/compatibility-api/client-sdks/methods/fax-media/delete.md): Use this endpoint for the Fax Media method to delete a fax media instance. - [List All Media of a Fax](/compatibility-api/client-sdks/methods/fax-media/list-all.md): Use this endpoint for the Fax Media method to return a paged list - [Retrieve a Fax Media Instance](/compatibility-api/client-sdks/methods/fax-media/retrieve.md): Use this endpoint for the Fax Media method to retrieve a single fax media. - [Faxes](/compatibility-api/client-sdks/methods/faxes.md): A Fax is a fax that has been sent to or received by a SignalWire phone number. - [Delete a Fax](/compatibility-api/client-sdks/methods/faxes/delete.md): Use this endpoint for the Fax method to delete a fax. - [List All Faxes](/compatibility-api/client-sdks/methods/faxes/list.md): Use this endpoint for the Fax method to list all faxes on your SignalWire account. - [Retrieve a Fax](/compatibility-api/client-sdks/methods/faxes/retrieve.md): Use this endpoint for the Fax method to retrieve a single fax by its SID. - [Send a Fax](/compatibility-api/client-sdks/methods/faxes/send.md): Use this endpoint for the Fax method to send a Fax. - [Update a Fax](/compatibility-api/client-sdks/methods/faxes/update.md): Use this endpoint for the Fax method to update the Status of a Fax. - [Incoming Phone Numbers](/compatibility-api/client-sdks/methods/incoming-phone-numbers.md): IncomingPhoneNumbers represent an account's phone numbers that were purchased through SignalWire. - [Create an IncomingPhoneNumber](/compatibility-api/client-sdks/methods/incoming-phone-numbers/create.md): Use this endpoint for the IncomingPhoneNumber method to create an IncomingPhoneNumber. - [Delete an IncomingPhoneNumber](/compatibility-api/client-sdks/methods/incoming-phone-numbers/delete.md): Use this endpoint for the IncomingPhoneNumber method to delete an IncomingPhoneNumber. - [List All IncomingPhoneNumbers](/compatibility-api/client-sdks/methods/incoming-phone-numbers/list.md): Use this endpoint for the IncomingPhoneNumber method to read all of the IncomingPhoneNumbers that are associated with your SignalWire account. - [Retrieve an IncomingPhoneNumber](/compatibility-api/client-sdks/methods/incoming-phone-numbers/retrieve.md): Use this endpoint for the IncomingPhoneNumber method to retrieve a single IncomingPhoneNumber. - [Update an IncomingPhoneNumber](/compatibility-api/client-sdks/methods/incoming-phone-numbers/update.md): Use this endpoint for the IncomingPhoneNumber method to modify the properties of an incoming phone number. - [Media](/compatibility-api/client-sdks/methods/media.md): The Media object represents a single attachment or media file that is associated with a Message. - [Delete a media object](/compatibility-api/client-sdks/methods/media/delete.md): Use this endpoint for the Media method to delete a media instance from your Project so it no longer appears in the Dashboard or on the API. - [List all media](/compatibility-api/client-sdks/methods/media/list.md): Use this endpoint for the Media method to return a paged list - [Retrieve a media object](/compatibility-api/client-sdks/methods/media/retrieve.md): Use this endpoint for the Media method to retrieve a single media record. - [Messages](/compatibility-api/client-sdks/methods/messaging.md): A Message is an inbound or outbound message sent or received by your SignalWire project. - [Create a message](/compatibility-api/client-sdks/methods/messaging/create.md): Use this endpoint for the Media method to send an outbound message from one of your SignalWire phone numbers. - [Delete a message](/compatibility-api/client-sdks/methods/messaging/delete.md): Use this endpoint for the Media method to delete a message from your Project so it no longer appears in the Dashboard or on the API. - [List all messages](/compatibility-api/client-sdks/methods/messaging/list.md): Use this endpoint for the Media method to return a paged list - [Retrieve a message](/compatibility-api/client-sdks/methods/messaging/retrieve.md): Use this endpoint for the Media method to retrieve a single message. - [Update a message](/compatibility-api/client-sdks/methods/messaging/update.md): Use this endpoint for the Media method to update a message body after it has been sent. - [Queue Members](/compatibility-api/client-sdks/methods/queue-members.md): Queue members are the callers who are currently waiting in a call queue. - [List All Queue Members](/compatibility-api/client-sdks/methods/queue-members/list.md): Use this endpoint for the Queue Members method to read all of the queue members that are waiting in a particular queue. - [Retrieve a Queue Member](/compatibility-api/client-sdks/methods/queue-members/retrieve.md): Use this endpoint for the Queue Members method to retrieve a single queue member. - [Update a Queue Member](/compatibility-api/client-sdks/methods/queue-members/update.md): Use this endpoint for the Queue Members method to modify the properties of a queue member that is actively waiting in a call queue. - [Queues](/compatibility-api/client-sdks/methods/queues.md): Queue permits you to search and maintain individual call queues. - [Create a Queue](/compatibility-api/client-sdks/methods/queues/create.md): Use this endpoint for the Queues method to create a new call queue. - [Delete a Queue](/compatibility-api/client-sdks/methods/queues/delete.md): Use this endpoint for the Queues method to delete a single call queue. - [List All Queues](/compatibility-api/client-sdks/methods/queues/list.md): Use this endpoint for the Queues method to read all of the queues that are associated with your account. - [Retrieve a Queue](/compatibility-api/client-sdks/methods/queues/retrieve.md): Use this endpoint for the Queues method to retrieve a single call queue. - [Retrieve Members Waiting in a Queue](/compatibility-api/client-sdks/methods/queues/retrieve-members-waiting-in-queue.md): Use this endpoint for the Queues method to read the list of members that are currently waiting in a call queue. - [Update a Queue](/compatibility-api/client-sdks/methods/queues/update.md): Use this endpoint for the Queues method to modify the properties of a single call queue. - [Recording Transcriptions](/compatibility-api/client-sdks/methods/recording-transcriptions.md): Recording transcriptions are the transcribed texts that were generated from voice call recordings. - [Delete a Recording Transcription](/compatibility-api/client-sdks/methods/recording-transcriptions/delete.md): Use this endpoint for the Recording Transcriptions method to delete a recording transcription from your account. - [List All Transcriptions](/compatibility-api/client-sdks/methods/recording-transcriptions/list.md): Use this endpoint for the Recording Transcriptions method to read all of the recording transcriptions that are associated with your account. - [Retrieve a Transcription](/compatibility-api/client-sdks/methods/recording-transcriptions/retrieve.md): Use this endpoint for the Recording Transcriptions method to retrieve a single recording transcription. - [Recordings](/compatibility-api/client-sdks/methods/recordings.md): A Recording represents a recording of a voice or conference call. - [Create a Recording](/compatibility-api/client-sdks/methods/recordings/create.md): Use this endpoint for the Recordings method to initiate a Recording for a Call. - [Delete a Recording](/compatibility-api/client-sdks/methods/recordings/delete.md): Use this endpoint for the Recordings method to delete a recording. - [List All Recordings of an Account](/compatibility-api/client-sdks/methods/recordings/list.md): Use this endpoint for the Recordings method to fetch all the recordings that are associated with your SignalWire account. - [Retrieve a Recording](/compatibility-api/client-sdks/methods/recordings/retrieve.md): Use this endpoint for the Recordings method to retrieve a single recording media or its metadata. - [Update a Recording](/compatibility-api/client-sdks/methods/recordings/update.md): Use this endpoint for the Recordings method to pause, resume or stop a Recording. - [The cXML Specification](/compatibility-api/cxml.md): Learn about the specification defining cXML, the SignalWire language used to define phone number messaging and calling behavior. - [Fax XML](/compatibility-api/cxml/fax.md): Fax cXML is a set of actions defined in an XML document you can use to tell SignalWire what to do when you receive an incoming fax. - [](/compatibility-api/cxml/fax/receive.md): The `` verb tells SignalWire to receive an incoming fax, which results in the creation of a new Fax instance resource. - [](/compatibility-api/cxml/fax/reject.md): The ` verb tells SignalWire to reject an incoming fax, which results in a status of canceled`. - [Messaging XML](/compatibility-api/cxml/messaging.md): SignalWire cXML is a set of actions defined in an XML document that you can use to tell SignalWire what to do when you receive an incoming SMS or MMS message. - [](/compatibility-api/cxml/messaging/message.md): The ` verb sends an SMS or MMS message to a phone number. To send a message in combination with Voice XML verbs, use the ` Voice verb. - [](/compatibility-api/cxml/messaging/redirect.md): The ` verb transfers control from the current document to another. It is effectively an exit statement from the current document, as there is no way to return to any instructions listed after the ` verb. - [Stream an OpenAI Realtime API agent with a cXML script](/compatibility-api/cxml/stream-openai-realtime.md): Put OpenAI Speech-to-Speech models on the phone with bidirectional streaming and cXML. - [Voice XML](/compatibility-api/cxml/voice.md): SignalWire cXML is a set of actions defined in an XML document you can use to tell SignalWire what to do when you receive an incoming call or instructions for outbound calls. - [ noun](/compatibility-api/cxml/voice/conference-noun.md): ` verb's ` noun allows the connection to a named conference room. - [](/compatibility-api/cxml/voice/connect.md): The `` verb connects an existing call to another resource. - [](/compatibility-api/cxml/voice/denoise.md): The `` verb enables or disables noise reduction for call audio inbound to SignalWire. It - [](/compatibility-api/cxml/voice/dial.md): The ` verb connects an existing call to another phone number. ` will end this new call if: the called number does not answer, the number does not exist, or SignalWire receives a busy signal. - [](/compatibility-api/cxml/voice/echo.md): The `` verb will echo audio back to the call. - [](/compatibility-api/cxml/voice/enqueue.md): The ` verb places a call in a specified call queue. If the specified queue does not exist, a new queue will be created and the call will be placed into that new queue. Calls can be dequeued through the verb or removed from the queue through the ` verb. - [](/compatibility-api/cxml/voice/gather.md): The `` verb transcribes speech or collects digits during a call. - [](/compatibility-api/cxml/voice/hangup.md): The ` verb ends a call. While ed calls are never answered, calls that use the ` verb for disconnection are still answered, becoming subject to billing. - [](/compatibility-api/cxml/voice/leave.md): The ` verb transfers a call out of the queue containing that call. It then returns the flow of execution to verb following the ` that placed this call into the queue. - [ noun](/compatibility-api/cxml/voice/number-noun.md): ` verb's noun specifies what phone number to dial. You can use up to 10 s within a ` to simultaneously call several people. The first person to answer the call will be connected to the caller and the rest of the called numbers will be hung up. - [](/compatibility-api/cxml/voice/pause.md): The `` verb waits silently for a distinctive number of seconds. - [](/compatibility-api/cxml/voice/pay.md): Overview - [](/compatibility-api/cxml/voice/pay/parameter.md): The ` noun within the ` verb enables you to: - [](/compatibility-api/cxml/voice/pay/prompt.md): The ` noun allows you to customize the default prompts used by `. - [](/compatibility-api/cxml/voice/play.md): The `` verb plays an audio file, which SignalWire fetches from the URL you configured, back to the caller. - [ noun](/compatibility-api/cxml/voice/queue-noun.md): ` verb's ` noun specifies what queue to dial. - [](/compatibility-api/cxml/voice/record.md): The `` verb creates an audio file with the caller's voice and returns the URL to you. Text transcriptions of these recorded calls can also be produced. - [](/compatibility-api/cxml/voice/redirect.md): An example that redirects the next XML instruction to another call: - [](/compatibility-api/cxml/voice/refer.md): The ` verb transfers a SIP call in SignalWire to a transfer target using the SIP REFER method. This verb returns upon completion of transfer, on failure of transfer, on hangup, or on time out while waiting for NOTIFY. SignalWire will not hang up after ` until all verbs have been processed. - [](/compatibility-api/cxml/voice/reject.md): The ` verb rejects a call to your SignalWire number. It is effectively an exit statement from the current document, as there is no way to return to any instructions listed after the ` verb. - [ noun](/compatibility-api/cxml/voice/room-noun.md): ` verb's ` noun allows the connection to a video room. - [](/compatibility-api/cxml/voice/say.md): The `` verb reads the supplied text back to the caller. It is useful for text that is difficult to pre-record. The gender and language in which the text will be read is customizable. - [ noun](/compatibility-api/cxml/voice/sip-noun.md): ` verb's ` noun permits the set up of VoIP sessions using SIP (Session Initiation Protocol). You can send a call to any SIP endpoint. - [](/compatibility-api/cxml/voice/sms.md): The `` verb sends an SMS message to a phone number during a phone call. - [](/compatibility-api/cxml/voice/stream.md): [stream_start]: /rest/compatibility-api/endpoints/create-stream - [](/compatibility-api/cxml/voice/verto-noun.md): The `` noun is used to create a Verto connection. This is a SignalWire specific noun - [ noun](/compatibility-api/cxml/voice/virtualagent-noun.md): Dialogflow application creation and management through the SignalWire Compatibility API is deprecated. - [Overview](/compatibility-api/guides.md): A collection of guides that help you get the most out of the SignalWire Compatibility API. - [General Guides](/compatibility-api/guides/general.md): A collection of general guides for working with SignalWire's Compatibility API. - [Call & Text By Proxy (Masked Numbers) - Python](/compatibility-api/guides/general/calltext-by-proxy.md): Overview - [Creating and Using cXML scripts](/compatibility-api/guides/general/creating-and-using-cxml-scripts.md): What Are cXML scripts? - [Phone Numbers](/compatibility-api/guides/general/phone-numbers.md): A collection of guides for working with phone numbers while using SignalWire's Compatibility API. - [Purchasing Numbers in Bulk](/compatibility-api/guides/general/phone-numbers/how-to-purchase-numbers-in-bulk.md): Enjoy this user-friendly approach to adding API search parameters through queries in your console. Whether you want to buy local or purchase toll-free, this guide can help find all the numbers that suit your needs and seamlessly add them to your project. - [Update Webhooks in Bulk](/compatibility-api/guides/general/phone-numbers/how-to-update-webhooks-in-bulk.md): Use Python or Node.js to Update Webhooks on Bulk Amount of Numbers - [Listing Numbers to a CSV](/compatibility-api/guides/general/phone-numbers/list-numbers-to-csv.md): List all of the numbers in your SignalWire Project and export them to CSV - [Releasing Numbers](/compatibility-api/guides/general/phone-numbers/release-numbers.md): This code snippet will filter all numbers by a certain area code or sequence and then return all the numbers that match. Once you review the numbers that it prints out, you can uncomment the delete line and run it again to release the numbers all at once. - [Releasing Numbers from a CSV](/compatibility-api/guides/general/phone-numbers/release-project-numbers-based-off-csv.md): The Python script example below will delete numbers from your SignalWire Space based on a CSV file of the intended numbers to be deleted. - [Removing Landlines From Your Recipient List and Gathering Additional Information](/compatibility-api/guides/general/phone-numbers/remove-all-landlines-from-your-recipient-list.md): Stop sending messages to landlines! This snippet will use a Phone Number Lookup including carrier details for all numbers in your recipient list, and removes any numbers that are not sms-enabled. - [Mustache Template Parameters in cXML applications](/compatibility-api/guides/general/utilizing-mustache-templates.md): An introduction to saving parameters as mustache variables through XML webhooks. - [Messaging Guides](/compatibility-api/guides/messaging.md): This section contains guides for the SignalWire Messaging API using the Compatibility API. - [General Messaging Guides](/compatibility-api/guides/messaging/general.md): This section contains general guides for the SignalWire Messaging API using the Compatibility API. - [Handling Incoming Messages from Code](/compatibility-api/guides/messaging/general/handling-incoming-messages-from-code.md): In Receiving your first SMS we - [Listing Messages Filtered by Multiple From Numbers](/compatibility-api/guides/messaging/general/how-to-list-messages-filtered-by-multiple-from-numbers.md): Overview - [Listing Messages with a Specific Error Code to CSV](/compatibility-api/guides/messaging/general/how-to-list-messages-with-a-specific-error-code-to-csv.md): Overview - [Finding All Undelivered Messages](/compatibility-api/guides/messaging/general/how-to-pull-undelivered-messages.md): Overview - [Redacting Messages for HIPAA Compliance](/compatibility-api/guides/messaging/general/how-to-redact-messages-for-hippa-compliancy.md): This guide will show you two ways to approach redacting sensitive information from your outbound messages using the SignalWire API and Python or Node.js. - [Sending SMS from Google Sheets](/compatibility-api/guides/messaging/general/how-to-send-sms-from-google-sheets.md): Do you store your customer’s information in an Excel or Google Sheets spreadsheet? - [Listing Price Summaries](/compatibility-api/guides/messaging/general/how-to-use-list-messages-api-to-get-pricing-for-a-date-range.md): Overview - [Listing Messages to CSV](/compatibility-api/guides/messaging/general/list-messages-to-csv-all-languages.md): Overview - [SMS Status Callbacks for Delivery Tracking](/compatibility-api/guides/messaging/general/sms-status-callbacks.md): Overview - [Python Messaging Guides](/compatibility-api/guides/messaging/python.md): This section contains guides for the SignalWire Messaging API using Python. - [Reply Statistics](/compatibility-api/guides/messaging/python/how-to-get-reply-statistics-with-python.md): This guide will use the SignalWire Python SDK to get a list of owned DIDs, and compare inbound and outbound messages to provide statistics on reply rate. - [Sending Bulk SMS from CSV](/compatibility-api/guides/messaging/python/how-to-send-bulk-sms-from-customer-csv-with-python.md): Overview - [Overview](/compatibility-api/guides/messaging/python/send-sms-from-the-browser-with-python-flask-and-html.md): This guide will use Flask to create a simple web application that can send sms through the browser. - [Text Subscription](/compatibility-api/guides/messaging/python/text-subscription.md): This guide will show you how to create a phrase-based subscription service using SignalWire and Python. The application will demonstrate how you can easily create and maintain multiple campaigns as well as their associated subscribers. The list administrator can broadcast to specific campaigns and is notified of new subscribers and removal requests via email. If you reply with stop or unsubscribe, the number will be placed on a black list. - [Forwarding Texts to Email](/compatibility-api/guides/messaging/python/text-to-email.md): This guide will show you how you can handle incoming text messages and forward them to an email address. - [Status Callbacks](/compatibility-api/guides/signalwire-status-callbacks.md): SignalWire allows for a variety of different types of callbacks that allow you to keep an eye on your traffic and perform actions based on incoming events. - [10DLC Status Callbacks](/compatibility-api/guides/signalwire-status-callbacks/10dlc-tcr-status-callbacks.md): 10DLC status callbacks allow you to receive real-time notifications when the state of your 10DLC registration changes. This feature enables you to monitor the lifecycle of your messaging brands, campaigns, number assignment orders, and number assignments. - [Inbound Call Status Callbacks](/compatibility-api/guides/signalwire-status-callbacks/inbound-calls-status-callbacks.md): Inbound Call status callbacks are enabled at the phone number level and focus specifically on tracking inbound calls to that number. By default, your webhook is only called when the call is either completed or if it fails. This would be best suited for tracking the inbound calls in a call center to keep track of success rate, call quality, total calls, etc. - [Recording Status Callbacks](/compatibility-api/guides/signalwire-status-callbacks/recording-status-callbacks.md): A vital feature for working with inbound/outbound calls is call recording. If you're actively recording a call, the recording may not be available immediately. When there is a high volume of calls, it can be difficult to individually retrieve/handle each recording within your portal. - [SMS Status Callbacks](/compatibility-api/guides/signalwire-status-callbacks/sms-status-callbacks.md): One of the most popularly used forms of status callbacks is the SMS status callback. As messaging can often be high volume, it's crucial to be able to keep track of how your messaging campaigns are performing and handle any errors that start to pop up. - [Transcription Status Callbacks](/compatibility-api/guides/signalwire-status-callbacks/transcription-status-callbacks.md): If you are already using recordings, you may also want to transcribe them as well. Transcription callbacks will allow SignalWire to make an HTTP request to your specified callback URL with the transcription text as well as some other additional parameters. Your app can use these parameters to handle the transcription by uploading to your CRM, sending via email, or maybe even using SignalWire SMS to forward the body of the transcription. - [Voice Status Callbacks](/compatibility-api/guides/signalwire-status-callbacks/voice-status-callbacks.md): Voice status callbacks allow you to get an advanced view of how your call center is performing in real-time as well as key analytics that can be used to track performance. Callback applications could be as simple as tracking failures or as complex as full-scale real-time monitoring of in-progress calls. - [Voice Guides](/compatibility-api/guides/voice.md): A collection of voice guides that help you get the most out of the SignalWire Compatibility API. - [General Guides](/compatibility-api/guides/voice/general.md): A collection of general voice guides that help you get the most out of the SignalWire Compatibility API. - [Gathering User Input from Code](/compatibility-api/guides/voice/general/gathering-user-input-from-code.md): In Gathering User Input - [Handling Calls from Code](/compatibility-api/guides/voice/general/handling-calls-from-code.md): In Making and Receiving Phone Calls - [Dealing with Robocallers & Inbound Spam](/compatibility-api/guides/voice/general/how-to-deal-with-robocallers-inbound-spam.md): Spam is ever prevalent in this new era of messaging and calling, and that, unfortunately, does not exclude SignalWire's phone numbers. However, there are still some solutions if you find that you are receiving voice spam! - [Queues](/compatibility-api/guides/voice/general/queues.md): If you've ever called any company's support or sales line, you have probably - [Call Whisper](/compatibility-api/guides/voice/general/setting-up-call-whispering-in-cxml.md): A call whisper allows the callee (receiver of the call) to receive an audio message before the call is connected and allows the callee to accept or reject the incoming call. The audio message can contain information such as the source or purpose of the call. - [Cancelling a Stream with the Update a Call API](/compatibility-api/guides/voice/general/stopping-streams-with-rest-api.md): This guide will show you how to cancel a stream using the SignalWire Rest API. - [Node.js Guides](/compatibility-api/guides/voice/nodejs.md): A collection of guides utilizing the Node.js Compatibility API SDK. - [Answering Machine Detection](/compatibility-api/guides/voice/nodejs/answering-machine-detection.md): Answering Machine Detection (AMD) is an integral feature in any phone system. It is used to screen outbound calls to determine whether a human or machine (such as an IVR or voicemail system) answers the call. If a human answers, the call can be connected to a human agent. If a machine is detected, your system may want to end the call or leave a voicemail message. - [IVR with Voicemails Forwarded to Email - Node.js](/compatibility-api/guides/voice/nodejs/ivr-with-voicemail-to-email.md): Overview - [Send an Outbound Survey - Node.js](/compatibility-api/guides/voice/nodejs/outbound-survey.md): A telephone survey can be used to obtain useful information from users or customers, like a medical questionnaire for example. With SignalWire's NodeJS SDK, an application can be created to send an outbound call survey to English or Spanish speakers. - [SIP Voicemail - Node.js](/compatibility-api/guides/voice/nodejs/sip-voicemail.md): Set up Voicemail for your SIP endpoint. - [Python Guides](/compatibility-api/guides/voice/python.md): A collection of guides utilizing the Python Compatibility API SDK. - [Screen Calls Based on a Block List - Python](/compatibility-api/guides/voice/python/call-screening-block-list.md): This guide implements a call screening system based on the concept of a blocklist containing offending numbers. When a call comes in, the From number will be cross-checked with the block list to see if it is one of the blocked numbers. If so, the call will hang up. If the number is not in the block list, the call flow moves on to the next segment. - [Dial by Voice - Python](/compatibility-api/guides/voice/python/dial-by-voice.md): This application will prompt the caller for a phone number via speech input and connect to the phone number recognized using ASR providing an additional level of accessibility to your users. - [Dynamic IVR using JSON Menus - Python](/compatibility-api/guides/voice/python/dynamic-ivr-using-json-menus.md): This code will show you how you can use a JSON-defined menu in order to easily create an IVR Phone System with Python & Flask. We will be using the SignalWire Team as an example, but you can easily change the verbiage to fit your company's needs instead. Once you have modified this script to fit your company and point to the correct agents/departments, you only need to expose the script to the public and attach it as a webhook for handling inbound calls to one of your SignalWire DIDs. - [Execute Code during Business Hours Only - Python](/compatibility-api/guides/voice/python/execute-code-in-business-hours-only.md): Using time intervals to perform a specific action depending on business hours. - [Full Featured Call Center - JSON Menus & Python](/compatibility-api/guides/voice/python/full-contact-center.md): This guide demonstrates how to use SignalWire APIs to create a completely functional call center where the features are controlled by the JSON configuration file config.json making it exceedingly easy to enable/disable features in minutes! The dynamic setup of the JSON menus adds a greater level of customizability to your IVR and makes modifying the structure on the fly a breeze. - [Getting Detailed Price Summaries about Calls](/compatibility-api/guides/voice/python/getting-detailed-price-summaries-about-calls.md): Overview - [Recording Phone Calls](/compatibility-api/guides/voice/python/how-to-record-phone-calls.md): "This call may be recorded for quality assurance and training purposes". We've all heard it a million times! Call recording is one of the most common use cases in call centers, customer service lines, and even in your average small business. This guide will show how you can record both inbound and outbound calls with ease in a variety of different ways to suit your needs! - [Voice Conferences](/compatibility-api/guides/voice/python/how-to-use-conferences.md): Another very common use case with our voice APIs is creating/dialing conferences! This guide will show how you can dial into simple conferences using XML bins or create a more complex conferencing application using our SignalWire SDKs. - [Summarizing Voice Usage](/compatibility-api/guides/voice/python/how-to-use-the-list-calls-api-to-get-statistics-python.md): In this snippet, we will show you how to use SignalWire's List Calls API to gain valuable insight into your usage of voice on SignalWire's platform. After running this script, you gain both itemized and bird's eye views on all of the details of your voice usage, including: - [Listing Calls to CSV](/compatibility-api/guides/voice/python/list-calls-to-csv-all-languages.md): These snippets show how you can use SignalWire's API to filter the calls in your project by a number of parameters and then insert the call data into a CSV for your own record keeping. - [MultiChannel Banking Helper - Python](/compatibility-api/guides/voice/python/python-multichannel-banking-helper.md): This application will allow customers to check balance as well as obtain the due date for credit card payments via both voice and SMS. - [Survey with Google Sheets Reporting - Python](/compatibility-api/guides/voice/python/python-survey-with-google-sheets.md): This code will show you how you can use the very simple google sheets API instead of a database to store the results of a phone survey designed in Python. In this demo, we will show how it could be used to create a COVID19 health survey that will gather and append the call SID, from number, to number, and the answers to each question to our google sheet. Before we review and explain the code needed for this task, we first need to set up our Google Sheet as well as the Google Cloud Platform. Don't worry, it's easier than you think! - [Request Callback in a Queue - Python](/compatibility-api/guides/voice/python/request-callback-in-a-queue.md): In a past blog, we talked about the importance of having a concise phone menu so that customers don't have to wait through your IVR in order to resolve an issue. But what happens if a lot of customers call at once, making long hold and wait times that may make your customers aggravated as they stay on the line for extended periods of time? Have your customers keep their sanity while avoiding long hold times by offering a callback option. Using the SignalWire Python SDK, customers can call and request a call back by pressing a digit, or they can text message the number and request a call back when the next agent is available. - [Sentiment Analysis - Python](/compatibility-api/guides/voice/python/sentiment-analysis.md): This guide will show you how to easily identify the sentiment and emotion of a call. This is good for POST analysis or with some simple modification, it can be used in real-time to route the caller actively. - [SIP Voicemail](/compatibility-api/guides/voice/python/sip-voicemail.md): Having voicemail available is an important part of any phone system, and calls to SIP endpoints - [Two Factor Authentication for Voice - Python](/compatibility-api/guides/voice/python/two-factor-authentication.md): By adding 2FA to your application, you can provide your users effective protection against many security threats that target user passwords and accounts. It will generate a One-Time Password to their phone number via voice call. Application developers can enable two-factor authentication for their users with ease and without making any changes to the already existing application logic or database structure! This guide uses the Python SignalWire SDK to show an example of how that can be done! - [Updating Conference Recordings in SignalWire](/compatibility-api/guides/voice/python/updating-conference-recordings.md): Overview - [Capture Audio with Websockets and Call Streams](/compatibility-api/guides/voice/python/utilizing-websockets-and-call-streams.md): This guide will use `` and websockets to receive base64 audio, which can be written to an audio file for storage, playback, or further manipulation such as transcription services. This guide will focus on taking inbound and outbound audio tracks from a call and saving them to a Wave file. - [Exporting Voice API Statistics to a PDF](/compatibility-api/guides/voice/python/voice-api-statistics-to-pdf.md): Overview - [Status Callbacks](/compatibility-api/guides/voice/python/voice-status-callbacks.md): You can learn more about voice status callbacks, all of the possible parameters you can use, and how to set them up in our status callback mega guide! - [Forwarding Voicemail Transcriptions to Email - Python](/compatibility-api/guides/voice/python/voicemail-transcription.md): This guide will show how you can easily take a voicemail message from incoming callers, transcribe the recording, and email the transcription. We will use the SignalWire Python SDK to record a voicemail and transcribe it along with the MailGun API to send an email. - [Ruby Guides](/compatibility-api/guides/voice/ruby.md): A collection of guides utilizing the Ruby Compatibility API SDK. - [Answering Machine Detection - Ruby](/compatibility-api/guides/voice/ruby/answering-machine-detection.md): This guide utilizes the Answering Machine Detection feature to determine whether a human or voicemail machine has answered the call. This allows your program to determine whether to dial a number to connect someone to the human or leave a message for the voicemail box. - [Multi Factor Authentication for Voice - Ruby](/compatibility-api/guides/voice/ruby/multi-factor-authentication.md): Multi-factor authentication (MFA) is used to authenticate users of an application through the use of a secret token that is sent to them over SMS text or a voice call. It is commonly used for logging in to secure systems, but it is also gaining popularity as an one-time password (OTP) mechanism to authorize transactions or to sign documents and contracts. - [Appointment Reminders Calls with Sinatra - Ruby](/compatibility-api/guides/voice/ruby/ruby-reminder-calls.md): This application demonstrates how easy it is to place a call, accepting both DTMF and text input, and using SignalWire's advanced TTS capabilities to speak dates and times in the correct way. If the user changes their appointment to one of the slots we offer, we will also send them a reminder SMS. - [Libraries and SDKs](/compatibility-api/sdks.md): SignalWire has clients in a number of different languages that make using the SignalWire Compatibility API possible with your existing application. They are also built to make migrating from other service providers to SignalWire quick and easy. ## Fax - [Fax](/fax.md): Programmable Fax in the cloud - [Getting Started with Fax](/fax/get-started.md): Learn how to get started with Fax. - [Common Fax Errors](/fax/getting-started/common-fax-errors.md): Our guide to understanding and troubleshooting the most common fax error messages. - [Forwarding Inbound Faxes to Email](/fax/getting-started/fax-to-email.md): This short and simple guide will show how you can use the SignalWire Python SDK and the MailGun API in order to forward your incoming SignalWire faxes to email. You can easily bridge this older technology by allowing faxes to be delivered to your inbox with only a few lines of code. - [Retrying Failed Faxes](/fax/getting-started/fax-with-retries.md): Example application that sends Faxes, and retries if it fails - [Filtering Faxes by Number, Status, and Date](/fax/getting-started/filter-faxes-by-number-status-and-date.md): Find out any problems sending/receiving faxes, and get the necessary information our Support will need to assist you! - [First steps with fax](/fax/getting-started/first-steps-with-fax.md): Learn how to send and receive your first fax using SignalWire's APIs - [Listing Faxes to CSV](/fax/getting-started/list-faxes-to-csv-in-all-languages.md): These snippets show how you can use SignalWire's Compatibility API to filter the faxes in your project by a number of parameters and then insert the fax data into a CSV for your own record keeping. - [Callback for Inbound Fax](/fax/getting-started/securing-callback-for-inbound-fax-with-cxml.md): Learn how to secure your callback for a inbound fax ## Guides - [SignalWire Guide Showcase](/guides.md) ## Home - [Voice](/home/calling/voice/getting-started.md): Get started - [Voice Guides](/home/calling/voice/guides.md): General Guides - [Messaging Guides](/home/messaging/sms/guides.md) - [Administration](/home/platform/dashboard/administration.md): The SignalWire Dashboard ## Messaging - [Messaging](/messaging.md): Integrate powerful, programmable, high-throughput SMS and MMS with SignalWire APIs, SDKs, and no-code application builders - [Messaging FAQs](/messaging/faq.md): 1. Create a Brand. - [Getting Started with Messaging](/messaging/get-started.md): Learn how to get started with the SignalWire Messaging API. - [The Campaign Registry](/messaging/get-started/campaign-registry.md): Learn all about the Campaign Registry and how it affects you. - [Campaign Service Providers (CSPs)](/messaging/getting-started/campaign-registry/campaign-service-providers.md): Learn more about how to register your 10 DLC Messaging traffic by working with The Campaign Registry directly. - [Frequently Asked Questions](/messaging/getting-started/campaign-registry/faq.md): The Campaign Registry - [Pricing](/messaging/getting-started/campaign-registry/pricing.md): Learn about pricing associated with The Campaign Registry. - [Registration](/messaging/getting-started/campaign-registry/registration.md): The Campaign Registry - [Troubleshooting Messaging Issues](/messaging/getting-started/how-to-troubleshoot-common-messaging-issues.md): Messaging is an ever-changing ecosystem, and resolving issues can be tricky. - [Introduction](/messaging/getting-started/platform-free-trial.md): Test SignalWire's messaging APIs before registering with The Campaign Registry. - [Receiving your first SMS](/messaging/getting-started/receiving-your-first-sms.md): Learn how to receive your first SMS. - [Sending Your First SMS](/messaging/getting-started/sending-your-first-sms.md): Let's get you started by sending your first SMS. In this guide we are going to - [SMS Best Practices for Improved Delivery Rates](/messaging/getting-started/sms-best-practices-how-to-ensure-message-delivery.md): The best way to ensure that your messages reach their intended audience is to follow these rules. - [The Campaign Registry Guides](/messaging/guides/campaign-registry.md): This section contains guides for interacting with the Campaign Registry API. - [General Messaging Guides](/messaging/guides/general.md): This section contains general guides for the SignalWire Messaging API. - [Private URL Shortener](/messaging/guides/general/how-to-build-a-private-url-shortener.md): Code example of a private URL shortener in python - [Finding Unregistered Numbers in a Project](/messaging/guides/general/how-to-find-unregistered-numbers-on-your-project.md): A script to compare all the numbers in your project with a CSV of registered numbers. - [Messaging Character Limits](/messaging/guides/general/messaging-character-limits.md): An overview of how message segments are measured and priced. - [Messaging MIME Types](/messaging/guides/general/messaging-mime-types.md): To send MMS, you must include a media attachment. The content-type header must have an accepted content type, or SignalWire will have to reject the request. - [Toll-free verification](/messaging/guides/general/toll-free-number-overview.md): Overview of Toll-Free number verification process. - [Hosted Messaging](/messaging/guides/hosted-messaging.md): Learn about porting Messaging services only to the SignalWire platform. ## Platform - [Platform Basics](/platform/basics.md): Platform Basics Overview - [General Knowledge](/platform/basics/general.md): Platform basics - [Rate limits](/platform/basics/general/signalwire-rate-limits.md): Platform basics - [STIR/ SHAKEN - All you need to know](/platform/basics/general/stir-shaken-all-you-need-to-know.md): Since its inception, spammers, spoofers, and supervillains have attacked the telephony industry. STIR/SHAKEN is a protocol that aims to solve this problem through caller verification. Read along to find out what STIR/SHAKEN is and SignalWire's part in this all. - [STUN vs. TURN vs. ICE](/platform/basics/general/stun-vs-turn-vs-ice.md): Platform basics - [SIP (Session Initiation Protocol)](/platform/basics/general/what-is-sip.md): Platform basics - [WebRTC](/platform/basics/general/what-is-webrtc.md): A deep dive into Real-Time Communication - [Guides](/platform/basics/guides.md): Overview - [Getting Started Without Code](/platform/basics/guides/getting-started-without-code.md): Learn how to get started with SignalWire without writing any code. - [Sending API Requests through Postman](/platform/basics/guides/how-to-test-api-requests-on-postman.md): Overview - [Technical Troubleshooting](/platform/basics/guides/technical-troubleshooting.md): Overview - [Common Webhook Errors](/platform/basics/guides/technical-troubleshooting/common-webhook-errors.md): Below are some examples of common errors that you might encounter when using webhooks. If you are unable to resolve your issue, you can always reach out to our Support Team and provide them with a resource SID so that they can locate the call/message record and offer assistance. - [Creating a Publicly Exposed Webhook with Pyngrok](/platform/basics/guides/technical-troubleshooting/creating-a-publically-exposed-webhook.md): Through ngrok and Flask, we will learn how to turn our backend application into a webhook that can be executed by our SignalWire phone number once a given action is triggered. - [Locally Test Webhooks with Ngrok](/platform/basics/guides/technical-troubleshooting/how-to-test-webhooks-with-ngrok.md): SignalWire offers cXML applications as a way to host very simple code without the use of a server. However, what if you want to use more complex code or integrate with other applications/databases? In that case, you would need to write a script using the SignalWire SDK, host it on a server, and use that as the webhook for handling calls or messages. - [WebRTC with SIP Over WebSockets](/platform/basics/guides/webrtc-with-sip-over-websockets.md): SignalWire supports industry-standard WebRTC SIP over WebSockets! This means that you can use off-the-shelf JavaScript libraries with SIP to connect to SignalWire services. - [Security and Compliance](/platform/basics/security-and-compliance.md): Security and Compliance - [What is Considered Fraud?](/platform/basics/security-and-compliance/fraud.md): Defining fraud in a SignalWire context and what to expect if your account is flagged for fraudulent activity. - [HIPAA/PCI Compliance on SignalWire](/platform/basics/security-and-compliance/hipaapci-compliance.md): Overview - [Webhook Security](/platform/basics/security-and-compliance/webhook-security.md): When building an application with SignalWire services, you are very likely to use webhooks to exchange information with SignalWire. A webhook is an HTTP(S) request sent to your web application when a key event has occurred, such as an inbound call, inbound message, or a status change. This allows SignalWire to query your web application in order for instructions on what to do next. For example, you might use a webhook to handle an inbound call by reading the instructions in your webhook to play an IVR, route the customer to the right department, and connect them with an agent. You could also use a webhook as a status callback where each status change of a call or message is sent to your web application which might store some instructions for handling emergent errors. - [What is Call Fabric?](/platform/call-fabric.md): Learn about Call Fabric, SignalWire's innovative solution designed to unify various communication technologies under one umbrella. - [Addresses](/platform/call-fabric/addresses.md) - [Resources](/platform/call-fabric/resources.md): Learn about Resources on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [AI Agents](/platform/call-fabric/resources/ai-agents.md): Learn about the Subscriber Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [cXML Scripts](/platform/call-fabric/resources/cxml-scripts.md): Learn about the Subscriber Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [Dialogflow Agent](/platform/call-fabric/resources/dialogflow-agents.md): Learn about the Subscriber Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [FreeSWITCH Connectors](/platform/call-fabric/resources/freeswitch-connectors.md): Learn about the Subscriber Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [RELAY Applications](/platform/call-fabric/resources/relay-applications.md): Learn about the Subscriber Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [SIP Gateways](/platform/call-fabric/resources/sip-gateways.md): Learn about the SIP Gateway Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [Subscribers](/platform/call-fabric/resources/subscribers.md): Learn about the Subscriber Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [SWML Scripts](/platform/call-fabric/resources/swml-scripts.md): Learn about the SWML Script Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [Video Rooms](/platform/call-fabric/resources/video-rooms.md): Learn about the Subscriber Resource on the SignalWire platform - what they are, how they work, and how to manage them in the Dashboard. - [Subscribers overview](/platform/call-fabric/subscribers.md): Comprehensive overview of SignalWire Call Fabric Subscribers - the building blocks of Programmable Unified Communications for user management and onboarding. - [Dashboard](/platform/dashboard.md): The SignalWire Dashboard. - [Billing](/platform/dashboard/billing.md): Learn how to add funds and manage billing in your SignalWire Space. - [Phone Numbers](/platform/dashboard/get-started/phone-numbers.md): Manage your SignalWire phone numbers - [Create an account](/platform/dashboard/getting-started/signing-up-for-a-space.md): Open a new Space, or user account, on the SignalWire platform. - [API credentials](/platform/dashboard/getting-started/your-signalwire-api-space.md): Learn how to access your SignalWire API Space. - [Change settings](/platform/dashboard/guides/changing-settings-in-your-signalwire-space.md): Change a SignalWire Space URL or SignalWire Space name - [Close an account](/platform/dashboard/guides/closing-a-signalwire-account.md): This guide presents the steps needed for how a customer can close their account by contacting us through a ticket. - [Multi-factor authentication](/platform/dashboard/guides/enabling-2famulti-factor-authentication.md): The Multi-Factor Authentication setting can be enabled via your SignalWire Space Dashboard at the User level. - [Export logs from your SignalWire Space](/platform/dashboard/guides/export-logs-from-your-signalwire-space.md): SignalWire provides a way to download logs in CSV format from your SignalWire Space. This is useful for when you are troubleshooting an issue, - [International support](/platform/dashboard/guides/how-to-enable-international-outbound-dialing-sms.md): Step by step guide for how to enable International Outbound Dialing & SMS on a SignalWire Space - [Increase Space limits](/platform/dashboard/guides/how-to-request-an-increase-to-your-signalwire-space-limits.md): Use this process to request an increase to a Space's Daily Top-up, Projects per Space, numbers per Project, Verified IDs per Project, Call backlog, or Message backlog - [Media URL Protection](/platform/dashboard/guides/media-protection.md): Configure Media URL Protection to secure media files generated by your SignalWire services at the project level. - [Create a subproject](/platform/dashboard/guides/subprojects.md): A guide to creating subprojects in SignalWire Space. - [Suspended Spaces](/platform/dashboard/guides/suspended-signalwire-cloud-space.md): Why a SignalWire Space is suspended and process for reactivating. - [User management](/platform/dashboard/guides/user-management.md): Adding new users for access to your SignalWire Space is quick and easy through your SignalWire Space dashboard. - [What is a SID?](/platform/dashboard/guides/what-is-a-sid.md): Learn about Segment IDs and how to retrieve them from your SignalWire Dashboard - [SignalWire Reference App](/platform/dashboard/reference-app.md): The SignalWire Dashboard - [Integrations](/platform/integrations.md): Integrations - [Carriers Integrations](/platform/integrations/carriers.md): This section contains guides for using carriers integrations with SignalWire. - [ThinQ](/platform/integrations/carriers/thinq.md): SignalWire allows you to easily integrate with your existing providers via SIP as a Bring Your Own Carrier (BYOC). - [CRM Integrations](/platform/integrations/crm.md): This section contains guides for using CRM integrations with SignalWire. - [Zoho CRM Click-to-Call](/platform/integrations/crm/zoho-crm-click-to-call.md): Overview - [Dialogflow Integration](/platform/integrations/dialogflow.md): This section contains guides for using Dialogflow with SignalWire. - [Integrating with Dialogflow Agents](/platform/integrations/dialogflow/dialogflow-agents.md): A step by step tutorial on how to use Dialogflow to build out an interactive IVR that is backed by Google's Conversational AI - [Caller ID & Sending SMS via Dialogflow](/platform/integrations/dialogflow/dialogflow-using-nodejs-to-get-caller-id-send-sms.md): How to use nodeJS to get the caller ID information using the DialogFlow fulfillment libraries and how to send SMS using nodeJS - [FreeSWITCH Guides](/platform/integrations/freeswitch.md): Learn how to use FreeSWITCH with SignalWire. - [Adding AI Capabilities to FreeSWITCH](/platform/integrations/freeswitch/add-ai-to-freeswitch.md): Learn how to add an AI agent to your FreeSWITCH instance to handle your calls. - [Choosing a FreeSWITCH Repository](/platform/integrations/freeswitch/choosing-a-freeswitch-repository.md): Learn which FreeSWITCH repository is right for you between the Public and Advantage repositories. - [Backtracing From a Core Dump](/platform/integrations/freeswitch/freeswitch-crash-getting-a-backtrace-from-a-core-dump.md): The first command you need is to install some needed tools for gdb to do the backtracing, curl to upload the backtrace log, and debug symbols for FreeSWITCH. You may need to install other debug symbols if you have any custom libraries in use. - [FreeSWITCH Memory Address and Memory Pool Sanitizer](/platform/integrations/freeswitch/freeswitch-memory-address-and-memory-pool-sanitizer.md): Customers who are subscribed to FreeSWITCH Enterprise may request access to an alternate repository that contains special FreeSWITCH packages with memory address and pool sanitation built-in. These special packages may help flush out otherwise difficult-to-find memory corruption issues, more commonly discovered while using advanced ESL techniques. Contact your sales manager for access inquiries. You will not be able to access this repository without proper permission. - [Clean and Reconfigure with mod_signalwire](/platform/integrations/freeswitch/how-to-mod_signalwire-in-freeswitch-clean-and-reconfigure.md): When using FreeSWITCH modsignalwire, these commands can be used to unload modsignalwire, discard current Connector configs, and obtain a new Token. - [Installing FreeSWITCH or FreeSWITCH Enterprise](/platform/integrations/freeswitch/installing-freeswitch-or-freeswitch-advantage.md): Learn how to install FreeSWITCH or FreeSWITCH Enterprise on your system. - [Sending an SMS from FreeSWITCH XML Dialplan](/platform/integrations/freeswitch/sending-an-sms-from-freeswitch-xml-dialplan-through-signalwire-cloud.md): In order to send an SMS from a FreeSWITCH dialplan extension, we need to do a few things: - [Messaging Service Integrations](/platform/integrations/messaging-services.md): This section contains guides for using messaging service integrations with SignalWire. - [Textable App](/platform/integrations/messaging-services/textable.md): A step by step tutorial on how to link Textable and your SignalWire Space - [TextIt](/platform/integrations/messaging-services/textit.md): A quick and easy step-by-step guide to link SignalWire to the chatbot platform TextIt! - [PBX Systems Integrations](/platform/integrations/pbx-systems.md): These guides are designed to help you integrate SignalWire with your favorite PBX systems. - [FusionPBX](/platform/integrations/pbx-systems/connect-fusionpbx-with-signalwire.md): FusionPBX is a FreeSWITCH-based multi-tenant PBX that provides a robust set of features for business phone systems. Using SignalWire services with FusionPBX allows you to leverage our high call quality and low rates. - [chan_sip FreePBX](/platform/integrations/pbx-systems/set-up-chan_sip-freepbx-with-signalwire.md): Taking advantage of SignalWire’s extremely disruptive pricing for DIDs and minutes with FreePBX on chan_sip is super easy! - [FreePBX](/platform/integrations/pbx-systems/set-up-freepbx-with-signalwire.md): Using FreePBX and taking advantage of SignalWire’s disruptive pricing on DIDs and voice minutes is almost too easy. - [Serverless Functions](/platform/integrations/serverless-functions.md): This section contains guides for using serverless functions with SignalWire. - [Google Cloud Functions](/platform/integrations/serverless-functions/google-cloud-functions.md): This quick guide aims to provide a way to deploy a [SignalWire](https://signalwire.com) XML application to [Google Cloud Functions](https://cloud.google.com/functions). - [Microsoft Azure Functions](/platform/integrations/serverless-functions/microsoft-azure-functions.md): This guide explains how to leverage the SignalWire Compatibility API and the Node.Js SDK in Azure Function Apps. - [Softphone Integrations](/platform/integrations/softphones.md): These guides are designed to help you integrate SignalWire with your favorite softphone. - [3CX Softphone](/platform/integrations/softphones/connect-signalwire-with-3cx.md): Using SignalWire and 3CX for SIP - [Linphone](/platform/integrations/softphones/connect-signalwire-with-linphone.md): Using SignalWire and Linphone Softphone for SIP - [MicroSIP Softphone](/platform/integrations/softphones/microsip-softphone.md): Overview - [Bria SoftPhone](/platform/integrations/softphones/set-up-bria-softphone-with-signalwire.md): Bria Mobile is a popular softphone app that works very well with SignalWire! Here are the steps to get started with connecting to Bria Mobile. - [Zoiper Softphone](/platform/integrations/softphones/set-up-zoiper-softphone-with-signalwire.md): Zoiper is a popular desktop softphone app used to make/receive calls! Follow this guide to set up Zoiper with SignalWire. - [Workflow Tools Integrations](/platform/integrations/workflow-tools.md): These guides are designed to help you integrate SignalWire with your favorite workflow tools. - [Integromat](/platform/integrations/workflow-tools/how-to-integrate-signalwire-into-integromat.md): What is Integromat? - [Zapier Integration Guides](/platform/integrations/workflow-tools/zapier.md): This section contains guides for using Zapier with SignalWire. - [Creating a Zapier Zap](/platform/integrations/workflow-tools/zapier/creating-a-zapier-zap.md): This article explains the step-by-step instructions on how to use Zapier to create a Zap that functions the same in SignalWire as a cXML application. - [Zapier Webhooks](/platform/integrations/workflow-tools/zapier/how-to-use-zapier-webhooks.md): Why do you need it? - [Numbers Overview](/platform/phone-numbers.md): Phone Numbers - [Getting Started with Phone Numbers](/platform/phone-numbers/getting-started.md): This section contains guides for getting started with phone numbers on the SignalWire platform. - [Buying a Phone Number](/platform/phone-numbers/getting-started/buying-a-phone-number.md): No matter what you want to do, you're going to need a phone number to use! This guide will get you set up with your first SignalWire phone number. - [E911](/platform/phone-numbers/getting-started/e911.md): What is E911? - [Porting Into SignalWire](/platform/phone-numbers/getting-started/porting-into-signalwire.md): After becoming more familiar with our services, you may decide to port over your existing phone numbers to SignalWire. - [What is E164?](/platform/phone-numbers/getting-started/what-is-e164.md): An introduction to what E164 format is. - [Phone Numbers Guides](/platform/phone-numbers/guides.md): Phone Numbers Guides - [Verified Caller ID](/platform/phone-numbers/guides/caller-id.md): Verified Caller ID vs. SignalWire Phone Number - [Webhooks Overview](/platform/phone-numbers/guides/how-to-configure-your-webhook.md): An introduction to using webhooks to receive information and events about calls and messages. - [Number Groups](/platform/phone-numbers/guides/number-groups.md): Number Groups let you pool phone numbers that can act as one entity. - [Porting Out of SignalWire](/platform/phone-numbers/guides/porting-out-of-signalwire.md): Information about porting a phone number out of SignalWire. - [Releasing Numbers](/platform/phone-numbers/guides/releasing-dids.md): Information about releasing numbers on your SignalWire Dashboard. - [Transferring Numbers](/platform/phone-numbers/guides/transferring-dids.md): Transferring Phone Numbers to a Different Project in Your SignalWire Space ## Sms - [Carrier passthrough fees](/sms/carrier-fees.md): Comprehensive list of passthrough fees for all carriers. ## Tools - [SignalWire Tools](/tools.md): Learn about the tools built to streamline the developer experience of building with SignalWire tools. - [Click-to-Call](/tools/c2c.md): Embed real-time voice communication capabilities in your website with SignalWire Click-to-Call. - [Technical reference](/tools/c2c/technical-reference.md): Complete reference for Click-to-Call configuration options and parameters - [Introduction to SWSH](/tools/swsh.md): A comprehensive introduction to installing and using the SignalWire Interactive Shell (SWSH). - [Introduction to WireStarter](/tools/wirestarter.md): Get started with WireStarter, a versatile development and testing environment with pre-loaded demo applications. ## Video - [Video](/video.md): Programmable, lightweight, scalable video conferencing - [Programmable Video Conferences](/video/conference.md): Create a no-code, ready-to-use Programmable Video Conference in the SignalWire Dashboard. - [Video Conference AppKit](/video/conference/technical-reference.md): AppKit allows you to include Video Conferences with - [Video FAQs](/video/faq.md): Frequently asked questions about the SignalWire Video API. - [Get started](/video/getting-started.md): This section contains guides for getting started with the SignalWire Video API. - [Extending Rooms with Custom Code](/video/getting-started/extending-rooms-with-custom-code.md): Control fine-grained features of the UI-included video rooms using JavaScript - [Managing Video Rooms with APIs](/video/getting-started/managing-rooms-with-apis.md): Guide to managing prebuilt rooms with REST APIs. - [Simple Video Demo](/video/getting-started/simple-video-demo.md): Add high-quality, high-performance video to your application or website - [First steps with Video](/video/getting-started/video-first-steps.md): In this guide, you will learn how to set up a minimal video room using the JavaScript SDK. - [Guides](/video/guides.md): This section contains guides for using the SignalWire Video API. - [Using Layout Positions](/video/guides/layout-positions.md): SignalWire Video APIs provide a powerful layout system that you can use in your calls. Let's see how it works. - [Video Layouts](/video/guides/layouts.md): SignalWire Video Conferences offer a wide set of layouts to display the members in a room. To learn how to use layouts, check out the guides for Setting the Video Call Layout and Using Layout Positions. - [Making a Clubhouse Clone](/video/guides/making-a-clubhouse-clone.md): Learn how to make a Clubhouse clone using the SignalWire Video API. - [Making a Zoom Alternative](/video/guides/making-a-zoom-clone.md): Learn how to make a Zoom alternative using the SignalWire Video API. - [Setting the Video Call Layout](/video/guides/setting-the-layout-of-your-signalwire-video-calls.md): Learn how to set the layout of your SignalWire video calls. ## Voice - [Voice](/voice.md): Build next-generation calling applications with integrated AI, plug-and-play compatibility with other providers, and infinite scalability - [Voice FAQs](/voice/faq.md): Frequently Asked Questions - [Forwarding Calls](/voice/getting-started/how-to-forward-calls.md): Use cXML to forward calls - [Gathering User Input](/voice/getting-started/how-to-gather-keypad-input-from-user.md): Use cXML to prompt and receive user input. - [Setting Up Voicemail](/voice/getting-started/how-to-set-up-voicemail.md): Set up voice-mail on a number using simple cXML - [Making and receiving phone calls](/voice/getting-started/making-and-receiving-phone-calls.md): Overview of the many ways you can make and receive calls using SignalWire products. - [Recording Calls](/voice/getting-started/recording-calls.md): Using SWML and cXML to record ongoing calls. - [Update Your Firewall](/voice/getting-started/sip/allowing-signalwire-ips-through-your-firewall.md): SignalWire does not publish a list of IP's for public consumption as IP's may change. Customers can periodically run a command, or create a service to update firewalls regularly: - [Bring your own carrier](/voice/getting-started/sip/sip-byoc-bring-your-own-carrier.md): Bring Your Own Carrier (BYOC) allows SignalWire users to retain their own carriers for connectivity instead of the vendors that we partner with. This allows you to use any carrier you want while still utilizing the **powerful programmatic control** for SIP from SignalWire! - [SIP Domain Applications](/voice/getting-started/sip/sip-domain-applications.md): This application will generate a one-time password sent to the recipient's phone number via SMS. Application developers can enable two-factor authentication for their users with ease and without making any changes to the existing application logic or database structure! - [SIP Gateways](/voice/getting-started/sip/sip-gateways.md): Use SIP Gateways will generate a one-time password sent to the recipient's phone number via SMS. Application developers can enable two-factor authentication for their users with ease and without making any changes to the existing application logic or database structure! - [SIP trunking](/voice/getting-started/sip/sip-trunking.md): SIP trunking is a popular option for customers who have an existing PBX phone system and would like to route SIP traffic through SignalWire without taking advantage of our application-level features. - [Voices and languages](/voice/getting-started/voice-and-languages.md): Detailed list of all the TTS providers and voices SignalWire supports. - [Caller ID & CNAM](/voice/guides/general/how-to-set-caller-id-or-cnam.md): Caller ID vs. Caller Name - [Get started with SIP](/voice/sip.md): Learn about SIP on the SignalWire platform. - [SIP Endpoints](/voice/sip/get-started.md): Create a SIP endpoint, register it to a SignalWire phone number for handling incoming calls, or dial it with SignalWire. - [Amazon Polly](/voice/tts/amazon-polly.md): Learn how to use Polly TTS voices on the SignalWire platform. - [Microsoft Azure](/voice/tts/azure.md): Learn how to use Azure TTS voices on the SignalWire platform. - [Cartesia](/voice/tts/cartesia.md): Learn how to use Cartesia TTS voices on the SignalWire platform. - [Deepgram](/voice/tts/deepgram.md): Learn how to use Deepgram TTS voices on the SignalWire platform. - [ElevenLabs](/voice/tts/elevenlabs.md): Learn how to use ElevenLabs TTS voices on the SignalWire platform. - [Google Cloud](/voice/tts/gcloud.md): Learn how to use Google Cloud TTS voices on the SignalWire platform. - [OpenAI](/voice/tts/openai.md): Learn how to use OpenAI TTS voices on the SignalWire platform. - [Rime](/voice/tts/rime.md): Learn how to use Rime's Arcana and Mist v2 TTS models with SignalWire AI Voice applications. ## Optional - [Support](https://support.signalwire.com): SignalWire Support