En av de mera "heta" teknikerna som dykt upp under de senaste åren
är IP-telefoni.
Den kommer troligen att revolutionera hela telekom-branchen.
Jag har fått möjligheten att delta i ett projekt med ytterligare
några studerande vid Chalmers.
Se gärna kurshemsidan
för ytterligare detaljer.
Vi skall bygga en IP-telefon från grunden. Den baseras på
en NT-maskin och vi skriver applikationen
i C++.
Arbetsgången i grova drag:
1. Skriv en chat-applikation som kommunicerar via TCP.
2. Ta reda på hur sampling, läsning och skrivning från/till
ljudkortet fungerar. (skriv ett ekoprogram)
3. Implementera ljudkommunikation via UDP som ett komplement till vårt
chat-program. (ca64kbps)
4. Implementera ljudkodningsalgoritm (G.723.1?)
för att komma ner i överföringshastighet.
5. Lägga till "silence detection" för att ytterligare spara
kpbs.
Resultatet av projektet kommer att redovisas här senare.
Allmänt om IP-telefoni
IP-telefoni, som ofta förväxlas med internettelefoni,
är tal i realtid / telefoni paketerad och förmedlad via IP (Internet
Protocol) -baserade nätverk. Internettelefoni däremot är
telefoni förmedlad över Internet och därmed en delmängd
av IP-telefoni.
IP-telefoni sägs ha börjat med att en grupp
israeler tog fram programvara för att skicka ljud i realtid via dator.
Det är också denna typ av tillämpning som har varit vanligast
fram till nu när det börjat dyka upp flera leverantörer
av hela system med allt från stand alone IP-telefoner till gateways,
gatekeepers och specialiserade routers.
Varför vill man använda sig av IP-telefoni
Det finns flera skäl och en del av dem tas upp här.
Man kan tänka sig en modell med två typer av användare:
företag och privatpersoner. Dessa grupper av användare har olika
förutsättningar och olika krav på sin telefoni. Man kan
då dela in telefonin i fyra olika kategorier:
1. företag – företag, 2. företag – privatperson,
3. privatperson – företag, 4. privatperson – privatperson.
Kategori 2 och 3 skiljer sig på så vis att det är olika parter som initierar samtalet.
1. Företag - företag
Ett företag som är lokaliserat med flera kontor
på flera olika orter har ett stort behov av internkommunikation.
Troligen har man byggt upp en infrastruktur med egna telefonväxlar
och fast förhyrda ledningar mellan de olika kontoren. Parallellt med
detta har man troligen ett datanät på varje kontor och även
här fasta förbindelser mellan kontoren. Nu när tekniken
finns kan man spara mycket pengar på att bara hålla sig med
ett nät både vad det gäller förbindelser mellan kontoren
och det interna fastighetsnätet. Vid nyetableringar minskas kabeldragningen
väsentligt om bara ett nät behövs.
2. Företag - privatperson
Företag som lockar nya kunder med telemarketing.
Denna form av marknadsföring är ännu inte så utbredd
i Sverige men det kommer troligen mer och mer. Företagens personal
som sitter och ringer upp personer från en lista har stor nytta av
CTI (Computer Telephony Integration). De kan t.ex. få upp listan
på sin dator och bara klicka för att ringa upp. Att integrera
telefonin med datorn blir betydligt enklare om telefonin redan ligger i
datorn.
3. Privatperson - företag
Många företag har en kundtjänst som utnyttjar
/ vill utnyttja ovan nämnda dator-telefoni-integration. En annan aspekt
är att företaget har produktbeskrivningar på sin webb-sida.
En presumtiv kund kanske vill veta mer innan han, kanske via e-handel,
köper varan. På samma sida finns då en knapp eller länk
som kunden bara klickar på för att komma i kontakt med en representant
för företaget.
4. Privatperson - privatperson
Det är kanske främst kostnaden för långdistans
och utlandssamtal som motiverar IP-telefoni för denna kategori. Det
blir då ofta fråga om den tidigare nämnda internet-telefonin.
På detta sätt kan man ringa utlandssamtal till väsentligt
lägre kostnad, i vissa fall gratis.
Vad IP-telefoni är och hur det fungerar
Vanlig telefoni går i vad som ofta kallas PSTN
(Public Switched Telephone Network) eller POTS (Plain Old Telephony System).
Den var från början helt analog. Analog överföring
är dock svårare att överföra utan brus. När signalen
förstärks, förstärks också bruset. Med tiden
blev modernare kretsar tillgängliga och talet började digitaliseras.
Det digitala formatet är mindre känsligt för brus eftersom
man vid långa överföringsavstånd istället för
att förstärka signalen detekterar etta eller nolla och regenererar
den på nytt, och då utan brus.
I dagens PSTN är talsignalen stort sett bara analog fram till första växeln. Där samplas den med 8 kHz och varje sampel kodas med 8 bitar. (Jfr. Nyquist-kriteriet och att större delen av talet är begränsat till under 4 kHz.) Den standard som används för talkodningen är PCM (Pulse Coded Modulation). Denna vanliga kretskopplade telefoni ockuperar hela sin bandbredd, 64 kbit/s, under hela samtalet.
I fallet IP-telefoni börjar talet som analog signal i mikrofonen. Det samplas med lämplig hastighet och kodas enligt en av flera standarder (se tabell)
| Standard | Kompressions-metod |
|
|
|
| G.711 | PCM (Pulse Coded Modulation) |
|
|
|
| G.726 | ADPCM (Adaptive Differential PCM) |
|
|
|
| G.728 | LD-CELP (Low Delay Code Exited Linear Predictive) |
|
|
|
| G.729 | CS-CELP (Conjugate Structure CELP) |
|
|
|
| G.729a | CS-ACELP (CS Algebraic CELP) |
|
|
|
| G.723.1 | MPMLG |
|
|
|
| G.723.1 | ACELP |
|
|
|
MOS (Mean Opinion Score) är en siffra som mäts
genom att ett urval personer får betygsätta ljudet enligt vissa
givna kriterier. Noll är sämst och fem bäst.
Fördröjningen är den algoritmiska fördröjningen
som orsakas av att kodningsmetoden analyserar hela block.
Den vanligaste kodningen är baserad på linjär prediktion. Istället för att överföra vågformen tar man hänsyn till hur talorganet är utformat och bygger en modell för detta. Det som då sedan behöver överföras är modellens parametrar och talets sk. pitch. Samma modell finns i mottagaren och med de mottagna parametrarna resp. pitch skapas ett filter som matas med grundton och vitt brus och det ursprungliga talet återskapas. För ett helt system tillkommer utöver den algoritmiska fördröjningen enligt ovanstående tabell en propageringsfördröjning samt fördröjning i routrar mm. En gräns för vilken fördröjning som kan tolereras innan man uppfattar den som störande brukar anges till 200 ms.
Detektering av tystnad
Efter kodning enligt ovan detekteras tystnad. Ett normalt
telefonsamtal brukar bestå av ca 50% tystnad, eftersom man inte gärna
pratar i mun på varandra. Vid vanlig telefoni upptas hela bandbredden,
64 kbit/s, även vid tystnad men för paketbaserad telefoni finns
här mycket bandbredd att spara. Att inte skicka några paket
vid tystnad får dock vissa konsekvenser. Normalt är vi vana
vid att höra ett visst bakgrundsbrus. Om det nu blir helt tyst kan
man tro att förbindelsen har brutits. Därför genereras ett
visst "comfort noise" för att vi ska tro att linjen är öppen.
När sedan personen börjar tala uppstår svårigheter med att de första sampeln av talet klipps bort innan paket börjar skickas igen. Denna detektering, VAD (Voice Activation Detection), får bli en kompromiss mellan att skicka onödiga paket och att missa de inledande sampeln.
För att dra nytta av ovanstående måste paketen tidsmärkas. Om H.323 standarden (se nedan) följs används RTP (Real Time Protocol) för denna tidsmärkning.
Paketering
De kodade sampeln ska också paketeras. Om vi använder
TCP/IP standarden finns två val för transportprotokoll, TCP
(Transmission Control Protocol) och UDP (User Datagram Protocol). TCP ger
en pålitlig koppling som är förbindelseorienterad medan
UDP ger en opålitlig och förbindelselös koppling. Med opålitlig
menas att den inte har inbyggd felkontroll och omsändningar. UDP har
dock mindre overhead och i denna realtidstillämpning är det ändå
inte intressant med gamla sampel som omsänds. För att undvika
för mycket overhead väljs ofta en paketstorlek på ca 570
bytes. Detta kan ställas i relation till en RTP-header på 20
bytes, en UDP-header på 8 bytes samt en IP-header på 24 bytes.
Till detta kommer ytterligare en frame-header för det aktuella fysiska
nätet.
Valet av 570 bytes är en kompromiss mellan overhead och paketeringsfördröjning. Även andra val av paketstorlek är dock möjliga.
Standarder
Som nämndes ovan finns flera standarder inom området.
Den hittills dominerande standarden för IP-telefoni, H.323, är
en hel svit av delstandarder och skapades av ITU-T (International Telecommunication
Union - Telecommunication).
H.323 protokollstack
|
|
|
|
|
|
|
|
|
|
|
|
|
(Q.931) |
|
|
|
|
||||||
|
|
|
|||||
|
|
||||||
En standard som uppstått något senare är SIP (Session Initiation Protocol) som är skapad av IETF. Denna senare är mindre omfattande och lättare att implementera.
Gateways och gatekeepers
Eftersom IP-baserade nät och PSTN kommer att samexistera
i många år behövs gateways som översätter från
paketerat tal till vanligt kretskopplat tal. Dessa gateways måste
även klara av att hantera signaleringen från båda näten
och översättningen däremellan. H.323 standarden beskriver
vidare något som kallas gatekeepers. Det är en utrustning på
respektive lokala nät som samordnar telefonin, ser till att bandbredd
reserveras och sköter alla uppkopplingar.
Slutsatser
En av de största nackdelarna med IP-telefoni är
svårigheten att garantera QoS, dvs. att garantera bandbredd, maximal
fördröjning samt variationer av fördröjningen – jitter.
Det finns två standarder för att ge garanterad bandbredd,
RSVP
(ReSerVation Protocol) och DiffServ. Arbetet med dessa
är inte helt färdigt och man har svårt att enas om vilken
standard som skall gälla.
En annan svårighet är användandet av dynamiska IP-adresser vilket gör att man måste logga in på en server för att bli synlig och kontaktbar för omvärlden.
Vidare måste all den funktionalitet som erbjuds av exempelvis AXE erbjudas av IP-telefoni för att accepteras av den breda allmänheten. Hittills har vi mest sett tillämpningar i formen av programvara för PC. Kommer PC:n att bli vår telefon i framtiden? Nej, vi gillar specialiserade apparater. Den kombinerade tvättmaskinen och torktumlaren har inte blivit någon större försäljningssuccé. Om PC-tillverkarna dessutom inte lägger ner mer energi på att få fram datorer som startar snabbare från kallt tillstånd kan nog de flesta inte tänka sig att först boota upp datorn och vänta i flera minuter innan man ringer sitt samtal.
Referenser:
IP Telephony, Goralski Walter J, McGraw-Hill 1999,
ISBN: 0-07-13 5221-x
Voice over Ip Networks, Gonclaves Marcus, McGraw
Hill Text 1998, ISBN: 0-07-91 3783-0
Voice Over IP, Black Uyless D, Prentice Hall 1999,
ISBN: 0-13-02 2463-4
Internetworking with TCP/IP, Volume 1: Principles..
, Comer Douglas E.
An Advanced 4.4BSD Interprocess Communication Tutorial, Leffler
Samuel J et al:
Intressanta standarder och RFC:er
RFC
2205 RSVP
RFC
2211 Specification of the Controlled-Load Network Element Service
RFC
2212 Specification of Guaranteed Quality of Service
RFC
2543 SIP
RFC
2549 (1 April 1999!!) IP over Avian Carriers with Quality of Service
ITU-Ts
: H.323-svit (alternativ
site)
IETF:s SIP (RFC2543)
.
TCP/IP protokollsvit (RFC
793)
Rekommenderade länkar:
Internet
Telephony - An Overview
Computer Telephony Portal
Voice Over
IP, The Way It Should Be
MIT Internet Telephony Consortium
Carrier
IP World Forum 2000
ISOCs
arbetsgrupp på IP-telefoni
ESTI-Tiphon
www.pulver.com
IP xStream
winsock-API
Ytterligare en stor mängd länkar finns på:
IP
Telephony Weblinks
Övrigt:
Voice on the Net Europe
2000 is taking place in Stockholm, Sweden June 19-22, 2000 and will
be the largest conference and exhibition taking place to date in Europe
for the VON/VoIP Industry.
Sidan senast uppdaterad:
Torbjörn Carlberg