Getting started
This page covers how to get a trunk and what your PBX or SBC needs to support to use it.
What you need
- A Superfone account with a funded wallet. Trunk calls are paid from it. See Limits and billing.
- At least one Superfone number that is in service. You attach numbers to your trunk. A number that is on hold or refunded cannot be attached.
- A SIP server you control that can be reached from the internet on a public IPv4 address or a public hostname. Private addresses (for example
10.x.x.xor192.168.x.x) and IPv6 addresses are not accepted. See Allowed SIP hosts for the full rules.
Get a trunk
- Ask for SF Trunk. Email hello@superfone.in with SF Trunk in the subject. Tell us your company, your use case, which PBX or platform you use, and your expected concurrent calls and calls per second.
- Create the trunk. Superfone can create it for you, or you can create it with the SF Trunk API. Either way you get the trunk's label and its FQDN,
<label>.sft.superfone.co.in. - Give us your SIP server. This is the public host and port where we deliver inbound calls. The port defaults to
5060. You can also give a fallback server that we try when the primary is down. - Attach your numbers. Attach one or more of your Superfone numbers to the trunk. See Inbound calls.
- Superfone sets your limits. A trunk you create is active straight away. We set your organisation's CPS and concurrent-call limits to match what you bought.
- Point your PBX at the FQDN and make a test call in each direction.
You cannot change your organisation's limits, or suspend or activate a trunk, yourself. Email hello@superfone.in for any of these. You can set lower limits for one trunk. See Capacity limits.
Manage your trunk
| Action | Account owner or manager | Superfone |
|---|---|---|
| Create a trunk | Yes | Yes |
| List trunks and view a trunk with its numbers | Yes | Yes |
| Change the SIP host and port for inbound calls | Yes | Yes |
Change the SIP transport for inbound calls. The setting accepts udp, tcp or tls. udp and tcp are supported today, tls is not. See Transport | Yes | Yes |
| Turn call recording on or off for the trunk, or leave it to each number's setting | Yes | Yes |
| Attach and detach numbers | Yes | Yes |
| Delete a trunk | Yes | Yes |
| Activate or suspend a trunk | No | Yes |
| Set the organisation's CPS and concurrent-call limits | No | Yes |
| Set a trunk's own CPS and concurrent-call limits, up to the organisation's | Yes | Yes |
The label and FQDN never change. Deleting a trunk detaches all its numbers, and they go back to working like any other Superfone number.
The account owner or a manager makes these changes with the SF Trunk API, or your own systems make them with an API key. To get an API key, see Authentication. For the changes only Superfone can make, email hello@superfone.in.
Supported software and hardware
SF Trunk works with standards-based SIP (RFC 3261) systems that can:
- send outbound calls to a SIP domain name (your trunk FQDN),
- receive inbound calls on a public address, and
- use G.711 audio.
That covers most IP PBXs, SBCs, softphones and voice AI platforms that accept a SIP trunk.
Supported SIP methods
| Supported | Not supported |
|---|---|
INVITE | REGISTER |
ACK | SUBSCRIBE |
BYE | INFO |
CANCEL | MESSAGE |
OPTIONS | PRACK |
UPDATE | PUBLISH |
REFER (call transfer to Superfone app, see Call transfer to Superfone app) |
Your PBX does not register with SF Trunk. Set the trunk up as a static peer with registration turned off. A REGISTER gets 405 Method Not Allowed. Your PBX can transfer a call to a Superfone app user with REFER. See Call transfer to Superfone app.
You can send OPTIONS to your trunk FQDN to check that it is reachable. We answer 200 OK.
Supported codecs
SF Trunk supports G.711 only:
| Codec | SDP name | Payload type |
|---|---|---|
| G.711 A-law | PCMA | 8 |
| G.711 µ-law | PCMU | 0 |
We do not transcode. Always include PCMA in your offer. It is the codec we have tested end to end with Indian carriers. Do not offer PCMU on its own.
Transport
| Today | |
|---|---|
| Signalling | SIP over UDP or TCP |
| Port | 5060 |
| Media | RTP |
Your trunk's transport setting for inbound calls, customer_sip_transport in the API, accepts udp, tcp or tls. udp and tcp are supported today. tls is not. udp is the default and the simplest place to start.
For outbound calls, your PBX can send to your trunk FQDN over UDP or TCP.
Whichever transport you set, your firewall must accept SIP from our signalling addresses over that transport. If you set tcp on the trunk but your firewall does not accept TCP from us, inbound calls never reach your server. The caller hears no audio, and the call fails after about ten seconds, not straight away. Open TCP in your firewall, or set the trunk back to udp.
The transport covers SIP signalling only. Media is still RTP, so keep accepting it from our media addresses. See Inbound calls fail on the transport you chose.
TLS for signalling and SRTP for media are on the roadmap.
Network addresses to allowlist
If your firewall only accepts SIP and RTP from known addresses, allow the following. If your platform accepts calls from any address, you do not need this.
| Traffic | Addresses | Ports |
|---|---|---|
| SIP signalling | 35.200.210.219 | 5060 (UDP or TCP, matching your trunk's transport) |
| Media (RTP) | 35.200.224.255 | 20000 to 60000 (UDP) |
SIP arrives from the signalling address on port 5060. Media arrives from the media address over UDP, on a source port between 20000 and 60000; the destination port is the one your server advertises in its SDP.
Do not allowlist addresses you find from DNS lookups or packet captures. Use the addresses on this page, and configure your PBX with your trunk FQDN, not an IP address.
Internet bandwidth
G.711 carries 64 kbit/s of audio. With packet overhead, plan for about 100 kbit/s in each direction for each concurrent call.
For example, 50 concurrent calls need about 5 Mbit/s up and 5 Mbit/s down.
Calls per second and concurrent calls
Organisation call limits, and trunk limits you can set, ship with the org-limits release.
Your organisation has limits, set by Superfone to match the capacity you bought. All your trunks and SFVoPI apps share them:
- CPS: new calls per second.
- Peak CPS: the most new calls in one burst.
- Concurrent calls: calls in progress at once.
You can give a trunk its own lower limits. By default it has none.
Inbound and outbound calls count against the same limits. A call over a limit is refused immediately, not queued. Details in Limits and billing.
Next Steps
- Inbound calls: attach numbers and receive calls on your SIP server
- Outbound calls: send calls to Indian numbers through your trunk
- Platform Guides for AI Agent platform: Connect easily to AI Agent Platforms
- Supported today and coming soon: the full feature list