Artikel top billede

(Foto: Computerworld)

Lav din egen VoIP-server

Vi finder ud af, hvordan du håndterer din egen voiceserver til din klan eller din guild.

Af Redaktionen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Vi har i vores guild en mand, som vi kalder Dalek. Hans navn begynder nemlig med D, og der er en alliterativ charme over hans pseudonym. Når han taler, lyder det som en robot, der råber ind i en vindtunnel, og ikke sådan, som Ventrilos stemmekommunikation burde lyde.

Der er aldrig nogen tvivl om, hvem der taler, når Dalek har noget på hjerte. Gid hans ord var lige så nemme at genkende.

Han spørger muligvis om vej til Smørumnedre eller fortæller, hvordan man får krammet på Lich King. Desværre finder vi aldrig ud af det. Og vi er ejendommeligt nok for høflige til at spørge.

Det er et mysterium, hvorfor netop Daleks stemme skal være den eneste i guilden, der får den fulde Max Headroom-behandling. Han bor i Sverige, hvor man har superhurtigt bredbånd og lav latenstid. Andre folk fra Norden går klart igennem, og det samme gælder det israelske par med deres suspekte internetudbyder, der døjer med pingtiderne til World of Warcraft-serveren. Det er tydeligvis ikke et problem med forbindelsen, der hjemsøger Dalek, men noget andet.

Hvad da? Det har altid været en kamp at få folk til at tale, ikke skrive, over internettet. Vi er nået langt siden begyndelsen på VoIP-klienter og det oprindelige Skype, hvor opkald skulle arrangeres på forhånd, og forsinkelsen i talen betød, at en opringning til en slægtning var som at føre en radiosamtale med et bombefly.

»Hej, mor, skifter.«
»Goddag, søn, skifter.«
»Hvordan går det med ... (man hører Neo gå ind i Matrix).«
»Det er ... problemer ... værd. Tales ... jul.«

Nu om dage kan man ikke ringe til en virksomhed af en vis størrelse uden at blive overført via en VoIP-forbindelse (Voice over IP) til et oversøisk kontaktcenter. Skype har 13 procent af den samlede markedsandel for internationale opringninger. Det skyldes dels en meget synlig markedsføring, dels – og væsentligst – at kvaliteten er usædvanlig god til en til en-internetopringninger.

Når det gælder stemmekommunikation i spil, kan kvaliteten være god, dårlig eller ligegyldig, afhængig af tidspunktet på dagen. Hvilket system er det mest driftssikre, og hvilket gør os alle til Dalek’er? Vi har trukket på hjælp fra nogle kammerater i guilden for at finde ud af det.

Der er ikke mangel på VoIP-klienter, men inden for spil er det vigtigste, at uanset hvilket system man vælger, skal det kunne håndtere mange spillere, der er koblet på samtidig.

De fleste udbredte programmer til stemmekommunikation såsom Skype, Google Chat og Windows Live Messenger blev oprindelig udviklet til en til en-chat og har fået tilføjet konferencefunktioner på et senere tidspunkt.

Resultatet er, at stemmekvaliteten er god, men de er ikke lavet til spil. Der mangler små funktioner såsom push-to-talk, hvor en genvejstast aktiverer stemmekommunikation.

Og vigtigere er det, at disse programmer som regel er opbygget omkring en person, der er vært for opkaldet, og som inviterer andre deltagere indenfor. Det kan blive en smule frustrerende for den spiller, der gentagne gange har trykket [Alt] for at hente nyankomne til et raid eller en kamp.

De tre mest udbredte stemmeapplikationer til spil er Ventrilo (www.ventrilo.com), TeamSpeak 3 (www.teamspeak.com) og den open source-genererede Mumble (www.mumble.sourceforge.com). Alle har de den samme klient/server-arkitektur. En person eller pc kører en serverudgave af applikationen, og alle andre i guilden logger på med deres klientapplikationer, når de går online.

De fleste klaner eller guilds, der regelmæssigt spiller med hinanden, ender med at leje en speciel server til et af disse tre programmer fra en hostvirksomhed såsom www.lazeryattack.com.

Det betyder, at medlemmerne (eller et gavmildt medlem) skal hoste op med nogle penge, men det drejer sig kun om cirka 200 kroner om året, og når man betaler for en stemmeserver, er den online hele tiden, og ip-adressen er statisk. Mumble er fuldstændig open source og koster cirka halvdelen af, hvad de andre tager for en specialiseret host.

Alternativet er naturligvis at have en stemmeserver på sin egen pc. Det er billigere, men hvis det pågældende medlem af guilden ikke er online eller har lukket serverapplikationen, er der heller ikke andre, der kan chatte.

Hertil kommer, at hvis ip-adressen fra internetudbyderen bliver ændret, skal alle i guilden eller klanen omkonfigurere deres klienter. Desuden kan upload- hastigheden hos værtens bredbåndsforbindelse blive en begrænsende faktor, når det gælder den generelle lydkvalitet.

Hvis en spiller kører serveren lokalt, og pc’en går ned, eller spillet kræver en masse cpu-kraft, mister man stemmeserveren. Og hvis andre på værtens lan begynder at downloade en stor fil, kan det nemt myrde stemmekommunikationen for alle dem, der er med i spillet.

Chris Barrow fra ip-telekommunikationsspecialisten Avaya siger, at når det gælder stemme, er det sjældent selve applikationen, der giver problemer:

»Problemet ligger næsten altid i slutpunktet. Uanset om det er en bærbar, en pc eller en spilkonsol, drejer det sig om, hvad enheden laver, mens den prøver at etablere konversation i realtid. Hvis den kører et andet program, og der ikke er angivet nogen prioritering, er der noget, der må vige.«

Sådan fungerer stemme-kommunikation i spil

I en spilkonfiguration er det sjældent båndbredden, der er problemet. En moderne applikation til stemmekommunikation bruger kun en meget lille del af selv den langsomste internetforbindelse, og selv de bedste codec’er bruger kun omkring 25kB/s pr. stemme. Men ligesom med spillenes pingtider er latens og netværksdriftssikkerhed langt vigtigere faktorer.

Virksomheder, der satser på VoIP til ekstern kommunikation, får ikke kun et specialiseret netværk med omhyggeligt udarbejdet pakkeprioritering til ip-opkald inden for deres eget lan, siger Barrow.

De sender ikke stemmepakker ud på det offentlige internet. I stedet leverer deres telefoncentral til en sip-central, der i realiteten løser den samme opgave som virksomhedens interne prioriteringspolitik over udbyderens netværk.

Det er den samme opgave, som en QoS-router (Quality of Service), for eksempel Sitecom Gaming Router, løser for ens hjemmenet; her gælder det blot for en lille del af internettet i almindelighed.

Problemerne opstår, når man er sluttet til en almindelig bredbåndsforbindelse: »Man kan have så megen prioritering, man vil, derhjemme. Men den går tabt, så snart man lægger sine pakker ud på det offentlige internet,« siger Barrow.

Derfor er en vis ventetid uundgåelig i Ventrilo, TeamSpeak og Mumble, simpelthen fordi internettet mangler pakkeprioritering. På den anden side vil man konstatere, at den egentlige stemmekvalitet er langt højere, end den bliver, hvis man ringer til et stort call-center, hvor alle operatørerne er på VoIP-telefoner.

Virksomhederne søger den lavest mulige båndbredde og den højeste pakkedriftssikkerhed. Hvis man ganger selv et codec, der skal bruge 5kB/s, med flere tusinde ansatte, får man nemlig en anselig regning for forbindelsen.

Med spilservere kan man gratis øge kvaliteten effektivt, men man kan ikke forbedre driftssikkerheden.

Opsætning og test

En etableret guild gør klogt i at investere i en specialiseret server, men i forbindelse med denne artikel ville vi selv køre applikationerne. Det var der to grunde til.

For det første ville vi se, om en guild selv kunne håndtere sin stemmekommunikation og undgå at betale for en hostløsning. For det andet: Hvis man lejer en stemmeserver, afhænger kvaliteten lige så meget af hostvirksomheden som af softwaren.

To Ventrilo-servere fra to forskellige host-firmaer kan lyde helt forskelligt, og vi ville komme så tæt som overhovedet muligt på en direkte sammenligning.

Det var relativt nemt at konfigurere serverprogrammerne til hver applikation, selvom ingen af dem har en grafisk brugerflade. Selv den mest kommandolinjeforskrækkede burde kunne få en af disse servere op at køre på få minutter.

TeamSpeak har en ret omfattende og kompliceret guide, men programmet er nemt at konfigurere. Det skyldes, at man kan få adgang til de fleste af serverindstillingerne gennem en autoriseret klient.

Man skal blot starte serverprogrammet, starte klienten og derefter logge på. Hvis man er anført som administrator, kan man ændre indstillinger fra selve klienten. Det er især nyttigt, hvis man tilgår serveren på afstand.

Ventrilo og serverdelen af Mumble – kaldet Murmur – er ikke helt så brugervenlige. I begge tilfælde skal man redigere en lille .ini-fil og vælge indstillinger for lydkvalitet, kodeordsbeskyttet adgang og antal brugere. Hvis man derimod lejer en server, har de fleste hostselskaber deres egne kontrolpaneler til disse indstillinger.

Den største praktiske forskel mellem de tre applikationer er antallet af spillere, der kan være på hver server. Freeware-versionen af Ventrilo kan kun hoste otte klienter. TeamSpeak har plads til 32 (men gratis registrering øger tallet til 512), mens der ikke er nogen øvre grænse for Mumble/Murmur, når man ser bort fra maskinens regnekraft.

At få adgang til serveren fra en klient er som regel et spørgsmål om at kende dens ip-adresse. Den eneste applikation, der har en indbygget offentlig serverbrowser, er Mumble, og den gav anledning til diskussion blandt os.

Der er mange grunde til, at man måske ikke ønsker, at ens private klan- eller guildserver er synlig for alle. Hidsigheden er stor blandt mange MMO-spillere, og de kan have set sig gale på din klan.

Alt i alt var der kun en vanskelig del af opsætningen i hvert af tilfældene, nemlig portviderestillingen for hver applikation på routeren.

Få styr på chat

Når det gælder klientsoftwaren til de tre klienter, vi har testet, var Mumble den eneste, der dirigerer en omhyggeligt igennem installationen og den indledende opsætning med stemmeklip og enkle skydere til at indstille niveauerne og konfigurere mikrofon og højttalere, så man kan høre og selv bliver hørt. Guiden hjælper endda med at vælge den rette codec på baggrund af serverens reaktion.

Hos de to andre applikationer bliver codec’en valgt af serveren, og hvis man har problemer, er det bare ærgerligt.

Når man tager i betragtning, hvor stor anstrengelse Mumble gør sig for at holde en i hånden under opsætningen, er det ironisk, at det også var denne applikation, der tog fejl af et par spillere, som var vant til at logge ind på en Ventrilo- og TeamSpeak-server uden at bekymre sig over, hvilken codec de skulle bruge. I et tilfælde virkede det simpelthen ikke.

Sammenlignet med TeamSpeaks kontrolpaneler er nogle af Ventrilo-klientens indstillinger lidt sløve. Men selve stemmechatvinduet er langt det bedste. Der er meget lidt overflødig information og et overskueligt layout.

Udseendet betyder naturligvis mindre end lyden, og når det gælder lydkvalitet, vinder TeamSpeak. I en standardinstallation lød TeamSpeak bedst, efterfulgt af Mumble og så Ventrilo.

Den sidstnævnte vælger som standard en codec af meget lav kvalitet, og den bør man ændre i serverindstillingerne. Mumble var den mindst driftssikre. Stemmerne lød krystalklare det ene øjeblik, men det næste havde de fået en skarp metallisk klang.

Bag om lyden

Som nævnt ovenfor er stemmekvalitet en ting; en anden er latens og forsinkelse. Konversation på Mumble var måske ikke akustisk strålende, men den kom næsten øjeblikkelig og var den med mindst forsinkelse.

I sammenligning var Ventrilo som at tale med en rumfærge. Der var cirka et halvt sekunds forsinkelse mellem de talende og dem, der hørte. Det kan gøre samtalen vanskelig. TeamSpeak lå midt imellem de to.

Mumble har en anden praktisk funktion, som de kommercielle applikationer ikke har: Den normaliserer lydstyrken for alle, der taler inden for serveren. Det betyder, at det er ligegyldigt, hvor højt eller lavt de taler.

Man behøver ikke at gå ud af spillet med [Alt]+[Tab] for individuelt at justere lydstyrken. Mumble og TeamSpeak 3 hævder at understøtte ”stillingsaudio”, der placerer en spillers stemme i forhold til ens placering i spillet.

Hvis der står en til venstre for dig, hører du personen komme fra den retning. Det lyder som en interessant ide, men det lykkedes os aldrig at få den til at virke ordentligt.

De stemmeserver-teknologier, vi har testet, har meget veldefinerede styrker og svagheder, og valget må afhænge af, hvilket aspekt af softwaren man sætter højest.

Den generelle vinder er TeamSpeak, men ikke med en stor margen. Det bedste råd, vi kan give, er at sikre sig en god og velskrevet host. De kan alle tre fungere fremragende, men de kan også lyde rædsomt, hvis der er et problem med serveren.

Og Dalek? Han var på ferie under testen. Vi er glade for, at det stadig er et mysterium, hvordan han virkelig lyder.

Hvilke applikationer understøtter hvilke hastigheder?

Det, der er afgørende for lydens samplerate gennem en stemmeserver, er valget af den codec, der bliver brugt til at oversætte stumper af analog stemme til digitale pakker. Det er ikke så enkelt, at en lav sample-rate giver mindre pakkestørrelser og ringere kvalitet til gengæld for højere hastighed.

Komprimeringsteknikken er lige så vigtig, og to applikationer, der bruger den samme codec, vil yde forskelligt.

Med andre ord kan en ineffektiv codec lyde rædsomt og tilføje en forsinkelse på et sekund eller to i samtalen, mens en mere strømlinet codec kan være lynhurtig og lyde, som om man er i det samme lokale, selvom den faktisk bruger en lavere sample-rate.

I en standardinstallation af Ventrilo-serveren er der 32 forskellige codec’er med en sample-rate fra 8kHz til 44kHz. De bruger enten Speex-codec’en (der er open source) eller GSM, der oprindelig blev udviklet til mobiltelefoner.

TeamSpeak har kun 11 muligheder, der også især bygger på Speex og GSM, men de giver højere båndbredde-muligheder ved de samme sample-rates.

TeamSpeak gør det også muligt for serveren at indstille forskellige codec’er til hver kanal. Hvis du ved, at dine officerer i guilden alle er på 8Mb/s bredbånd eller mere, kan du oprette en administratorkanal med højere kvalitet end den generelle chatkanal, som alle andre kan logge sig ind på.

Mumble trækker også på Speex, når det gælder indstillingerne for lavere kvalitet, men den bruger Celt-codec’en (også open source) til sampling over 32kHz for at opnå en meget høj lydkvalitet ved 96kHz.

Mumble skiller sig ud fra de andre applikationer ved at lade klienterne vælge deres egne individuelle codec-indstillinger, så man kan kompensere for en dårlig lokal forbindelse, mens de andre guildmedlemmer modtager høj kvalitet.

Stemmeapplikationer, der ikke koster en øre

1. Skype

www.skype.com
Man kan oprette chatrum til op til 150 personer, og lydkvaliteten lyder bedre end nogen af de spilspecifikke applikationer. Der er dog nogle begrænsninger. Folk skal inviteres, de kan ikke blot logge ind på en server. Og der er ingen push-to-talk-funktion. Desuden er kravene til processorkraft og båndbredde meget højere.

2. Xfire

www.xfire.com
Den blev oprindelig udviklet som en MSN-agtig chatgrænseflade, der fortalte vennerne, hvilket spil man var i gang med, men Xfires stemmestyring er ikke dårlig. Brugerne kan oprette gratis chatrum til 50 mennesker på Xfire-serverne, men kvaliteten og antallet af funktioner er ikke så god som hos de specialiserede stemmeapplikationer.

3. GSC

www.getgsc.com
GSC er ligesom Xfire en beskedtjeneste, der holder en opdateret om, hvad vennerne spiller, og som starter spil fra selve klienten. Den har større fokus på stemme end Xfire, og den tilbyder gratis serverhosting, der styres fra GSC-applikationen. Men det er en meget stor applikation, hvis man kun er ude efter lidt chat.

Sådan sikrer du dig, at din guild kan se din server

Sådan som dit hjemmenet er indstillet, er det kun din routers ip-adresse, der kan ses af resten af verden. Alle pc’erne på dit lan har adresse i retning af 192.168.xx, men den kan kun bruges til trafik på dit eget net. Alt, hvad der går gennem din router på vej til internettet, ser ud til at komme fra dens ip-adresse, og al indgående trafik bliver sendt det samme sted hen.

Hver af applikationerne til stemmekommunikation bruger en specifik port til ind- og udgående trafik. Standarden er 9987 for TeakSpeak og 64738 for Mumble. Af en eller anden grund meddeler Ventrilo ikke standardporten så tydeligt som de andre, men den er 3784, hvis du skulle være interesseret. Http-trafik (til world wide web) bruger port 80.

Den sektion på routerens setup-side, der håndterer porte, gør det muligt at styre al indgående trafik til en specifik port på en maskine på dit net. Det betyder, at folk kan bruge din routers ip-adresse til at finde serveren, og alle stemmepakker bliver sendt til din pc.

Tre gode headset til stemmekommunikation

Det kan være svært at vælge et headset til stemmekommunikation, men heldigvis sælger producenterne gennemarbejdede og solide produkter. Her er tre af vores favoritter.

1. Sennheiser PC360

1.200 kroner www.sennheiser.dk
PC360 giver den ultimative lydoplevelse, men hvis du ikke har råd, kan du vælge PC333, der lyder næsten lige så godt og har en fremragende mikrofon.

2. Logitech G35

600 kroner www.logitech.dk
G35 ser usædvanlig ud, men er meget, meget komfortabel. Lyden er retningsbestemt, og man kan bruge makroknapper på ørerne. Ikke så ringe.

3. Steelseries 3H VR

250 kroner www.steelseries.com
Let og sammenklappelig: Steelseries 3H er udviklet til lan-forsamlinger, men virker lige så godt som et billigt headset til daglig brug.