Een SIP softphone voor Linux Michel de Boer .

Post on 23-May-2015

223 views 0 download

Tags:

transcript

Een SIP softphone voor Linux

Michel de Boerwww.twinklephone.com

Agenda Wat is VoIP SIP Interface VoIP naar PSTN NAT Wat is Twinkle Demonstratie

Wat is VoIP? Voice over IP

Signalering (opzetten van een gesprek)

Media transport (audio, video)

IP

media

signalering

Signaleringsprotocollen H.323

ITU protocol familie SIP - Session Initiation Protocol

IETF protocol MGCP - Media Gateway Control

Protocol IETF protocol, populair in kabelnetwerken

Skype P2P VoIP, geen open standaard

SIP Gebaseerd op HTTP en SMTP UDP poort 5060 SIP adres lijkt op een mail adres

sip:michel@twinklephone.com Headers voor call routering

From, To, …. Body beschrijft de media stroom

SDP – Session Description Protocol Codecs, RTP poorten

Audio digitaliseren - Codecs G.711 (aLaw, ulaw) – 8 Khz, 64 Kbps

Standaard telefonie GSM – 8 Khz, 13 Kbps G.729 – 8 Khz, 8 Kbps

Licentie nodig Speex – 8, 16, 32 Khz, 2.15-44.2 Kbps

Open source

Media transport RTP – Real-time Transport Protocol

UDP Poort nummer is dynamisch

(onderhandeld via SIP/SDP) 1 RTP pakket bevat meerdere samples

Gangbare lengte is 20ms Codec informatie Timestamps, sequence numbers

Voorbeeld SIP gesprek

INVITE sip:michel@10.0.0.1

180 Ringing

200 OK

Speech (RTP)

BYE

200 OK

ACK

SIP netwerk elementen User agent

SIP endpoint, soft phone, hard phone SIP proxy (server)

Routeren van SIP gesprekken Registrar

Mapping IP adres naar SIP adres

SIP registratie Een SIP adres is niet gebonden aan

een IP adres. Hoe weet het netwerk waar je bent?

SIP proxy (registrar)

Location database

REGISTER

200 OKStore mapping SIP to IP address

10.0.0.1sip:michel@example.com

SIP routering

10.0.0.1sip:michel@example.com

SIP proxy

Location database

INVITE sip:michel@exmaple.com

Get IP address of sip:michel@example.comIP = 10.0.0.1

INVITE

Een gesprek kan via meerdere proxies worden gerouteerd.

SIP routering (2) Hoe vindt een SIP endpoint de

eerste proxy? Outbound proxy

Handmatig geconfigureerd, DHCP DNS lookup host gedeelte van SIP

URL Eg. sip:michel@example.com

DNS lookup van “example.com” SRV en/of A record lookups

SIP authenticatie HTTP digest authenticatie

Voor REGISTER request Kan in prinicipe op alle SIP requests

behalve CANCEL Voor een uitgaand gesprek is een

registratie niet nodig Misbruik kan voorkomen worden door

authenticatie op de INVITE request

SIP authenticatie (2)

SIP proxy

REGISTER

401 Unauthorized(nonce, realm)

REGISTER(username, MD5 digest of request, password, nonce)

200 OK

SIP user name voor authenticatie hoeft niet dezelfde te zijn als het user deelin een SIP URL.

Gesprek naar het PSTN Voor een gesprek naar het PSTN is een

signaling/media gateway nodig.

SIP proxy

SIPSIP

RTP

C7 / ISDN

Voice circuit

Telefooncentrale

Signaling gateway

Media gateway

Signaling en media gateway kunnen in gecombineerd zijn

NATNetwork Address Translation NAT breekt SIP signalering!

SIP proxyADSL modem/router10.0.0.1

10.0.0.151 1.1.1.1

Src ip: 10.0.0.1REGISTERContact: sip:michel@10.0.0.1

Src ip: 1.1.1.1REGISTERContact: sip:michel@10.0.0.1

Oplossingen voor NAT probleem Handmatige configuratie publiek IP

adres in SIP endpoint Gebruiker moet statische adres

mapping in router maken STUN protocol

Simple Traversal of UDP through NAT Makkelijker voor de gebruiker Niet 100% fool proof

STUN SIP endpoint vraagt aan STUN

server wat zijn publieke IP adres is Werkt niet bij een symmetrische

NAT Eerste REGISTER request creëert

dynamische adres mapping in NAT Keep alive packets houden adres

mapping levend

Wat is Twinkle SIP softphone voor Linux Qt based GUI Required libraries:

commoncpp2, ccrtp Codecs:

G.711a, G.711u, GSM Audio support:

OSS, ALSA

Twinkle features 2 “lijnen” Call waiting/Call hold (wisselgesprek) 3-way conference call Call redirect (doorschakelen) Call reject Call transfer Do not disturb Auto answer DTMF events (voor IVR navigatie)

Twinkle wish list Address book (interface naar

KAdressbook) Log inkomende en uitgaande

gesprekken DNS SRV support Speex codec Video …

Hoe kan je nu bellen? Je kan direct IP to IP bellen met Twinkle Maar beter is het om een SIP provider te

gebruiken, bijvoorbeeld: www.sipphone.com www.freeworlddialup.com www.sipgate.com

Een eigen SIP netwerk bouwen kan ook Asterisk, SIP Express Router (SER)

Demonstratie