Programmable SIP - Connectivity and Routing

How to add VoIP features to your applications and use SignalWire to route calls to SIP endpoints.

Jan 31, 2019

By Erik Lagerway, VP of Product

SIP connectivity (SIP Trunking) and routing allows companies and developers to build out solutions on SignalWire that include SIP endpoints in addition to regular business and mobile phone numbers. Customers can now programmatically create SIP endpoints and route traffic to those endpoints in the SignalWire network. These endpoints could be many things, such as: PBXs / Business Phone Systems, IP Phones, Softphones, Mobile Applications, and IoT devices, just to name a few.

Creating a SIP endpoint on SignalWire is super easy. Here is an example demonstrating how to create a SIP endpoint using cURL:


Once the endpoint has been created, you can then enter the SIP credentials in your SIP device and the device will register to the network.

Programmatically routing SIP calls to SIP endpoints on the SignalWire network is equally as easy. Using LāML:

Or PHP:


Caller ID

Outbound caller ID can be set to any purchased number or a verified number, using verified caller id. You can even use your mobile or current business phone number, more on this in a future blog post!

SIP Calling (Devices and Programmatically)

SIP devices calling between SIP endpoints (SIP <-> SIP) must be done with endpoints that are in the same SignalWire project. PSTN-to-SIP calls can be routed to any SIP endpoints outside of SignalWire, Eg. PSTN -> LāML -> External SIP.

Call Logs

There are call logs that can be viewed in the SignalWire Dashboard providing a list of all calls and when they were made in addition to some other details.

Configuring your SIP device

Depending on what your SIP device is, be it a PBX or a SIP application or IP Phone, they all require many of the same fields parameters.

SIP Username
SIP Password
Local SIP Port: In order to avoid malicious behavior, we suggest choosing a local SIP port that is not the typical SIP port.
SIP Server
SIP Server Port
SIP Server Transport Protocol
Outbound Proxy
Outbound Proxy Port
Outbound Proxy Transport Protocol


For our example, our parameters for a SIP IP Phone or soft client might be:

SIP Username: acme-pbx
SIP Password: xxxxxxxx
Local SIP Port: 6050
SIP Server: sip.xxx.signalwire.xxx (refer to your dashboard for the correct URL)
SIP Server Port: 5061 (SIP Port: 5060, TLS Port 5061)
SIP Server Transport Protocol: TLS
Outbound Proxy: (supported but not generally needed)
Outbound Proxy Port: (supported but not generally needed)
Outbound Proxy Transport Protocol: (supported but not generally needed)

Security is important to us!

Communications over the open internet should be secure both in signalling and in media. We feel so strongly about security that we decided to support TLS (Transport Layer Security) and SRTP (Secure Real-time Transport Protocol) by default, at no extra charge. Other competitors in the space charge extra for encrypting calls, that’s not how we roll at SignalWire.

Pricing

Our pricing is disruptive for all the services we offer. SIP is no different in this regard. Our price for SIP is metered per minute/per call leg at $0.0007*. As mentioned earlier, our customers get encryption for free. We also do not charge for using LāML to route calls.

Come and build something great on SignalWire!

Developer documentation for SIP Connectivity can be found here:

https://docs.signalwire.com/topics/relay-rest/#relay-rest-api

Routing SIP calls:

https://docs.signalwire.com/topics/laml-xml/#voice-laml-lt-dial-gt-lt-sip-gt

Main developer documentation site:

https://docs.signalwire.com/

P.S. We always announce features to our community before bringing it to the general public, so sign up for your free SignalWire account today and join our Community!

* Please check our pricing page for up to date pricing.