Giter VIP home page Giter VIP logo

guillaumenibert / voip-asterisk-webrtc-sip Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 4.0 34.1 MB

Setting up a VoIP communication between a Raspberry Pi and an IP phone using an Asterisk IP PBX server

Home Page: https://guillaume.nibert.fr/voip-asterisk-rpi-ipphone-project/

License: Creative Commons Attribution Share Alike 4.0 International

asterisk-pbx voip linux ippbx raspberry-pi telecommunications how-to networking open-source sip

voip-asterisk-webrtc-sip's Introduction


University of Technology of Compiègne

Setting up a VoIP communication between a Raspberry Pi and an IP phone using an Asterisk IP PBX server

Student project carried out as part of studies at the University of Technology of Compiègne (UTC)
Guillaume Nibert
Supervisor: Dr. Ahmed Lounis


License: CC BY-SA 4.0



English article: https://guillaume.nibert.fr/voip-asterisk-rpi-ipphone-project/
English PDF report: Download
English PDF presentation material: Download

French article: https://guillaume.nibert.fr/fr/voip-asterisk-rpi-ipphone-projet/
French PDF report: Download
French PDF presentation material: Download


Context

Telegraph, analogue telephone, digital telephone, IP telephone with wired or wireless modes, telephony is currently a widely used and very convenient global link, indispensable for fast and real-time exchanges, for all purposes. It is quite reliable, not too expensive, and offers ever more extensive possibilities at an ever faster rate.

The aim of this project is to use the IP protocol used in the Internet, to make devices communicate with each other (commonly called endpoints). This project will therefore implement two endpoints with the following hardware characteristics:

  • endpoint 1: Alcatel IP Touch 4018 EE phone;
  • endpoint 2: Raspberry Pi 3 Model B+.

Below is a global diagram of the infrastructure architecture in the 192.168.1.0 network (the router is not shown for readability reasons):

Figure 01 - Schéma global de l'infrastructure

(Figure 1 - Overall infrastructure diagram)

Simply, without going into detail, in this diagram there are two clients: the end points which are the Alcatel IP Touch 4018 EE and the Raspberry Pi. When there is a telephone communication between these two devices, the protocol used for the initiation of the communication is SIP (Session Initiation Protocol) for the application layer and UDP for the transport layer of the Internet protocol stack. This initiation goes through an intermediary: the SIP initiation server (Asterisk) which is accessible on the Debian Asterisk Server virtual machine on port 5060 (in blue). Once the initiation is done, the two devices connect to each other directly to let the audio pass via the RTP protocol (in green).

An important point concerns the Alcatel phone part, which needs at each startup to check its firmware and configuration files allowing it to connect to the Asterisk server. These files are stored in the Debian virtual machine and are available to the Alcatel via the HTTP server on port 80 (in orange).

This project details the architecture of the system as well as the implementation of the entire IP telephony infrastructure allowing communication between these two devices. Firstly, some theoretical elements on the protocols used will be looked at, in particular on the role and functioning of SIP in VoIP and RTP. Secondly, the interest of using the Asterisk system in the design of this infrastructure and its implementation will be evaluated, then the two clients (Raspberry Pi and Alcatel phone) will be configured and tested. Finally a user-friendly SIP client in JavaScript for the Raspberry Pi will be designed.

voip-asterisk-webrtc-sip's People

Contributors

guillaumenibert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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.