Rate this page:

SIP calls to/from third-party PBX

Voximplant has SIP connectivity that enables VoIP calls between your Voximplant application and your private PBX.

Making calls from Voximplant to PBX

To make a call, you need to use the VoxEngine.callSIP function. Basic usage requires providing the SIP URI that you want to call this way: let call = VoxEngine.callSIP("sip:alice@example.com");.

By default, calls are made with UDP transport. TCP transport can be enabled by specifying it in the SIP URI: let call = VoxEngine.callSIP("sip:alice@example.com;transport=tcp");

Extra parameters like From header, SIP authentication etc. may be specified by passing the CallSIPParameter structure.

Security considerations
  • Voximplant uses the same set of IP addresses for all of the customers, so it's highly recommended to use SIP authentication instead of IP whitelisting on the PBX side for reasonable security.
  • You can find the list of the IP addresses used by Voximplant for SIP and RTP in our FAQ.

TLS support

You can enable TLS for your SIP call by changing URI a little bit, look at the examples below:



Making calls from PBX to Voximplant

To make a call from your PBX to a Voximplant application named myapp in an account named myaccount, you should send an INVITE request to this host: myapp.myaccount.voximplant.com. The To header must contain the same host name in the domain portion of the URI.

The From header, on the other side, shouldn't contain it and should have an IP address of your PBX in the domain part. If you include the voximplant host name in the From header, SIP authentication will be required.

You also need to whitelist the IP addresses of your PBX instance in our Control panel or using API.

Using SIP Headers

You can exchange SIP headers in both directions. You can send them in INVITE request for outgoing calls using the headers parameter and receive them in the CallEvents.Connected event if they were present in 200 OK message.

SIP headers limitations
  • We support passing only headers with names starting with X- and some additional headers like Diversion and P-Asserted-Identity.
  • Please note that if you use SIP headers with long values, it's recommended to use TCP transport otherwise packets may be lost because of the IP fragmentation.