SignalWire¶
The SignalWire modules allow you to watch, create, update, retrieve, and delete the calls, and messages in your SignalWire account.
Getting Started with SignalWire¶
Prerequisites
- A SignalWire account
In order to use SignalWire with Ibexa Connect, it is necessary to have a SignalWire account. If you do not have one, you can create a SignalWire account at signalwire.com.
Note
The module dialog fields that are displayed in bold (in the Ibexa Connect scenario, not in this documentation article) are mandatory!
Connecting SignalWire to Ibexa Connect¶
To connect your SignalWire account to Ibexa Connect you need to obtain the API Key from your SignalWire account and insert it in the Create a connection dialog in the Ibexa Connect module.
1. Log in to your SignalWire account.
2. In the left menu, click API > Create a Token.
3. Enter a name for the token, select the permissions, and click Save.
4. Copy the Project ID, Space URL, click Show and copy the token to a safe place.
5. Go to Ibexa Connect and open the SignalWire module's Create a connection dialog.
6. In the Connection name field, enter a name for the connection.
7. In the Space Name, enter your SignalWire account's space name. For example, if your account's space URL is xyz.signalwire.com
then your space name is xyz
.
8. In the Project ID, and Auth Token fields, enter the project ID and token details copied in step 4, and click Continue.
The connection has been established.
Calls¶
See Setting Up the SignalWire Webhook to add the webhooks in your SignalWire account.
Watch New Calls¶
Triggers when a new call comes in.
Watch Calls¶
Triggers when a new call is created.
Search Calls¶
Searches for calls or lists them all.
Start Time Type |
Select the call start time option to search the calls:
|
Start Time |
Enter the date and time to search the calls that were started at the specified time. See the list of supported date and time formats. |
End Time |
Enter the date and time to search the calls that were ended at the specified time. See the list of supported date and time formats. |
From |
Select the phone number to search for the calls from the specified number. |
To |
Select the phone number to search for the calls made to the specified number. |
Parent Call SID |
Enter the call SID details to search the calls that created the leg of the call. |
Status |
Select the status of the calls you want to search:
|
Limit |
Set the maximum number of calls Ibexa Connect should return during one scenario execution cycle. |
Get a Call¶
Gets a call by ID.
Call SID | Select the Call SID whose details you want to retrieve. |
Create a Call¶
Creates a new call.
Call Identifier |
Select the option to choose the application from which the call is made from:
|
Application SID |
Select or map the application SID used to handle the call. You can create an application SID at Dashboard > LaML > Apps. |
Call URL |
Enter the URL address of the call. |
From |
Enter the phone number from which the call is being made. |
To |
Enter the phone number to which the call is made. |
Caller ID |
Enter the Caller ID number in E.164 format or identifier of the caller. |
Fallback Method |
Select the fallback method for the call. The request to |
Fallback URL |
Enter the URL address SignalWire will request if any errors occur when fetching the URL. Ignore this parameter if |
Machine Detection |
Select whether a human or a machine has picked up the call:
|
Machine Detection Timeout |
Enter the time in seconds for which SignalWire will wait for machine detection before timing out. |
Method |
Select whether the request to URL is a GET or a POST. Ignore if |
Record |
Select whether to record the call. |
Recording Channels |
Select the number of recording channels:
|
Recording Status Callback |
Enter the URL address to request when recording is available. |
Recording Status Callback Event |
Select the recording status for recording callback event:
|
Recording Status Callback Method |
Select whether the request to |
SIP Auth Username |
Enter the username to authenticate the caller when making outbound SIP calls. |
SIP Auth Password |
Enter the password to authenticate the caller when making outbound SIP calls. |
Send Digits |
The digits to press after a call is connected. Possible values are (0-9), #, *, and w. Each w gives a 0.5-second pause before moving on to the next instruction. It must match pattern, /^([0-9]|#|\*|w)?$/. |
Status Callback |
Enter the URL address that SignalWire will send webhooks to on every requested |
Status Callback Event |
The status events that trigger a SignalWire webhook. |
Status Callback Method |
Select whether the request to |
Timeout |
Enter the time in seconds SignalWire will wait before assuming the call has no answer. |
Trim |
Select whether leading and trailing silence is trimmed from a recording:
|
Update a Call¶
Updates a call by ID.
Call SID |
Select or map the call SID whose details you want to update. |
Call Identifier |
Select the option to choose the application from which the call is made from:
|
Application SID |
Select or map the application SID used to handle the call. ou can create an application SID at Dashboard > LaML > Apps. |
Call URL |
Enter the URL address of the call. |
From |
Enter the phone number from which the call is being made. |
To |
Enter the phone number to which the call is made. |
Caller ID |
Enter the Caller ID number in E.164 format or identifier of the caller. |
Fallback Method |
Select the fallback method for the call. The request to |
Fallback URL |
Enter the URL address SignalWire will request if any errors occur when fetching the URL. Ignore this parameter if |
Machine Detection |
Select whether a human or a machine has picked up the call:
|
Machine Detection Timeout |
Enter the time in seconds for which SignalWire waits for the machine detection before timing out. |
Method |
Select whether the request to URL is a GET or a POST. Ignore if |
Record |
Select whether to record the call. |
Recording Channels |
Select the number of recording channels:
|
Recording Status Callback |
Enter the URL address to request when recording is available. |
Recording Status Callback Event |
Select the recording status for recording callback event:
|
Recording Status Callback Method |
Select whether the request to |
SIP Auth Username |
Enter the username to authenticate the caller when making outbound SIP calls. |
SIP Auth Password |
Enter the password to authenticate the caller when making outbound SIP calls. |
Send Digits |
The digits to press after a call is connected. Possible values are (0-9), #, *, and w. Each w gives a 0.5-second pause before moving on to the next instruction. The pattern must of the /^([0-9]|#|\*|w)?$/. |
Status Callback |
Enter the URL address that SignalWire will send webhooks to on every requested |
Status Callback Event |
The status events that trigger a SignalWire webhook. |
Status Callback Method |
Select whether the request to |
Timeout |
Enter the time in seconds SignalWire will wait before assuming the call has no answer. |
Trim |
Select whether leading and trailing silence is trimmed from a recording:
|
Delete a Call¶
Deletes a call by ID.
Call SID | Select or map the call SID you want to delete. |
Messages¶
See Setting Up the SignalWire Webhook to add the webhooks in your SignalWire account.
Watch New Messages¶
Triggers when a new message comes in.
Webhook Name | Enter a name for the webhook. |
Watch Messages¶
Triggers when a new message arrives.
Limit | Set the maximum number of messages Ibexa Connect should return during one execution cycle. |
Search Messages¶
Searches for messages or lists them all.
Date Sent Type |
Select the option for choosing the date. For example, |
Date Sent |
Enter the date to search the message sent on the specified date. |
From |
Enter the phone number to search the messages sent to the specified number. |
To |
Enter the phone number to search the messages sent to the specified number. |
Status |
Select or map the status of the message you are searching for:
|
Limit |
Set the maximum number of messages Ibexa Connect should return during one execution cycle. |
Get a Messages¶
Gets a message by ID.
Message SID | Select or map the message SID whose details you want to retrieve. |
Create a Message¶
Creates a new message.
To |
Enter the phone number to which you want to send the message. |
From |
Enter the phone number from which you want to send the message. |
Content Type |
Select or map the message content-type:
|
Body |
Enter the message text. |
Media URL |
Enter the URL address of the media you wish to attach and send with the message. For example, |
Application SID |
Enter the SID of a SignalWire LaML application used to configure the message's |
Max Price |
Enter the maximum price in USD applicable for the message to be sent. Once your message is queued, the cost to send the message is calculated, and if it is greater than |
Status Callback |
Enter an URL address as an endpoint to receive callbacks each time the status of the message changes from queued, failed, sent, delivered, or undelivered. |
Validity Period |
Enter the number of seconds a message will allow to be queued before canceling. When a sending a high volume of messages, messages can sit in your sending queue. It is not recommended to set a validity period of less than 5 seconds. |
Message Service SID |
Enter message service SID of a SignalWire number group to be used to automatically choose the best number from the number group to improve deliverability and optimize throughput. If |
Clear a Message¶
Clears the body of the existing message.
Message SID | Select or map the message SID you want to clear. |
Delete a Message¶
Deletes a message by ID.
Message SID | Select or map the message SID you want to delete. |
Other¶
Make an API Call¶
Performs an arbitrary authorized API call.
URL |
Enter a path relative to | For the list of available endpoints, refer to the SignalWire API Documentation. |
Method
Select the HTTP method you want to use:
GET to retrieve information for an entry.
POST to create a new entry.
PUT to update/replace an existing entry.
PATCH to make a partial entry update.
DELETE to delete an entry.
Headers
Enter the desired request headers. You don't have to add authorization headers; we already did that for you.
Query String
Enter the request query string.
Body
Enter the body content for your API call.
Example of Use - List Phone Numbers¶
The following API call returns all the phone numbers from your SignalWire account:
URL: /api/relay/rest/phone_numbers
Method: GET
Matches of the search can be found in the module's Output under Bundle > Body > data. In our example, 2 phone numbers were returned:
Setting Up the SignalWire Webhook¶
1. Open any Watch module, establish a connection, click Save, and copy the URL address to your clipboard. Click OK and Save the trigger.
2. Log in to your SignalWire account.
3. Click Phone Numbers > Edit. Select the webhook option, and the type of call or messages you want to watch.
4. In the ACCEPT INCOMING CALLS AS field, select the option to accept the incoming call as voice calls or fax.
5. In the HANDLE CALLS USING field, choose the webhook you want to add:
Note
We recommend Ibexa Connect users choose the LaML Webhooks option.
-
Relay
-
LaML Webhooks
-
a LaML Application
-
a Dialogflow Agent
-
a SIP Endpoint
-
a Verto/WebRTC Webhook
-
a FreeSwitch Connector
-
an Agora Connector
6. In the Events field, enter the URL address field copied in step 1 for which you want to receive the triggers and click Save.
You have successfully added the webhook to your SignalWire account.
Go to Ibexa Connect and run the scenario to receive triggers when the specified event occurs. . Select the webhook option, and the type of call or messages you want to watch.
4. In the ACCEPT INCOMING CALLS AS field, select the option to accept the incoming call as voice calls or fax.
5. In the HANDLE CALLS USING field, choose the webhook you want to add:
Note
We recommend Ibexa Connect users choose the LaML Webhooks option.
-
Relay
-
LaML Webhooks
-
a LaML Application
-
a Dialogflow Agent
-
a SIP Endpoint
-
a Verto/WebRTC Webhook
-
a FreeSwitch Connector
-
an Agora Connector
6. In the Events field, enter the URL address field copied in step 1 for which you want to receive the triggers and click Save.
You have successfully added the webhook to your SignalWire account.
Go to Ibexa Connect and run the scenario to receive triggers when the specified event occurs.