Een SIP softphone voor Linux Michel de Boer .
-
Upload
siebe-gerritsen -
Category
Documents
-
view
223 -
download
0
Transcript of Een SIP softphone voor Linux Michel de Boer .
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:[email protected] 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
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:[email protected]
SIP routering
10.0.0.1sip:[email protected]
SIP proxy
Location database
INVITE sip:[email protected]
Get IP address of sip:[email protected] = 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:[email protected]
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:[email protected]
Src ip: 1.1.1.1REGISTERContact: sip:[email protected]
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