Signals Docs
Programmable Voice calls

Create, list, fetch, update and end voice calls.


List calls

GET
https://api.signals.pressone.africa
/2010-04-01/Accounts/{AccountSid}/Calls.json

Returns a page of calls for the account, most recent first. Pagination accepts either the PascalCase query parameters below or their lowercase aliases (page, page_size).

List calls › path Parameters

AccountSid
​string · pattern: ^AC[0-9a-f]{32}$ · required

Your Voice Account SID. It must equal the Basic authentication username.

Example: AC9ce1cd445308e3ec5080c6126288aa09

List calls › query Parameters

Page
​integer · min: 0

Zero-indexed page number.

Example: 0
Default: 0
PageSize
​integer · min: 1 · max: 100

Number of calls per page.

Example: 50
Default: 50

List calls › Responses

Call list.

​Call[]
uri
​string

Path of this request, without query parameters.

Example: /2010-04-01/Accounts/AC9ce1cd445308e3ec5080c6126288aa09/Calls.json
page
​integer

Current page number.

Example: 0
page_size
​integer

Calls per page.

Example: 50
first_page_uri
​string

Path of the first page.

Example: /2010-04-01/Accounts/AC9ce1cd445308e3ec5080c6126288aa09/Calls.json?page=0&page_size=50
next_page_uri
​string

Path of the next page. Omitted when there are no more results.

Example: /2010-04-01/Accounts/AC9ce1cd445308e3ec5080c6126288aa09/Calls.json?page=1&page_size=50
previous_page_uri
​string

Path of the previous page. Omitted on the first page.

Example: /2010-04-01/Accounts/AC9ce1cd445308e3ec5080c6126288aa09/Calls.json?page=0&page_size=50

Create a call

POST
https://api.signals.pressone.africa
/2010-04-01/Accounts/{AccountSid}/Calls.json

Originates an outbound call. The request body is form-encoded (application/x-www-form-urlencoded) with PascalCase field names, not JSON. Provide Url or Twiml so the call has a OneML document to run once it connects. If both are present, Url is used and Twiml is ignored. The request body may be at most 1 MiB.

Create a call › path Parameters

AccountSid
​string · pattern: ^AC[0-9a-f]{32}$ · required

Your Voice Account SID. It must equal the Basic authentication username.

Example: AC9ce1cd445308e3ec5080c6126288aa09

Create a call › Request Body

To
​string · pattern: ^\+?[0-9]{7,15}$ · required

Destination phone number. E.164 format, or 7 to 15 digits with an optional leading plus sign.

Example: +2348031234567
From
​string · pattern: ^\+?[0-9]{7,15}$ · required

Caller ID to originate the call from. Must be a phone number your Signals project owns; an unowned number returns error 21210.

Example: +2342013300100
Url
​string · uri

Absolute http(s) URL fetched for a OneML document once the call connects. Required unless Twiml is given. If both Url and Twiml are present, Url is used and Twiml is ignored.

Example: https://voice.example.com/oneml/answer
Twiml
​string · maxLength: 4000

Inline OneML document to run instead of fetching Url. Ignored if Url is also present. Must parse as valid OneML, or the request fails with error 12100.

Example: <Response><Say>Your verification code is 4 8 2 9 1 6.</Say></Response>
Method
​string · enum

HTTP method used to fetch Url. Any value other than GET is treated as POST.

Enum values:
GET
POST
Example: POST
Default: POST
StatusCallback
​string · uri

Absolute http(s) URL notified about call status changes.

Example: https://voice.example.com/status-callback
StatusCallbackMethod
​string · enum

HTTP method used to call StatusCallback. Any value other than GET is treated as POST.

Enum values:
GET
POST
Example: POST
Default: POST
StatusCallbackEvent
​string[]

Call lifecycle events that trigger StatusCallback. Repeat the parameter to request more than one event. Defaults to ["completed"] when omitted or empty. Other values are accepted but never match an emitted event.

Enum values:
initiated
ringing
answered
completed
Example: ["initiated","completed"]
Default: ["completed"]
Timeout
​integer · min: 1 · max: 600

Seconds to let the destination ring before the call is treated as unanswered. Values outside 1 to 600 are clamped rather than rejected.

Example: 60
Default: 60
CallerId
​string · pattern: ^\+?[0-9]{7,15}$

Overrides the caller ID presented on this call. Must be a phone number your project owns (error 21210) and in the same format as To and From (error 13214).

Example: +2342013300101
TimeLimit
​integer

Maximum call duration in seconds, measured from answer.

Example: 3600
SendDigits
​string · maxLength: 32 · pattern: ^[0-9A-Da-d#*wW]{0,3…

DTMF digits to play after the call connects. At most 32 characters from 0-9, A-D, a-d, #, *, w and W (w inserts a 0.5 second pause).

Example: 1234#
ApplicationSid
​string

Not supported. Providing ApplicationSid always fails the request with error 21605; use Url or Twiml instead. A Signals voice application ID is not accepted here either.

Example: AP0123456789abcdef0123456789abcdef

Create a call › Responses

Call created.

sid
​string

Unique identifier of this call.

Example: CA5388f7a5e04d0ed71cac5cdf1ea17a53
account_sid
​string

SID of the Voice Account that owns this call.

Example: AC9ce1cd445308e3ec5080c6126288aa09
api_version
​string
date_created
​string

RFC 2822 formatted creation timestamp.

Example: Thu, 02 Jul 2026 12:00:00 +0000
date_updated
​string

RFC 2822 formatted last-update timestamp.

Example: Thu, 02 Jul 2026 12:00:05 +0000
annotation
​string | null

Reserved. Always null.

Example: null
answered_by
​string | null

Reserved for answering-machine detection. Always null.

Example: null
caller_name
​string | null

Reserved for caller name lookup. Always null.

Example: null
direction
​string

Call direction, for example inbound, outbound-api or outbound-dial.

Example: outbound-api
duration
​string | null

Call duration in seconds. Null until the call has ended and been recorded.

Example: 45
end_time
​string | null

RFC 2822 formatted end timestamp. Null until the call ends.

Example: Thu, 02 Jul 2026 12:00:50 +0000
forwarded_from
​string | null

Reserved. Always null.

Example: null
from
​string
from_formatted
​string

Identical to from.

Example: +2342013300100
group_sid
​string | null

Reserved. Always null.

Example: null
trunk_sid
​string | null

Reserved. Always null.

Example: null
parent_call_sid
​string | null

SID of the call that created this one, when applicable.

Example: null
queue_time
​string

Milliseconds the call waited between being queued and initiated. "0" when not applicable.

Example: 0
phone_number_sid
​string | null

SID of the number used for this call, when known.

Example: PN9992109eed74a671cdc4e192a934d43e
price
​string | null

Price field reported by the voice engine. Signals charges for the call appear in Signals usage, not in this field.

Example: null
price_unit
​string | null

Currency of price.

Example: null
start_time
​string | null

RFC 2822 formatted answer timestamp. Null until the call is answered.

Example: Thu, 02 Jul 2026 12:00:05 +0000
status
​string · enum

Current call status.

Enum values:
queued
ringing
in-progress
completed
busy
no-answer
canceled
failed
Example: in-progress
​object

Paths of resources related to this call.

to
​string
to_formatted
​string

Identical to to.

Example: +2348031234567
uri
​string

Path of this call resource.

Example: /2010-04-01/Accounts/AC9ce1cd445308e3ec5080c6126288aa09/Calls/CA5388f7a5e04d0ed71cac5cdf1ea17a53.json

Fetch a call

GET
https://api.signals.pressone.africa
/2010-04-01/Accounts/{AccountSid}/Calls/{CallSid}.json

Returns the current state of a single call. The .json suffix is optional.

Fetch a call › path Parameters

AccountSid
​string · pattern: ^AC[0-9a-f]{32}$ · required

Your Voice Account SID. It must equal the Basic authentication username.

Example: AC9ce1cd445308e3ec5080c6126288aa09
CallSid
​string · pattern: ^CA[0-9a-f]{32}$ · required

SID of the call. Lowercase hexadecimal only; any other form returns 404.

Example: CA5388f7a5e04d0ed71cac5cdf1ea17a53

Fetch a call › Responses

Call details.

sid
​string

Unique identifier of this call.

Example: CA5388f7a5e04d0ed71cac5cdf1ea17a53
account_sid
​string

SID of the Voice Account that owns this call.

Example: AC9ce1cd445308e3ec5080c6126288aa09
api_version
​string
date_created
​string

RFC 2822 formatted creation timestamp.

Example: Thu, 02 Jul 2026 12:00:00 +0000
date_updated
​string

RFC 2822 formatted last-update timestamp.

Example: Thu, 02 Jul 2026 12:00:05 +0000
annotation
​string | null

Reserved. Always null.

Example: null
answered_by
​string | null

Reserved for answering-machine detection. Always null.

Example: null
caller_name
​string | null

Reserved for caller name lookup. Always null.

Example: null
direction
​string

Call direction, for example inbound, outbound-api or outbound-dial.

Example: outbound-api
duration
​string | null

Call duration in seconds. Null until the call has ended and been recorded.

Example: 45
end_time
​string | null

RFC 2822 formatted end timestamp. Null until the call ends.

Example: Thu, 02 Jul 2026 12:00:50 +0000
forwarded_from
​string | null

Reserved. Always null.

Example: null
from
​string
from_formatted
​string

Identical to from.

Example: +2342013300100
group_sid
​string | null

Reserved. Always null.

Example: null
trunk_sid
​string | null

Reserved. Always null.

Example: null
parent_call_sid
​string | null

SID of the call that created this one, when applicable.

Example: null
queue_time
​string

Milliseconds the call waited between being queued and initiated. "0" when not applicable.

Example: 0
phone_number_sid
​string | null

SID of the number used for this call, when known.

Example: PN9992109eed74a671cdc4e192a934d43e
price
​string | null

Price field reported by the voice engine. Signals charges for the call appear in Signals usage, not in this field.

Example: null
price_unit
​string | null

Currency of price.

Example: null
start_time
​string | null

RFC 2822 formatted answer timestamp. Null until the call is answered.

Example: Thu, 02 Jul 2026 12:00:05 +0000
status
​string · enum

Current call status.

Enum values:
queued
ringing
in-progress
completed
busy
no-answer
canceled
failed
Example: in-progress
​object

Paths of resources related to this call.

to
​string
to_formatted
​string

Identical to to.

Example: +2348031234567
uri
​string

Path of this call resource.

Example: /2010-04-01/Accounts/AC9ce1cd445308e3ec5080c6126288aa09/Calls/CA5388f7a5e04d0ed71cac5cdf1ea17a53.json

Update a live call

POST
https://api.signals.pressone.africa
/2010-04-01/Accounts/{AccountSid}/Calls/{CallSid}.json

Send form fields to redirect or end a call. Use exactly one of Url, Twiml, or Status. Method applies only to Url and defaults to POST. Status=completed ends an in-progress call; Status=canceled cancels a call before answer. A successful command response can still show the current non-terminal status until the switch confirms termination. POST returns the call resource; PATCH is not accepted. Existing JSON update clients must adopt this form contract.

Update a live call › path Parameters

AccountSid
​string · pattern: ^AC[0-9a-f]{32}$ · required

Your Voice Account SID. It must equal the Basic authentication username.

Example: AC9ce1cd445308e3ec5080c6126288aa09
CallSid
​string · pattern: ^CA[0-9a-f]{32}$ · required

SID of the call. Lowercase hexadecimal only; any other form returns 404.

Example: CA5388f7a5e04d0ed71cac5cdf1ea17a53

Update a live call › Request Body

Exactly one of Url, Twiml, or Status is required. Method requires Url.
Url
​string · uri

Absolute HTTP or HTTPS OneML URL for an in-progress call.

Example: https://voice.example.com/oneml/transfer
Method
​string · enum
Enum values:
GET
POST
Default: POST
Twiml
​string · maxLength: 4000

Inline OneML for an in-progress call.

Example: <Response><Hangup/></Response>
Status
​string · enum

completed ends an in-progress call; canceled requires a call that has not answered.

Enum values:
completed
canceled
oneOf
Exactly one variant must match.

Decision Table

VariantMatching Criteria
type = object · requires: Url
type = object · requires: Twiml
type = object · requires: Status
Properties for Variant 1:
Url
​string · uri · required

Absolute HTTP or HTTPS OneML URL for an in-progress call.

Example: https://voice.example.com/oneml/transfer
Method
​string · enum
Enum values:
GET
POST
Default: POST
Twiml
​string · maxLength: 4000

Inline OneML for an in-progress call.

Example: <Response><Hangup/></Response>
Status
​string · enum

completed ends an in-progress call; canceled requires a call that has not answered.

Enum values:
completed
canceled

Update a live call › Responses

The update was accepted. Switch execution is asynchronous.

sid
​string

Unique identifier of this call.

Example: CA5388f7a5e04d0ed71cac5cdf1ea17a53
account_sid
​string

SID of the Voice Account that owns this call.

Example: AC9ce1cd445308e3ec5080c6126288aa09
api_version
​string
date_created
​string

RFC 2822 formatted creation timestamp.

Example: Thu, 02 Jul 2026 12:00:00 +0000
date_updated
​string

RFC 2822 formatted last-update timestamp.

Example: Thu, 02 Jul 2026 12:00:05 +0000
annotation
​string | null

Reserved. Always null.

Example: null
answered_by
​string | null

Reserved for answering-machine detection. Always null.

Example: null
caller_name
​string | null

Reserved for caller name lookup. Always null.

Example: null
direction
​string

Call direction, for example inbound, outbound-api or outbound-dial.

Example: outbound-api
duration
​string | null

Call duration in seconds. Null until the call has ended and been recorded.

Example: 45
end_time
​string | null

RFC 2822 formatted end timestamp. Null until the call ends.

Example: Thu, 02 Jul 2026 12:00:50 +0000
forwarded_from
​string | null

Reserved. Always null.

Example: null
from
​string
from_formatted
​string

Identical to from.

Example: +2342013300100
group_sid
​string | null

Reserved. Always null.

Example: null
trunk_sid
​string | null

Reserved. Always null.

Example: null
parent_call_sid
​string | null

SID of the call that created this one, when applicable.

Example: null
queue_time
​string

Milliseconds the call waited between being queued and initiated. "0" when not applicable.

Example: 0
phone_number_sid
​string | null

SID of the number used for this call, when known.

Example: PN9992109eed74a671cdc4e192a934d43e
price
​string | null

Price field reported by the voice engine. Signals charges for the call appear in Signals usage, not in this field.

Example: null
price_unit
​string | null

Currency of price.

Example: null
start_time
​string | null

RFC 2822 formatted answer timestamp. Null until the call is answered.

Example: Thu, 02 Jul 2026 12:00:05 +0000
status
​string · enum

Current call status.

Enum values:
queued
ringing
in-progress
completed
busy
no-answer
canceled
failed
Example: in-progress
​object

Paths of resources related to this call.

to
​string
to_formatted
​string

Identical to to.

Example: +2348031234567
uri
​string

Path of this call resource.

Example: /2010-04-01/Accounts/AC9ce1cd445308e3ec5080c6126288aa09/Calls/CA5388f7a5e04d0ed71cac5cdf1ea17a53.json

End a call

DELETE
https://api.signals.pressone.africa
/2010-04-01/Accounts/{AccountSid}/Calls/{CallSid}.json

Requests hang-up of an active call, or cancellation before answer. A queued call can be canceled before origination.

End a call › path Parameters

AccountSid
​string · pattern: ^AC[0-9a-f]{32}$ · required

Your Voice Account SID. It must equal the Basic authentication username.

Example: AC9ce1cd445308e3ec5080c6126288aa09
CallSid
​string · pattern: ^CA[0-9a-f]{32}$ · required

SID of the call. Lowercase hexadecimal only; any other form returns 404.

Example: CA5388f7a5e04d0ed71cac5cdf1ea17a53

End a call › Responses

The command was accepted. The response has no body; native events confirm the final status.

No data returned