Siperb - WebRTC Softphone and Proxy 🎉

You may have seen my profile here under InnovateAsterisk. The Browser Phone is a very popular github project, and is cloned many times a day, and although this will continue, I decided at the beginning of this year to build an application and host a service that would assist people with their WebRTC needs.

This is called Siperb, and we are looking for beta testers to try out the system. The idea behind Siperb is that there is both the Soft-phone (Web & Mobile), and the necessary hosted proxying services to connect the WebRTC client to your PBX - overcoming firewalls and other issues because of the unique configuration.

Connections
We use a system of connections - you can think of them as your SIP trunks. This would be the same as adding SIP credentials to your (until now) favourite Softphone. But with us you can add as many as you like, and also they can be inbound registered, meaning you don’t have to open your firewall to us!, even if the client connects from outside your network. Because it’s an always-on system, we maintain these connections with register loops, letting your systems know how to reach you, then when a call comes in, a push is sent to the device, allowing it to open and ring, etc.

Transcoding
Let’s face it, there are still a lot of Asterisk boxes out there that either cannot use WebRTC, (maybe the box is too old), or you just don’t want to… that’s fine! We can transcode the media for you, so you get regular RTP with UDP signalling, all while the WebRTC client is using DTSL and WebSockets. If you are able to use WebRTC, you can disable this feature, allowing call media to be sent peer-to-peer encrypted.

Where are we in this journey?
Well, there is still much to do, but the fundamentals are in and quite well tested. For the most part this service will all be free, until we put in the cool stuff like AI (then we may need to charge you). We would love to hear from you, what you are looking for in a service like this, and how we can make this better for you.

We believe wholeheartedly that WebRTC is the absolute best way to provide a Softphone for both Web (Desktop) and Mobile.

Join us in this journey… Find more information here:

More information on Connections here:

2 Likes

Hi Siperb:

We would be happy to assist with beta testing. 20 years of asterisk experience, but always looking for better ways.

Bill

Awesome!

Probably the easiest way to give feedback, ask questions, or request features, is just via the support ticket system. Just email: support at siperb.com. It’s still fairly quiet right now, so we can closely monitor.

Can’t find siperb on android play store

If the link below isn’t working, I’ll have to check the play store listing settings. Should be all regions tho.

Does it support webrtc wss based registration or is it just sip at the moment?

The Web and Mobile client uses a secure (wss) connection to establish a connection to our servers. This happens automatically and is in standard SIP, and there is another (unrelated) registration from our servers to your Asterisk instance that is done with regular UDP. You need to configure this UDP Registration. (We call these connections.)

With connections you get:

  • UDP to WebRTC SIP message proxying.
  • Registration monitoring
  • Push Notifications (Web & Mobile)
  • Your choice of Inbound and outbound registration.

Fairly soon we will release:

  • Direct Client to Server (SIP) registration. So in this case your server will have to be able to accept a WebSocket connection in a “typical” WebRTC style connection. But we will provision the details like SIP username and password as you enter them into the control panel.
  • You will lose some functionality like this, but this may work better for you.

Note: The concept is that the very same INVITE created in the browser and sent over our Websocket, get proxyed over to your server as UDP pretty much as-is… and yes the session description will include ICE candidates and keys for the DTLS-SRTP media stream, so yes your endpoint has to be configured as webrtc=yes, even if the transport is left on udp.

This may be a tricky concept to grasp, so we are looking at transcoding this - but it comes at a cost. We do it like this to ensure that we stay out of the media path. Media is sent directly from the browser to your Asterisk server.

Having the transcoding server in the middle can solve a lot of problems, but adds network latency, so it’s best to try optimise this out.

BTW: Inbound Registrations are quite interesting option for on-premise PBX’s. (“Inbound”, as in you register inbound to us.) This allows your Asterisk box to remain behind your firewall without opening any ports up! How this works is for each extension, you need a REGISTER entry, and initiate the registration from your Asterisk Server. (This makes the hole in the router, as the connection would be from inside your network.) There are a few more changes to make to the endpoint, but really it not much different to a trunk to an ISP.

There was a very high SDK requirement. But we have just re-released the Android app with a minimum sdk of 30 now. This should be good for about 80% of Android devices.