We have been building yet another softphone for you... or have we?

Read time 2 minutes

This article is mainly interesting to iOS developers and decision makers at your company.

At Automat Berlin GmbH, we strive to make a dent of our own in the communication industry. Through our past projects, we gained experience in using SIP and WebRTC stacks and built communication apps on top of them. Today we wanted to share our knowledge with the community, and we are proud to present our first open source iOS app.

//afone is a reference implementation for SIP/WebRTC based telephony on iOS. It can be used with different communication stacks with little effort. It comes with an easily extensible adapter concept that encapsulates all details of various providers. It is not a complete softphone implementation as it does not provide either an address book implementation or a recent phone call list. It also does not offer an “out of the box” working VoIP push notifications implementation but lays the ground for you to add it with minimal effort quickly.

We made //afone that way, so you do not have to struggle with most common issues and can concentrate on writing your adapter to the backend of your choice or a known CPaaS provider. We see two main use cases for the app. Firstly, you can use it to test your communication stack. Secondly, you can use it to base your own softphone implementation on it, where you do not have to have a full understanding of the SIP protocol. Therefore we have separated the UI part from the adapter part.

//afone is not intended as a product though. We did not want to make it a messenger or yet another softphone. Therefore messaging based on SIP/WebRTC or a custom CPaaS provider is not supported. We simply concentrated on the call experience and iOS integration. Our phone supports muting/unmuting, call hold/unhold, entering DTMF tones, video calls, and audio routing in both CallKit and the in-app call screen.

The architecture is simple and clear. We want you to focus on your adapter code, and on adding simple UI elements like a list of recent calls. Here is how it works:

//afone architecture

Sounds good? Give it a try yourself and let us know what you think. It is free, open, and available on GitHub. If you decide to write your own adapter to a CPaaS provider, please consider sharing it with the open source community.

//afone is provided under the MIT license, so you are free to use it in commercial projects or contribute to the FOSS initiative we host on GitHub.

//afone is available on the App Store.

In case you need support, do not hesitate to contact us!

Disclaimer: //afone requires you to have a fully functional SIP server and to add an iOS SIP library. For a full list of dependencies, please see our README on GitHub.