Articole & Tutoriale VoIP

Despre VoIP - Ce este IAX?

30 May 2007

In partea a patra a articolului "Despre VoIP" vom prezenta un alt protocol utilizat in sfera VoIP: IAX.

Ce este IAX?

IAX reprezinta prescurtarea de la Inter Asterisk eXchange, fiind dezvoltat initial de Mark Spencer ca un protocol de comunicare VoIP intre doua centrale Asterisk sau intre o centrala Asterisk si un echipament VoIP. In prezent se foloseste versiunea a doua a acestui protocol (IAX2), specificatiile fiind cele descrise in documentul http://tools.ietf.org/id/draft-guy-iax-03.txt

Principalele scopuri urmarite de acest protocol sunt de a minimiza latimea de banda utilizata pentru transmisiile multimedia (optimizarea fiind pentru comunicatiile de tip voce), de a oferi suport pentru NAT (Network Address Translation) si de a simplifica configurarea aplicatiilor de tip firewall.

Scurta descriere a protocolului IAX

Structura protocolului IAX se bazeaza pe multiplexarea flux-lui de semnalizare si a fluxurilor multimedia intr-un singur stream UDP (User Datagram Protocol) intre doua echipamente, fiind un protocol punct-la-punct. Avand un sigur stream UDP (definit de obicei pe portul 4569) setarile pentru firewall sunt usor de efectuat si implementat.

Comunicarea se face prin intermediul unor frame-uri, principalele fiind "Full Frame", "Mini Frame" si "Meta Frame". Primul tip de frame-uri este folosit in principal pentru control, este singurul care solicita o confirmare a receptiei iar lungimea standard a header-ului este de 12 octeti. Confirmarea poate fi facuta explicit, prin transmiterea mesajului ACK (acknowledgment) sau implicit, prin transmiterea unui raspuns corespunzator mesajului receptionat.

Al doilea tip de frame-uri este folosit pentru continutul de voce, nu garanteaza receptia si are o lungime a header-ului de 4 octeti. Al treilea tip de frame-uri este folosit in cazul transmisiilor video sau a transmiterii mesajelor de control in cazul unor transmisii multimedia multiplexate.

Toate aceste frame-uri contin un camp denumit "time-stamp" care permite sincronizare frame-urilor in ordine cronologica chiar daca acestea au ajuns in alta ordine.

Frame-urile de control pot contine date de tipul DTMF, Voce, Video, Control, Null, IAX2, Text, HTML sau Comfort Noise, conform tabelului de mai jos.

Frame de control

Note 1: Mini Frames carry the low 16 bits of the peer's 32-bit time-stamp.

Note 2: Full frames re-sync the 32 bit time-stamp when the 16 bit time-stamp overflows.

Comparatie intre IAX si SIP

Principalele diferente intre cele 2 protocoale sunt urmatoarele:

Banda ocupata banda ocupata de IAX este mai mica, diferenta fiind in transmiterea mesajelor in format binar (IAX) spre deosebire de formatul text (SIP). IAX este optimizat de asemenea pentru minimizarea antetelor de mesaje.

NAT Semnalizare si datele sunt transmise impreuna in cazul protocolului IAX, prevenind problemele NAT ce apar uzual in cazul folosirii protocolului SIP.

Standardizare si utilizare Protocolul SIP este standardizat de IETF de o perioada lunga de timp si este utilizat pe scara larga de foarte multi producatori de echipamente VoIP. Protocolul IAX este inca in curs de standardizare astfel incat nu exista multe echipamente care sa permita utilizarea acestuia.

Porturi folosite Protocolul IAX foloseste un singur port (4569) pentru semnalizare si date, acestea fiind multiplexate intr-un singur stream UDP. Protocolul SIP foloseste un port pentru semnalizare (5060) si doua porturi RTP pentru fiecare conexiune audio.

Utilizarea unui server Protocolul SIP permite ca dupa stabilirea unei sesiuni, datele aferente apelului sa nu mai fie retransmise de server, cele doua echipamente putand sa comunice direct intre ele. Metoda este cunoscuta sub numele de SIP Re-Invite. Protocolul IAX foloseste o metoda similara, cunoscuta sub numele de IAX Native Transfer. Pentru ambele protocoale, echipamentele trebuie sa foloseasca aceleasi codec-uri, in caz contrar apelul fiind in continuare monitorizat si transcodat de server. Trebuie remarcat insa ca in cazul "decuplarii" serverului monitorizarea apelurilor (in scopul taxarii) va fi imposibila.

Functionalitati specifice Protocolul IAX a fost optimizat pentru VoIP si transmisii multimedia, avand functionalitati extinse cand este utilizat impreuna cu un server Asterisk (de exemplu se pot transmite si receptiona planurile de apel). Protocolul SIP este un protocol generic, putand transmite orice informatie (nu doar audio sau video).

Asteptam comentariile si sugestiile dumneavoastra pe adresa info@modulo.ro cat si pe forumul VOIP - totul despre voice over ip, cu subiectul Ce inseamna IAX.