TDTS09 IP telefoni och dess protokoll



Relevanta dokument
SIP och NAT, Brandväggar och STUN

Ver Guide. Nätverk

Grundläggande datavetenskap, 4p

KomSys Hela kursen på en föreläsning ;-) Jens A Andersson

Tentamen i Datorkommunikation den 10 mars 2014

Datakommunika,on på Internet

IT för personligt arbete F2

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Dialect Unified MAC-klient

Topologi. Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Manual Komma igång med Softphone-klient

IP-telefoni. Velio Roumenov Stefan Rådesjö

IP-telefoni för nybörjare

Datatal Gateway. F Datatal Gateway 2019

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

Säkerhetskopiera mobilen

Föreläsning 5: ARP (hur hitta MAC-adress) Från applikation till applikation

Övningar - Datorkommunikation

TCP/IP och Internetadressering

Voice over IP / SIP. Switching Costs SIP. Motivation for VoIP. Internet Telephony as PBX replacement. Internet Telephony Modes.

Så delar du filer. utan att bli övervakad LAJKA-GUIDE

FIRSTCLASS. Innehåll:

5 Internet, TCP/IP och Tillämpningar

Skärmbilden i Netscape Navigator

SIZE CONNECT, TEKNISK BESKRIVNING

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

5. Internet, TCP/IP tillämpningar och säkerhet

Brandväggar och portöppningar. Manual

Norman Endpoint Protection (NPRO) installationsguide

Användarguide CX600 med MS Lync 2010 Redigerad Polycom CX600 IP Phone User Guide

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

Compose Connect. Hosted Exchange

ShoreTel Mobility - Användarguide

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

IPv6 Jonas Aronsson 3TEa

Föreläsning 5: Stora datanät Från användare till användare ARP

Din guide till IP RFID. Intertex Nu ännu starkare säkerhet för SIP. Snom - marknadens säkraste IP-telefon. Ur innehållet TALK TELECOM

Från användare till användare ARP. (Maria Kihl)

Filöverföring i Windowsmiljö

DIG IN TO Nätverksteknologier

Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

SpeedTouch 190. Installations- och användarguide. SIP-gateway. Version R1.0

Installera SoS2000. Kapitel 2 Installation Innehåll

QuickTime Streaming Server, en introduktion

Larmsändare sip86. Alla inställningar konfigureras enkelt upp med Windowsprogramvaran IP- Scanner. 2 Larmsändare sip22

Innehållsförteckning:

Manual. Anvisningar för användning. Snom 320 växel

iphone/ipad Snabbguide för anställda på HB

Installation och aktivering av Windows 7

Bordermail instruktionsmanual

Startanvisning för Bornets Internet

O365- Konfigurering av SmartPhone efter flytt till Office 365 alt ny installation

Säker IP telefoni? Hakan Nohre, CISSP

För att kunna använda SmartPigs i WinPig.Net måste du köra WinPig.net med administratörsrättigheter. Gör så här:

Konfiguration av LUPP synkronisering

Innehållsförteckning Introduktion Samtal Kvalitetsproblem Felsökning av terminal Fakturering Brandvägg

Skapa din egen MediaWiki

Quick start manual. Smart-House Rev 1.1

Setup Internet Acess CSE-H55N

5 Internet, TCP/IP och Applikationer

Föreläsning 3. Datorkunskap 50p Marcus Weiderstål Bromma Gymnasium

Konfiguration av synkronisering fo r MSB RIB Lupp

Grattis till ett bra köp!

Distributör för Samsung OBE AB Tölöleden Kungsbacka Tel: Fax: info@obe.se 2014 OBE AB.

F6 Exchange EC Utbildning AB

BIPAC-711C2 / 710C2. ADSL Modem / Router. Snabbstart Guide

INSTALLATIONSGUIDE Com Hem WiFi Hub L1 Bredband Fastighet FiberLAN

KARLSBORGS ENERGI AB FIBER INSTALLATIONSHANDBOK REV

Android-app. Användarmanual 1.0. Copyright 2013 bildtelefoni.net

SNABBGUIDE för Windows Media Encoder (media kodaren) - Sänd live med din webbkamera

Capitex dataservertjänst

JAWS Nätverksauktorisering

Kom igång med Provectus Groupware

Hur BitTorrent fungerar

Introduktion Lync-/SfB-Infrastruktur Cellips infrastruktur Brandväggskrav Lync/SfB Server PSTN Gateway...

1 Förmedlingstjänsten Bildtelefoni.net

Webbservrar, severskript & webbproduktion

Så här kommer du igång med ditt bredband Aktivera dig på Pite.com idag. Surfa redan ikväll!

Litteratur. Nätverk, Internet och World Wide Web. Olika typer av nätverk. Varför nätverk? Anne Diedrichs Medieteknik Södertörns högskola

Så fjärrstyr du datorn

Laboration 4 Rekognosering och nätverksattacker

Ladda upp filer fra n PLC till PC

Godkännande av kundapplikationer

Trött på analogt? Byt till IP!

Institutionen för datavetenskap Department of Computer and Information Science

Att sätta upp en IPsec-förbindelse med mobil klient (med SIP) Lisa Hallingström Paul Donald Bogdan Musat Adnan Khalid

HIGs Remote Desktop Service med Linux

Lathund för Svenskt Näringsliv

LABORATIONSRAPPORT Säkerhet och Sårbarhet Laboration 1 Brandväggar

En studie av programmet Buddyphone. Delmoment i kursen CSCW 2D1416

Android (BYOD) -Installera mstart -Kom igång manual

Detta är en guide för snabbinstallation av IP kameran För fullständig programfunktion hänvisar vi till medföljande manual.

Skydda din Dropbox med säker kryptering!

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

Manuell installation av SQL Server 2008 R2 Express SP2 fo r SSF Timing

Konfigurera Outlook för OCS

Handbok Remote Access TBRA

SPID och identifiering av obfuskerade protokoll

Lösningar till tentan i ETS052 Datorkommunikation

Felsökningsguide för Asgari-kameror

Transkript:

TDTS09 IP telefoni och dess protokoll Erik Johansson(erijo228@student.liu.se) Eric Karlsson (erika440@student.liu.se) Linköpings universitet Linköping Inlämningsdatum: 2011 02-23

Sammanfattning Denna rapport går igenom de två större protokollen i IP telefoni, SIP och IAX, och visar genom exempel hur de funkar. Rapporten beskriver också kort om vad Asterisk är för något och vårt experiment med att installera Asterisk och två klienter för att sedan beskriva vad Wireshark visade vid två olika experiment med nämnd Asterisk.

Förord Vi vill tacka för föreläsare i TDTS09, Niklas Carlsson för all bakrundsinformation vi har fått via föreläsningarna. Vi vill också tacka Olle E Johansson som har hjälpt till vid våra experiment och också gett en hel del information om Asterisk och IP telefoni.

Innehåll Sammanfattning... 2 1 Inledning... 5 1.1 Bakgrund... 5 1.2 Syfte... 5 1.3 Metod... 5 1.4 Källdiskussion... 5 2 IP-telefoni och dess protokoll... 6 2.1 Protokoll... 6 2.2 SIP och IAX... 6 2.3 SIP... 7 2.4 Exempel på en vanlig SIP session... 8 2.5 IAX... 10 2.6 Exempel på en vanlig IAX session... 10 3 Asterisk server... 12 3.2 Telefonväxeln Asterisk... 12 3.3 Vårat försök med Asterisk... 12 4 Slutsatdisskution... 16 5 Referenslista... 17

1 Inledning 1.1 Bakgrund Sedan datorns stora genomslag under den senare delen av 1900-talet så har allt fler aktiviteter som traditionellt gjorts analogt har med hjälp av datorer görs nu oftast digitalt, alt från rapportskrivande och annan texteditering till filmeditering gör numera med datons hjälp, och med det senare årens otroliga ökning i bandbredd så har internet blivigt en allt större del av vår vardag. Mängden saker som vi nu gör över internet har exploderat under de senaste åren allt från post och bankärenden till att hitta en karta till den där svårfunna spaanläggningen kan nu enkelt och snabbt göras från din hemdator. Med denna ständigt pågående digitala revolution i full blom så är det bara naturligt att telefonin skulle få en digital motsvarighet förr eller senare. Men eftersom Internets mer traditionella protokoll utvecklades med människans sätt att tala i åtanke så utvecklades en ny grupp med protokoll, dessa protokoll kallades ör Voice over IP protokoll, förkortat voip. 1.2 Syfte Syftet med denna rapport är att ge läsaren en grundläggande förståelse för IP-telefonin (voip) och dess protokoll, det protokoll som denna rapport i huvudsak fokuserar på är två av det vanligaste öppna voip protokollen SIP och IAX. Denna rapport kommer även visa hur dessa protokoll kan användas i praktiken igenom att beskriva hur vi startade och använde en Asterisk IP-telefoni server. 1.3 Metod Stora delar av denna rapport består av sammanställning av information, främst från olika RFC dokument, böcker och internetsidor. Men vi har även varit i kontakt med en expert inom branschen för mer praktisk information. Denna rapport innehåller också en praktisk del som är baserad på egna test och experiment med en server som använder Asterisk och en klient där också Wireshark körs. 1.4 Källdiskussion Mycket av informationen i denna rapport kommer från olika protokolls RFC (request for commet) dokument. Vi har vallt att referera till dessa dokument

2 IP-telefoni och dess protokoll 2.1 Protokoll De traditionella protokollen som används vid kommunikation över internet passar sig inte för IP telefoni, eftersom det mer bygger på att dela upp information i små bitar och säkert transportera dessa bitar utan förlora något av den data som dessa bitar innehåller. Detta är egenskaper som inte bara inte är nödvändiga för att två personer ska kunna ha ett samtal utan kan störa samtalskvalitén. För att två personer ska kunna samtala över internet behövs ett protokoll som klarar av att hålla en stabil ström med data från en klient till en annan klient, vid fallet av dataförlust under samtalets gång så ska det ignoreras. Traditionellt när data förloras vid transport så ber mottagaren sändaren att återsända den förlorade informationen, vilket är fallet i det populära TCP protokollet 1. Men eftersom förlorad data så snabbt tappar sin relevans i ett telefonsamtal så passar sig inte dessa dataförlustmetoder. Därför använder det flesta IP telefoni protokoll av portar från transportprotokollet UDP 2 eftersom likt UDP så hanterar inte dessa protokoll dataförlust utöver verifiering att något har gått fel, och därmed sparar värdefull bandbredd igenom att inte använda sig av funktioner som saknar nytta. Generellt så använder sig IP telefoni protokoll av två konstanta mediaströmmar mellan de två klienterna, en för var klient, eftersom olikt exempelvis media streaming för online live tv som vanligtvis använder sig av UDP så färdas det konstant information åt båda håll. 2.2 SIP och IAX SIP 3 och IAX 4 är två av de vanligare transportprotokollen som används inom IP telefoni och även de två protokollen som denna rapport främst ska handla om, båda dessa protokoll är öppna protokoll vilket innebär att vem som helst kan implementera dem i sina applikationer och att deras källkod är fri för alla att läsa och vidareutveckla. Det finns självklart fler protokoll som kan användas för IP telefoni, både öppna och stängda, det absolut vanligaste protokollet som idag och har under en lång tid används för IP telefoni är det protokoll Skype använder. Skypes protokoll är ett stängt protokoll som har fått en enorm genomslagskraft delvis för att Skypes ägare har lyckats skydda protokollets källkod och hur det fungerar till största del hemligt, men främst på grund av programmet med samma namn. Skype applikationen har blivit mycket populärt för sin användarvänlighet och möjligheten att ringa gratis till andra datorer som har Skype applikationen installerad. Men eftersom Skypes protokoll är stängt så kommer det inte att skrivas om mer i denna rapport denna rapport. 1 J.Postel. 1981. TRANSMISSION CONTROL PROTOCOL. [Online] Information Sciences Institute University of Southern California, Available from http://www.faqs.org/rfcs/rfc793.html. 2 R. Fielding, et al. 1999. Hypertext transfer protocol -- HTTP/1.1. [Online] Network Working Group, Available from http://www.ietf.org/rfc/rfc2616.txt. 3 J. Rosenberg, et al. 2002. SIP: Session initiation protocol. [Online] Network Working Group, Available from http://www.ietf.org/rfc/rfc3261.txt. 4 M. Spencer, et al. 2010. IAX: Inter-asterisk exchange version 2. [Online] Independent Submission, Available from http://tools.ietf.org/search/rfc5456.

2.3 SIP Session Initation Protocol eller förkortat SIP är ett applikationsnivåprotokoll som kan används för IP telefoni, men SIP tillåter en applikation att göra mer än så. SIP låter en applikation att initiera, modifiera samt terminerna datautbytessessioner mellan en eller flera användare. Dessa datautbytessessioner kan bestå av videosamtal, telefonsamtal, textkommunikation med mera. SIP är dock till skillnad från exempelvis Skype inte en färdig applikation, utan är gjort för att bli implementerad i andra applikationer och att arbeta tillsammans med andra protokoll. SIP fungerar till skillnad från IAX med både det stora transport protokollen TCP och UDP samt med både IP version 4 och IP version 6. SIP använder sig av proxy servrar för att dirigera information och olika förfrågningar mellan olika klienter, SIP stödjer alltså inte direkt klient till klient kommunikation. Vad tillåter SIP en applikation att göra? I motsägelse till vad namnet Session Initation Protocol kan få oss att tro så kan SIP göra mer än att bara etablera sessioner mellan en eller flera användare, utan SIP i sin grundläggande form tillåter en applikation att göra följande. Användarens plats: tillåter applikationen att ta reda på vilken hårdvara som användaren nu använder (persondator, smartphone, internetuppkopplad toalettstol osv) Notera att denna namnet på denna funktionalitet kan vara lite förvirrande men håll i åtanke att SIP tillåter en användare att koppla upp sig mot en proxy server och identifiera sig som samma användare oavsett vilken dator eller annan uppkopplad enhet användaren använder för tillfället. Användarens tillänglighet: Tillåter applikationen att se om en annan användare är villig att starta en kommunikations session med applikationens nuvarande användare. Användares förmågor: Tillåter applikationen att se en annan användares tekniska förmågor, så som vilka typer av kommunikation användaren kan använda sig av (videosamtal, telefonsamtal, textkommunikation osv) samt vilka tekniska parametrar användaren är kapabel av (bandbredd, överföringshastighet osv) Etablering av session: tillåter applikationen att starta en session med en annan användare (att ringa användaren) med de önskade tekniska parametrarna och kommunikationsmetoderna. Sessions hantering: tillåter applikationen att flytta, terminera eller modifiera en nuvarande sessions tekniska parametrar samt att initiera olika tjänster Även om dessa funktioner inte täcker alla kommunikationsbehov som en användare kan tänkas ha så är det en solid grund för applikationsutvecklaren att bygga vidare på, exempelvis så kan SIP lätt integreras med exempelvis RTP protokollet(3) för att tillåta applikationen att sända audiopaket mellan varandra.

2.4 Exempel på en vanlig SIP session För att ge oss en bättre förståelse för hur SIP kan fungera i praktiken har vi ritat upp ett diagram (FIG 1) som beskriver hur en etablering och hantering av en session fungerar. I detta diagram så ringer Carl som har ett program som använder SIP installerat på sin PC (program som används för IP telefoni brukar kallas softphones) och Johan som använder en applikation på sin smartphone vilket använder SIP. Diagrammet vissa även hur kommunikationen mellan de två proxy servrar som Carl respektive Johan är anslutna till. SIP använder likt protokollet http 5 av förfrågan och svarskoder för att kommunicera mellan servrar och klienter. För att förstå det kommande diagramet behöver du vara bekant med följande koder och förfrågningar. INVITE: En sessionsinbjudan. 100 Trying: Ett svar från en proxy server som skickas när den tar emot något som ska skickas vidare till någon annan användare eller Proxy server för att indikera meddelandet har tagits emot. 180 Ringing: ett svar på en INVITE sessionsinbjudan, skickat när användaren önskar att starta en session med den användaren som skickade INVITEn. 200 OK: Ett positivt svar på en förfrågan. ACK: Ett svar som skickas för att indikera att ett meddelande har tagits emot. Media session: Samtalet har etablerats och kommunikation pågår. BYE: en förfrågan som används för att avsluta en session. 5 R. Fielding, et al. 1999. Hypertext transfer protocol -- HTTP/1.1. [Online] Network Working Group, Available from http://www.ietf.org/rfc/rfc2616.txt.

Carls PC Proxy server 1 Proxy server 2 Johans smartphone FIG 1 INVITE INVITE INVITE 100 Trying 100 Trying 180 Ringing 180 Ringing 180 Ringing 200 OK 200 OK 200 OK ACK Media session Media BYE 200 OK

2.5 IAX Inter-Asterisk exchange eller förkortat IAX är ett applikationsnivåprotokoll som ursprungligen var utvecklad för att kommunicera mellan olika Asterisk IP telefoniservrar, det är dock viktigt att notera att IAX har vidareutvecklats sedan dess och nu även kan användas för kommunikation mellan server och klient. Likt SIP så är IAX ett öppet protokoll och därför finns IAX implementerat i en stor mängd IP telefoni serverar och klientapplikationer. Till skillnad från SIP så är IAX byggt för IP telefoni och inte för media sessioner i största allmänhet, detta leder till att IAX kan mer effektivt hantera audiodataströmmar än SIP, om vi som exempel jämför en dataström som använder en kombination av SIP och RTP så lägger RTP på 12 bytes per paket på en audiodataström komprimerad till 8 kbit/s med 20 millisekunders paketeringstid. Detta är en ökning av paketstorleken med 60%. Om man använder IAX för att sända samma dataström ökas paketen endast 4 bytes per paket, vilket endast ger en 20% ökning av paketstorleken. En annan intressant skillnad mellan IAX och SIP är att IAX till skillnad från SIP är bundet till en transport metod, IAX använder endast ett dataflöde som går från och till samma UDP port. Skaparna av IAX programmerade protokollet med denna unika egenskap delvis för att öka transporteffektiviteten och därmed minska den bandbredd som behövs, samt för att underlätta för brandväggar. Om många udda portar används så ökar chansen att en brandvägg kommer att blockera information till en av dem, och även om din brandvägg skulle blockera information till UDP port 4569 (den port som IAX använder), så är det lätt att öppna den i din brandvägg istället för ett flertal portar som kan vara olika beroende på applikation vilket vore fallet i SIP. Detta är dock också en säkerhetsbrist, eftersom en hacker lätt kan blockera denna port utifrån med exempelvis en DOS(Denial of service) attack. Eftersom IAX är strängt bundet till denna port så kan du inte sickas eller ta emot IAX förfrågningar under en DOS attack, vilket leder till att du inte kan ta emot eller ringa samtal. 2.6 Exempel på en vanlig IAX session För att ge oss en bättre förståelse för hur IAX kan fungera i praktiken har vi ritat upp ett diagram (FIG 2) som visar ett exempel på en etablering av en session och datautbyte. I detta exempel ser vi endast kommunikationen mellan två användare (peer to peer) som vi kallar Carl och Johan. Men för att förstå detta diagram så måste vi först förklara följande typer av svar och förfrågningskoder.

NEW: en förfrågan som används när du vill initiera ett samtal mellan två användare. AUTHREQ: ett svar som skickat när en mottagare får en NEW förfrågan när den sändaren som sickar förfrågan behöver autentiseras. AUTHERP: Ett svar som skickas som ett svar till ett AUTHREQ meddelande. Ett AUTHRP svar innehåller information som identifierar sändaren. De möjliga svaren till ett AUTHERP meddelande är ACCEPT vilket kommer starta samtalet eller REJECT som kommer avbryta sessionsuppsättningen. ACK: Ett svar som skickas för att indikera att ett meddelande har tagits emot. Voice: I detta exempel finns det två typer av voice, Full frame och Mini frame, båda dessa är datapaket som används för röstkommunikation, Mini frame är ett bandbredds vänligt datapaket medan Full frame innehåller mer information i sin frame. RINGING: ett svar som skickas för att indikera att sessionen är etablerad och att det ringer hos den användaren som blir uppringd. HANGUP: Ett meddelande som stänger ner samtalet. Carl NEW Johan FIG 2 AUTHREQ AUTHERP ACCEPT ACK Voice (Full Frame) ACK Voice (Mini Frame) ACK RINGING Voice (Mini Frame) Samtalet pågår Voice (Full Frame) ACK Voice (Full Frame) ACK Voice (Mini Frame) HANGUP ACK

3 Asterisk server 3.2 Telefonväxeln Asterisk Asterisk är ett open source program för linux och mac (Windows portning är på gång) som fungerar som en telefonväxel för både IP telefoni och traditionell telefoni (med extra hårdvara). Asterisk stödjer konvertering mellan de två så man kan använda Asterisk vid övergången mellan de IP telefoni och traditionell telefoni. Detta och att den var en av de första open source växlarna har gjort Asterisk till en av dagens största IP telefoni växlar. 67 På grund av den stora utvecklingsbas som då finns så har Asterisk många av de traditionella funktionerna, telefonsvarare, konferanssamtal, osv inbyggt. Det är också möjligt att skriva egna funktioner, om det ens behövs då många funktioner redan har skrivits och lagts upp på internet. 8 Att installera en väldigt grundläggande växel med Asterisk är relativt lätt, du installerar programmet, konfigurerar två filer och startar Asterisk. Om man har problem så finns det gott om både dokumentation och hjälp på internet och skulle inte det vara nog så finns det kurser, både för nybörjare och för de mer avancerade användarna. Detta är en fördel mot den traditionella telefonin, om du skall ha ett IP telefoni nät så behövs inget annat än datorer som är uppkopplade mot varandra via internet eller på ett lan. 9 3.3 Vårat försök med Asterisk Vi installerade Asterisk på en linux dator för att testa och se hur det funkar. Att installera Asterisk var lätt, det var bara att använda Synaptic, den globala sök och installations klienten för program i Linux, för att hitta och installer Asterisk. Efter det så gav vi oss in, med hjälp av guider på internet och Olle Johansson, att ändra konfigurationsfilerna sip.conf och extensions.conf för att lägga till användare och telefonnummer. Olle Johansson har varit med vid utvecklingen av Asterisk nästan från dess start och håller numera bland annat i kurser där man lär sig Asterisk, både för nybörjare och för de mer avancerade. Konfigurationen visade sig vara lite mer komplicerat än det först såg ut då vi missade ett fält vilket fick hela systemet att bli instabilt, dock så berodde detta på att vi var på samma 6 Digium, Inc. 2011,, Asterisk [Homepage of Digium, Inc.], [Online]. Available from http://www.asterisk.org/ [2011, 02/21]. 7 Users of Voip-Info.org 2011, 2/21/2011-last update, Asterisk [Homepage of Voip-Info.org], [Online]. Available from http://www.voip-info.org/wiki/view/asterisk [2011, 02/21]. 8 van Meggelen, J., Smith, J. & Madsen, L. 2007, Asterisk: The Future of Telephony, 2:nd edn, O'Reilly Media, Inc, http://cdn.oreilly.com/books/9780596510480.pdf. 9 Powell, A. 2003,, Getting Started With Asterisk [Homepage of http://www.automated.it/], [Online]. Available from http://www.automated.it/guidetoasterisk.htm#_toc49248754 [2011, 02/21].

nätverk som våra klienter vilket kräver att fältet NAT skall vara påslaget. När detta väl hade upptäckts och var fixat så hade vi ett stabilt grundläggande telefonväxel att köra våra tester på. Nu när vi vet felet vi hade så inser vi hur enkelt och fort det väl är att få igång en grundläggande telefonväxel om man vet hur och det inte är för många användare som skall läggas till. Förutom de rader som behöver skrivas i konfigurationsfilerna så är det bara 7 kommandon som behöver köras:1011 sudo apt-get install Asterisk -- Installera Asterisk sudo vi /etc/asterisk/sip.conf -- Lägg till användare sudo vi /etc/asterisk/extensions.conf -- Lägg till telefonnummer sudo asterisk -- Starta Asterisk (kan redan vara igång då det startas i bakrunden) sudo asterisk -r -- Gå in i Asterisk sip reload -- Ladda om sip.conf för säkerhets skull dialplan reload -- Ladda om extensions.conf för säkerhets skull Nu är det bara att ansluta dina klienter och börja ringa. När man lägger upp en användare i sip.conf så är det flera inställningar som behövs och en hel del som är frivilliga. Ett exempel på en användare från vår sip.conf är: [erik] Namnet på användaren username=erik Användarnamnet secret=johansson Lösenordet type=friend Typ av användare, user, peer eller båda (friend). User kan bara ha inkommande samtal, peers kan bara utgående samtal och friends kan ha båda. callerid= Erik Johansson Det namn som skall synas för andra host=dynamic Användaren har ingen statisk adress. nat=yes Användaren befinner sig bakom en NAT. mailbox=1991@quade Var användarens röstbrevlåda hittas (valfri) 10 Diskussioner och samtal med Olle E. Johansson från Edvina AB, från den 10 februari 2011 till den 23 februari 2011. 11 Asterisks inbyggda dokumentation och hjälpfunktioner, hämtade den 21 februari 2011, skrivet utav alla utvecklare av Asterisk.

Nu när vi har våra användare är konfigurerade kan det vara bra att ge dem nummer att ringa vilket vi gör i extensions.conf. Vi kan även här skriva funktioner som skall köras när man ringer ett nummer. Ett exempel från vår extensions.conf; Om du ringer erik så körs denna del: 1213 exten => erik,1,dial(sip/erik,10) Testa att ringa användaren erik i 10 sek. exten => erik,2,voicemail(1991@quade) Om han inte svarat, gå till röstbrevlåda exten => erik,3,playback(vm-goodbye) Om fyrkant tryckt, spela upp ljudet vm-goodbye exten => erik,4,hangup() Sluta samtalet. Som du märkt så har vi lyckat få igång en fungerande grundläggande röstbrevlåda. Hade servern också varit en mailserver så hade vi kunnat fixa så att om någon lämnar ett meddelande så skickas detta ut till användaren. Som det är nu så ringer man en individuellt nummer för varje användare, anger en kod och kan därefter avlyssna sina meddelanden. När vi sedan använde Wireshark för att se paketen som klienterna skickade vid registrering till servern så såg vi att klienten först försöker skicka ett SUBSCRIBE meddelande och ett REGISTER meddelande, båda utan inloggningsinformation. När den sedan får tillbaka ett 401 Unauthorized meddelande så skickar den ett nytt SUBSCRIBE meddelande med inloggningsinformation. Den skickar inte lösenordet i klartext utan använder ett så kallat Digest vilket den säger i Authenication Scheme fältet i SIP huvudet. Detta betyder att den beräknar ut ett så kallat hash-värde på texten, detta hash-värde kan sedan servern räkna ut på sin information och jämföra med det den fick från klienten. Det går inte att ändra texten utan att hashvärdet blir annorlunda och det är väldigt svårt att få ut texten som skickades via hash-värdet. Detta gör det till ett ganska säkert sätt att autentisera sig utan att skicka lösenordet. När klienten väl får tillbaka ett 200 OK meddelande så skickar den ett nytt REGISTER meddelande, detta får tillbaka ett 200 OK meddelande följt från ett NOTIFY meddelande från servern. NOTIFY meddelandet innehåller information om användarens röstbrevlåda, till exempel hur många meddelanden det finns ohörda/hörda. 14 Andra experimentet utgick på att vi, samtidigt som Wireshark var igång, ringde till 600 vilket är en inbyggd eko-tjänst i Asterisk. Den skickar alltså tillbaka ljudet den får in på vilket sätt man kan höra hur lång tid det tar för ett ljudpaket att skickas till servern och tillbaka. I experimentet så såg vi att den försökte skicka ett INVITE meddelande utan inloggningsinformation och först när den fick tillbaka ett 401 Unautherized meddelande skickade den det ursprungliga meddelandet igen fast med inloggningsinformationen. INVITE 12 Diskussioner och samtal med Olle E. Johansson från Edvina AB, från den 10 februari 2011 till den 23 februari 2011. 13 Asterisks inbyggda dokumentation och hjälpfunktioner, hämtade den 21 februari 2011, skrivet utav alla utvecklare av Asterisk. 14 Wireshark & J, Erik. 2011, Wireshark dump av en IP telefons registrerings meddelanden till en Asterisk server, Erik Johansson, http://dl.dropbox.com/u/8410693/registrering.pcap.

meddelanden innehåller nummret vi försöker ringa, vilka ljudformat vi kan ta emot, deras inställningar och en massa metadata. Servern skickar då tillbaka ett 100 trying meddelande för att sedan skicka 200 OK meddelande. Detta 200 OK meddelande innehåller dock mer information än de föregående 200 OK meddelanderna. Denna innehåller information om inställningarna och formaten som valts för samtalet. Härefter kommer en massa RTP paket innehållande ljudet för det nu pågående samtalet. Dessa RTP paket innehåller, förutom ljudet, Timestamp, Sequence Number, Payload Type vilka alla hjälper klienten att identifiera hur och i vilken ordning paketens ljud ska spelas upp. Samtalet slutas med ett BYE meddelande, i SIP protokollet igen, vilket svaras med ett 200 OK meddelande från servern. Det sista paketet är ett RTCP meddelande innehållande en rapport om hur samtalet gick. 15 På grund av brist på datorer med installerade klienter så har vi ej kunnat utföra ett test med två olika klienter och en server. 15 Wireshark & J, Erik. 2011, Wireshark dump av samtal till Ekotjänst på en Asterisk server, Erik Johansson, http://dl.dropbox.com/u/8410693/eko-samtal.pcap.

4 Slutsatdisskution Kommer ip-telefoni att slå ut trad. telefoni helt? Det är fullt möjligt att IP telefoni kommer att slå ut den traditionella telefonin helt i framtiden. IP telefoni har fler möjligheter, tjänster och har ett bättre pris vilket, om fåregående trender är något att lita på, kommer att bli populärt för att sedan slå ut det gamla. Det som krävs är att de kommer ut på den mobila marknaden, dvs på mobiltelefoner, innan det traditionella nätet försvinner helt. Det trådbundna kan det dock redan nu vinna över. Hur kommer telefoni att användas om man inte behöver betala per minut? Att man skulle behöva betala per minut är endast möjligt om vi ringer över endast IP telefoni och inte över de traditionella näten då de tar betalt per minut och då måste IP telefoni leverantörerna ta betalt per minut. Om man inte behöver betala per minut så ändras hela det sociala konceptet kring telefoni. Förut har man ringt någon, sagt det man ville säga och hängt på. När man inte behöver betala per minut är det möjligt att ringa någon bara för att umgås utan att behöva bry sig om pengar. Till exempel kan man ringa familjemedlemmar som är utomlands under högtider så de kan vara med och man kan låta samtalet vara på under en mycket lång tid vilket ger en helt annan känsla en vanlig telefoni. Man får starkare känsla av närvaro när man kan gå ifrån ett tag får att återkomma senare och se dem till exempel göra läxor. Man kan ringa upp sin schackkompis och spela ett parti via videotelefoni över nätet utan att behöva skynda sig. Man kan ha en bokklubb på en IP telefoni konferans utan att någon av dem behöver åka till ett gemensamt ställe vilket leder till att man kan ha internationella bokklubbar som möts varje vecka. Kort sagt så kommer hela konceptet kring att ringa någon att ändras till att bli en mer vardagligare sak.

5 Referenslista H. Schulzrinne, et al. 1996. RTP: A transport protocol for real-time applications. [Online] Network Working Group, Available from http://www.faqs.org/rfcs/rfc1889.html. J. Postel. 1980. User datagram protocol. [Online] ISI, Available from http://www.faqs.org/rfcs/rfc768.html. J. Rosenberg, et al. 2002. SIP: Session initiation protocol. [Online] Network Working Group, Available from http://www.ietf.org/rfc/rfc3261.txt. J.Postel. 1981. TRANSMISSION CONTROL PROTOCOL. [Online] Information Sciences Institute University of Southern California, Available from http://www.faqs.org/rfcs/rfc793.html. M. Spencer, et al. 2010. IAX: Inter-asterisk exchange version 2. [Online] Independent Submission, Available from http://tools.ietf.org/search/rfc5456. R. Fielding, et al. 1999. Hypertext transfer protocol -- HTTP/1.1. [Online] Network Working Group, Available from http://www.ietf.org/rfc/rfc2616.txt. Digium, Inc. 2011,, Asterisk [Homepage of Digium, Inc.], [Online]. Available from http://www.asterisk.org/ [2011, 02/21]. Powell, A. 2003,, Getting Started With Asterisk [Homepage of http://www.automated.it/], [Online]. Available from http://www.automated.it/guidetoasterisk.htm#_toc49248754 [2011, 02/21]. Users of Voip-Info.org 2011, 2/21/2011-last update, Asterisk [Homepage of Voip-Info.org], [Online]. Available from http://www.voip-info.org/wiki/view/asterisk [2011, 02/21]. van Meggelen, J., Smith, J. & Madsen, L. 2007, Asterisk: The Future of Telephony, 2:nd edn, O'Reilly Media, Inc, http://cdn.oreilly.com/books/9780596510480.pdf. Wireshark & J, Erik. 2011, Wireshark dump av en IP telefons registrerings meddelanden till en Asterisk server, Erik Johansson, http://dl.dropbox.com/u/8410693/registrering.pcap. Wireshark & J, Erik. 2011, Wireshark dump av samtal till Ekotjänst på en Asterisk server, Erik Johansson, http://dl.dropbox.com/u/8410693/eko-samtal.pcap. Diskussioner och samtal med Olle E. Johansson från Edvina AB, från den 10 februari 2011 till den 23 februari 2011. Asterisks inbyggda dokumentation och hjälpfunktioner, hämtade den 21 februari 2011, skrivet utav alla utvecklare av Asterisk.