*** id: 7f40d4f9-4d53-48b6-b4e8-0322386a04c7 title: Voice slug: /voice sidebar-title: Overview position: 0 subtitle: >- Build next-generation calling applications with integrated AI, plug-and-play compatibility with other providers, and infinite scalability ------------------------------------------------------------ Whether building a UCaaS solution, modernizing a legacy IVR, augmenting CX with AI, or migrating from another provider's APIs, our comprehensive technical references and guides have you covered. ## Get started SignalWire phone numbers in the Dashboard Deploy a serverless voice AI Agent and call it over the PSTN in under 5 minutes with SWML The fundamentals of your first calling app Get started with our Compatibility API Create a drag-and-drop calling application ## Choose an API SignalWire's advanced APIs and elastic cloud infrastructure make it a breeze to build modern and powerful voice applications using both PSTN and SIP endpoints. * **SignalWire REST API:** A robust, modern and flexible API for building integrated, advanced communications applications. * **Compatibility API:** Ideal for porting code from other providers. It can run serverless, but it also supports Python, PHP, Node.js, and other languages. * **Realtime API:** This API is ideal if you are an advanced developer and you want flexible, modern and realtime SDKs for Node.js. High-quality, scalable, and secure voice API Easily migrate from Twilio and other providers Next-gen server telephony applications powered by our RELAY WebSocket API Bring telephone capabilities to the browser with our Node.js SDK ## Low-code and no-code solutions Drag-and-drop, no-code call application builder Write realtime, AI-integrated calling applications using simple JSON or YAML scripts ## Popular guides Route SIP traffic through the SignalWire platform to your PBX system. Guide that focuses on how to make and receive phone calls via a SWML script. {/* Core links */} ## Frequently asked questions You can send up to `1 CPS` (Call Per Second) across your SignalWire Space. Consult our [Guide to Rate Limits](/docs/platform/rate-limits) for more information. Customers can also request additional [increases to their Space limits](/docs/platform/rate-limits). Every Space has a [default call backlog](/docs/platform/rate-limits#queue-and-backlog-system) of 10k. SignalWire will send calls out at 1 call per second per phone number. If your backlog fills up past 10k, you will not be able to queue any more calls until it decreases. You can request an increase to this backlog [here](/docs/platform/rate-limits). We do have offerings available for high throughput toll-free calling and high throughput SIP calling. Please reach out to [Support@signalwire.com](mailto:Support@signalwire.com) to get this process started. Yes, SignalWire has all the components to build a very powerful IVR! You could use [SWML](/docs/swml), the [RELAY SDK](/docs/compatibility-api/sdks), or even build a video/voice solution using our [Javascript SDKs](/docs/browser-sdk). Yes! You can purchase local long code, toll-free, and shortcode numbers from our carrier partners through the SignalWire platform. You can read about how to purchase numbers [here](/docs/platform/phone-numbers). SignalWire is a communications platform, not a carrier. To make our customers' lives easier, we integrate with our carrier peers so that you can buy numbers directly through us from them. That being said, the availability of numbers is totally reliant on our carrier. If you cannot find the area code you need, please create a Support ticket via the help link in your SignalWire Space and our team will do their best to get you the numbers you need. You can also [port any number into SignalWire](/docs/platform/porting-into-signalwire) from another provider! Public Switched Telephone Network (PSTN) is the network that carries your voice call when you call from a landline, cell phone, or DID (such as those SignalWire owns). This uses regular telephone infrastructure rather than SIP or other protocols. SIP (Session Initiation Protocol) refers to the process through which phone calls can take place over the internet (i.e. VOIP) instead of physical regular phone lines. This allows for greater worldwide reach, less physical requirements, and is more affordable/scalable for businesses. A SIP trunk is just a container that holds multiple SIP lines. In a sense, it's just an abstract version of traditional trunks—bundles of wire connecting switches. BYOC allows you to use SignalWire's APIs, services, and programmability all while keeping your current SIP providers for outbound/inbound calling. If you are interested in BYOC, see our [full guide](/docs/platform/voice/sip/bring-your-own-carrier) to get started. You have unlimited inbound and 1CPS per phone number outbound. If you would like to send more than 1 SIP call per second per phone number, you can reach out to [Support@signalwire.com](mailto:Support@signalwire.com) to talk about raising your max throughput. The number of call legs is dependent on the call flow. A call is made up of multiple call legs where a call leg represents a relationship between two user agents. If you directly forward a call to a SIP endpoint, that is only two legs (inbound and outbound). If a call comes into SignalWire and is then forwarded to 4 SIP endpoints, that would be 5 legs. Yes, SignalWire will allow you to easily implement Answering Machine Detection (AMD) on your calls! AMD listens to the call to determine if the party that picked up is a real person or a voicemail machine. You can use this information to determine whether to leave a voicemail message or begin interacting with a real person. You can use AMD through [`detect_machine`](/docs/swml/reference/detect-machine) in SWML or `detect_answering_machine` using the [Realtime SDK](/docs/server-sdk/node/reference/voice/call#voice_call_detect_answering). Yes, call recording is possible through the [Realtime SDK](/docs/server-sdk/node/reference/voice/call#voice_call_record_audio) or [SWML](/docs/swml/reference/record-call). Check out our guide on [Recording Calls](/docs/swml/guides/record-calls). Yes - transcription is possible using the [Realtime SDK](/docs/server-sdk/node/reference/voice/call#voice_call_transcribe) or through SWML's [AI agent](/docs/swml/reference/ai) capabilities. You can also set a callback in order to do something with your transcriptions when they're received. Yes - text to speech is simple with either the [RELAY Realtime SDK](/docs/server-sdk/v3/node/reference/voice/call/play-tts) or [SWML's play method](/docs/swml/reference/play). Speech to text is available through [SWML's prompt method](/docs/swml/reference/prompt) or you can collect speech and transcribe with Node.js using the [RELAY Realtime SDK](/docs/server-sdk/v3/node/reference/voice/call/collect). Call Whisper involves playing a short message before the callee accepts the call and connects to the caller. At this time, the caller will still hear ringing. This allows for the callee to screen the call and choose to accept/reject or gather additional information before connecting with the caller. Check out our [Call Whisper guide](/docs/swml/guides/call-whisper) for a SWML example. The Caller Name (CNAM) is a feature that displays your Name or Company Name on the Caller ID display of the party you are calling. When it is set up, your Caller ID Name will display as text along with your Caller ID Number. The Caller ID is the actual phone number calling in, whereas the accompanying text that provides the identifying name for that number is called CNAM (a.k.a. "Caller Name"). Follow the steps [here](/docs/platform/voice/how-to-set-caller-id-or-cnam) to get CNAM or caller ID set up. While it is possible to create ringless voicemail using SignalWire APIs, we do not provide support in creating this feature. Ringless voicemail is most commonly associated with spam to the carriers and therefore may not be able to be corrected if you run into problems. We have an elastic swarm of servers all across the world and across different providers to ensure minimum latency and maximum uptime. If you are looking for more details or would like to request a node in a specific location, please reach out to [sales@signalwire.com](mailto:sales@signalwire.com). Yes, SignalWire is PCI compliant. All applications built using SignalWire will also have to be built to maintain this compliance, for example: pausing/terminating any recording or transcription before accepting sensitive information. Yes, phishing and scam calls or calls to numbers that have been listed on a "Do Not Call" registry will be flagged as fraudulent. See the [SignalWire Cloud Agreement](https://signalwire.com/legal/signalwire-cloud-agreement) for more details.