Deploy
Bring your own SIP trunk
Register a number on a new trunk
POST/v1/phones/sip connects the trunk and registers the number in one request.
{
"phoneNumber": "+33187654321",
"name": "acme-sip",
"terminationUri": "sip.example.com",
"transport": 1,
"sipUsername": "acme",
"sipPassword": "your-sip-password",
"requireInboundAuth": true,
"agentId": "550e8400-e29b-41d4-a716-446655440000"
}| Field | Meaning |
|---|---|
terminationUri | Where CallShift sends your outbound calls |
transport | 1 UDP, 2 TCP, 3 TLS |
sipUsername, sipPassword | The credentials your carrier expects |
requireInboundAuth | Generate credentials your carrier must send on inbound calls (off by default) |
sipTrunkId | Add the number to an existing trunk instead; the trunk fields are then ignored |
Route inbound calls
Each trunk gets its own authenticated inbound connection. Its origination URI and credentials, which you configure at your carrier, are under Connection details on the trunk, at app.callshift.ai/phone-numbers. Then assign the agent to the number.
Calls per second
The calls-per-second limit (callsPerSecond) belongs to the trunk and is shared by every number on it, and by every campaign that dials from them. GET/v1/trunks reads it; you change it in the dashboard. It is usually what sets the pace of a campaign, more than the number of lines: the outbound campaign simulator works out how long yours will take.
Your carrier
A carrier works with CallShift when it sends a number's calls to a SIP URI, not when it delivers them only to a device registered on the line. The sections below give, carrier by carrier, what to copy from one side to the other.
Twilio Elastic SIP Trunking
Numbers on a Twilio account need no trunk: importing them is simpler, see Phone numbers. A trunk is for the numbers Twilio routes over Elastic SIP Trunking. In the Twilio Console, Elastic SIP Trunking › Trunks, create a trunk, then (Twilio guide):
- Termination. Choose the trunk's Termination SIP URI,
name.pstn.twilio.com, and under Authentication create a credential list with a username and a password. To keep the calls in Europe, use the Dublin or the Frankfurt edge:name.pstn.dublin.twilio.comorname.pstn.frankfurt.twilio.com. - Numbers. Associate the Twilio number with the trunk.
- CallShift. Register the number on a new trunk (above), with the values of the table below.
- Origination. Back in Twilio, add an Origination SIP URI:
sip:followed by the origination URI in the Connection details of the CallShift trunk.
| Field | From Twilio |
|---|---|
phoneNumber | The Twilio number, in E.164 (+33187654321) |
terminationUri | The Termination SIP URI, such as acme.pstn.twilio.com |
transport | 1 (UDP), Twilio's default; 3 (TLS) if you turn on Secure Trunking |
sipUsername, sipPassword | The username and password of the credential list |
requireInboundAuth | false: Twilio sends no credentials with inbound calls |
- Caller ID. Twilio refuses an outbound call whose caller ID is neither a number of the account nor a verified caller ID: the trunk calls from its Twilio number.
- E.164. Twilio rejects a number without its
+(400 Bad Request) and passes inbound numbers with it. - Calls per second. By default, a Twilio trunk places 1 call per second; you can raise it to 5 in its Termination settings, and further through Twilio's sales team (Twilio guide). Set the same limit on the CallShift trunk: Twilio refuses the calls above it.
Remove a number
DELETE/v1/phones/sip/{phoneId} deletes the number and detaches it from its trunk.
