From f69dfa3e9bea30cf411dfd0fd7059f91d157611d Mon Sep 17 00:00:00 2001 From: Devon-White Date: Wed, 19 Aug 2026 13:11:25 -0400 Subject: [PATCH 1/4] docs: add LLM equivalents for Dashboard screenshots --- .../apis/pages/core/authorization.mdx | 10 +++ .../cxml/guides/gathering-user-input.mdx | 8 ++ .../cxml/guides/receiving-your-first-sms.mdx | 30 +++++++ .../securing-callback-for-inbound-fax.mdx | 10 +++ .../cxml/guides/sending-your-first-sms.mdx | 12 ++- .../pages/cxml/guides/webhooks/index.mdx | 10 +++ .../cxml/guides/webhooks/webhook-security.mdx | 10 +++ .../pages/rest-api/core/authorization.mdx | 10 +++ .../platform/pages/calling/fax/overview.mdx | 30 +++++++ .../calling/voice/SIP/sip-trunking/index.mdx | 20 +++++ .../platform/pages/calling/voice/TTS/fish.mdx | 4 +- .../platform/pages/calling/voice/TTS/grok.mdx | 4 +- .../pages/calling/voice/TTS/groq-tts.mdx | 4 +- .../pages/calling/voice/TTS/inworld.mdx | 4 +- .../pages/calling/voice/TTS/minimax.mdx | 4 +- .../pages/calling/voice/TTS/mistral.mdx | 4 +- .../platform/pages/calling/voice/TTS/rime.mdx | 4 +- .../pages/calling/voice/TTS/smallest.mdx | 4 +- .../pages/calling/voice/TTS/speechify.mdx | 4 +- .../calling/voice/caller-id-and-cnam.mdx | 10 +++ .../pages/messaging/sms/character-limits.mdx | 10 +++ .../registration/index.mdx | 90 +++++++++++++++++++ .../pages/platform/call-fabric/resources.mdx | 30 +++++++ ...ble-international-outbound-dialing-sms.mdx | 10 +++ .../pages/platform/core/media-protection.mdx | 21 ++++- .../pages/platform/core/segment-ids.mdx | 10 +++ .../pages/platform/core/webhooks/index.mdx | 50 +++++++++++ .../FreeSWITCH/add-ai-to-freeswitch/index.mdx | 11 ++- .../index.mdx | 10 +++ .../pages/platform/phone-numbers/overview.mdx | 10 +++ .../pages/platform/setup/api-credentials.mdx | 10 +++ .../platform/setup/create-an-account.mdx | 10 +++ .../pages/tools/wirestarter/index.mdx | 11 ++- .../guides/basics/swml_remote_server.mdx | 10 +++ .../pages/guides/basics/webhook-security.mdx | 10 +++ .../pages/guides/get-started/quickstart.mdx | 20 +++++ .../guides/recipes/creating-ivr-with-swml.mdx | 10 +++ .../pages/guides/recipes/forwarding-calls.mdx | 10 +++ .../recipes/making-and-receiving-calls.mdx | 10 +++ .../pages/guides/recipes/recording-calls.mdx | 20 +++++ .../swml/pages/guides/recipes/voicemail.mdx | 10 +++ .../common/call-fabric/resource-addresses.md | 10 +++ .../call-fabric/resource-subscribers.md | 10 +++ .../dashboard/_assign-resource-voice.mdx | 15 ++++ fern/snippets/dashboard/ui-accordion.mdx | 10 +++ scripts/llm-export-cases.json | 62 ++++++++++++- 46 files changed, 654 insertions(+), 32 deletions(-) create mode 100644 fern/snippets/common/dashboard/_assign-resource-voice.mdx diff --git a/fern/products/apis/pages/core/authorization.mdx b/fern/products/apis/pages/core/authorization.mdx index ed51089324..afe01bd26c 100644 --- a/fern/products/apis/pages/core/authorization.mdx +++ b/fern/products/apis/pages/core/authorization.mdx @@ -44,10 +44,20 @@ Authorization: Basic YTFiMmMzZDQtZTVmNi03ODkwLWFiY2QtZWYxMjM0NTY3ODkwOjR0akNHbm1 Your Project ID and API Tokens are available in the [SignalWire Dashboard](/docs/platform/your-signalwire-api-space). + + API credentials in the Dashboard. + + + + +In the Dashboard, open **API Credentials**. Copy the **Project ID**, then reveal and copy an existing API token or select **+ New** to create one. + + + ### API token scopes Tokens can be scoped to limit API access. diff --git a/fern/products/compatibility-api/pages/cxml/guides/gathering-user-input.mdx b/fern/products/compatibility-api/pages/cxml/guides/gathering-user-input.mdx index eb872d3e90..10666a6f5d 100644 --- a/fern/products/compatibility-api/pages/cxml/guides/gathering-user-input.mdx +++ b/fern/products/compatibility-api/pages/cxml/guides/gathering-user-input.mdx @@ -76,6 +76,14 @@ incoming webhook requests. The final step is to configure one of your SignalWire phone numbers to answer calls using the cXML Script we just created. You can do that from the "Phone Numbers" section: + + ![Assign Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) + + + + +In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the cXML script, and save. + diff --git a/fern/products/compatibility-api/pages/cxml/guides/receiving-your-first-sms.mdx b/fern/products/compatibility-api/pages/cxml/guides/receiving-your-first-sms.mdx index c0ee94648a..b4a437dc92 100644 --- a/fern/products/compatibility-api/pages/cxml/guides/receiving-your-first-sms.mdx +++ b/fern/products/compatibility-api/pages/cxml/guides/receiving-your-first-sms.mdx @@ -57,10 +57,20 @@ which allows you to generate scripts dynamically. Navigate to the "Resources" tab from the sidebar and create a new Resource. There, select the resource type of "Script", and pick "cXML script". + + ![Create a new cXML script.](/assets/images/dashboard/resources/new-cxml-bin.webp) + + + + +In **My Resources**, select **+ Add New** > **Script** > **cXML Script**. + + + ### Paste the script @@ -102,10 +112,20 @@ You will need at least one number to receive messages. Navigate to the "Phone Numbers" section of your Dashboard and open the settings for the number you want to configure. There, assign the cXML script you just created to handle messages. + + ![Open the settings for the number.](/assets/images/dashboard/phone-numbers/assign-resource-full.webp) + + + + +On the phone number's edit page, select **+ Assign Resource** under **Inbound Message Settings**, choose the cXML script, and save. + + + ### Send a test SMS Try sending a message to the configured phone number. @@ -149,10 +169,20 @@ Follow the above guide, with the following changes: Navigate to the "LaML/cXML" section of your Dashboard and create a new cXML bin with the content above. + + ![Create a new cXML script.](/assets/images/dashboard/legacy/xml-bins.webp) + + + + +In the legacy Dashboard, open **cXML/LaML** > **Bins** and select **+ New** to create a cXML bin. + + + **Assign a phone number** Open the settings for the number you want to configure. diff --git a/fern/products/compatibility-api/pages/cxml/guides/securing-callback-for-inbound-fax.mdx b/fern/products/compatibility-api/pages/cxml/guides/securing-callback-for-inbound-fax.mdx index b8229d2f65..69f76d24a5 100644 --- a/fern/products/compatibility-api/pages/cxml/guides/securing-callback-for-inbound-fax.mdx +++ b/fern/products/compatibility-api/pages/cxml/guides/securing-callback-for-inbound-fax.mdx @@ -24,10 +24,20 @@ How To Run the Application In order to achieve this via XML, you will have to navigate to the **cXML/LaML** section on the left side of your SignalWire Dashboard and under **Bins** select **+ New** to create a new LaML Bin. + + ![The new cXML bin creation dialog](/assets/images/dashboard/legacy/xml-bins.webp) + + + + +In the legacy Dashboard, open **cXML/LaML** > **Bins**, select **+ New**, and create the cXML bin used to receive the fax. + + + We then need to enter in the XML language for receiving a fax into our LaML Bin. The below code is taken from the [Receive a Fax in Compatibility XML example](/docs/compatibility-api/cxml/reference/fax/receive#examples). diff --git a/fern/products/compatibility-api/pages/cxml/guides/sending-your-first-sms.mdx b/fern/products/compatibility-api/pages/cxml/guides/sending-your-first-sms.mdx index 3be2afa5b9..009e3642db 100644 --- a/fern/products/compatibility-api/pages/cxml/guides/sending-your-first-sms.mdx +++ b/fern/products/compatibility-api/pages/cxml/guides/sending-your-first-sms.mdx @@ -26,12 +26,22 @@ you need API credentials. Find these in your [SignalWire Space](https://signalwi If this is the first time you are using API credentials, you will need to create an API token. + + ![The API page.](/assets/images/dashboard/credentials/api-credentials.webp) + + + + +Open **API Credentials** in the Dashboard and copy the **Project ID**, **Space URL**, and an API token with the scopes required to send messages. If necessary, select **+ New** to create a token. + + + In the "API" section you will find all the information you'll need. In particular: @@ -150,4 +160,4 @@ Make sure to replace all placeholders with your own values. This example used the [Compatibility API](/docs/compatibility-api), and in particular the [Compatibility REST API](/docs/compatibility-api/rest), to -send a message. \ No newline at end of file +send a message. diff --git a/fern/products/compatibility-api/pages/cxml/guides/webhooks/index.mdx b/fern/products/compatibility-api/pages/cxml/guides/webhooks/index.mdx index b7debe6455..1084cc127f 100644 --- a/fern/products/compatibility-api/pages/cxml/guides/webhooks/index.mdx +++ b/fern/products/compatibility-api/pages/cxml/guides/webhooks/index.mdx @@ -92,12 +92,22 @@ Some carriers may send delayed DLRs, and others may not send DLRs at all. Provid To access the number settings and configure the webhooks in the SignalWire Space, click on **Phone Numbers** and find the number to set up. + + ![The Phone Numbers tab of a SignalWire Space showing a list of phone numbers](/assets/images/dashboard/phone-numbers/purchased-phone-numbers.webp) + + + + +Open **Phone Numbers** > **Purchased**, search for the number if necessary, and select its name to open its settings. + + + Click on the phone number to be set up and then click to **Edit Settings**. In the Edit Settings page, the number can be given a name and set up **Voice/Fax & Messaging** settings. diff --git a/fern/products/compatibility-api/pages/cxml/guides/webhooks/webhook-security.mdx b/fern/products/compatibility-api/pages/cxml/guides/webhooks/webhook-security.mdx index 171f4a2602..cb9c16aec6 100644 --- a/fern/products/compatibility-api/pages/cxml/guides/webhooks/webhook-security.mdx +++ b/fern/products/compatibility-api/pages/cxml/guides/webhooks/webhook-security.mdx @@ -17,12 +17,22 @@ If your application exposes sensitive data or makes changes to your data, then y You can find your personalized signing key in the [API Credentials Space](https://my.signalwire.com?page=credentials) of your Dashboard. Click "Show" to display the key and a copy icon to easily copy the signature into your code. Each project in your Dashboard will have its own signing key for verification. You can reset the signing key by clicking the reset button. Please note that it takes about a minute for the new key to be active. You will also be able to see the new key before finalizing the reset request so that you can copy it to wherever it needs to be updated. + + ![The SignalWire Space showing API credentials, including Signing Key](/assets/images/dashboard/credentials/api-credentials-with-signing-key.webp) + + + + +In the Dashboard, open **API Credentials**, find **Signing Key**, and select **Show**. Copy the key for the project whose webhook requests you are verifying. + + + ## Verifying the webhook signature ### NodeJs diff --git a/fern/products/compatibility-api/pages/rest-api/core/authorization.mdx b/fern/products/compatibility-api/pages/rest-api/core/authorization.mdx index b141000b8f..a709e16c53 100644 --- a/fern/products/compatibility-api/pages/rest-api/core/authorization.mdx +++ b/fern/products/compatibility-api/pages/rest-api/core/authorization.mdx @@ -44,10 +44,20 @@ Authorization: Basic YTFiMmMzZDQtZTVmNi03ODkwLWFiY2QtZWYxMjM0NTY3ODkwOjR0akNHbm1 Your Project ID and API Tokens are available in the [SignalWire Dashboard](/docs/platform/your-signalwire-api-space). + + API credentials in the Dashboard. + + + + +In the Dashboard, open **API Credentials**. Copy the **Project ID**, then reveal and copy an existing API token or select **+ New** to create one. + + + ### API token scopes Tokens can be scoped to limit API access. diff --git a/fern/products/platform/pages/calling/fax/overview.mdx b/fern/products/platform/pages/calling/fax/overview.mdx index 33f1548e9b..79d6982a4f 100644 --- a/fern/products/platform/pages/calling/fax/overview.mdx +++ b/fern/products/platform/pages/calling/fax/overview.mdx @@ -51,11 +51,21 @@ If you don't have a number yet, navigate to the Phone Numbers section and [buy a From your [SignalWire Dashboard](https://my.signalwire.com/dashboard), create a new Resource by navigating to the resources tab, then select the "New Script" option and choose "New SWML application". + + ![The new resource dialog showing SWML script creation.](/assets/images/dashboard/resources/swml-resource-vid.webp) + + + + +In the Dashboard, open **My Resources**, select **+ Add New** > **Script** > **SWML Application**, then create a hosted script for the fax-handling SWML. + + + Paste the following code into your script: ```yaml @@ -97,11 +107,21 @@ Navigate to the "Phone Numbers" tab on the left sidebar. From this tab, click on your newly purchased phone number, then on the "edit settings" option. In the settings page that appears, select "Assign Resource" for "Inbound Call Settings". + + ![Phone number settings page showing the Assign Resource button for inbound calls.](/assets/images/dashboard/phone-numbers/assign-resource-full.webp) + + + + +On the phone number's edit page, select **+ Assign Resource** under **Inbound Call Settings**, choose the fax script, and save. + + + Select the newly created script, then click "Save" to apply the configuration. @@ -112,10 +132,20 @@ Send a test fax to your configured phone number and then open the respective cal Copy the link found in the **Document** parameter and paste it into your browser to view your fax. + + ![The logs page showing voice logs where inbound faxes will be received.](/assets/images/dashboard/sidebar/voice-logs.webp) + + + + +Open **Logs** > **Calling**, select the fax call's log entry, and copy the URL in its **Document** field to view the received fax. + + + diff --git a/fern/products/platform/pages/calling/voice/SIP/sip-trunking/index.mdx b/fern/products/platform/pages/calling/voice/SIP/sip-trunking/index.mdx index 0a4bfffc5b..3e9371a86f 100644 --- a/fern/products/platform/pages/calling/voice/SIP/sip-trunking/index.mdx +++ b/fern/products/platform/pages/calling/voice/SIP/sip-trunking/index.mdx @@ -57,8 +57,18 @@ See [Buying a Phone Number](/docs/platform/phone-numbers) for step-by-step instr In the number's setting, click on the "Assign Resource" button and select your SIP endpoint resource. + + ![Assign SIP Endpoint.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) + + + + +In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the SIP Endpoint Resource, and save. + + + If you prefer to use API calls, you will need the [Search for Available Phone Numbers](/docs/apis/rest/phone-numbers/search-available-phone-numbers), @@ -133,6 +143,8 @@ that you would like to register, and then click `Edit Settings` button. From her `Handle Incoming Calls` section, select `SIP Endpoint`, then input the SIP address you created. + + + + + + +In the legacy Dashboard, edit the phone number, set **Accept Incoming Calls as** to **Voice Calls**, set **Handle Calls Using** to **a SIP Endpoint**, and select the SIP address under **When a Call Comes In, Forward the Call to**. + + + diff --git a/fern/products/platform/pages/calling/voice/TTS/fish.mdx b/fern/products/platform/pages/calling/voice/TTS/fish.mdx index 8d87a9c3e3..6565c2a40b 100644 --- a/fern/products/platform/pages/calling/voice/TTS/fish.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/fish.mdx @@ -133,9 +133,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/TTS/grok.mdx b/fern/products/platform/pages/calling/voice/TTS/grok.mdx index e6d680a166..d6afec15bf 100644 --- a/fern/products/platform/pages/calling/voice/TTS/grok.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/grok.mdx @@ -96,9 +96,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/TTS/groq-tts.mdx b/fern/products/platform/pages/calling/voice/TTS/groq-tts.mdx index 6b34d6c583..c72eb77861 100644 --- a/fern/products/platform/pages/calling/voice/TTS/groq-tts.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/groq-tts.mdx @@ -153,9 +153,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index d9f4002db7..02362dd350 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -155,9 +155,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx index d0ad5d44c0..286cac1bd8 100644 --- a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx @@ -145,9 +145,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/TTS/mistral.mdx b/fern/products/platform/pages/calling/voice/TTS/mistral.mdx index f1bd7297ed..f0a1893765 100644 --- a/fern/products/platform/pages/calling/voice/TTS/mistral.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/mistral.mdx @@ -136,9 +136,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/TTS/rime.mdx b/fern/products/platform/pages/calling/voice/TTS/rime.mdx index 6604f32796..150446a925 100644 --- a/fern/products/platform/pages/calling/voice/TTS/rime.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/rime.mdx @@ -184,9 +184,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/TTS/smallest.mdx b/fern/products/platform/pages/calling/voice/TTS/smallest.mdx index 81dc6f7b08..f98133a823 100644 --- a/fern/products/platform/pages/calling/voice/TTS/smallest.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/smallest.mdx @@ -141,9 +141,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/TTS/speechify.mdx b/fern/products/platform/pages/calling/voice/TTS/speechify.mdx index 5a2ce830d0..00a7e9ef3d 100644 --- a/fern/products/platform/pages/calling/voice/TTS/speechify.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/speechify.mdx @@ -133,9 +133,7 @@ Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. Purchase a phone number and assign it to the desired SWML script. - - ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) - + ### Give it a call! diff --git a/fern/products/platform/pages/calling/voice/caller-id-and-cnam.mdx b/fern/products/platform/pages/calling/voice/caller-id-and-cnam.mdx index fe10a15c69..4d630fdec6 100644 --- a/fern/products/platform/pages/calling/voice/caller-id-and-cnam.mdx +++ b/fern/products/platform/pages/calling/voice/caller-id-and-cnam.mdx @@ -51,12 +51,22 @@ On a SIP credential, two fields control the displayed identity: Configure both fields in your [SIP Endpoint settings](https://my.signalwire.com/resources/sips). + + ![A screenshot of the Sip Endpoint page, showing username, password, caller ID, and Send As fields](/assets/images/dashboard/SIP-Credential-settings.webp) + + + + +The SIP Endpoint settings include **Username**, **Password**, **Caller ID**, and **Send As** fields. Use **Caller ID** for SIP-to-SIP calls and **Send As** for PSTN calls. + + + To set caller names by extension on SIP-to-SIP calls, configure that within your PBX. For example, Asterisk uses the **Outbound Caller ID name** option on the dialplan. Check your PBX documentation for details. diff --git a/fern/products/platform/pages/messaging/sms/character-limits.mdx b/fern/products/platform/pages/messaging/sms/character-limits.mdx index e067fbe0a5..a856ec1e6e 100644 --- a/fern/products/platform/pages/messaging/sms/character-limits.mdx +++ b/fern/products/platform/pages/messaging/sms/character-limits.mdx @@ -33,12 +33,22 @@ View Message Encoding Check your SignalWire Space portal for the full breakdown to see how your messages are encoded and sent. Click an individual message record to see the encoding details, cost, character count, number of segments, and number of media attachments. + + ![A message record in a SignalWire Space portal titled 'Message Encoding Details' The message is split into three parts, labeled 'Segments 1 through 3'. Each character of the message is in a square box. The first three boxes of each segment are colored blue, and show the code 'UDH'. Emojis are shown in pink boxes.](/assets/images/dashboard/messaging/encoding-details.webp) + + + + +The **Message Encoding Details** view separates a multipart message into numbered segments. It marks the User Data Header (UDH) at the start of each segment and identifies characters such as emoji that affect encoding. + + + GSM --- diff --git a/fern/products/platform/pages/messaging/sms/the-campaign-registry/registration/index.mdx b/fern/products/platform/pages/messaging/sms/the-campaign-registry/registration/index.mdx index 2f1fb7be1a..42e658987c 100644 --- a/fern/products/platform/pages/messaging/sms/the-campaign-registry/registration/index.mdx +++ b/fern/products/platform/pages/messaging/sms/the-campaign-registry/registration/index.mdx @@ -94,8 +94,18 @@ To see the details of an existing Brand, click on the Brand Name. None of these details are editable. If you are trying to make changes to an existing Brand, please use the button to contact Support for assistance. + + ![Brand details page](/assets/images/dashboard/campaign-registry/sms/brand-details.webp) + + + + +Select a Brand name to open its detail page. The page has **Settings**, **Campaigns**, **Campaign Phone Numbers**, and **Assignment Orders** tabs; use **Contact Support** if its locked details must change. + + + ### Creating a new brand @@ -108,8 +118,18 @@ To create a new Brand, start by clicking the blue "+ New" button to open the New Campaign Service Provider (CSP) by clicking the "Create a Partner Brand" button. 1. Create a new Brand to register and manage with SignalWire by filling out the form. + + ![Brand creation page](/assets/images/dashboard/campaign-registry/sms/TCR-wizard-1.webp) + + + + +The New Brand wizard has **Company Details**, **Company Contact**, and **Legal** steps. To import an approved brand from another Campaign Service Provider, choose **Create a Partner Brand** instead. + + + For new Brands, all of the fields on the details page are required by The Campaign Registry. Be careful with your @@ -118,8 +138,18 @@ information error. Each Brand should have a unique EIN, or you will risk damaging your trust score. After completing the three Brand creation steps, you will see a success message. + + ![Brand creation success page](/assets/images/dashboard/campaign-registry/sms/TCR-wizard-2.webp) + + + + +After submission, the Dashboard confirms that the Brand was submitted successfully and is usually reviewed within one business day. Continue to Campaign registration after approval. + + + TCR will check all of your information against multiple databases and return a status of _Verified_ or _Unverified_. Brand details can only be edited and resubmitted for a Brand in an _Unverified_ status. Your Campaign Registration Specialist will assist you if resubmission is required. **Each submission incurs a $4 charge.** @@ -128,8 +158,18 @@ TCR will check all of your information against multiple databases and return a s ## Campaigns + + ![Messaging Campaigns page](/assets/images/dashboard/campaign-registry/sms/campaigns.webp) + + + + +Open **Messaging Campaigns** and select the **Campaigns** tab to view Campaign names, associated Brands, use cases, and statuses. Select **+ New** to register a Campaign. + + + After your Brand is verified, you can add Campaigns. The simplest way to describe a Campaign is a unique use case. For example, if you send marketing messages and also send two-factor authentication messages, that would represent @@ -150,8 +190,18 @@ To see the details of an existing Campaign, click on the Campaign Name. None of these details are editable. If you are trying to make changes to an existing Campaign, please use the button to contact Support for assistance. + + ![Campaign details page](/assets/images/dashboard/campaign-registry/sms/existing-campaign-details.webp) + + + + +Select a Campaign name to open its **Settings**, **Campaign Phone Numbers**, and **Assignment Orders** tabs. Use **Contact Support** if its locked registration details must change. + + + ### Creating a Campaign @@ -163,12 +213,22 @@ Information required for each Campaign will be your Campaign's use cases, opt-in/out process, and message samples. Begin by clicking the blue "+ New" button on the top right of your Campaigns page. + + ![Campaign registration form](/assets/images/dashboard/campaign-registry/sms/TCR-wizard-new-campaign.webp) + + + + +Complete the New Campaign wizard's five steps: **Basic Information**, **Campaign Templates**, **Opt-in/Opt-out**, **Legal**, and **Terms and Conditions**. + + + Fill in the fields with as much detail as possible. Submitting incomplete or inaccurate information could add processing time and require resubmission with additional fees. When you reach the last step, please take note of the submission fees before submitting. You will see the success screen when you have completed this process. Once registered, each campaign will be given a unique ID which will be @@ -180,8 +240,18 @@ Campaigns tab. If you click on the Campaign name, you will see the Campaign details, phone numbers assigned to the Campaign, and an Assignment Orders tab to add new numbers to the Campaign. + + ![Campaign details page](/assets/images/dashboard/campaign-registry/sms/campaign-details.webp) + + + + +The Campaign detail page exposes **Settings**, **Campaign Phone Numbers**, and **Assignment Orders**. Settings show registration properties and sample messages; use the other tabs to review or add assigned numbers. + + + You can assign phone numbers to your Campaign while the registration is still pending, but they can not be put to use until the registration process is complete with **both The Campaign Registry and our upstream DCA partners** who @@ -201,8 +271,18 @@ For inbound-only use cases (receiving messages without sending), contact [Suppor + + ![Campaign phone numbers page](/assets/images/dashboard/campaign-registry/sms/campaign-numbers.webp) + + + + +The **Campaign Phone Numbers** tab lists each assignment's ID, number, Brand, Campaign, and status. Select **+ New** to create an assignment order. + + + From here, you can click on multiple links to manage your Campaign number details: @@ -222,8 +302,18 @@ New" button on either this **Campaign Phone Numbers tab** or from the **Campaign details page** you can create a new assignment order in the **Assignment Orders tab**. + + ![Assign phone numbers page](/assets/images/dashboard/campaign-registry/sms/TCR-wizard-phone-assignment.webp) + + + + +In the **Assign Phone Numbers** workflow, select the Campaign for the number-assignment order and choose **Continue** to select numbers. + + + Whichever method you use, when you create a phone number assignment for a brand new Campaign, SignalWire has to send information up to our carriers to get it connected on their end. For a brand new campaign, this process can take up to 24 diff --git a/fern/products/platform/pages/platform/call-fabric/resources.mdx b/fern/products/platform/pages/platform/call-fabric/resources.mdx index c91b1f0e01..6a6f6e77e5 100644 --- a/fern/products/platform/pages/platform/call-fabric/resources.mdx +++ b/fern/products/platform/pages/platform/call-fabric/resources.mdx @@ -83,16 +83,36 @@ You can create, manage, edit, delete, and test your Space's Resources all from y + + ![Create a new Resource from the Dashboard.](/assets/images/dashboard/home/home-resources-marked.webp) + + + + +Open **My Resources** in the Dashboard's left sidebar. Resources are grouped as **AI Agents**, **Call Flows**, **FreeSWITCH Connectors**, **Relay Applications**, **Scripts**, **SIP**, **Subscribers**, and **Video Rooms**; select **+ Add** to create one. + + + Click the **Add** button to select from the grid of available Resource types. + + ![Select a Resource in the Signalwire Dashboard.](/assets/images/dashboard/resources/add-new-resource.webp) + + + + +The Resource picker offers **Script**, **AI Agent**, **Conference Room**, **Relay Application**, **Subscriber**, **FreeSWITCH Connector**, **Call Flow**, and **SIP**. + + + Alternatively, you can create new Resources from their subpages in the sidebar menu, or using the shortcuts on the Dashboard homepage. After selecting a Resource, enter the details for the Resource on a new page, and select Create to confirm. @@ -108,10 +128,20 @@ to upgrade your Space to the new UI. From the Resources page in your SignalWire Dashboard, select the desired Resource to open a detailed view. Here, by selecting the `Edit` button, you can alter the specifics of the Resource. + + ![The list of Resources in a SignalWire Space.](/assets/images/dashboard/resources/resource-list.webp) + + + + +The **My Resources** page lists each Resource's name, type, and last update time. Use its search and type filters to find a Resource, then select it to modify or delete it. + + + ## Next steps diff --git a/fern/products/platform/pages/platform/core/how-to-enable-international-outbound-dialing-sms.mdx b/fern/products/platform/pages/platform/core/how-to-enable-international-outbound-dialing-sms.mdx index ecb8e7218b..99b112e29a 100644 --- a/fern/products/platform/pages/platform/core/how-to-enable-international-outbound-dialing-sms.mdx +++ b/fern/products/platform/pages/platform/core/how-to-enable-international-outbound-dialing-sms.mdx @@ -58,10 +58,20 @@ Follow the steps below to complete: First, navigate to your signalwire Dashboard, and click on the Space dropdown menu at top left of the page: + + ![the Space dropdown menu, with links to Members, Space Settings, and more](/assets/images/dashboard/left-menu/menu.webp) + + + + +Open the Space-name menu at the top-left of the Dashboard and select **Space Settings**. + + + There select `Space Settings`. You'll be taken to the Settings page. diff --git a/fern/products/platform/pages/platform/core/media-protection.mdx b/fern/products/platform/pages/platform/core/media-protection.mdx index 73fb5ae7f2..fb6585dbe2 100644 --- a/fern/products/platform/pages/platform/core/media-protection.mdx +++ b/fern/products/platform/pages/platform/core/media-protection.mdx @@ -34,10 +34,20 @@ Navigate to the [projects page][projects-page] and select the project where you Once in your project dashboard, click on the area where your project name is displayed. This should open a menu with an option called `Project Configuration`. Click on this option to be directed to the project settings page. + + ![Project settings menu.](/assets/images/dashboard/project-settings-menu.webp) + + + + +Open the project-name menu at the top of the Dashboard and select **Project Configuration**. + + + ### Locate media URL protection Scroll down to find the **Media URL Protection Details** section, which contains three independent toggles: @@ -47,10 +57,20 @@ Scroll down to find the **Media URL Protection Details** section, which contains - **Protect Fax Media URLs** - secures fax documents and their attachments. Fax metadata and delivery confirmations remain unaffected. + + ![Media Protection Interface.](/assets/images/dashboard/media-protection-interface.webp) + + + + +Under **Settings** > **Media URL Protection Details**, independently set **Protect Recording Media URLs**, **Protect Message Media URLs**, and **Protect Fax Media URLs** to **Yes** as needed. + + + ### Enable protection Toggle any combination of the three protection options from **No** to **Yes** based on your security requirements. Changes take effect immediately. @@ -64,4 +84,3 @@ Now when a request is sent to a media URL, if no valid authentication is provide - diff --git a/fern/products/platform/pages/platform/core/segment-ids.mdx b/fern/products/platform/pages/platform/core/segment-ids.mdx index be3d143a1b..657ba7efc2 100644 --- a/fern/products/platform/pages/platform/core/segment-ids.mdx +++ b/fern/products/platform/pages/platform/core/segment-ids.mdx @@ -19,10 +19,20 @@ You will see sections related to Voice, Conferencing, Messaging, and Fax. Open the detail view of any individual log you'd like to investigate or find the SID of. + + ![Logs section in the SignalWire Dashboard displaying log entries with their associated SIDs.](/assets/images/dashboard/logs.webp) + + + + +Open **Logs** in the Dashboard, choose **Calling**, **Conferencing**, **Messaging**, or **Fax**, and select a log entry to view its SID. + + + The SID will be displayed in the log under the "Voice Segment ID", "Message Segment ID", or "Fax Segment ID" section, depending on the type of communication. In REST APIs related to calls, messages, and faxes, the SID is returned in the response as `id`. diff --git a/fern/products/platform/pages/platform/core/webhooks/index.mdx b/fern/products/platform/pages/platform/core/webhooks/index.mdx index b88e4d2e87..7184d68470 100644 --- a/fern/products/platform/pages/platform/core/webhooks/index.mdx +++ b/fern/products/platform/pages/platform/core/webhooks/index.mdx @@ -37,38 +37,78 @@ flowchart LR In the SignalWire Dashboard, open the **My Resources** tab and click **+ Add**, then choose **SWML Script**. + + ![Selecting a Resource type in the SignalWire Dashboard](/assets/images/dashboard/resources/add-new-resource.webp) + + + + +In **My Resources**, select **+ Add**, then choose **Script** > **SWML Application**. + + + Give the script a name, set **Handle Calls Using** to **External URL**, and enter your webhook URL in the **Primary Script URL** field. Click **Create** to save the Resource. + + ![Configuring a SWML Script Resource with an external URL in the SignalWire Dashboard](/assets/images/dashboard/resources/external-swml-script.webp) + + + + +In the **New SWML Application** form, enter a name, set **Handle Calls Using** to **External URL**, enter the webhook endpoint in **Primary Script URL**, and create the Resource. + + + ### Assign the Resource to your phone number Open the **Phone Numbers** tab and select the number you want to configure. + + ![The Phone Numbers tab of a SignalWire Space showing a list of phone numbers](/assets/images/dashboard/phone-numbers/purchased-phone-numbers.webp) + + + + +Open **Phone Numbers** > **Purchased**, search for the number if necessary, and select its name to open its settings. + + + Click **Edit Settings**. Under **Inbound Call Settings** (or **Inbound Message Settings** for messaging), choose **Assign Resource**, select the Resource you created, and click **Save**. + + ![A phone number's settings page showing the Assign Resource option for inbound calls](/assets/images/dashboard/phone-numbers/assign-resource-full.webp) + + + + +On the phone number's edit page, select **+ Assign Resource** under **Inbound Call Settings** for calls or **Inbound Message Settings** for messages. Choose the webhook Resource and save. + + + @@ -167,12 +207,22 @@ For critical paths, use a mechanism whose failure modes are visible to your appl To verify webhooks that originated from SignalWire, SignalWire signs its requests with a digital HMAC security key. You can verify that the security key matches the key documented in your Dashboard's [API Credentials](https://my.signalwire.com?page=credentials) with the `validateRequest` method. + + ![The API Credentials page in a SignalWire Space showing the signing key](/assets/images/dashboard/credentials/api-credentials-with-signing-key.webp) + + + + +In the Dashboard, open **API Credentials**, find **Signing Key**, and select **Show** to reveal the key for the current project. + + + For production applications, it is extremely important to verify the webhook signature to ensure the requests are coming from SignalWire and not a malicious third party. diff --git a/fern/products/platform/pages/platform/integrations/FreeSWITCH/add-ai-to-freeswitch/index.mdx b/fern/products/platform/pages/platform/integrations/FreeSWITCH/add-ai-to-freeswitch/index.mdx index dba71f3380..dbcdaac562 100644 --- a/fern/products/platform/pages/platform/integrations/FreeSWITCH/add-ai-to-freeswitch/index.mdx +++ b/fern/products/platform/pages/platform/integrations/FreeSWITCH/add-ai-to-freeswitch/index.mdx @@ -57,12 +57,22 @@ For more complex AI use-cases, you might want to consider using [SignalWire Mark You can use a SWML script resource to define the AI agent's behavior. + + ![The Domain Applications page of the SignalWire dashboard with "Handle Incoming Calls" section selecting AI Agent](/assets/images/dashboard/sip/sip-domain-apps-ai-agent.webp) + + + + +In the Dashboard, open **SIP** > **Domain Apps**, edit the domain application, set **Handle Using** to **an AI Agent**, and select the agent under **When a Call Comes In**. + + + --- ## **FreeSWITCH Dialplan Configuration** @@ -176,4 +186,3 @@ the TCP transport. This effectively forwards the call to the specified SIP addre - diff --git a/fern/products/platform/pages/platform/integrations/FreeSWITCH/installing-freeswitch-or-freeswitch-advantage/index.mdx b/fern/products/platform/pages/platform/integrations/FreeSWITCH/installing-freeswitch-or-freeswitch-advantage/index.mdx index f338cda8af..7af78b3005 100644 --- a/fern/products/platform/pages/platform/integrations/FreeSWITCH/installing-freeswitch-or-freeswitch-advantage/index.mdx +++ b/fern/products/platform/pages/platform/integrations/FreeSWITCH/installing-freeswitch-or-freeswitch-advantage/index.mdx @@ -28,6 +28,8 @@ Before we begin, here is some general FreeSWITCH terminology that may be importa A SignalWire account is now required to download the pre-build FreeSWITCH binaries. First [create a SignalWire Space](/docs/platform/signing-up-for-a-space), then go to the `Personal Access Tokens` section located on the left side of the Dashboard. From there, create a Personal Access Token. [Click here to learn more](https://freeswitch.org/confluence/display/FREESWITCH/Debian). + + ![The top right menu of the SignalWire Space](/assets/images/dashboard/toolbar-right-open.webp) @@ -40,6 +42,14 @@ section located on the left side of the Dashboard. From there, create a Personal + + + + +Open the user menu in the Dashboard's top-right corner, select **Personal Access Tokens**, then select **+ Add New** to create a token. + + + In case you missed the previous emails on the matter, here is the recap of this change: - This specifically (and only) affects the built copy of the FreeSWITCH software - the binaries that turn Linux into FreeSWITCH instantly. diff --git a/fern/products/platform/pages/platform/phone-numbers/overview.mdx b/fern/products/platform/pages/platform/phone-numbers/overview.mdx index f31d5d89ed..1b656749b4 100644 --- a/fern/products/platform/pages/platform/phone-numbers/overview.mdx +++ b/fern/products/platform/pages/platform/phone-numbers/overview.mdx @@ -11,10 +11,20 @@ position: 0 Whether working with Voice, Messaging, or Fax, manage your Phone Numbers with this section of the Dashboard. + + ![The Phone Numbers page in the SignalWire Dashboard.](/assets/images/dashboard/phone-numbers/choose.webp) + + + + +In the Dashboard, open **Phone Numbers**, choose **Local**, **Toll Free**, or **Shortcode**, then use the search filters to find and buy a number. + + + SignalWire offers three main types of numbers: | Type | About | diff --git a/fern/products/platform/pages/platform/setup/api-credentials.mdx b/fern/products/platform/pages/platform/setup/api-credentials.mdx index 21b7c11b30..820232bd13 100644 --- a/fern/products/platform/pages/platform/setup/api-credentials.mdx +++ b/fern/products/platform/pages/platform/setup/api-credentials.mdx @@ -7,10 +7,20 @@ slug: /your-signalwire-api-space The API credentials found on this page are your key to accessing SignalWire's APIs and SDKs. + + ![The API Credentials page on the SignalWire Dashboard.](/assets/images/dashboard/credentials/api-credentials.webp) + + + + +Open **API Credentials** in the Dashboard to find the current project's **Project ID** and **Space URL**. Reveal and copy an existing API token or select **+ New** to create one. + + + Most SignalWire API endpoints require authentication using [HTTP Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication). HTTP Basic Authentication requires you to send an Authorization header with your Project ID and API Token. diff --git a/fern/products/platform/pages/platform/setup/create-an-account.mdx b/fern/products/platform/pages/platform/setup/create-an-account.mdx index 882acd697f..b2320e01b7 100644 --- a/fern/products/platform/pages/platform/setup/create-an-account.mdx +++ b/fern/products/platform/pages/platform/setup/create-an-account.mdx @@ -11,10 +11,20 @@ x-custom: --- + + ![Sign up for a SignalWire account.](/assets/images/dashboard/signup.webp) + + + + +Create an account with an email address, or sign in with **GitHub**, **Google**, or **LinkedIn**. + + + ### Sign up diff --git a/fern/products/platform/pages/tools/wirestarter/index.mdx b/fern/products/platform/pages/tools/wirestarter/index.mdx index 11344e85fc..951d8d2d9e 100644 --- a/fern/products/platform/pages/tools/wirestarter/index.mdx +++ b/fern/products/platform/pages/tools/wirestarter/index.mdx @@ -123,12 +123,22 @@ Enter `help` or `help -v` to view more options for SWSH. You can also purchase a phone number in the Web UI in your [SignalWire Space](https://my.signalwire.com?page=phone_numbers). + + ![Purchased phone numbers](/assets/images/dashboard/phone-numbers/purchased-phone-numbers.webp) + + + + +In the Dashboard, open **Phone Numbers** > **Purchased** to search existing numbers or select **+ New** to purchase one. + + + ### Set Startup Variables Set the following variables from the same bash prompt in order to streamline startup. @@ -202,4 +212,3 @@ Have a question or bug to report? Help us improve WireStarter for your use case by [reporting an Issue on the GitHub Repository](https://github.com/signalwire/WireStarter). - diff --git a/fern/products/swml/pages/guides/basics/swml_remote_server.mdx b/fern/products/swml/pages/guides/basics/swml_remote_server.mdx index 366a1ee386..f2edc819eb 100644 --- a/fern/products/swml/pages/guides/basics/swml_remote_server.mdx +++ b/fern/products/swml/pages/guides/basics/swml_remote_server.mdx @@ -118,10 +118,20 @@ If you don't see the **My Resources** tab, your SignalWire Space is on the **Leg Refer to the [Legacy](#legacy-dashboard) section of this guide for instructions for your Dashboard and information about the migration. + + ![SWML external URL.](/assets/images/dashboard/resources/external-swml-script.webp) + + + + +In the **New SWML Application** form, enter a name, set **Handle Calls Using** to **External URL**, put the public application URL in **Primary Script URL**, and create the Resource. + + + #### In the Legacy Dashboard [#legacy-dashboard] diff --git a/fern/products/swml/pages/guides/basics/webhook-security.mdx b/fern/products/swml/pages/guides/basics/webhook-security.mdx index c28c50e0c5..10b47866e2 100644 --- a/fern/products/swml/pages/guides/basics/webhook-security.mdx +++ b/fern/products/swml/pages/guides/basics/webhook-security.mdx @@ -85,12 +85,22 @@ Your signing key is on the [API Credentials](https://my.signalwire.com?page=cred your Dashboard. Click **Show** to reveal it. Each project has its own key, so use the key belonging to the project that serves the call. + + ![The API Credentials page in a SignalWire Space showing the signing key](/assets/images/dashboard/credentials/api-credentials-with-signing-key.webp) + + + + +In the Dashboard, open **API Credentials**, find **Signing Key**, and select **Show**. Use the key belonging to the project that serves the call. + + + You can rotate the key with the reset button on the same page. A new key takes about a minute to become active, and the page shows it to you before you confirm the reset so you can copy it into your application first. diff --git a/fern/products/swml/pages/guides/get-started/quickstart.mdx b/fern/products/swml/pages/guides/get-started/quickstart.mdx index 6b7b833cd0..dc8d1aaa58 100644 --- a/fern/products/swml/pages/guides/get-started/quickstart.mdx +++ b/fern/products/swml/pages/guides/get-started/quickstart.mdx @@ -115,8 +115,18 @@ Identify your Dashboard and select between Legacy and New UIs using the tabs bel + + ![The redesigned main menu.](/assets/images/dashboard/home/new-dashboard-tall.webp) + + + + +The new Dashboard has a unified **My Resources** entry in its left sidebar. + + + The new SignalWire Dashboard features a streamlined sidebar menu. Many items are now located in the unified My Resources menu. Resources that were previously accessible in the sidebar of the legacy UI are now located in the unified **My Resources** menu. @@ -124,8 +134,18 @@ Resources that were previously accessible in the sidebar of the legacy UI are no + + ![The legacy main menu.](/assets/images/dashboard/legacy/sidebar.webp) + + + + +The legacy Dashboard has no **My Resources** entry; resource types such as **Relay/SWML**, **SIP**, and **cXML/LaML** appear separately in its left sidebar. + + + In the Legacy Dashboard, there is no **My Resources** tab. Instead, Resources are accessible as individual tabs in the main navigational sidebar. diff --git a/fern/products/swml/pages/guides/recipes/creating-ivr-with-swml.mdx b/fern/products/swml/pages/guides/recipes/creating-ivr-with-swml.mdx index d74e991fcb..d9313dc0f7 100644 --- a/fern/products/swml/pages/guides/recipes/creating-ivr-with-swml.mdx +++ b/fern/products/swml/pages/guides/recipes/creating-ivr-with-swml.mdx @@ -503,8 +503,18 @@ Then we'll purchase a phone number from our [SignalWire Space](https://my.signal Follow the [Buying a Phone Number](/docs/platform/phone-numbers) if you need help. Once you have your phone number, we can assign our newly crafted SWML Script resource to handle incoming calls for that number. + + ![Assign resource to phone number.](/assets/images/dashboard/phone-numbers/assign-resource-voice.png) + + + + +In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the IVR SWML script, and save. + + + Upon calling the assigned phone number, our script will execute, and you should hear the instructions running as intended. This exciting step will allow us to experience firsthand the interactive capabilities of our SWML-based IVR system. In just a matter of minutes, we have successfully crafted a basic IVR system using SWML script. diff --git a/fern/products/swml/pages/guides/recipes/forwarding-calls.mdx b/fern/products/swml/pages/guides/recipes/forwarding-calls.mdx index 1fe1279414..2b08137c15 100644 --- a/fern/products/swml/pages/guides/recipes/forwarding-calls.mdx +++ b/fern/products/swml/pages/guides/recipes/forwarding-calls.mdx @@ -47,8 +47,18 @@ is maintained as caller ID for the forwarded call. The final step is to configure one of your SignalWire phone numbers to answer calls using the SWML Script we just created. You can do that from the **Phone Numbers** section: + + ![Assign Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) + + + + +In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the forwarding SWML script, and save. + + + After clicking on the **Phone Numbers** section, click on the phone number that you'd like to assign, then click **edit settings**. From there, click **Assign Resource** and assign the newly created SWML Script. Now any calls that are routed to that number will be forwarded, with the caller ID being the original number that called in. diff --git a/fern/products/swml/pages/guides/recipes/making-and-receiving-calls.mdx b/fern/products/swml/pages/guides/recipes/making-and-receiving-calls.mdx index 3df6542fd9..eec68ea963 100644 --- a/fern/products/swml/pages/guides/recipes/making-and-receiving-calls.mdx +++ b/fern/products/swml/pages/guides/recipes/making-and-receiving-calls.mdx @@ -33,12 +33,22 @@ Find your API tokens in the API section of your Space, as shown below. You may need to create a new token if you never used one. Make sure that your token has at least the "Voice" scope enabled. + + ![The API page.](/assets/images/dashboard/credentials/api-credentials.webp) + + + + +Open **API Credentials** in the Dashboard and copy the **Project ID** and an API token with the **Voice** scope. If necessary, select **+ New** to create a token. + + + ## SWML diff --git a/fern/products/swml/pages/guides/recipes/recording-calls.mdx b/fern/products/swml/pages/guides/recipes/recording-calls.mdx index 7ba461fae3..c48a20860d 100644 --- a/fern/products/swml/pages/guides/recipes/recording-calls.mdx +++ b/fern/products/swml/pages/guides/recipes/recording-calls.mdx @@ -31,8 +31,18 @@ sections: We used the [`record_call`](/docs/swml/reference/record-call) method to start the recording in the background, then the [`play`](/docs/swml/reference/play) method to play a text-to-speech message. The recording will be available from your SignalWire Space in the **Storage** section, within **Recordings**. + + ![Call Recording Example SWML.](/assets/images/dashboard/sidebar/Call-Recording-Example-SWML.webp) + + + + +Save the example above as a hosted SWML Script Resource. Recordings created by the script appear under **Storage** > **Recordings**. + + + The [`record_call`](/docs/swml/reference/record-call) method accepts parameters to configure the format, direction of the recording, terminators, and more. For additional information, see the `record_call` [technical documentation](/docs/swml/reference/record-call). @@ -40,8 +50,18 @@ For additional information, see the `record_call` [technical documentation](/doc The final step is to configure one of your SignalWire phone numbers to answer calls using the SWML Script we just created. You can do that from the **Phone Numbers** section: + + ![Assign Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) + + + + +In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the recording SWML script, and save. + + + Refer to [Making and receiving phone calls](/docs/swml/guides/make-and-receive-calls#receiving-incoming-calls) for more information about this step. ## Conclusion diff --git a/fern/products/swml/pages/guides/recipes/voicemail.mdx b/fern/products/swml/pages/guides/recipes/voicemail.mdx index c28da2409a..621b6ed34a 100644 --- a/fern/products/swml/pages/guides/recipes/voicemail.mdx +++ b/fern/products/swml/pages/guides/recipes/voicemail.mdx @@ -45,8 +45,18 @@ If you don't have a number yet, now is the time to [buy one](/docs/platform/phon Edit the settings of your selected number, and assign the SWML script you created to the Inbound Call Settings. + + ![Assign Resource to Phone number.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) + + + + +In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the voicemail SWML script, and save. + + + ## How to access the recordings You can view, listen to, and download all your recordings in the Storage section of your SignalWire Space. From the sidebar, navigate to **Storage** > **Recordings**. diff --git a/fern/snippets/common/call-fabric/resource-addresses.md b/fern/snippets/common/call-fabric/resource-addresses.md index 316090f2fe..93158b9a2a 100644 --- a/fern/snippets/common/call-fabric/resource-addresses.md +++ b/fern/snippets/common/call-fabric/resource-addresses.md @@ -41,6 +41,16 @@ Once you have created a Resource, you can use the address to interact with it wi Additionally, you can view the created resource in the `Resources` tab of the SignalWire Dashboard. Here, you can view the address, type, and other details of the resource. + + The Resources page of the SignalWire Dashboard. + + + + + +The **My Resources** page lists each Resource's name, type, and last update time and provides search and type filters. + + diff --git a/fern/snippets/common/call-fabric/resource-subscribers.md b/fern/snippets/common/call-fabric/resource-subscribers.md index 047bc2bbf4..d5f23c6a6e 100644 --- a/fern/snippets/common/call-fabric/resource-subscribers.md +++ b/fern/snippets/common/call-fabric/resource-subscribers.md @@ -9,6 +9,16 @@ Subscribers can receive or initiate calls, messages, and other forms of interact The SignalWire platform facilitates smooth transitions between different communication modes, such as switching from a voice call to a video conference, or from a text chat to a voice call. + + Subscribers. + + + + + +A Subscriber's detail page has **Configuration**, **Addresses**, and **SIP Endpoints** tabs. Configuration includes the Subscriber's email, profile, and password fields. + + diff --git a/fern/snippets/common/dashboard/_assign-resource-voice.mdx b/fern/snippets/common/dashboard/_assign-resource-voice.mdx new file mode 100644 index 0000000000..1f9b23ec2b --- /dev/null +++ b/fern/snippets/common/dashboard/_assign-resource-voice.mdx @@ -0,0 +1,15 @@ + + + + +![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) + + + + + + + +In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the SWML script, and save the settings. + + diff --git a/fern/snippets/dashboard/ui-accordion.mdx b/fern/snippets/dashboard/ui-accordion.mdx index c1973a860b..0bb280f57a 100644 --- a/fern/snippets/dashboard/ui-accordion.mdx +++ b/fern/snippets/dashboard/ui-accordion.mdx @@ -1,3 +1,5 @@ + + Identify your Dashboard and select between Legacy and New UIs using the tabs below. @@ -35,3 +37,11 @@ To upgrade your Space to the New UI, [contact Support](https://support.signalwir + + + + + +The new Dashboard has a unified **My Resources** entry. Its Resource picker offers **Script**, **AI Agent**, **Conference Room**, **Relay Application**, **Subscriber**, **FreeSWITCH Connector**, **Call Flow**, and **SIP**. The legacy Dashboard has no **My Resources** entry; resource types such as **Relay/SWML**, **SIP**, and **cXML/LaML** appear separately in the sidebar. Contact Support to migrate a legacy Space. + + diff --git a/scripts/llm-export-cases.json b/scripts/llm-export-cases.json index 3c305dde98..78016ca9d3 100644 --- a/scripts/llm-export-cases.json +++ b/scripts/llm-export-cases.json @@ -157,7 +157,8 @@ ], "notContains": [ "Press play to audition any", - " Date: Wed, 19 Aug 2026 14:20:50 -0400 Subject: [PATCH 2/4] fix: validate canonical cXML export routes --- scripts/llm-export-cases.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/llm-export-cases.json b/scripts/llm-export-cases.json index 78016ca9d3..82cdde5088 100644 --- a/scripts/llm-export-cases.json +++ b/scripts/llm-export-cases.json @@ -183,12 +183,12 @@ "paths": [ "/apis/authorization.md", "/compatibility-api/authorization.md", - "/compatibility-api/cxml/guides/webhook-security.md", - "/compatibility-api/cxml/guides/webhooks.md", - "/compatibility-api/cxml/guides/gather-user-input.md", - "/compatibility-api/cxml/guides/send-sms.md", - "/compatibility-api/cxml/guides/receive-sms.md", - "/compatibility-api/cxml/guides/callback-for-inbound-fax.md", + "/compatibility-api/guides/webhook-security.md", + "/compatibility-api/guides/webhooks.md", + "/compatibility-api/guides/gather-user-input.md", + "/compatibility-api/guides/send-sms.md", + "/compatibility-api/guides/receive-sms.md", + "/compatibility-api/guides/callback-for-inbound-fax.md", "/platform/phone-numbers.md", "/platform/signing-up-for-a-space.md", "/platform/your-signalwire-api-space.md", From 141967fe3e9cbf2d3dfa5e695881bbfcede5f871 Mon Sep 17 00:00:00 2001 From: Devon-White Date: Wed, 19 Aug 2026 15:06:23 -0400 Subject: [PATCH 3/4] docs: remove remaining signed screenshot URLs --- .../pages/tools/wirestarter/index.mdx | 19 +++++++++++++++++- .../pages/guides/get-started/quickstart.mdx | 20 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/fern/products/platform/pages/tools/wirestarter/index.mdx b/fern/products/platform/pages/tools/wirestarter/index.mdx index 951d8d2d9e..04b41aefe2 100644 --- a/fern/products/platform/pages/tools/wirestarter/index.mdx +++ b/fern/products/platform/pages/tools/wirestarter/index.mdx @@ -82,12 +82,16 @@ Copy the Project ID and REST API token from the docker exec -ti wirestarter bash ``` + + ![The WireStarter interface. The user is prompted to enter their SignalWire Space domain.](/assets/images/tools/wirestarter/wirestarter-space.webp) + + When prompted, select your preferred editor: nano, vim, or emacs. We recommend nano for beginners. @@ -111,12 +115,16 @@ Phone numbers purchased in the Dashboard UI must be named before being assigned Any name will work — just edit and save the populated number as its own name. Numbers purchased in SWSH are not affected by this limitation. + + ![The SWSH terminal.](/assets/images/tools/swsh/swsh.webp) + + Purchase and configure a phone number using the **`phone_number`** command. Enter `help` or `help -v` to view more options for SWSH. @@ -191,12 +199,22 @@ run `exit` once to exit SWSH. + + ![The setup script.](/assets/images/tools/wirestarter/swsh-to-setup.webp) + + + + +A successful `setup.sh` run prints the public ngrok tunnel and its local `/workdir/public` mapping, confirms that `/workdir` is persistent, and then opens the SWSH prompt. + + + @@ -211,4 +229,3 @@ Have a question or bug to report? Help us improve WireStarter for your use case by [reporting an Issue on the GitHub Repository](https://github.com/signalwire/WireStarter). - diff --git a/fern/products/swml/pages/guides/get-started/quickstart.mdx b/fern/products/swml/pages/guides/get-started/quickstart.mdx index dc8d1aaa58..53a42a617b 100644 --- a/fern/products/swml/pages/guides/get-started/quickstart.mdx +++ b/fern/products/swml/pages/guides/get-started/quickstart.mdx @@ -96,14 +96,34 @@ You can write and save new SWML scripts from the "Relay/SWML" section of your Da In that section, switch to the tab named [SWML Scripts](https://my.signalwire.com/relay-bins). Once there, you can create a new SWML script: + + ![Image](/assets/images/swml/new-swml-2.png) + + + + +On the **New SWML Script** page, enter a name, paste the script into the **SWML** field, and click **Save**. + + + After you save the SWML, navigate to the [Phone Numbers](https://my.signalwire.com/phone_numbers) page. Open the settings for a phone number you own (you may have to buy a new one), and configure it to handle incoming calls using the SWML script you just saved. + + ![Image](/assets/images/swml/add-phone-number.png) + + + + +In **Voice and Fax Settings**, set **Accept Incoming Calls As** to **Voice Calls**, set **Handle Calls Using** to **a SWML Script**, and choose the saved script under **When a Call Comes In**. Enable the external-URL fallback option only if you need a fallback SWML handler. + + + From c4794913f989b2626afe6bfe3d2f680544ee171d Mon Sep 17 00:00:00 2001 From: August L-R Date: Fri, 21 Aug 2026 18:52:28 +0000 Subject: [PATCH 4/4] docs: delete orphaned ui-accordion and resource-subscribers snippets. --- .../call-fabric/resource-subscribers.md | 24 ---------- fern/snippets/dashboard/ui-accordion.mdx | 47 ------------------- 2 files changed, 71 deletions(-) delete mode 100644 fern/snippets/common/call-fabric/resource-subscribers.md delete mode 100644 fern/snippets/dashboard/ui-accordion.mdx diff --git a/fern/snippets/common/call-fabric/resource-subscribers.md b/fern/snippets/common/call-fabric/resource-subscribers.md deleted file mode 100644 index d5f23c6a6e..0000000000 --- a/fern/snippets/common/call-fabric/resource-subscribers.md +++ /dev/null @@ -1,24 +0,0 @@ -{/* Shared component: Resource Subscribers */} - -[Subscribers](/docs/platform/subscribers) are a special type of Resource that represent internal account-holders. - -Subscribers always use the `private` context by default, though `public` Aliases can be added. - -Subscribers can receive or initiate calls, messages, and other forms of interaction. - -The SignalWire platform facilitates smooth transitions between different communication modes, -such as switching from a voice call to a video conference, or from a text chat to a voice call. - - - - - Subscribers. - - - - - - -A Subscriber's detail page has **Configuration**, **Addresses**, and **SIP Endpoints** tabs. Configuration includes the Subscriber's email, profile, and password fields. - - diff --git a/fern/snippets/dashboard/ui-accordion.mdx b/fern/snippets/dashboard/ui-accordion.mdx deleted file mode 100644 index 0bb280f57a..0000000000 --- a/fern/snippets/dashboard/ui-accordion.mdx +++ /dev/null @@ -1,47 +0,0 @@ - - - - -Identify your Dashboard and select between Legacy and New UIs using the tabs below. - - - - - - - ![The main sidebar menu of the new SignalWire Space Dashboard UI.](/assets/images/dashboard/sidebar/new-sidebar.webp) - - - - ![The selection menu when a new Resource is created.](/assets/images/dashboard/resources/add-new-resource.webp) - - -Resources that were previously accessible in the sidebar of the legacy UI are now located in the unified **My Resources** menu. - - - - - - - ![The main sidebar menu of the legacy SignalWire Space Dashboard UI.](/assets/images/dashboard/legacy/sidebar.webp) - - -In the Legacy Dashboard, there is no **My Resources** tab. - -Instead, Resources are accessible as individual tabs in the main navigational sidebar. - -To upgrade your Space to the New UI, [contact Support](https://support.signalwire.com/). - - - - - - - - - - - -The new Dashboard has a unified **My Resources** entry. Its Resource picker offers **Script**, **AI Agent**, **Conference Room**, **Relay Application**, **Subscriber**, **FreeSWITCH Connector**, **Call Flow**, and **SIP**. The legacy Dashboard has no **My Resources** entry; resource types such as **Relay/SWML**, **SIP**, and **cXML/LaML** appear separately in the sidebar. Contact Support to migrate a legacy Space. - -