Mechanismus přenosu VoIP spojení obvykle obsahuje série výměny signalizačních signálů mezi koncovými body spojení, dva perzistentní (trvalé) média streamy (jeden pro každý směr), které nesly aktuální konverzaci.
IAX ( The „Inter-Asterisk eXchange“ Protocol)
Jedná se o otevřený protokol, čili jej může kdokoliv stáhnout a použít ve svém projektu, dodnes však není standardem IETF, což se však očekává od novější verze IAX2 v dohledu několika let.
IAX protokol byl vyvinut firmou Digium pro účely komunikace s ostatními Asterisk servery. Je důležité vědět, že IAX není limitován pouze na Asterisk, ale standart je otevřen pro kohokoliv a podporován mnoha open source telekomunikačními projekty stejně jako výrobci hardwaru.
IAX je transportní protokol, který využívá jeden UDP port 4569 jak pro signalizaci tak pro streamy.
Jeho unikátní vlastností je seskupování několika relací do jednoho datového proudu, což může být obrovská výhoda ve využití šířky pásma pokud posíláme mnoho simultánních kanálů. Tato schopnost (trunking) umožňuje několika různým streamům být reprezentovány jednou datagramovou hlavičkou ,což sníží režijní náklady spojené s jednotlivými kanály. To napomáhá nižšímu zpoždění a redukuje požadavky na šířku pásma. Pokud tedy máte velký počet IP volání mezi dvěma koncovými body, měli byste se na IAX trunking zaměřit.
Ačkoliv byl IAX optimalizován pro hlas, obdržel spoustu kritiky pro špatnou podporu videa. Ve skutečnosti IAX drží potenciál přenášet mnohem více různých požadovaných médií a to díky tomu, že je otevřený a budoucí typy médií mohou být v budoucnu implementována dle požadavků komunity.
IAX obsahuje schopnost ověření třemi způsoby: plain text, MD5 hashování a RSA výměna klíčů. Je také schopen provoz šifrovat použitím dynamické výměny klíčů během sestavování spojení (call setup) konfigurací možnosti encryption=aes128 umožňující automatickou změnu klíčů.
IAX2 protokol bych vědomě navržen k práci za zařízeními používající NAT. Použitím jednoho UDP portu jak pro signalizaci tak streamy snižuje počet děr ve firewallu na minimum. Díky tomu je považován za jednoho z nejsnadnějších protokolů k implementaci v zabezpečených sítích.
Hovor pomocí IAX nebo IAX2 obsahuje 3 kroky k inicializaci.
A) Sestavení spojení - Terminál započne spojení a pošle „new“ zprávu. Volaný terminál odpoví zprávou „accept“ a volající odpoví také ACK. Následuje signál volaného „RINGING“ o tom, že zvoní, potvrzeno ACK od volajícího. Ve chvíli, kdy dojde k vyzvednutí hovoru posílá volaný „ANSWER“, volající potvrdí ACK a začíná hovor
B) M a F rámce jsou poslány každý jedním směrem s audio daty. Každý stream zahrnuje většinou IAX Mini rámce (M frames), které obvykle obsahují jednoduchou 4 – bytovou hlavičku, která je šetrná k využití šířky pásma. Stream je doplňován pravidelnými plnými rámci (Full frames), které obsahují synchronizační informace. Je důležité si uvědomit, že tyto audio streamy a signalizace využívají stejný UDP protokol a tudíž dojde k vyhnutí se případným problémům s NATem.
C)Ukončení spojení je provedeno jednoduše vysláním „HANGUP“ zprávy a jejím potvrzením.
Literatura:
Asterisk : The Future of Telephony by Jared Smith ; Jim Van Meggelen ; Leif Madsen, ISBN 13: 9780596510480