Post on 01-May-2019
transcript
VOICE OVER INTERNET PROTOCOLAndreas PalmetzhoferPhilipp Sima2008
INHALT
Probleme bei VoIPSignalisierungsprotokolle (SIP2, IAX2, H.323)Mediaprotokolle (RTP) und CodecsPraktische BeispieleFragen!AsteriskEnum
PROBLEME BEI VOIP
EchtzeitproblemNetzwerk-technische Probleme
zB NAT bei SIPKonvergenzprobleme
PSTN, ISDN, GSM, UMTS, IPAbzustimmen sind: Signalisierung, CodierungErreichbarkeit
Politische Probleme (Regulierungsbehörde, ENUM)
DAS PROBLEM MIT DER ZEIT
Tln. BTln. A
Was passiert?•Digitalisieren•Codieren•Paketieren•Übertragen•Jitterbuffer•Dekodieren
Bezogen auf die Übertragung
Bis 150ms sehr gut150 bis 400ms akzeptabel
DIGITALISIEREN, CODIEREN
VoIP, Badach, 2004 Hanser S.132
SIP .. SESSION INITIATION PROTOCOLSignalisierung von AnrufenUnabhängig vom zu transportierenden Medium
d.h. Sprache, Video, Musik, Daten,…
Basiert auf UDP und TCPIdee & Design von Dept. Of Computer Science, Columbia (USA) SIP von führenden IT Firmen wie SUN oder Microsoft aktiv in Produkten und Strategien eingebundenRFCs:
1996 1st draft to IETF,1999 RFC 2543 (official release)2001 RFC 3261, 3262, 3263, 3264, 3265
SIP – WO UND WIE?
SIP findet in folgenden Bereichen Anwendung:Local and long distance telephonyIP PBXMessagingPTT (Push to Talk)Conferencing
SIP löst folgende Anforderungen der Kommunikation:• Teilnehmer Standort Bestimmung (Register, Erreichbarkeit)• Verbindungsauf- und ab-bau• Teilnehmer Management (Authentifizierung,…)
SIP MESSAGE
Ähnlich zu HTTPStruktur eines SIP Request:
Method Request-URI SIP-VersionHeader-Feld1Header-Feld2
[Message Body]
Method: Request Typ (Invite, BYE, ACK,…)Request-URI: Ziel SIP Adresse
SIP REQUEST TYPEN
INVITEBYEACKOPTIONS
Abfrage von Fähigkeiten, zB. Art von MedienCANCELREGISTERINFO, PRACK, UPDATE, MESSAGE, REFER, SUBSCRIBE, NOTIFY
SIP RESPONSE-KLASSEN
Informational (100 Trying, 180 Ringing) Success (200 OK) Redirection (301 Moved Perm. 302 Moved Temp.) Client-Error (400 Bad Request, 401 Unauthorized,…) Server-Error (500,501,502,505) Global-Failure (600 Busy, 606 Not Acceptable)
SIP ADRESSE
SIP-URLDNS zur NamensauflösungForm ähnlich Email Adresse
user@domainuser@ip-addressphonenr@domain
userinfo@hostport[;url-parameter]
SIP – EINFACHER VERLAUF
SIP - KOMPONENTENClient
SIP USER AGENT (=end-user device)soft-phone, cell phone, SmartPhone, IP-phone, etc. (also called UAC)
ServerSIP Proxy Server
Nimmt Anfragen der UACs entgegen und leitet diese entsprechend weiterSIP Redirect Server
Informiert UACs wie sie zum Ziel kommen, ohne weiterzuleiten (Umleitung)SIP Registrar Server
hier registrieren sich UACsInformation in Location Server gespeichert (oft ident)
SIP Gateway, VoiceMail, IVR ServerSpezialformen
SIP – PROXY MODE
S1, S2,… hier Abgekürzt für den normalen SIP Verlauf (Invite, Trying, Ringing, OK, Ack, Bye,…)Proxy-Mode: Der Proxy Server nimmt alle anfragen entgegen und leitet sie weiter. Dabei trägt er sich im „Via“ Header ein. Die Antworten kommen wieder über ihn zurück.
SIP – REDIRECT MODE
S1, S2,… hier Abgekürzt für den normalen SIP Verlauf (Invite, Trying, Ringing, OK, Ack, Bye,…)Redirect-Mode: Der Redirect Server antwortet auf Anfragen mit der tatsächlichen Adresse des gewünschten Teilnehmers. Teilnehmer A verbindet anschließend direkt mit Teilnehmer B.
SIP – FORKINGAnrufverzweigung mit SIP
•Bei Konferenzen•Benutzer mit mehreren Clients (Home, Office, Mobile,…)
Forking Proxy stellt eine funktionelle Komponente dar, die PS oder RS implementiert wird.
SIP - REGISTRATIONRegistrierung der Lokation von Teilnehmern (IP, Port)verwendete Komponenten:
Registrar mit Location ServerUAC
Teilnehmer können sich mittels SIP-Request <REGISTER> anmeldenimmer notwendig, um erreichbar zu sein, wenn Adresse nicht statisch beim Server hinterlegt
Expires gibt Gültigkeitsdauer anThird Party Registration möglichSecurity???
SIP - SECURITYThema SIP-Security:SIP Systeme sind beliebte Angriffsziele mit folgenden Attacken:
Spoofing (faking SIP identity) Eavesdropping of SIP calls ('Lauschangriff' z.B. Cain and Abel) Traffic analysis (who is communicating and what is type of session etc.) DoS (Denial on Service)
Methoden um sich dagegen zu schützen:-> Client/Server authentication (UA-US) -> SIP Request authorization-> Use of Encryption (avoiding plain text SIP Messages) *) -> MIC (message integrity check) -> Reply protection*) f.e. Hop-by-Hop Encryption mit IPSec
SIP – SECURITY (2)Was sind Hauptmotive um SIP Security Anstrengungen umzusetzen:1. Ensure privacy
Anonyme SIP calls, Personalisierte Services
2. Billing and accountingSicherstellen, dass entsprechend der genutzten Bandbreite bezahlt wird. („Fraud Prevention“)
3. Regulatory requirementsCall-ID blocking (unerwünschte Anrufe an Hand einer black list blockieren)Call tracing (criminal attention)Emergency call services Multi-Level Prioritization and preemption
IAX2
Inter Asterisk eXchange Protocol Version 2.0Besonders geringer OverheadVoIP Telefonie über 56kb/s Modem möglich
In Kombination mit Schmalbandcodec (zb. G.723, G.729)
Signalisierung und Datenübertragung in einem KanalNAT wird vollständig unterstützt
Entstehung nicht durch Standardisierung sondern aus Praxis (Mark Spencer)
IAX2 IN IP
IAX2 basiert auf UDP Port 4569.Maximale Paketlänge 32768 B
IAX2 HEADER MODES
Full Header (12 Byte)Für Übermittlung von Steuersignalen
Mini Header (4 Byte)Für Übermittlung von Nutzlast
RTP … REAL TIME PROTOCOLEchtzeitkommunikation:
Fehlerkontrolle mit Quittungen nicht möglich-> RTCP … RTP Control Protocol
Empfänger sendet periodisch Berichte an Sender
IETF RFC 3550 seit Juli 2003 (vormals RFC 1889)RTP in Form von Session muss auf- und abgebaut werden
RTP … WAS KANN ES NICHT
Reines Transportprotokoll für Sprachübermittlung (bei VoIP)Hat keine Mechanismen zum Auf- und AbbauU.a. gemeinsames Prinzip der Codierung muss Sig.Prot aushandeln (SDP bei SIP als „Body“, H.245 in H.323 enthalten, daher komplex)
DIE RTP SESSION
…besteht aus 2 Kanälen (MC, MCC)Port 5004 (Ziel) wird kaum verwendet, dynamischRTCP-Port meist RTP-Port + 1
RTP/RTCP IN IP
KONZEPT UND FUNKTION VON RTP
Übermittlung von Echtzeitmedien in PaketenGarantie der Reihenfolge durch NummerierungGarantie der Isochronität mittels ZeitstempelTransport unterschiedlicher Formate
Welche durch Profiles genau bezeichnet sindTranslator und Mixer Einsatz
Übersetzen von Medienformaten (Translator)Mehrere Bitströme zu einem Mischbitstrom (Mixer)
DAS RTP PAKET
V .. VersionP .. PaddingM .. MarkerPT .. Payload Type
(eingesetzter Codec)Änderung währendStream möglich!!!
CSRC .. Wird bei Mixer Einsatz verwendetSSRC .. Dient zur Identifizierung der QuelleTimestamp .. Zum Ausgleich von Schwankungen der Übertragungszeit (Jitter)
RTCP - AUFGABEN
Überwachung der ÜbertragungsqualitätIdentifikation der Quelle durch CNAME
SSRC bei RTP kann zB. Von Mixer geändert werdenUnterstützung der Mehrpunkt-Kommunikation
zB. bei Konferenzen können Namen der Teilnehmer angezeigt werden, auch ohne vorherige An- oder Abmeldung
RTCP PAKET - TYPEN
SR Sender ReportBeschreibt Qualität aus Sicht des Senders
RR Receiver ReportWichtigste QualitätsüberwachungseinrichtungDaten: zB. Geschätzte Paketverlust-, Jitter-Werte aus Sicht des Empfängers
SDES Source DescriptionBYE AbmeldungAPP Applikationsspezifisches PaketLetzten 3 bei VoIP keine Verwendung
RTCP IN IP
Reihenfolge prinzipiell nicht definiert.
SRTP
Größte Gefahren bei RTPAbhörbarDoS
-> SRTP IETF RFC 3711Verschlüsselung, Signation, Integrität, Anti-ReplayKey Management Protokoll vorausgesetzt
Master KeyVerschlüsselung basiert auf AESRTCP auf gleiche Weise gesichert
KMP
IKE wie bei IPSec kommt den Echtzeitbedingungen nicht nach-> MIKEY (Multimedia Internet KEYing)Kryptografischer Kontexte in 2 Nachrichten ausgehandelt (Diffie Hellman, RSA,…)genaue Erläuterung bedarf einer weiteren Vorlesung
CODECS
Für Sprache:Abtastwert-orientiert (sample-based)
Abtastung (Sprache etwa 8.000*1/s)jedes Sample wird kodiert-> PCM bzw. ADPCM (>16kb/s)
Segment-orientiert (frame-based)Abtastung80 bzw 160 Samples (10 bzw 20ms) werden analysiert (Anwendung von Filtern, die menschliche Sprache nachbilden) und codiert-> LPC bzw. CELP (<16kb/s)
CODECSITU-Standards:G.711a PCM 64kb/s SampleG.711u PCM 64kb/s SampleG.726 ADPCM 32kb/s SampleG.729 CS-ACELP 8kb/s
FrameG.723 MP-MLQ 6,3kb/s
Frame
LET’S VOIP - VOIP PHONESVerschiedene SIP devices (PDA, Phone, Softphone, WiFi Handheld):
Thomson 2030,IP Phone
Zoiper, Softphone
Zyxel P2002, ATA Pirelli, WLAN GSM
by Philipp Sima
WAS IST ASTERISK?
Asterisk ist eine freie Software.Entwickelt für Linux, BSD, Mac aber auch Windows.Die Funktionen decken die einer Telefonanlage ab.Asterisk unterstützt sehr viele Protokolle, Codecs und SchnittstellenAsterisk übernimmt Sprachdienste-> Asterisk ist extrem flexibel und daher sehr vielseitig einsetzbar
Gateway, LCS (least cost routing)IVR (interactive voice response), ConferencingBillingCluster
ASTERISK != ASTERIX
Asterisk klingt verwechselnd ähnlich zu Asterix.Asterix hat mit Asterisk (oder umgekehrt) nichts zu tun.Dennoch gibt es ein Softphone namens „Idefisk“ (heute „Zoiper“genannt)
Asterisk ist die Bezeichnung des *(Wildcart-Symbols), welches sowohl unter Linux als auch am Telefon häufig verwendet wird.* ist ein Ausdruck für Flexibilität
WISSENSWERTES ÜBER DIE ENTWICKLUNG
Mark Spencer (Markster, 8.4.1977)founder, chairman and CTO of Digium
Digium Inc.ursprünglich als Linux Support UnternehmenDa kein Geld für eine Telefonanlage -> beginn von AsteriskDigium verkauft Schnittstellen (Hardware) für Asterisk Anlagen, sowie eine Business Lizenz (mehr Tests)Hauptsponsor von Asterisk
IAXy
WEITERE HERSTELLER
BeronetVertrieb von Digium in DeutschlandHersteller von eigenen Karten (ISDN, GSM)beronet.com
JunghannsVertrieb von eigener Hardware für ISDNjunghanns.net
WAS UM HIMMELS WILLEN IST EINE PBX?
PBX .. Private Branch eXchangekleine Telefonanlage im Besitz von Unternehmen
Siemens Hicom für 1200 Apparate
Alcatel 4200 für 40 Apparate
SOFT PBX
Server mit Linux undAsterisk für mehr als1000 Apparate
ARCHITEKTUR VON ASTERISK
abstrakt, modularMonolithischer Kern umgeben von 4 Schnittstellen
Channel APIApplication APICodec Translation APIFile Format API
Kern implementiert wesentliche Funktionalität in 4 Komponenten
VermittlungsmodulApplication LauncherTranscoderScheduler mit I/O ManagerProtokoll, Codec,… unabhängig (abstrahiert)
ARCHITEKTUR VON ASTERISK
Artikel Open Source S.3-4
INSTALLATION VON ASTERISK
Download der Sourcen von asterisk.orgmake configmake menuconfigmakemake installmake samples
VERZEICHNISSTRUKTUR VON ASTERISK
/etc/asteriskKonfigurationsdateien
/usr/lib/asterisk/modulesApplications, Formats, Codecs, Channels
/var/lib/asteriskastdb (like windows registry)Subverzeichnisse: agi-bin, firmware, keys, sounds, moh
/var/log/asterisk/var/spool/asterisk
Subverzeichnisse: outgoing, tmp, voicemail
CHANNEL CONFIG FILE: SIP.CONF
[philipp] type=friend callerid=“Philipp Sima" <280> username=philipp host=dynamic secret=******** dtmfmode=rfc2833 nat=yes qualify=yes context=sima
AEL: ASTERISK EXTENSION LANGUAGE
[meine-telefone]exten => 23,1,Wait(1)exten => 23,2,Answer()exten => 23,3,Playback(hello-world)exten => 23,4,Wait(1)exten => 23,5,Hangup()
context meine-telefone {23 => {
Wait(1); Answer(); Playback(hello-world); Wait(1); Hangup();};
};
ENUM
E.164 NUmber MappingÖsterreich Vorreiterrolle (seit Dezember 2004)enum.at (gehört zu nic.at)
verwaltet 3.4.e164.arpaöffentliches Telefonbuch zum Nachschlagen von VoIP Adressen
verknüpft globale Standard Telefonnummer mit VoIP
MÖGLICHKEITEN DANK ENUM
kostenlose VoIP Telefonie weltweit möglichKonvergenz zur klassischen Nummerierung
FUNKTION VON ENUM
+43 780 001002-14 (Anschreiben der vollständigen Telefonnummer) 4378000100214 (Entfernen aller Zeichen mit Ausnahme von Ziffern) 4120010008734 (Umkehren der Reihenfolge der Ziffern) 4.1.2.0.0.1.0.0.0.8.7.3.4 (Einfügen von Punkten zwischen den Ziffern) 4.1.2.0.0.1.0.0.0.8.7.3.4.e164.arpa (Anfügen der globalen ENUM-Domain e164.arpa)
FUNKTION VON ENUM
spezieller DNS EintragNAPTR-Records
Eintrag von 2.0.0.1.0.0.0.8.7.3.4.e164.arpa:@ IN NAPTR 100 100 U E2U+sip !^.*$!sip:4378000100214@sip.phsnet.at! .
LIVE ansehen!
LITERATUR
Asterisk Documentation Projecthttp://www.asteriskdocs.org/Asterisk – TFOT The Future Of Telephony v2.0 (Aug 08)
Das Asterisk Buchhttp://www.das-asterisk-buch.de/2.1/