Resolution:

Sätt upp en egen PBX / SIP-server med Asterisk

Asterisk är en av världens mest använda system för att skapa en PBX eller virtuell telefonväxel för tex SIP-samtal och andra tjänster.

 

Det är enkelt att skapa en egen PBX och hantera inkommande och/eller utgående telefonsamtal.

 

Först lite grundkunskaper som behövs för att förstå guiden nedan:

 

PBX, betyder Private Branch Exchange och betyder ungefär den lokala telefonväxeln. Tex en lokal växel på ett kontor som ansvarar för att koppla samtal rätt den sista biten. Till PBX:en kommer samtal utifrån som ska dirigeras lokalt. Likaså utgående samtal kan hanteras i PBX:en, man kan välja att skicka vissa SIP-samtal vidare till ett annat land och få förmånligare samtalskostnader osv.

 

SIP, betyder ungefär IP-telefoni idag kan man säga (grovt förenklat). Det är ett protokoll, som mycket annat på Internet. SIP står för Session Initiation Protocol och är det som används för en stor del av IP-telefonin eller VOIP (Voice Over IP) som sker idag.

 

Asterisk

 - Är en Linux-baserad kostnadsfri open source-lösning för iptelefoni och en PBX, dvs telefonväxel.

 - Är en av världens mest använda PBX-lösning, massvis av telefonioperatörers lösningar är baserade på Asterisk vilket gör att det i regel är enkelt att hitta hjälp och svar på vanliga frågor.

 - Finns i många olika smaker som Trixbox, PBX in a flash, Asterisk Now mfl.

 - Går att installera från källkod så du får 100% kontroll på ert företags telefoni.

 

Nedan utgår från Debian, Ubuntu, Linux Mint eller andra Debian-baserade Linux-operativsystem. Samtliga våra serverhostingtjänster går att få med ett Debian-kompatibelt operativsystem.

 

Steg 1. Förberedelser

När du har din Ubuntu (eller Debian-baserade) server redo att använda, förslagsvis är du inloggad via SSH2, så behöver du hämta mjukvarorna som ska installeras. Du behöver ha ditt lösenord tillhands så att du kan bli root. Hämta en kopp kaffe och sätt igång med steg 2.

 

Steg 2. Hämta källkod && installera

När du förberett din minimala Debian (eller Debianbesläktade) server behöver du hämta paket från Digium (som tillverkar Asterisk). Du behöver vara root. Dessa paket behövs:

  • asterisk
  • zaptel
  • libpri
  • asterisk-addons
  • asterisk-gui

I skrivande stund är det faktiskt en gammal version av asterisk som tex moderna operativsystem som Ubuntu 16.04 LTS distribuerar - version 1.13.1 - istället för den betydligt modernare versionen som du kan hämta manuellt från tex asterisk.org/downloads (där du kan få 14.2.0) därför kanske du vill välja att inte följa ditt operativsystems distribution utan gå utanför ramarna här och tex placera senaste versionen i /usr/local (vilket är det som brukar rekommenderas för lokala anpassningar och inte bör störa om du vill hämta den officiella versionen från tillverkaren av operativsystemet).

Tänk dock på att om du installerar manuellt från källkod så måste du också uppdatera manuellt.

Väljer du att ladda ned manuellt med wget packar du upp med tar zxvf asterisk-13-current.tar.gz (eller vilken version du väljer att hämta).

 

Troligen behöver du hur som helst följande mjukvaror i systemet för att olika beroenden med andra mjukvaror ska mötas;

 

apt-get install build-essential wget libssl-dev libncurses5-dev libnewt-dev libxml2-dev linux-headers-$(uname -r) libsqlite3-dev uuid-dev git subversion

 

nu kan du klona med git (git clone git://github.com/asterisk/pjproject pjproject)

och därefter köra ./configure (läs README-filerna så du förstår vilka flaggor du vill skicka med i configure, troligen tex: --prefix=/usr/local/ --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='=2 -DNDEBUG'

Kör därefter make dep och make && make install clean all

Därefter kördu ldconfig  && ldconfig -p| grep pj

 

Nu har vi konfigurerat och kompilerat Asterisk-källkoden. För att kunna använda mp3-ljud och få andra funktioner att uppföra sig behöver du nu gå in i katalogen som heter contrib/scripts/ och köra get_mp3_source.sh samt köra ./install_prereq install

 

Nu har vi installerat mp3 ljud/toner. Kör ./configure && make menuselect && make && make install

Därefter kör du make samples && make config && ldconfig

 

Nu kan vi starta asterisk för första gången och se om vi får några varningar eller felloggar:

/etc/init.d/asterisk start (eller service asterisk start för er som är lite mer modernt lagda)

 

Kontrollera noga alla eventuella varningar och felloggar!

 

Testa att logga in i asterisk-konsollen med förljande kommando:

asterisk -rvvv

 

Om allt gick bra kommer du nu åt konsollen i asterisk som root. Det är inte vad vi vill och lite farligt ur säkerhetssynpunkt. Stoppa asterisk och skapa ett särskilt konto för enbart asterisk;

systemctl stop asterisk

groupadd asterisk

useradd -d /var/lib/asterisk -g asterisk asterisk

 

Nu vill vi låta asterisk starta som den nya användaren istället för root:

sed -i 's/#AST_USER="asterisk"/AST_USER="asterisk"/g' /etc/default/asterisk

sed -i 's/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/g' /etc/default/asterisk

 

Ändra behörighet för berörda kataloger:

chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib/asterisk

sed -i 's/;runuser = asterisk/runuser = asterisk/g' /etc/asterisk/asterisk.conf

sed -i 's/;rungroup = asterisk/rungroup = asterisk/g' /etc/asterisk/asterisk.conf

 

Steg 3 Test

Har du inget annat kritiskt på servern, starta om den helt för att se att asterisk startar som den ska vid systemstart (reboot).

Använder du systemd (vilket många moderna system som Ubuntu 16.04 gör nu) så ska systemd starta asterisk vid systemstart och du kan logga in i asterisk-konsollen med följande kommando:

asterisk -rvvv

 

Du möts nu av en välkomst skärm och det ska stå (i ett Ubuntu-system):

Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 13.10.0 currently running on ubuntu (pid = 2812)
ubuntu*CLI>

 

Nu har du en fungerande asterisk-server som du kan gå vidare och konfigurera, ställa in SIP-trunkar och skapa konton för mjukvarutelefoner eller/och hårdvarutelefoner, skapa växellägen, talsvar osv.

Vi vill även slå ett slag för mjukvaruklienten Bria för Android-enheter, den kostar knappt något och drar betydligt mindre batteri än den integrerade SIP-telefonmjukvaran som är integrerad i alla Android-enheter som standard.

Linphone är en annan mycket bra och lättanvänd mjukvarutelefon men det finns som bekant tonvis med mjukvaror som i princip allesammans fungerar på samma sätt. Föredrar du hårda telefoner så har serverbutiken.com ett antal olika modeller från Cisco och andra tillverkare som är väldigt problemfria, tex SPA303 som klarar tre olika anknytningar, vidarekoppling och det mesta man behöver i en vanlig bordstelefon.

Lycka till!

Till sidans topp