Vialer is a VoIP client which utilizes the VoIPGRID VoIPGRID platform. Up until version 3.0 it's main purpose is to provide an easy interface for the "Two step Calling" function of the platform. This feature enables the user of the app to dial a phone number as if you were "at the office". The receiver sees the "office" number as the calling number (CLI). Using the app, the user can also:
- Adjust it's availability
- See call statistics
- See and adjust dialplans
Starting from Version 3.0 the app also acts as a VoIP softphone, enabling the user to make and receive phone calls using SIP but only when connected to Wi-Fi of 4G.
The features provided by the app until v3.0 use the platforms API.
Starting with v3.0 the VoIP functionality is provided by using PJSIP. We have wrapped PJSIP into a cocoapod which in turn is used by a pod which provides all the SIP functionality.
On an outgoing call the app registers it self with VoIPGRID's sip proxy and after the call has ended the registration is removed. We have deliberately chosen for this registering/deregistering process to avoid "dangling" registrations on the proxy when the phone goes out of proper internet coverage.
On an incoming call, the phone is notified through a silent push notification(APNS). On this notification the internet connection quality is checked and when sufficient a registration with the sip proxy is attempted. When the registration is successful the sip proxy connects with the app and the user is presented with a local notification drawing attention to the incoming call.
To be able to sent the push notifications a piece of "middleware" software has been developed. This middleware is responsible for storing APNS tokens sent to it through a registration process initiated by the app. On an incoming call, the VoIPGRID platform contacts the middleware which will sent the push notification to the correct phone/app. When the conditions for accepting a call have been met, the app responds to the middleware which in turn gives the "OK" back to the VoIPGRID platform. This triggers the sip proxy to contact the app.
In active development
- Cocoapods
- iOS 9.0 or greater
The app uses the following 3th party libraries:
- AFNetworking
- CocoaLumberjack
- HTCopyableLabel
- MMDrawerController
- PBWebViewController
- PJSIP
- Reachability
- SSKeychain
- SVProgressHUD
- Clone the project's source
- Use Cocoapods to install the required libraries
- Run XCode and start one of the targets
To run the app as is, you will need an account from one of the VoIPGRID partners.
See the CONTRIBUTING.md file on how to contribute to this project.
See the CONTRIBUTORS.md file for a list of contributors to the project.
The changelog can be found in the CHANGELOG.md file.
- Stability for incoming phonecalls
- Overall stability in the app
- Keep track of rejected incoming calls
- Refactor to Swift here code is touched
- Secure calling
- Videocalling
If you want to report an issue see the CONTRIBUTING.md file for more info.
We will be happy to answer your other questions at opensource@wearespindle.com or insert alias.
Vialer is made available under the GNU General Public License v3.0 license. See the LICENSE file for more info.