# SignalWire Documentation > SignalWire Documentation - [SignalWire Documentation](https://developer.signalwire.com/index.md) ## ai Programmable, integrated, realtime voice AI - [AI](https://developer.signalwire.com/ai.md): Programmable, integrated, realtime voice AI - [Create your first phone AI Agent](https://developer.signalwire.com/ai/get-started.md): Deploy a serverless AI Agent and call it over the PSTN in under 5 minutes - for free - [AI platform capabilities](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/ai/guides.md): Get started with AI using our Quickstart guide. - [Prompt object model (POM)](https://developer.signalwire.com/ai/pom.md): A lightweight Python library for structured prompt management with LLMs - [POM technical reference](https://developer.signalwire.com/ai/pom/technical-reference.md): Learn more about the Prompt Object Model ## swml Get started with SWML (SignalWire Markup Language), a markup and scripting language for quickly writing powerful Relay applications in YAML or JSON documents. - [SWML](https://developer.signalwire.com/swml.md): Get started with SWML (SignalWire Markup Language), a markup and scripting language for quickly writing powerful Relay applications in YAML or JSON documents. - [Overview](https://developer.signalwire.com/swml/guides.md): Guides for using SWML. - [SWML AI guides](https://developer.signalwire.com/swml/guides/ai.md): Guides for using AI with SWML. - [AI Agent with audio playing in the background](https://developer.signalwire.com/swml/guides/ai/background_audio.md): Learn how to create an AI agent with background audio. - [Best Practices for Creating a SignalWire AI Agent](https://developer.signalwire.com/swml/guides/ai/best-practices.md): This guide offers a detailed overview of best practices to make sure your SignalWire Agent operates effectively. - [Using context_switch](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/guides/ai/holiday_special_santa_ai.md): Prerequisites - [Use set_meta_data](https://developer.signalwire.com/swml/guides/ai/set_meta_data.md): Learn how to use `set_meta_data` to store metadata to reference later. - [SWAIG](https://developer.signalwire.com/swml/guides/ai/swaig.md): The SignalWire AI Gateway connects your AI Agents to functionality on your backend. - [SWAIG.Function Guides](https://developer.signalwire.com/swml/guides/ai/swaig/functions.md): Guides for using SWAIG.functions with SignalWire. - [In-Depth Guide to data_map](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/guides/ai/toggle_functions.md): Learn how to use `toggle_functions` to toggle functions on and off. - [Creating a Voicemail Bot](https://developer.signalwire.com/swml/guides/ai/voicemail_bot_example.md): Learn how to create a voicemail bot using SWML. - [Call Whisper with SWML](https://developer.signalwire.com/swml/guides/call-whisper.md): A guide that shows you how to perform a Call Whisper using SWML. - [Creating an IVR with SWML](https://developer.signalwire.com/swml/guides/creating_ivr.md): Learn how to create an IVR with SWML. - [Methods](https://developer.signalwire.com/swml/guides/methods.md): Guides for using methods with SWML. - [How are the methods goto, execute and transfer different?](https://developer.signalwire.com/swml/guides/methods/goto_execute_transfer_disambiguation.md): Learn how to use the goto, execute, and transfer methods in SWML. - [Request](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/guides/remote_server.md): Learn how to handle incomming calls from a remote server using SWML. - [Methods overview](https://developer.signalwire.com/swml/methods.md): Overview of SWML methods. - [ai](https://developer.signalwire.com/swml/methods/ai.md): Create an AI agent to interact with users. - [ai.hints](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/languages.md): Configure the spoken language of your AI Agent, as well as the TTS engine, voice, and fillers. - [ai.params](https://developer.signalwire.com/swml/methods/ai/params.md): Parameters for AI that can customize the AI agent's behavior. - [params.conscience](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/post_prompt.md): The final set of instructions and configuration settings to send to the agent. - [ai.post_prompt_url](https://developer.signalwire.com/swml/methods/ai/post_prompt_url.md): The URL that the user defines to which to send status callbacks and reports. - [ai.prompt](https://developer.signalwire.com/swml/methods/ai/prompt.md): Establish the set of rules and instructions for the AI agent through a prompt. - [prompt.contexts](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/prompt/contexts/steps.md): An array of objects that define the steps in the context. - [prompt.pom](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/pronounce.md): Use this object to clarify AI's pronunciation of certain words or expressions. - [ai.SWAIG](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/swaig/defaults.md): The default settings for all SWAIG functions. - [defaults.web_hook_url](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/swaig/functions.md): Functions that can be executed during the interaction with the AI. - [functions.data_map](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/swaig/functions/data_map/output.md): The output object for the SWAIG function. - [data_map.webhooks](https://developer.signalwire.com/swml/methods/ai/swaig/functions/data_map/webhooks.md): An array of objects that define external API calls. - [webhooks.foreach](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/swaig/functions/fillers.md): The fillers object for the SWAIG function. - [functions.parameters](https://developer.signalwire.com/swml/methods/ai/swaig/functions/parameters.md): The parameters object for the SWAIG function. - [functions.web_hook_url](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/ai/swaig/includes.md): Remote function signatures to include in SWAIG functions. - [internal_fillers](https://developer.signalwire.com/swml/methods/ai/swaig/internal_fillers.md): Fillers that help break silence between responses and are played asynchronously during the function call. - [get_visual_input](https://developer.signalwire.com/swml/methods/ai/swaig/internal_fillers/get_visual_input.md): Fillers that will be played while the AI Agent is running the `get_visual_input` function. - [SWAIG.native_functions](https://developer.signalwire.com/swml/methods/ai/swaig/native_functions.md): The list of prebuilt functions that the AI agent is able to call. - [answer](https://developer.signalwire.com/swml/methods/answer.md): Answer incoming call and set an optional maximum duration. - [cond](https://developer.signalwire.com/swml/methods/cond.md): Execute a sequence of instructions depending on the value of a JavaScript condition. - [connect](https://developer.signalwire.com/swml/methods/connect.md): Dial a SIP URI or phone number. - [connect.headers](https://developer.signalwire.com/swml/methods/connect/headers.md): Custom SIP headers to add to INVITE. Has no effect on calls to phone numbers. - [denoise](https://developer.signalwire.com/swml/methods/denoise.md): Start noise reduction. - [detect_machine](https://developer.signalwire.com/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. - [execute](https://developer.signalwire.com/swml/methods/execute.md): Execute a specified section or URL as a subroutine, and upon completion, return to the current document. - [goto](https://developer.signalwire.com/swml/methods/goto.md): Jumps to a defined label in the current SWML section. - [hangup](https://developer.signalwire.com/swml/methods/hangup.md): Ends the call. - [join_room](https://developer.signalwire.com/swml/methods/join_room.md): Join a Relay Room Session. - [label](https://developer.signalwire.com/swml/methods/label.md): Mark any point of the SWML section with a label. - [live_transcribe](https://developer.signalwire.com/swml/methods/live_transcribe.md): Transcribe a voice interaction in real-time. - [live_transcribe.action](https://developer.signalwire.com/swml/methods/live_transcribe/action.md): The action to be performed during a live transcription session. - [action.start](https://developer.signalwire.com/swml/methods/live_transcribe/action/start.md): Start a live transcription session. - [action.stop](https://developer.signalwire.com/swml/methods/live_transcribe/action/stop.md): Stop a live transcription session. - [action.summarize](https://developer.signalwire.com/swml/methods/live_transcribe/action/summarize.md): Summarize the live transcription. - [live_translate](https://developer.signalwire.com/swml/methods/live_translate.md): Translate a voice interaction in real-time. - [live_translate.action](https://developer.signalwire.com/swml/methods/live_translate/action.md): The action to be performed during a live translation session. - [action.inject](https://developer.signalwire.com/swml/methods/live_translate/action/inject.md): Inject a message into the conversation. - [action.start](https://developer.signalwire.com/swml/methods/live_translate/action/start.md): Start a live translation session. - [action.stop](https://developer.signalwire.com/swml/methods/live_translate/action/stop.md): Stop a live translation session. - [action.summarize](https://developer.signalwire.com/swml/methods/live_translate/action/summarize.md): Summarize the live translation. - [pay](https://developer.signalwire.com/swml/methods/pay.md): Enable secure payment processing during voice calls. - [pay.parameters](https://developer.signalwire.com/swml/methods/pay/parameters.md): Pass custom parameters to your payment processor. - [pay.payment_connector_url](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/pay/prompts.md): Customize the audio prompts played during different stages of the payment process. - [prompts.actions](https://developer.signalwire.com/swml/methods/pay/prompts/actions.md): Customize the audio prompts played during different stages of the payment process. - [play](https://developer.signalwire.com/swml/methods/play.md): Play file(s), ringtones, speech or silence. - [prompt](https://developer.signalwire.com/swml/methods/prompt.md): Play a prompt and wait for input. - [receive_fax](https://developer.signalwire.com/swml/methods/receive_fax.md): Receive a fax being delivered to this call. - [record](https://developer.signalwire.com/swml/methods/record.md): Record the call audio in the foreground pausing further SWML execution until recording ends. - [record_call](https://developer.signalwire.com/swml/methods/record_call.md): Record call in the background. - [request](https://developer.signalwire.com/swml/methods/request.md): Send a HTTP request to a remote URL. - [return](https://developer.signalwire.com/swml/methods/return.md): Return from a `execute` method or exit script. - [send_digits](https://developer.signalwire.com/swml/methods/send_digits.md): Send digit presses as DTMF tones. - [send_fax](https://developer.signalwire.com/swml/methods/send_fax.md): Send a fax. - [send_sms](https://developer.signalwire.com/swml/methods/send_sms.md): Send an outbound message to a PSTN phone number. - [set](https://developer.signalwire.com/swml/methods/set.md): Set script variables to the specified values. - [sip_refer](https://developer.signalwire.com/swml/methods/sip_refer.md): Send a SIP REFER to a SIP call. - [sleep](https://developer.signalwire.com/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](https://developer.signalwire.com/swml/methods/stop_denoise.md): Stop noise reduction. - [stop_record_call](https://developer.signalwire.com/swml/methods/stop_record_call.md): Stop an active background recording. - [stop_tap](https://developer.signalwire.com/swml/methods/stop_tap.md): Stop an active tap stream. - [switch](https://developer.signalwire.com/swml/methods/switch.md): Execute different instructions based on a variable's value. - [tap](https://developer.signalwire.com/swml/methods/tap.md): Start background call tap. Media is streamed over Websocket or RTP to customer controlled URI. - [transfer](https://developer.signalwire.com/swml/methods/transfer.md): Transfer the execution of the script to a different `SWML section`, `URL`, or `Relay application`. - [unset](https://developer.signalwire.com/swml/methods/unset.md): Unset specified variables. - [user_event](https://developer.signalwire.com/swml/methods/user_event.md): Send custom events to the connected client on the call. ## call-flow-builder Learn about the Call Flow Builder, a visual tool for creating and managing call flows. - [Call Flow Builder](https://developer.signalwire.com/call-flow-builder.md): Learn about the Call Flow Builder, a visual tool for creating and managing call flows. - [AI Agent](https://developer.signalwire.com/call-flow-builder/ai-agent.md): Call Flow Builder node to connect to an AI Agent - [Answer Call](https://developer.signalwire.com/call-flow-builder/answer-call.md): Call Flow Builder node to answer an incoming call. - [Conditions](https://developer.signalwire.com/call-flow-builder/conditions.md): Call Flow Builder node to add conditions to your call flow. - [Execute SWML](https://developer.signalwire.com/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](https://developer.signalwire.com/call-flow-builder/forward-to-phone.md): Call Flow Builder node to forward the call to a phone number. - [Gather Input](https://developer.signalwire.com/call-flow-builder/gather-input.md): Call Flow Builder node to gather input from the caller. - [Handle Call](https://developer.signalwire.com/call-flow-builder/handle-call.md): Call Flow Builder node to handle an incoming call. - [Hang Up Call](https://developer.signalwire.com/call-flow-builder/hangup-call.md): Call Flow Builder node to hang up a call. - [Nodes](https://developer.signalwire.com/call-flow-builder/nodes.md): Call Flow Builder - [Play Audio or TTS](https://developer.signalwire.com/call-flow-builder/play-audio-or-tts.md): Call Flow Builder node to play audio or TTS to the caller. - [Request](https://developer.signalwire.com/call-flow-builder/request.md): Call Flow Builder node to make an HTTP request - [Send SMS](https://developer.signalwire.com/call-flow-builder/send_sms.md): Call Flow Builder node to send an SMS - [Set Variables](https://developer.signalwire.com/call-flow-builder/set-variables.md): Call Flow Builder node to set variables in the call flow. - [Start Call Recording](https://developer.signalwire.com/call-flow-builder/start-call-recording.md): Call Flow Builder node to start recording a call. - [Stop Call Recording](https://developer.signalwire.com/call-flow-builder/stop-call-recording.md): Call Flow Builder node to stop recording a call. - [Unset Variables](https://developer.signalwire.com/call-flow-builder/unset-variables.md): Call Flow Builder node to unset variables in the call flow. - [Variables](https://developer.signalwire.com/call-flow-builder/variables.md): Call Flow Builder - [Voicemail Recording](https://developer.signalwire.com/call-flow-builder/voicemail-recording.md): Call Flow Builder node to record voicemail messages. ## cantina - [User Guide for SignalWire Work/Events](https://developer.signalwire.com/cantina/user-guide.md): A comprehensive user guide for the SignalWire Work and Events products. - [Administrator Guide for SignalWire Work/Events](https://developer.signalwire.com/cantina/user-guide-for-admin-rights.md): Getting started with an Administrator account ## chat Programmable, integrated, low-latency Chat APIs and SDKs - [Chat](https://developer.signalwire.com/chat.md): Programmable, integrated, low-latency Chat APIs and SDKs - [Chat FAQs](https://developer.signalwire.com/chat/faq.md): Chat can be used to send and receive any JSON-serializable object. - [Getting Started](https://developer.signalwire.com/chat/getting-started.md): Learn how to get started with the SignalWire Chat API. - [First steps with Chat](https://developer.signalwire.com/chat/getting-started/chat-first-steps.md): Quickly implement a full-fledged chat into your web application. - [Simple Chat Demo](https://developer.signalwire.com/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](https://developer.signalwire.com/chat/guides.md): Learn how to use the SignalWire Chat API. - [Building Chat Apps with React](https://developer.signalwire.com/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](https://developer.signalwire.com/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 Learn about SignalWire's Compatibility API, including its API Reference, the cXML Specification, and available Client SDKs. - [Introduction to the Compatibility API](https://developer.signalwire.com/compatibility-api.md): Learn about SignalWire's Compatibility API, including its API Reference, the cXML Specification, and available Client SDKs. - [Methods](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/applications/delete.md): Use this endpoint for the Applications method to delete an Application. - [Retrieve an Application](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/applications/update.md): Use this endpoint for the Applications method to modify the properties of an application. - [Accounts](https://developer.signalwire.com/compatibility-api/client-sdks/methods/accounts.md): Accounts allow you to list and update your SignalWire Projects. - [List All Accounts](https://developer.signalwire.com/compatibility-api/client-sdks/methods/accounts/list.md): Use this endpoint for the Accounts method to list all accounts. - [Retrieve an Account](https://developer.signalwire.com/compatibility-api/client-sdks/methods/accounts/retrieve.md): Use this endpoint for the Accounts method to retrieve a single account. - [Update an Account](https://developer.signalwire.com/compatibility-api/client-sdks/methods/accounts/update.md): Use this endpoint for the Accounts method to modify the properties of an account. - [Calls](https://developer.signalwire.com/compatibility-api/client-sdks/methods/calls.md): A call is a connection between SignalWire and another phone. - [Create a Call](https://developer.signalwire.com/compatibility-api/client-sdks/methods/calls/create.md): Use this endpoint for the Calls method to create a new call. - [Delete a Call](https://developer.signalwire.com/compatibility-api/client-sdks/methods/calls/delete.md): Use this endpoint for the Calls method to delete a call. - [List All Calls](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/calls/retrieve.md): Use this endpoint for the Calls method to retrieve a single call. - [Update a Call](https://developer.signalwire.com/compatibility-api/client-sdks/methods/calls/update.md): Use this endpoint for the Calls method to modify an active call. - [Conference Participants](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/conferences/retrieve.md): Use this endpoint for the Conference method to retrieve a single conference. - [Update a Conference](https://developer.signalwire.com/compatibility-api/client-sdks/methods/conferences/update.md): Use this endpoint for the Conference method to modify the properties of a conference. - [cXML Applications](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/cxml-applications/list.md): Returns a list of your Addresses. - [Retrieve a cXML Application](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/fax-media/retrieve.md): Use this endpoint for the Fax Media method to retrieve a single fax media. - [Faxes](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/faxes/delete.md): Use this endpoint for the Fax method to delete a fax. - [List All Faxes](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/faxes/send.md): Use this endpoint for the Fax method to send a Fax. - [Update a Fax](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/incoming-phone-numbers.md): IncomingPhoneNumbers represent an account's phone numbers that were purchased through SignalWire. - [Create an IncomingPhoneNumber](https://developer.signalwire.com/compatibility-api/client-sdks/methods/incoming-phone-numbers/create.md): Use this endpoint for the IncomingPhoneNumber method to create an IncomingPhoneNumber. - [Delete an IncomingPhoneNumber](https://developer.signalwire.com/compatibility-api/client-sdks/methods/incoming-phone-numbers/delete.md): Use this endpoint for the IncomingPhoneNumber method to delete an IncomingPhoneNumber. - [List All IncomingPhoneNumbers](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/media/list.md): Use this endpoint for the Media method to return a paged list - [Retrieve a media object](https://developer.signalwire.com/compatibility-api/client-sdks/methods/media/retrieve.md): Use this endpoint for the Media method to retrieve a single media record. - [Messages](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/messaging/list.md): Use this endpoint for the Media method to return a paged list - [Retrieve a message](https://developer.signalwire.com/compatibility-api/client-sdks/methods/messaging/retrieve.md): Use this endpoint for the Media method to retrieve a single message. - [Update a message](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/queues.md): Queue permits you to search and maintain individual call queues. - [Create a Queue](https://developer.signalwire.com/compatibility-api/client-sdks/methods/queues/create.md): Use this endpoint for the Queues method to create a new call queue. - [Delete a Queue](https://developer.signalwire.com/compatibility-api/client-sdks/methods/queues/delete.md): Use this endpoint for the Queues method to delete a single call queue. - [List All Queues](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/client-sdks/methods/recording-transcriptions/retrieve.md): Use this endpoint for the Recording Transcriptions method to retrieve a single recording transcription. - [Recordings](https://developer.signalwire.com/compatibility-api/client-sdks/methods/recordings.md): A Recording represents a recording of a voice or conference call. - [Create a Recording](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/cxml.md): Learn about the specification defining cXML, the SignalWire language used to define phone number messaging and calling behavior. - [Fax XML](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/compatibility-api/cxml/fax/reject.md): The ` verb tells SignalWire to reject an incoming fax, which results in a status of canceled`. - [Messaging XML](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/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. - [Voice XML](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/cxml/voice/conference-noun.md): ` verb's ` noun allows the connection to a named conference room. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/connect.md): The `` verb connects an existing call to another resource. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/denoise.md): The `` verb enables or disables noise reduction for call audio inbound to SignalWire. It - [](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/echo.md): The `` verb will echo audio back to the call. - [](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/gather.md): The `` verb transcribes speech or collects digits during a call. - [](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/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](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/pause.md): The `` verb waits silently for a distinctive number of seconds. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/pay.md): Overview - [](https://developer.signalwire.com/compatibility-api/cxml/voice/pay/parameter.md): The ` noun within the ` verb enables you to: - [](https://developer.signalwire.com/compatibility-api/cxml/voice/pay/prompt.md): The ` noun allows you to customize the default prompts used by `. - [](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/cxml/voice/queue-noun.md): ` verb's ` noun specifies what queue to dial. - [](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/redirect.md): An example that redirects the next XML instruction to another call: - [](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/cxml/voice/room-noun.md): ` verb's ` noun allows the connection to a video room. - [](https://developer.signalwire.com/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](https://developer.signalwire.com/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. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/sms.md): The `` verb sends an SMS message to a phone number during a phone call. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/stream.md): The `` instruction makes it possible to send raw audio streams from a running phone call over WebSockets in near real time, to a specified URL. The audio frames themselves are base64 encoded, embedded in a json string, together with other information like sequence number and timestamp. The feature can be used with Speech-To-Text systems and others. - [](https://developer.signalwire.com/compatibility-api/cxml/voice/verto-noun.md): The `` noun is used to create a Verto connection. This is a SignalWire specific noun - [ noun](https://developer.signalwire.com/compatibility-api/cxml/voice/virtualagent-noun.md): ` verb's ` noun permits connecting the - [Overview](https://developer.signalwire.com/compatibility-api/guides.md): A collection of guides that help you get the most out of the SignalWire Compatibility API. - [General Guides](https://developer.signalwire.com/compatibility-api/guides/general.md): A collection of general guides for working with SignalWire's Compatibility API. - [Call & Text By Proxy (Masked Numbers) - Python](https://developer.signalwire.com/compatibility-api/guides/general/calltext-by-proxy.md): Overview - [Creating and Using cXML scripts](https://developer.signalwire.com/compatibility-api/guides/general/creating-and-using-cxml-scripts.md): What Are cXML scripts? - [Phone Numbers](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/general/utilizing-mustache-templates.md): An introduction to saving parameters as mustache variables through XML webhooks. - [Messaging Guides](https://developer.signalwire.com/compatibility-api/guides/messaging.md): This section contains guides for the SignalWire Messaging API using the Compatibility API. - [General Messaging Guides](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/messaging/general/handling-incoming-messages-from-code.md): In Receiving your first SMS we - [Listing Messages Filtered by Multiple From Numbers](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/messaging/general/how-to-list-messages-with-a-specific-error-code-to-csv.md): Overview - [Finding All Undelivered Messages](https://developer.signalwire.com/compatibility-api/guides/messaging/general/how-to-pull-undelivered-messages.md): Overview - [Redacting Messages for HIPAA Compliance](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/messaging/general/how-to-use-list-messages-api-to-get-pricing-for-a-date-range.md): Overview - [Listing Messages to CSV](https://developer.signalwire.com/compatibility-api/guides/messaging/general/list-messages-to-csv-all-languages.md): Overview - [SMS Status Callbacks for Delivery Tracking](https://developer.signalwire.com/compatibility-api/guides/messaging/general/sms-status-callbacks.md): Overview - [Python Messaging Guides](https://developer.signalwire.com/compatibility-api/guides/messaging/python.md): This section contains guides for the SignalWire Messaging API using Python. - [Reply Statistics](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/messaging/python/how-to-send-bulk-sms-from-customer-csv-with-python.md): Overview - [Overview](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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 Overview](https://developer.signalwire.com/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. - [Voice Guides](https://developer.signalwire.com/compatibility-api/guides/voice.md): A collection of voice guides that help you get the most out of the SignalWire Compatibility API. - [General Guides](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/general/gathering-user-input-from-code.md): In Gathering User Input - [Handling Calls from Code](https://developer.signalwire.com/compatibility-api/guides/voice/general/handling-calls-from-code.md): In Making and Receiving Phone Calls - [Dealing with Robocallers & Inbound Spam](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/general/queues.md): If you've ever called any company's support or sales line, you have probably - [Call Whisper](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/nodejs.md): A collection of guides utilizing the Node.js Compatibility API SDK. - [Answering Machine Detection](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/nodejs/ivr-with-voicemail-to-email.md): Overview - [Send an Outbound Survey - Node.js](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/nodejs/sip-voicemail.md): Set up Voicemail for your SIP endpoint. - [Python Guides](https://developer.signalwire.com/compatibility-api/guides/voice/python.md): A collection of guides utilizing the Python Compatibility API SDK. - [Screen Calls Based on a Block List - Python](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/python/getting-detailed-price-summaries-about-calls.md): Overview - [Recording Phone Calls](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/python/updating-conference-recordings.md): Overview - [Capture Audio with Websockets and Call Streams](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/python/voice-api-statistics-to-pdf.md): Overview - [Status Callbacks](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/compatibility-api/guides/voice/ruby.md): A collection of guides utilizing the Ruby Compatibility API SDK. - [Answering Machine Detection - Ruby](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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 Programmable Fax in the cloud - [Fax](https://developer.signalwire.com/fax.md): Programmable Fax in the cloud - [Getting Started with Fax](https://developer.signalwire.com/fax/get-started.md): Learn how to get started with Fax. - [Common Fax Errors](https://developer.signalwire.com/fax/getting-started/common-fax-errors.md): Our guide to understanding and troubleshooting the most common fax error messages. - [Forwarding Inbound Faxes to Email](https://developer.signalwire.com/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](https://developer.signalwire.com/fax/getting-started/fax-with-retries.md): Example application that sends Faxes, and retries if it fails - [Filtering Faxes by Number, Status, and Date](https://developer.signalwire.com/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! - [Sending and Receiving Fax](https://developer.signalwire.com/fax/getting-started/first-steps-with-fax.md): It's easy to start sending and receiving Fax using SignalWire's APIs! You will need at least one number to send and receive faxes, so if you don't have one already, please follow the instructions below. - [Listing Faxes to CSV](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/guides.md) ## home - [Voice](https://developer.signalwire.com/home/calling/voice/getting-started.md): Get started - [Voice Guides](https://developer.signalwire.com/home/calling/voice/guides.md): General Guides - [Messaging Guides](https://developer.signalwire.com/home/messaging/sms/guides.md) - [Administration](https://developer.signalwire.com/home/platform/dashboard/administration.md): The SignalWire Dashboard - [Versioning](https://developer.signalwire.com/home/tools/call-flow-builder/version.md): Call Flow Builder ## messaging Integrate powerful, programmable, high-throughput SMS and MMS with SignalWire APIs, SDKs, and no-code application builders - [Messaging](https://developer.signalwire.com/messaging.md): Integrate powerful, programmable, high-throughput SMS and MMS with SignalWire APIs, SDKs, and no-code application builders - [Messaging FAQs](https://developer.signalwire.com/messaging/faq.md): 1. Create a Brand. - [Getting Started with Messaging](https://developer.signalwire.com/messaging/get-started.md): Learn how to get started with the SignalWire Messaging API. - [The Campaign Registry](https://developer.signalwire.com/messaging/get-started/campaign-registry.md): Learn all about the Campaign Registry and how it affects you. - [Campaign Service Providers (CSPs)](https://developer.signalwire.com/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](https://developer.signalwire.com/messaging/getting-started/campaign-registry/faq.md): The Campaign Registry - [Pricing](https://developer.signalwire.com/messaging/getting-started/campaign-registry/pricing.md): The Campaign Registry - [Registration](https://developer.signalwire.com/messaging/getting-started/campaign-registry/registration.md): The Campaign Registry - [Troubleshooting Messaging Issues](https://developer.signalwire.com/messaging/getting-started/how-to-troubleshoot-common-messaging-issues.md): Messaging is an ever-changing ecosystem, and resolving issues can be tricky. - [Introduction](https://developer.signalwire.com/messaging/getting-started/platform-free-trial.md): Test SignalWire's messaging APIs before registering with The Campaign Registry. - [Receiving your first SMS](https://developer.signalwire.com/messaging/getting-started/receiving-your-first-sms.md): Learn how to receive your first SMS. - [Sending Your First SMS](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/messaging/guides/campaign-registry.md): This section contains guides for interacting with the Campaign Registry API. - [General Messaging Guides](https://developer.signalwire.com/messaging/guides/general.md): This section contains general guides for the SignalWire Messaging API. - [Private URL Shortener](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/messaging/guides/general/messaging-character-limits.md): An overview of how message segments are measured and priced. - [Messaging MIME Types](https://developer.signalwire.com/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](https://developer.signalwire.com/messaging/guides/general/toll-free-number-overview.md): Overview of Toll-Free number verification process. ## platform The SignalWire platform. - [Platform](https://developer.signalwire.com/platform.md): The SignalWire platform. - [Platform Basics](https://developer.signalwire.com/platform/basics.md): Platform Basics Overview - [General Knowledge](https://developer.signalwire.com/platform/basics/general.md): Platform basics - [Rate limits](https://developer.signalwire.com/platform/basics/general/signalwire-rate-limits.md): Platform basics - [STIR/ SHAKEN - All you need to know](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/basics/general/stun-vs-turn-vs-ice.md): Platform basics - [SIP (Session Initiation Protocol)](https://developer.signalwire.com/platform/basics/general/what-is-sip.md): Platform basics - [WebRTC](https://developer.signalwire.com/platform/basics/general/what-is-webrtc.md): A deep dive into Real-Time Communication - [Guides](https://developer.signalwire.com/platform/basics/guides.md): Overview - [Getting Started Without Code](https://developer.signalwire.com/platform/basics/guides/getting-started-without-code.md): Learn how to get started with SignalWire without writing any code. - [Sending API Requests through Postman](https://developer.signalwire.com/platform/basics/guides/how-to-test-api-requests-on-postman.md): Overview - [Technical Troubleshooting](https://developer.signalwire.com/platform/basics/guides/technical-troubleshooting.md): Overview - [Common Webhook Errors](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/basics/security-and-compliance.md): Security and Compliance - [What is Considered Fraud?](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/basics/security-and-compliance/hipaapci-compliance.md): Overview - [Webhook Security](https://developer.signalwire.com/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?](https://developer.signalwire.com/platform/call-fabric.md): Learn about Call Fabric, SignalWire's innovative solution designed to unify various communication technologies under one umbrella. - [Addresses](https://developer.signalwire.com/platform/call-fabric/addresses.md) - [Resources](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/dashboard.md): The SignalWire Dashboard. - [Navigate the Dashboard](https://developer.signalwire.com/platform/dashboard/get-started/explore.md): Explore your SignalWire Space. - [Phone Numbers](https://developer.signalwire.com/platform/dashboard/get-started/phone-numbers.md): Manage your SignalWire phone numbers - [Create an account](https://developer.signalwire.com/platform/dashboard/getting-started/signing-up-for-a-space.md): Open a new Space, or user account, on the SignalWire platform. - [API credentials](https://developer.signalwire.com/platform/dashboard/getting-started/your-signalwire-api-space.md): Learn how to access your SignalWire API Space. - [Change settings](https://developer.signalwire.com/platform/dashboard/guides/changing-settings-in-your-signalwire-space.md): Change a SignalWire Space URL or SignalWire Space name - [Close an account](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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 - [Common issues](https://developer.signalwire.com/platform/dashboard/guides/how-to-set-auto-top-up-by-credit-card.md): This guide will show the steps to set up auto top up and how to resolve common credit card rejection errors. - [Create a subproject](https://developer.signalwire.com/platform/dashboard/guides/subprojects.md): A guide to creating subprojects in SignalWire Space. - [Suspended Spaces](https://developer.signalwire.com/platform/dashboard/guides/suspended-signalwire-cloud-space.md): Why a SignalWire Space is suspended and process for reactivating. - [Trial mode](https://developer.signalwire.com/platform/dashboard/guides/trial-mode.md): Every SignalWire account, when it is first created, is in trial mode. That means there are some limitations, to protect our services from potential abuse, and our new users from causing extensive issues. - [User management](https://developer.signalwire.com/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 an SID?](https://developer.signalwire.com/platform/dashboard/guides/what-is-a-sid.md): Learn about a SignalWire ID below! - [Integrations](https://developer.signalwire.com/platform/integrations.md): Integrations - [Carriers Integrations](https://developer.signalwire.com/platform/integrations/carriers.md): This section contains guides for using carriers integrations with SignalWire. - [ThinQ](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/crm.md): This section contains guides for using CRM integrations with SignalWire. - [Zoho CRM Click-to-Call](https://developer.signalwire.com/platform/integrations/crm/zoho-crm-click-to-call.md): Overview - [Dialogflow Integration](https://developer.signalwire.com/platform/integrations/dialogflow.md): This section contains guides for using Dialogflow with SignalWire. - [Integrating with Dialogflow Agents](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/freeswitch.md): Learn how to use FreeSWITCH with SignalWire. - [Adding AI Capabilities to FreeSWITCH](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/freeswitch/freeswitch-memory-address-and-memory-pool-sanitizer.md): Customers who are subscribed to FreeSWITCH Advantage 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](https://developer.signalwire.com/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 Advantage](https://developer.signalwire.com/platform/integrations/freeswitch/installing-freeswitch-or-freeswitch-advantage.md): Learn how to install FreeSWITCH or FreeSWITCH Advantage on your system. - [Sending an SMS from FreeSWITCH XML Dialplan](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/messaging-services.md): This section contains guides for using messaging service integrations with SignalWire. - [Textable App](https://developer.signalwire.com/platform/integrations/messaging-services/textable.md): A step by step tutorial on how to link Textable and your SignalWire Space - [TextIt](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/pbx-systems.md): These guides are designed to help you integrate SignalWire with your favorite PBX systems. - [FusionPBX](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/serverless-functions.md): This section contains guides for using serverless functions with SignalWire. - [Google Cloud Functions](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/softphones.md): These guides are designed to help you integrate SignalWire with your favorite softphone. - [3CX Softphone](https://developer.signalwire.com/platform/integrations/softphones/connect-signalwire-with-3cx.md): Using SignalWire and 3CX for SIP - [Linphone](https://developer.signalwire.com/platform/integrations/softphones/connect-signalwire-with-linphone.md): Using SignalWire and Linphone Softphone for SIP - [MicroSIP Softphone](https://developer.signalwire.com/platform/integrations/softphones/microsip-softphone.md): Overview - [Bria SoftPhone](https://developer.signalwire.com/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](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/workflow-tools.md): These guides are designed to help you integrate SignalWire with your favorite workflow tools. - [Integromat](https://developer.signalwire.com/platform/integrations/workflow-tools/how-to-integrate-signalwire-into-integromat.md): What is Integromat? - [Zapier Integration Guides](https://developer.signalwire.com/platform/integrations/workflow-tools/zapier.md): This section contains guides for using Zapier with SignalWire. - [Creating a Zapier Zap](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/integrations/workflow-tools/zapier/how-to-use-zapier-webhooks.md): Why do you need it? - [Numbers Overview](https://developer.signalwire.com/platform/phone-numbers.md): Phone Numbers - [Getting Started with Phone Numbers](https://developer.signalwire.com/platform/phone-numbers/getting-started.md): This section contains guides for getting started with phone numbers on the SignalWire platform. - [Buying a Phone Number](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/phone-numbers/getting-started/e911.md): What is E911? - [Porting Into SignalWire](https://developer.signalwire.com/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?](https://developer.signalwire.com/platform/phone-numbers/getting-started/what-is-e164.md): An introduction to what E164 format is. - [Phone Numbers Guides](https://developer.signalwire.com/platform/phone-numbers/guides.md): Phone Numbers Guides - [Verified Caller ID](https://developer.signalwire.com/platform/phone-numbers/guides/caller-id.md): Verified Caller ID vs. SignalWire Phone Number - [Webhooks Overview](https://developer.signalwire.com/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](https://developer.signalwire.com/platform/phone-numbers/guides/number-groups.md): Number Groups let you pool phone numbers that can act as one entity. - [Porting Out of SignalWire](https://developer.signalwire.com/platform/phone-numbers/guides/porting-out-of-signalwire.md): Information about porting a phone number out of SignalWire. - [Releasing Numbers](https://developer.signalwire.com/platform/phone-numbers/guides/releasing-dids.md): Information about releasing numbers on your SignalWire Dashboard. - [Transferring Numbers](https://developer.signalwire.com/platform/phone-numbers/guides/transferring-dids.md): Transferring Phone Numbers to a Different Project in Your SignalWire Space ## sdks JavaScript - [RELAY SDKs Technical Reference](https://developer.signalwire.com/sdks.md): JavaScript - [Agents SDK](https://developer.signalwire.com/sdks/agents-sdk.md):