Instellen
Inhoud
Accountinstellingen bij Limesco
Dit verhaal legt in het algemeen uit hoe je Limesco-account ingesteld wordt. Elders op deze Wiki wordt dat in HOWTO-vorm uitgewerkt voor specifieke stukken software of diensten; het helpt echter je begrip als je iets weet van de algemene werking van je account bij Limesco, en de instellingen die je hiermee maakt.
Hoe SIP normaal werkt
SIP is het open protocol dat het voor apparaten mogelijk maakt om mediaverbindingen op te bouwen, te verleggen en weer af te breken. De eigenlijke mediaverbinding vindt plaats over RTP-stromen, maar om die op te zetten en te veranderen wordt SIP gebruikt. De technische term daarvoor is signalering. Als je nu denkt aan DTMF-tonen of kies- en bezettonen dan zit je op het goede spoor.
Het is belangrijk te beseffen dat signalering (via SIP) en mediastromen (via RTP) gescheiden zijn. Dit maakt het mogelijk om SIP-boodschappen kris-kras door allerlei systemen te sturen, en uiteindelijk toch een rechtstreekse RTP-stroom tussen de eindpunten te verkrijgen. Dit mooie ontwerp gaat natuurlijk stuk als er NAT in het spel is, dus daar wordt onder IPv4 ongelofelijk veel moeite in gestoken. Laten we maar hopen dat we snel over gaan op SIP en RTP via IPv6.
Belangrijke SIP Concepten
Meestal wordt SIP gesproken over UDP. Daarbij neemt een van de eindpunten een initiatief, die is dan voor dat initiatef de User Agent Client; de andere kant bedient en reageert in principe met een responscode in de rol van User Agent Server. Deze rollen kunnen van initiatief tot initiatief verschillen. Dat verwacht je ook -- ongeacht wie een telefoongesprek start, moet elke partij afzonderlijk het initiatief kunnen nemen het gesprek te beeindigen.
De rol die een apparaat speelt in het SIP-gebeuren varieert nogal. Telefoons doen dienst als eindpunten; je handelingen met een telefoon worden vertaald in SIP messages die via het Internet worden rondgestuurd, en de reacties daarop zorgen voor een reactie in de vorm van een bepaalde toon, een wijzinging in de geluidsweergave, statuswisseling van een LED of het tonen van een tekst. Onderweg zijn er doorstuurders van SIP messages, de zogenaamde SIP Proxies. Een speciaal geval hiervan is de SIP Location Server, die zich naar buiten toe (zoals via DNS, of via een koppeling aan het telefoonnetwerk) profileert als ontvanger voor signalering voor een bepaalde bestemming. Bij een poging een mediastroom voor zo'n bestemming op te zetten worden dan de concrete locaties van SIP apparaten opgezocht en aangesproken.
Wat hierboven een intiiatief wordt genoemd, heet formeel een Request of SIP Request, en de responscode zit vervat in een SIP Response.
De eerste regel van een SIP Request vermeldt een Method en een Request URI waarheen die methode gestuurd wordt. In eerste instantie is de Request URI de SIP URI waarheen je belt, maar die kan gaandeweg aangepast en herschreven worden ten bate van de routering via een aantal hops naar de eindbestemming. De Method dient als instructie om bijvoorbeeld te verbinden of te verbreken. De eerste regel van een SIP Response bevat een driecijferige Status Code die vaak dezelfde is als onder HTTP, en een beschrijving. Als je dus dingen krijgt als 404 Not Found dan komt dat uit de eerste regel van de SIP Response,
De rest van een SIP Request en SIP Response is verder vergelijkbaar; het is een serie headers en een eventuele body. De headers doen denken aan email, en behalve dat het niet gaat om mailadressen maar SIP-adressen vind je vergelijkbare betekenissen voor From, To, Subject headers. Daarnaast zijn er natuurlijk allerlei SIP-specifieke aanvullingen.
De combinatie van een SIP Request met de bijbehorende SIP Response en eventueel nog meer heet een SIP Transaction. Let op dat zo'n transactie gaat over een enkele verandering, zoals het afbreken van een gesprek, maar niet over een heel gesprek. De term Dialog is gereserveerd voor dat laatste, en is feitelijk iets wat het niveau van de afzonderlijke SIP Transactions overstijgt.
Onder de headers kan nog een body hangen, met een MIME-type. Normaalgesproken is dit een SDP-beschrijving van een mediastroom.
Belangrijke SIP Messages
Het soort dingen dat je via een SIP Message regelt is bijvoorbeeld:
- Met de INVITE Method met SDP body te sturen aan een Request URI nodig je de ontvanger van dat laatste uit tot een gesprek of, formeler, tot media-uitwisseling.
- Met de BYE Method beeindig je een bestaande media-uitwisseling.
- Met de CANCEL Method geef je aan dat een poging tot gespreksopbouw niet voortgezet wordt.
- Met de REGISTER Method meldt een partij zich aan bij een SIP Location Server.
- Met de MESSAGE Method kun je korte tekstberichten sturen; doorgaans werkt XMPP overigens beter; er is overigens wel een mogelijkheid tot presence subscription onder SIP.
- Een "183 Ringing" response houdt in dat er tenminste 1 telefoon staat te rinkelen in reactie op een INVIITE.
- Een "200 OK" response op een INVITE beklinkt de opbouw van een verbinding.
- Een "404 Not Found" response houdt in dat de aangeschreven Request URI niet gevonden werd.
Hoe SIP telefoons werken
Een SIP telefoon meldt zich aan bij een PBX waar gesprekken op binnenkomen. Hoe eigenlijk?
Hoe een standaard SIP-telefoon werkt
Standaardmodel SIP telefonie | Geavanceerd model SIP telefonie |
Een SIP-telefoon kan allerlei verschijningsvormen hebben; bijvoorbeeld hardware of software, bijvoorbeeld audio of ook video en eventueel interactief doorgegeven tekst.
Doorgaans is de telefoon geen eindpunt dat publiek vindbaar wordt gemaakt in DNS; in plaats daarvan melden we SIP Location Servers aan in DNS, en meldt een telefoon zich via de REGISTER Method aan bij zo'n PBX.
De SIP Location Server houdt een lijstje bij van zulke telefoons die zich aangemeld hebben. Zodra een INVITE voor een gesprek bij de SIP Location Server binnenkomt zullen de telefoons die bij de Request URI horen deze INVITE doorgestuurd krijgen; ze reageren als het goed is met "183 Ringing" en, na opnemen van de hoorn, met "200 OK". Tot een van de partijen later de BYE Method gebruikt is de telefoon dan via RTP-mediastromen verbonden met de verzender van de INVIITE.
Het geavanceerde geval is een variant waarbij een "outbound proxy" wordt ingesteld als een andere server dan de "registration server". Dit zijn in de praktijk de twee uitgaande initiatieven vanuit een SIP telefoon, dus effectief zorg je hiermee dat je inkomende account en uitgaande account afzonderlijk ingesteld kunnen worden. Dat kan worden gedaan naar dezelfde telco of, als je dat prettiger of bijvoorbeeld goedkoper vindt, naar een andere.
Hoe SIP bij Limesco werkt
Limesco "Out of the Box" | Limesco "Do It Yourself" |
De GSM is bij Limesco in feite een SIP-telefoon geworden. Je meldt hem aan bij een SIP Location Server naar keuze. Dat kan bijvoorbeeld een eigen PBX zijn, of een SIP-telefoonprovider die een (vast) telefoonnummer voor je aanneemt.
De link met het ouderwetse telefoonnetwerk (vaak POTS genoemd) wordt ook aangeboden door Limesco, en wel als een SIP Location Server waarbij je een SIP-telefoon kunt aanmelden.
De simpelst denkbare opzet is het als je je GSM-telefoon rechtstreeks bij die POTS-server. Belt iemand het 06-nummer via POTS, dan wordt een INVITE naar de GSM-link verzonden. En draai je een nummer op je mobiel, dan wordt vandaaruit een INVITE naar POTS verzonden.
Je kunt natuurlijk ook een gewone SIP-telefoon in hard- of software aanmelden bij de POTS-account. Deze telefoon gaat dan rinkelen als iemand je 06-nummer belt, en je kunt vanuit zo'n telefoon bellen met je 06-nummer als afzender.
Het meest voor de hand ligt het echter er een PBX of andere dienst tussen te schakelen, zodat je enige controle kunt uitoefenen op de link tussen POTS en je GSM-device. Die eigen PBX kan een Asterisk PBX zijn, een FreeSWITCH PBX of iets nog exotischer.
Het geavanceerde schema met een afzonderlijke provider voor inkomend en uitgaand verkeer is op dit moment niet mogelijk met Limesco. Op dit punt is de GSM dus (nog) een iets simpeler toestel dan een standaard SIP-toestel.
Instellingen van parameters
Er zijn twee accounts van belang in de Limesco-opzet, namelijk voor de dienstverlening richting POTS en voor de dienstverlening richting de GSM. In principe functioneren deze accounts los van elkaar. Elke account wordt gekenmerkt door een username, eventuele authentication username, een domain of realm, en een password. Niet zo heel anders dan bij andere protocollen dus. Het onderscheid tussen username en authentication username bestaat overigens om het mogelijk te maken heel veel telefoonnummers te bedienen met een enkele authenticatie.
De dienst richting POTS gebruikt als username iets van de vorm 316xxxxxxxx waarbij de xxx feitelijk je 06-nummer weergeven. Je gebruikt de authentication username en password die aan je toegekend zijn door Limesco; als realm gebruik je de SIP-naar-POTS service van SpeakUp, te weten alg.sip.speakup.nl. Je dient je bij de POTS-service te registreren en/of uitgaande belverzoeken te authenticeren.
De dienst richting GSM gebruikt een zelf te kiezen username, eventueel een authentication username, verder een domain/realm en een password. Je kunt deze gegevens zelf kiezen en doorgeven aan Limesco; die zorgt dan dat de GSM zich met deze gegevens registreert. Dit zijn dus gegevens die afkomstig zijn uit je PBX of dienst die je tussen de POTS-service en GSM-service wenst te schakelen om grip te krijgen op je belverkeer. Als je dus anonieme bellers wilt wegsturen dan kan dat hier. Ook kun je allerlei andere dingen doen, zoals een internetaccount sip:mobiel@jouwdomein.nep maken die naar het GSM-kanaal doorverbindt.
De gegevens waar we om vragen, zijn de volgende.
- Username: - Domein/realm: - Authenticatie-username: - Password: - SIP uri/adres: - Gewenste expiry: (standaard 3600, mag bij Limesco liggen tussen 600 en 3600)