Table of Contents
Total Page:16
File Type:pdf, Size:1020Kb
Table of Contents Abstract 1 Dankwoord 2 Introductie 3 Situering 3.1 Inleiding 3.1.1 Huidige werking 3.1.2 Nieuwe werking 3.1.3 Beschrijving stagebedrijf 3.2 Opgave 3.3 Algemene beschrijving van het project 3.4 Technisch 4 Introductie 4.1 Beschrijving gevolgde ontwikkelproces 4.2 Analyse en requirements 4.3 Probleem en oplossing 4.4 Configuraties 4.5 Nieuw in Asterisk 13/FreePBX 13 4.6 Basis functionaliteiten Asterisk 4.7 Testing 4.8 Gebruikte technologieën/tools/protocollen 4.9 Conclusie en samenvatting 5 Geraadpleegde bronnen 6 Glossary 7 2 Abstract Mijn opdracht is om op Asterisk 13 Res_pjsip werkende te krijgen en te vergelijken met Chan_sip. Chan_sip en Res_pjsip zijn 2 SIP drivers die Asterisk gebruikt. Nagaan of het op dit moment al de moeite loont om te upgraden naar Asterisk 13 met Res_pjsip. Controleren of de huidige functionaliteiten van Chan_sip kunnen behouden worden bij Res_pjsip en welke nieuwe functies er beschikbaar zijn. Daarnaast ook een stresstest doen met SIPp bij Res_pjsip op Asterisk 13. Dankwoord Ik zou graag mijn stagebedrijf Intellinet willen bedanken voor de stageplaats en de goede en leuke samenwerking. Verder wil ik ook graag mijn externe promotor Thijs Vandecasteele bedanken voor de interessante opdracht en voor de hulp tijdens de stage. Bedankt aan Maarten Luyts als interne promotor voor de feedback van mijn verslagen. Tot slot ook dank aan Tim Dams voor de begeleiding en tips om het maken van deze scriptie. 3 Introductie Situering Inleiding Voip ofwel Voice over ip is een naam die bij veel mensen nog niet echt bekend is terwijl het bij bedrijven al goed ingeburgerd is. Voip telefonie is eigenlijk de huidige manier van bellen via het internet. Wanneer de meeste mensen dit horen denken ze direct aan skype, maar bellen via internet kan ook via speciale telefoontoestellen die het SIP protocol ondersteunen. Dit is een veel goedkopere oplossing dan de huidige telefooncentrales. Je hebt dan enkel SIP toestellen nodig en een internet verbinding. Dit heeft als voordeel dat je geen dure hardware moet kopen en je vestigingen niet afhankelijk zijn van één bepaalde plaats. Bij voip zit je telefooncentrale in de Cloud en kun je van elke locatie ter wereld waar je een internet verbinding hebt connectie maken met je telefooncentrale. Je kunt dus tussen 2 verschillende vestigingen "gratis" bellen, zelfs al bevinden die zich in een ander land. Eén van de meest voorkomende opmerkingen van voip is dat de geluidskwaliteit slecht zou zijn. Omdat voip via internet werkt is het afhankelijk van je internet verbinding, dus als je veel data aan het gebruiken bent en er bijna geen bandbreedte meer over is voor voip kan het zijn dat de geluidskwaliteit vermindert. Dit probleem is simpel op te lossen door QOS (Quality of Service) in te stellen zodat het voip verkeer voorrang krijgt op andere services. Intellinet biedt zowel de SIP telefoons als de Cloud telefooncentrale aan. Verder zorgt Intellinet ook voor de juiste configuratie van je netwerk. Als Voip telefooncentrale heb ik gebruik gemaakt van Asterisk en FreePBX. Asterisk is een opensource platform dat alle gesprekken verwerkt en handige functionaliteiten aanbiedt, terwijl FreePBX de GUI is om Asterisk eenvoudig te kunnen beheren. Huidige Werking Momenteel maakt Intellinet gebruik van Asterisk versie 11 met de Chan_sip driver. Dit is een stabiele versie waar al de huidige functies van de Chan_sip beschikbaar zijn. De release date van Asterisk 11 is 25/10/2012 en biedt Long Term Support (LTS), dit wil zeggen dat deze versie volledige support biedt voor 4 jaar. Dit wil ook zeggen dat de laatste security fix 25/10/2016 is en er daarna geen support meer wordt geleverd. Hierdoor moet er gekeken worden naar een mogelijke upgrade van Asterisk naar versie 13. Versie 13 biedt ook Long Term Support aan tot 24/10/2018. Voor de frontend, de GUI maakt Intellinet gebruik van FreePBX. FreePBX is een opensource GUI om Asterisk te beheren. Asterisk en FreePBX vormen samen de PBX. Intellinet biedt 2 soorten van PBX aan, namelijk een smart en een ingenious PBX. Nieuwe werking De nieuwe werking zou gebruik maken van Asterisk 13 met de nieuwe Res_pjsip driver. Voor de GUI zou FreePBX versie 13 gebruikt worden. 4 Beschrijving stagebedrijf Intelinet is een voice over ip provider met meer dan 4000 gebruikers. Intellinet richt zich vooral op bedrijven in de Belgische markt. Het hoofdkantoor bevindt zich in Antwerpen maar Intellinet is aanwezig op verschillende locaties over heel de wereld. Intellinet biedt 2 soorten van PBX aan, namelijk een Smart PBX en een Ingenious PBX. Bij een Smart PBX krijg je alle basisfunctionaliteiten van een PBX en een gedeelde Cloud met andere gebruikers terwijl je bij een Ingenious PBX dezelfde functionaliteiten krijgt en toegang tot Fop2 (web overzicht van je gesprekken) in een private Cloud omgeving. Opgave Onze "Ingenious PBX" is gebaseerd op het open source Asterisk platform. Tot voor kort werkte Asterisk met Chan_sip, maar sinds kort is er nu ook Res_pjsip. Deze SIP driver is modulair, en daardoor lichter maar ook flexibeler dan zijn voorganger. Het is nu duidelijk dat dit de SIP driver van de toekomst wordt. De opdracht bestaat erin om beide drivers te vergelijken: Kunnen we met Res_pjsip de huidige functionaliteiten behouden? Zijn er nieuwe functionaliteiten die interessant kunnen zijn? Wat met security? Stress tests met SIPp Algemene beschrijving van het project Het is mijn opdracht om 2 verschillende systemen op te zetten, één met Chan_sip en één met Res_pjsip. Als deze twee systemen werken, de functies van beiden vergelijken en de functies van de "oude" sip driver Chan_sip implementeren in de "nieuwe" sip driver Res_pjsip. Hiernaast een stresstest doen met SIPp bij Res_pjsip op Asterisk 13. 5 Technisch Introductie Om te kunnen bellen heb je een telefooncentrale nodig, bij voip noemt dit een PBX. De PBX verwerkt alle telefoongesprekken. De PBX die wij gebruiken is gebaseerd op 2 platformen, Asterisk en FreePBX. Een voip gesprek maakt gebruik van 2 protocollen, SIP voor het initialiseren/signalisatie van het gesprek en RTP voor de audio en/of video -stream. Om de gesprekken de verwerken op de PBX wordt er gebruik gemaakt van een channel driver zoals Res_pjsip. Om met je Voip telefooncentrale te kunnen bellen naar mensen die geen Voip gebruiken, wordt er een verbinding gemaakt naar een proxy server die de gesprekken doorstuurt naar andere ISP providers, een ISP provider is een bedrijf / organisatie die telefonie aanbiedt. Een paar afkortingen die ik in dit deel vaak ga gebruiken zijn: Chan_sip: dit is de "oude" SIP driver van Asterisk Res_pjsip: dit is de nieuwe SIP driver die ik moest testen. PBX: dit is de telefooncentrale (Asterisk + FreePBX) Extensie: dit is een gebruiker op de PBX Endpoint: dit is de SIP telefoon Beschrijving gevolgde ontwikkelproces De eerste dag bij Intellinet hebben we kennis gemaakt met wat een voip gesprek allemaal inhoudt, hoe de communicatie verloopt tussen de bellers. We hebben ook een uitleg gekregen hoe de netwerkstructuur van Intellinet in elkaar zit. Later die dag hebben we 2 SIP telefoons ingesteld op een demo PBX om zo kennis te kunnen maken met de configuratie die erbij komt kijken. Na het instellen en een eerst gelukt gesprek hebben we een paar functies die een PBX aanbiedt uitgeprobeerd, onder andere music on hold, follow me, voicemail en call transfer. Later meer over deze functies. Om verbinding te kunnen maken met de demo PBX en eender welke interne host van Intellinet moesten we een proxy verbinding opzetten. Om verbinding te maken met de proxy heb ik gebruik gemaakt van de opensource applicatie putty. Putty zet een ssh verbinding op naar de firewall van Intellinet. Om dan via de command line verbinding te maken met een host kun je gewoon een ssh verbinding starten. Om met de browser firefox verbinding te maken met de GUI van de PBX heb ik de extensie FoxyProxy geïnstalleerd. Voor chrome kun je ook gebruik maken van FoxyProxy. De tweede dag ben ik begonnen met het aanmaken van mijn eigen PBX. Om dit te doen moest ik eerst een virtuele machine aanmaken op de Vsphere server van Intellinet. Bij het aanmaken van de virtuele machine moest ik het OS kiezen wat een linux gebaseerd OS is, namelijk CentOS. Om van deze machine een PBX te maken moet je er Asterisk op installeren. Omdat we gebruik willen maken van een GUI gebruiken we een FreePBX Distro ISO om de virtuele machine op te starten. In FreePBX Distro zit Asterisk en FreePBX (GUI) zodat we dat niet afzonderlijk hoefden te installeren. Bij de eerste configuratie van de virtuele machine was er het probleem dat er via de webpagina van Vsphere geen toegang was tot de console. Om dit probleem op te lossen moest ik de VMware Sphere client op mijn pc installeren. Er kon alleen maar ingelogd worden met het root account van Vsphere, hiervoor moest er in de proxy verbinding van putty nog 2 tunnels aangemaakt worden. Hierna kon er ingelogd worden met het root account en console worden geopend. De eerste stap na het installeren van de PBX is het aanmaken van extensies voor elke gebruiker (telefoon). Dan moest er een trunk (verbinding) aangemaakt worden naar de proxy zodat je ook met andere mensen kunt bellen die geen voip gebruiken. Om te kunnen bellen moet je instellen wat er moet gebeuren met inkomende en 6 uitgaande gesprekken. Dit is niet nodig om te kunnen bellen tussen 2 toestellen die met dezelfde PBX verbonden zijn. Voor een inkomend gesprek stel je in bij welke extensie(s) er gebeld moeten worden. Voor een uitgaand gesprek selecteer je de trunk die gebruikt moet worden en welke nummers met welke prefix er gebeld mogen worden, bv.