Giter VIP home page Giter VIP logo

vialer-ios's Introduction

Vialer

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.

Status

In active development

Usage

Requirements

  • Cocoapods
  • iOS 9.0 or greater

The app uses the following 3th party libraries:

Installation

Running

  • 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.

Contributing

See the CONTRIBUTING.md file on how to contribute to this project.

Contributors

See the CONTRIBUTORS.md file for a list of contributors to the project.

Roadmap

Changelog

The changelog can be found in the CHANGELOG.md file.

In progress

  • Stability for incoming phonecalls
  • Overall stability in the app
  • Keep track of rejected incoming calls
  • Refactor to Swift here code is touched

Future

  • Secure calling
  • Videocalling

Get in touch with a developer

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 [email protected] or insert alias.

License

Vialer is made available under the GNU General Public License v3.0 license. See the LICENSE file for more info.

vialer-ios's People

Contributors

reinierwieringa avatar harold-d avatar maartendezwart avatar johannesnevels avatar steveleviathan avatar r3b3l avatar snoepkast avatar

Watchers

Ronald Adonyo avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.