You are on page 1of 20

Session Initiation Protocol (SIP) and other Voice over IP (VoIP) protocols and applications

Henrik Ingo1

The Session Initiation Protocol (SIP) is an Internet Engineering Task Force (IETF) standard used in Voice over IP (VoIP). The Real-Ti e Protocol (RTP) is used !or the real-ti e trans"ortation o! data such as voice and video. The SIP "rotocol has its "ro#le s$ in "articular %ith traversing !ire%alls and &'T (&ative 'ddress Translation). 'lso encr("ted connections is still a develo"ing area. So e historical and current alternatives to SIP are also discussed. 's %ith other Internet technologies$ Free So!t%are has #een at the !ore!ront o! innovation. 'sterisk is a "o"ular IP-P)* server !or use in co "anies and institutions #ut there are "o"ular "ro"rietar( co "etitors. +"enSER is a strong SIP Pro,( in teleco co "anies.

There are several good Free So!t%are client a""lications$ Ekiga (!or er -no e.eeting)$ /Phone$ +"en0engo and #eco e inisi" are entioned here. .an( have ho%ever not ainstrea #ecause o! initiall( onl( su""orting the 1inu, o"erating s(ste . So eti es ade "ro"rietar( Sk("e the

a""lications have o itted codecs due to !ear o! so!t%are "atents. The ease o! its use$ es"eciall( its "eer-to-"eer ins"ired circu venting o! !ire%all and &'T o#stacles$ has "revail in the end.
This article is freely distributable under the terms of the Creative Commons Attribution license: http://creativecommons.org/licenses/by/2.5/ (Screenshots of cited applications are copyright their respective o ners.!

ost "o"ular VoIP a""lication so !ar$ #ut it is argued that alternatives #ased on o"en standards %ill

1 Sesca Technologies$ Finland2 henrik.ingo3o"enli!e.cc

T')1E +F 4+&TE&TS 1 Session Initiation Protocol and real ti e "rotocol................................................................... 5 1.1 Voice over IP....................................................................................................................5 1.6 Session Initiation Protocol................................................................................................5 1.5 Real-Ti e Protocol.......................................................................................................... 5 1.7 SIP Pro,(..........................................................................................................................7 1.8 The SIP "rotocol$ a #asic introduction............................................................................. 8 1.9 Pro#le s %ith SIP............................................................................................................ : 1.; Further reading............................................................................................................... 11 6 'lternatives to SIP................................................................................................................. 11 6.1 H.565.............................................................................................................................. 11 6.6 <a##er$ also kno%n as *.PP......................................................................................... 16 6.5 Inter-'sterisk E,change Protocol #( 'sterisk (I'*6)...................................................16 6.7 Skinn( 4lient 4ontrol Protocol #( 4isco (S44P).......................................................... 15 5 Server a""lications................................................................................................................. 15 5.1 'sterisk...........................................................................................................................15 5.6 +"enSER........................................................................................................................ 17 5.5 SIP !oundr( Si"*............................................................................................................18 7 4lient a""lications.................................................................................................................. 18 7.1 Ekiga (!or er -no e.eeting)...................................................................................... 18 7.6 /Phone........................................................................................................................... 19 7.5 +"en0engo....................................................................................................................19 7.7 .inisi"............................................................................................................................ 1; 8 Sk("e......................................................................................................................................1; )i#liogra"h(............................................................................................................................. 1=

1 "."

SESSI+& I&ITI'TI+& PR+T+4+1 '&> RE'1 TI.E PR+T+4+1 #oice over $% Voice over IP (VoIP) is an( technolog( that !acilitates the trans ission o! voice

data over an IP net%ork$ such as the Internet. The t%o (or as ter inals or clients - could #e an( device %ith a P4 co "uter or so ething rese #ling a traditional "hone.

ore) end"oints - o!ten re!erred to

icro"hone and s"eaker$ such as a nor al

$llustration ".": T o devices connected by the $nternet

".2

Session $nitiation %rotocol The Session Initiation Protocol (SIP) is a standard used in Voice over IP. It is

standardised #( the Internet Engineering Task Force (IETF). The current version o! the standard is SIP?6.@ and codi!ied #( RF4 5691 (Rosen#erg A al$ 6@@6). SIP is a signaling "rotocol$ %hich eans that it is not actuall( res"onsi#le !or trans itting the voice data$ rather its "ur"ose is to initiate (hence the na e)$ coordinate and tear do%n a co unication session #et%een t%o end"oints - "eers. 4o "ared to a traditional tele"hone$ the ringing o! a "hone$ the #us( tone and the ending o! a call are all !unctions the SIP "rotocol is res"onsi#le !or. 0hen considering the i "ortance o! SIP it is %orth to e,tensivel( in the IP .ulti edia Su#s(ste (I.S) that "rovides generation (5-) (ears. ".& 'eal(Time %rotocol The Real-Ti e Protocol (RTP) is used !or the real-ti e trans"ortation o! data. In the case o! Voice over IP it is used to trans it voice$ #ut it is use!ul !or the trans it o! an( data$ such as video or so e real-ti e easure ent data$ to na e other e,a "les. 'lso the RTP "rotocol is standardised #( the IETF$ in RF4 588@. (SchulBrinne A al$ 6@@5)
3

ention that SIP is used ulti edia services in third

o#ile "hones (IP .ulti

edia Su#s(ste $ 6@@;) .

This auto aticall( gives it so e

%ide industr( su""ort and ensures that it %ill #e a relevant "rotocol !or at least the ne,t 1@

It is %orth to note that even i! there are

an( alternatives to SIP %hen it co es to ost o!

signaling "rotocols$ RTP is the "rotocol used !or data trans ission together %ith RTSP "rotocol. >ue to its

the $ though not all. RTP is also used in an( ulti edia strea ing solutions$ such as the

an( usage scenarios and rather lo%-level nature$ the RTP "rotocol is

Cuite co "le, and there!ore it is outside o! the sco"e o! this article to go into !urther details o! its inner %orkings. For the reader it su!!ices to think o! it as a data trans ission "rotocol. 4o #ining the SIP and RTP "rotocols %e can then esta#lish a VoIP call. Those readers !a iliar %ith the %ell kno%n File Trans!er Protocol (FTP) (Postel$ 1=:8) can see the analogue in having se"arate co and and data trans!er channels.

SIP RTP
$llustration ".2: A #o$% call bet een t o peers using the S$% protocol for signaling and 'T% for transmission of voice data.

".)

S$% %ro*y The SIP "rotocol is designed as a "eer-to-"eer "rotocol (as o""osed to a client-

server architecture). That

eans that all "arties are eCual "eers and de"ending o! %ho intitiates

so e s"eci!ic action$ each "art( %ill in turn #e #oth the client and server. In "ractice ho%ever i "le entations se"arate #et%een +ser Agents and %ro*ies. ' S$% %ro*y is co "ara#le to a sa e as %ith Internet user ail server or %e# server$ %hereas the Dser 'gents are the a( !reCuentl( change its IP address$ or the a( o!ten #e turned o!!$ thus leaving client a""lications or ter inals used #( end users. The reasons !or this architecture are the ailE 'n end user device a( use di!!erent devices and o! course the device

no#od( to res"ond to inco ing calls. ' SIP Pro,( there!ore "rovides a constant location %hich is al%a(s on$ %aiting !or (our call and read( to route it to the reci"ient.

SIP RTP

SIP

$llustration ".&: %lacing a S$% call through a pro*y

&ote ho%ever$ that once the connection has #een

ade using the SIP "rotocol$ the

RTP connection is ade directl( #et%een the end-"oints$ %ith no inter ediate server (un!ortunatel($ there are situations %hen this is not "ossi#le). The reasons !or this are e!!icienc(. Routing thousands o! voice strea s through so e centralised server %ould #e a tre endous load !or a server to #ear$ and even in the #est case %ould introduce e,tra lag #et%een the end"oints. The SIP "rotocol on the other hand is a leight%eight te,tual "rotocol and a SIP Pro,( can easil( service illions o! calls "er second (IPTel.org$ 6@@;). 0hile onl( one SIP Pro,( is de"icted in Illustration 1.5$ there can #e t%o or "ro,ies ".5 ediating the connection. The S$% protocol, a basic introduction The SIP "rotocol can #est #e descri#ed as a h(#rid #et%een t%o other "o"ular IETF "rotocolsE S.TP ( ail) and HTTP (%e#). ' SIP call is o#viousl( ade -rom so e#od($ To so e#od($ Fust like sending e ail. +n the other hand$ %here a""lica#le$ the authors o! SIP has chosen to use si ilar status codes as in HTTP. So e essages contain a "a(load o! content t("e application/sdp. S>P is a ore

"rotocol to e,change "ara eters related to %hat content t("es and codecs can #e used !or the RTP "rotocol data. For the "ur"ose o! this article$ those "ortions can si "l( #e ignored. )elo% is a seCuence o! a SIP dialogue %here a call is success!ull( esta#lished.
A --> B: Dialogue is initiated with INVITE command. Connection is made from A to a I! !ro"#$ which then transmits the in%itation to B. INVITE sip:atilaaja@sesca.com SIP/2.0 Via: SIP/2.0/UDP 10.0.0.7:34 !"#$%a&c'()*'+4$,-..../--0 7!43-#%po%t 1a2-3o%4a%0s: 70 5o&tact: 6sip:$tilaaja@10.0.0.7:34 !"7 To: 8$tilaaja86sip:atilaaja@sesca.com7 3%om: 8$tilaaja86sip:$tilaaja@sesca.com7#ta9(7c32a:"e 5all-ID: ;T3iNjc0<j1)=D91<2>3=+Vi=DI2;T<1;+?m1T9!1)U. 5Se@: 1 INVITE

Allo4: INVITEB A5,B 5AN5ECB ;PTI;NSB D<EB ?E3E?B N;TI3<B 1ESSA+EB SUDS5?IDEB IN3; 5o&te&t-TEpe: applicatio&/s0p Use%-A9e&t: F-Cite %elease 100"e stamp 3402! 5o&te&t-Ce&9t': 2"* G(0 o(- 7 2 IN IP4 127.0.0.1 s(5oH&te%Pat' F-Cite 3.0 c(IN IP4 127.0.0.1 t(0 0 m(aH0io 2"4 " ?TP/AVP 107 11* 0 * a(:mtp:101 0-1! a(%tpmap:107 DV32/1"000 a(%tpmap:11* DV32-3E5/1"000 a(%tpmap:* iCD5/ 000 a(%tpmap:101 telep'o&e-eGe&t/ 000 a(se&0%ecG

3 101

A &-- !ro"#: !ro"# res'onds with ()*$ challenging A to authenticate itself. Authentication is done with Digest method$ same as in +TT!. SIP/2.0 407 P%o2E AHt'e&ticatio& ?e@Hi%e0 Via: SIP/2.0/UDP 10.0.0.7:34 !"#$%a&c'()*'+4$,-..../--0 7!43#%po%t(34 !"#%eceiGe0(10.1.2."* To: 8$tilaaja86sip:atilaaja@sesca.com7#ta9($"3:3..../2.1030 3%om: 8$tilaaja86sip:$tilaaja@sesca.com7#ta9(7c32a:"e 5all-ID: ;T3iNjc0<j1)=D91<2>3=+Vi=DI2;T<1;+?m1T9!1)U. 5Se@: 1 INVITE P%o2E-AHt'e&ticate: Di9est %ealm(8sesca.com8B &o&ce(84!a:2e 4 e133*23 c0 ::7*1030*1e73e*3:$28B @op(8aHt'8 Se%Ge%: ;pe&F9 ;pe&SE? I1.1.0-p%e2-tls Ii3 "/li&H2JJ 5o&te&t-Ce&9t': 0 A --> !ro"#: A sends ac,nowledgement to !ro"#$ that the 're%ious message was recei%ed. A5, sip:atilaaja@sesca.com SIP/2.0 Via: SIP/2.0/UDP 10.0.0.7:34 !"#$%a&c'()*'+4$,-..../--0 7!43-#%po%t To: 8$tilaaja86sip:atilaaja@sesca.com7#ta9($"3:..../":2.1030 3%om: 8$tilaaja86sip:$tilaaja@sesca.com7#ta9(7c32a:"e 5all-ID: ;T3iNjc0<j1)=D91<2>3=+Vi=DI2;T<1;+?m1T9!1)U. 5Se@: 1 A5, 5o&te&t-Ce&9t': 0 A --> B: A sends INVITE again$ now with Digest authentication data included. INVITE sip:atilaaja@sesca.com SIP/2.0 Via: SIP/2.0/UDP 10.0.0.7:34 !"#$%a&c'()*'+4$,-..../--0 7!43-#%po%t 1a2-3o%4a%0s: 70 5o&tact: 6sip:$tilaaja@10.0.0.7:34 !"7 To: 8$tilaaja86sip:atilaaja@sesca.com7 3%om: 8$tilaaja86sip:$tilaaja@sesca.com7#ta9(7c32a:"e 5all-ID: ;T3iNjc0<j1)=D91<2>3=+Vi=DI2;T<1;+?m1T9!1)U. 5Se@: 2 INVITE Allo4: INVITEB A5,B 5AN5ECB ;PTI;NSB D<EB ?E3E?B N;TI3<B 1ESSA+EB SUDS5?IDEB IN3;

5o&te&t-TEpe: applicatio&/s0p P%o2E-AHt'o%i)atio&: Di9est Hse%&ame(8$tilaaja8B%ealm(8sesca.com8B&o&ce(84!a:2e 4 e133*23 c0 ::7*1030* 1e73e*3:$28BH%i(8sip:atilaaja@sesca.com8B%espo&se(80e$2703!!!e4:e40 3*a*c00 e *0e008Bc&o&ce(87"1$ce0a ee *a"a8B&c(00000001B@op(aHt'Bal9o%it'm(1D! Use%-A9e&t: F-Cite %elease 100"e stamp 3402! 5o&te&t-Ce&9t': 2"* G(0 o(- 7 2 IN IP4 127.0.0.1 s(5oH&te%Pat' F-Cite 3.0 c(IN IP4 127.0.0.1 t(0 0 m(aH0io 2"4 " ?TP/AVP 107 11* 0 * a(:mtp:101 0-1! a(%tpmap:107 DV32/1"000 a(%tpmap:11* DV32-3E5/1"000 a(%tpmap:* iCD5/ 000 a(%tpmap:101 telep'o&e-eGe&t/ 000 a(se&0%ecG

3 101

A &-- !ro"#: !ro"# sends a 'ro%isional res'onse -))$ which means that it has recei%ed the in%ite from A and is now tr#ing to forward it to B. .The /#our call is im'ortant to us/ string is t#'ical of 0'en E1$ the I! !ro"# 2eing used.3 SIP/2.0 100 t%Ei&9 -- EoH% call is impo%ta&t to Hs Via: SIP/2.0/UDP 10.0.0.7:34 !"#$%a&c'()*'+4$,-..../--0 7!43#%po%t(34 !"#%eceiGe0(10.1.2."* To: 8$tilaaja86sip:atilaaja@sesca.com7 3%om: 8$tilaaja86sip:$tilaaja@sesca.com7#ta9(7c32a:"e 5all-ID: ;T3iNjc0<j1)=D91<2>3=+Vi=DI2;T<1;+?m1T9!1)U. 5Se@: 2 INVITE Se%Ge%: ;pe&F9 ;pe&SE? I1.1.0-p%e2-tls Ii3 "/li&H2JJ 5o&te&t-Ce&9t': 0 A &-- B: B has now recei%ed the in%itation from the !ro"# and answers with -4) which means that it is now ringing .as in /the 'hone is ringing/3 and waiting for the user to answer the call. SIP/2.0 1 0 ?i&9i&9 Via: SIP/2.0/UDP 10.0.0.7:34 !"#%eceiGe0(10.1.2."*#$%a&c'()*..../-43#%po%t(34 !" ?eco%0-?oHte: 6sip:10.1.2.4 #l%#pm#&17 5o&tact: 6sip:atilaaja@10.1.2."*:102"#%i&sta&ce(0ca247" 2:e"140e7 To: 8$tilaaja86sip:atilaaja@sesca.com7#ta9("730c*4: 3%om: 8$tilaaja86sip:$tilaaja@sesca.com7#ta9(7c32a:"e 5all-ID: ;T3iNjc0<j1)=D91<2>3=+Vi=DI2;T<1;+?m1T9!1)U. 5Se@: 2 INVITE Use%-A9e&t: F-Cite %elease 100"e stamp 3402! 5o&te&t-Ce&9t': 0 A &-- B: 5ser B answers .2# 'ic,ing u' the 'hone or 'ressing a 2utton$ etc...3 and B sends 6)) to A$ the 07 command. SIP/2.0 200 ;, Via: SIP/2.0/UDP 10.0.0.7:34 !"#%eceiGe0(10.1.2."*#$%a&c'()*..../43#%po%t(34 !"

?eco%0-?oHte: 6sip:10.1.2.4 #l%#pm#&17 5o&tact: 6sip:atilaaja@10.1.2."*:102"#%i&sta&ce(0ca247" 2:e"140e7 To: 8$tilaaja86sip:atilaaja@sesca.com7#ta9("730c*4: 3%om: 8$tilaaja86sip:$tilaaja@sesca.com7#ta9(7c32a:"e 5all-ID: ;T3iNjc0<j1)=D91<2>3=+Vi=DI2;T<1;+?m1T9!1)U. 5Se@: 2 INVITE Allo4: INVITEB A5,B 5AN5ECB ;PTI;NSB D<EB ?E3E?B N;TI3<B 1ESSA+EB SUDS5?IDEB IN3; 5o&te&t-TEpe: applicatio&/s0p Use%-A9e&t: F-Cite %elease 100"e stamp 3402! 5o&te&t-Ce&9t': 274 G(0 o(- 7 2 IN IP4 127.0.0.1 s(5oH&te%Pat' F-Cite 3.0 c(IN IP4 10.1.2.4 t(0 0 m(aH0io "03*4 ?TP/AVP 107 11* 0 * a(:mtp:101 0-1! a(%tpmap:107 DV32/1"000 a(%tpmap:11* DV32-3E5/1"000 a(%tpmap:* iCD5/ 000 a(%tpmap:101 telep'o&e-eGe&t/ 000 a(se&0%ecG

3 101

A --> B: A sends AC7 command to B as a sign that the 07 command was recei%ed. After this message A and B start 1T! traffic 2ased on the 'arameters that ha%e 2een e"changed$ the call is in 'rogress. A5, sip:atilaaja@10.1.2."*:102"#%i&sta&ce(0ca247" 2:e"140e SIP/2.0 Via: SIP/2.0/UDP 10.0.0.7:34 !"#$%a&c'()*'+4$,-..../-0 7!43-#%po%t 1a2-3o%4a%0s: 70 ?oHte: 6sip:10.1.2.4 #l%#pm#&17 5o&tact: 6sip:$tilaaja@10.0.0.7:34 !"7 To: 8$tilaaja86sip:atilaaja@sesca.com7#ta9("730c*4: 3%om: 8$tilaaja86sip:$tilaaja@sesca.com7#ta9(7c32a:"e 5all-ID: ;T3iNjc0<j1)=D91<2>3=+Vi=DI2;T<1;+?m1T9!1)U. 5Se@: 2 A5, P%o2E-AHt'o%i)atio&: Di9est Hse%&ame(8$tilaaja8B%ealm(8sesca.com8B&o&ce(84!a:2e 4 e133*23 c0 ::7*1030* 1e73e*3:$28BH%i(8sip:atilaaja@sesca.com8B%espo&se(80e$2703!!!e4:e40 3*a*c00 e *0e008Bc&o&ce(87"1$ce0a ee *a"a8B&c(00000001B@op(aHt'Bal9o%it'm(1D! Use%-A9e&t: F-Cite %elease 100"e stamp 3402! 5o&te&t-Ce&9t': 0

The G'llo%EG header a#ove actuall( reveals the essages. In !act SIP can #e used as an instant is needed.) ".. %roblems ith S$%

ost co

on SIP co

ands. +ne

not used in the a#ove dialogue is .ESS'-E$ %hich can #e used to send short te,tual essaging "rotocol too. (In that case$ no RTP

' reader !a iliar %ith Internet technologies should #( no% alread( have s"otted so e o! the o#vious %eaknesses o! SIPE

1.Fire%alls. >ue to !ire%alls$ it is o!ten not "ossi#le !or t%o end"oints to receive inco ing RTP tra!!ic. The #ehaviour o! !ire%alls varies$ so the re edies to overco e this "ro#le are also ultitude.

+!ten !ire%alls %ill actuall( allo% inco ing D>P "ackets (RTP is over D>P in the Internet "rotocol stack) !ro "ackets an IP address i! the end"oint #ehind the !ire%all has sent D>P "ackets to%ards that address !irst. In those cases there is no "ro#le $ so e o! the !irst RTP ight get lost #ut once #oth "arties are sending RTP tra!!ic the( %ill also #e a#le to receive tra!!ic. In other cases a !ire%all a( reall( #lock tra!!ic$ in %hich case so e kind o! server (%hich could #e called RTP Pro,() is needed to route the tra!!ic #et%een the t%o end"oints. 6. &'T (&ative 'ddress Translation). 's can #e seen in the a#ove SIP dialogue$ the SIP co ands contain literal IP addresses in several "laces. Since those addresses are used unication$ the connection %ill !ail i! either end"oint is #ehind a &'T (&ative !or the RTP co to SIP. Various techniCues have #een "ro"osed to overco e the "ro#le s introduced #( &'T. These are kno%n as STD&$ I4E and TDR& (STD&$ 6@@;2 I4E$ 6@@;2 TDR&$ 6@@;). The general idea is !or the SIP Dser 'gent to tr( to deduce its "u#lic IP address and use that in the SIP essages. +n the other hand$ the SIP Pro,( can also contain logic %hich co "ares the IP essage to the one the essage is actuall( seen to originate !ro and essage %ith another IP address %hen needed. ost SIP address given in the SIP angle the SIP iddle

'ddress Translation). This too is a serious "ro#le in toda(Hs Internet$ and a severe li itation

5. 4r("togra"h(. )oth SIP and RTP "rovide !or secure connections$ #ut Dser 'gents still toda( do not su""ort cr("togra"h( o! an( kind or at least not %ell. In the case o! SIP the "ro#le is actuall( t%o!oldE Securing the co

unication

#et%een a Dser 'gent and the nearest SIP Pro,( and #et%een "ro,ies on the one hand and securing the connection #et%een the t%o end"oints on the other hand. The !irst case is solved #( using T1S (Transient 1a(er Securit()$ Fust as in the htt"s "rotocol. The latter is ore co "licatedE Part o! the in!or ation in the SIP #e availa#le to the inter ediate "ro,ies an(%a($ a!ter %hich there is not essages ust

uch le!t to encr("t.

4r("togra"hical algorith s could #e used to authenticate the caller and callee to each other. In
9

this case %e %ould need so e Pu#lic /e( In!rastructure (P/I) to e,change ke(s #et%een all "otential users and thus run into all the sa e reasons %hile e ail too is still ost o!ten sent unencr("ted. So even i! the SIP standard de!ines a %a( to send (S?.I.E)$ it is seldo used in real li!e. essages encr("ted

The RTP "rotocol also de!ines SRTP$ secure RTP. Even i! adding cr("togra"h( to an alread( co "licated standard is not eas( to digest$ SRTP %ould actuall( #e straight!or%ard to i "le ent #ut !or one "ro#le E There are are not co "ati#le %ith each other. 0hile there are SIP solutions availa#le that su""ort encr("ted SIP and RTP co unication$ t("icall( the( are not (et !ull( co "ati#le #et%een vendors. 7. 4o "le,it(. 's a !inal dra%#ack o! SIP %eHll ention here its co "le,it(. 0hile the #asic echanis o! I&VITEs and res"onses is straight!or%ard$ actual SIP dialogues tend to #e rather di!!icult to get right. In addition to the RF4 5691 %hich de!ines the current SIP standard there are over 5@ other RF4Hs that e,tend the #ase RF4. In "ractice di!!erent vendors still su""ort di!!erent SIP GdialectsG$ ie even though t%o i "le entations esta#lishing a call. +ne$ though not #( !ar the onl( one$ reason to this is the desire to can call a "hone on the traditional tele"hone net%ork !ro there are co instance$ %hen calling a traditional "hone$ the caller ake SIP ight #e said to su""ort SIP the( are not necessar( co "ati#le %ith each other #e(ond the #asic !eatures o! ulti"le a""roaches to e,changing the encr("tion ke(s needed (as "art o! the SIP invitation dialogue o! course) and di!!erent client a""lications

su""ort all !eatures o! the traditional tele"hone net%ork. (Indeed$ using a media gate ay one a SIP tele"hone.) )ecause o! this$ ands in SIP that %ould not nor all( #e needed in a "ure IP %orld. For ight #e received %ith a !e ale voice

sa(ing that /The number you have called is currently unavailable/ - in other %ords$ so e error announce ent. Since this is not a success!ull call$ it %ill also not #e #illed as a call. It ust there!ore #e distinct !ro 6@@ +/ co success!ull( connected calls. In SIP this eans that there is no and. )ut that "resents a "ro#le $ since the SIP Dser 'gent cannot start

listening to RTP "ackets #e!ore the 6@@ +/$ %hich contains needed "ara eters !or RTP$ and thus has no "ossi#ilit( to re"la( the announce ent to the user. For this reason$ the RF4 5=9@
(4a arillo$ 6@@7)

de!ines ho% to handle these announce ents and other situations kno%n as early

media.

10

".0

-urther reading To !urther learn a#out the SIP "rotocol the author o! this article reco ends

#ooks #( 'lan <ohnston - one o! the authors o! the SIP "rotocol - in "articular the title coauthored %ith Henr( SinnreichE GInternet 4o unications Dsing SIPE >elivering VoIP and .ulti edia Services %ith Session Initiation ProtocolG (Sinnreich A <ohnston$ 6@@9). ' "o"ular introduction to the RTP "rotocol is the #ook GRTPE 'udio and Video !or the InternetG #( 4olin Perkins (Perkins$ 6@@5). 'lso 0iki"edia (0iki"edia$ 6@@;) has e,cellent articles on all Internet "rotocols "resented here. The &'T and Fire%all "ro#le s "resented are co on to all "eer-to-"eer

"rotocols. The IETF has a s"ecial G.I>4+.G %orking grou" %hich is chartered to !ind solutions to these "ro#le s. It has "roduced t%o docu ents that %ell highlight the "ro#le s and ter inolog( around this issueE RF4Hs 55@5 (Srisuresh$ 6@@6) and 55@7 (S%ale$ 55@7).

'1TER&'TIVES T+ SIP 0e %ill no% #rie!l( enu erate so e alternative VoIP "rotocols and ho% the(

co "are %ith SIP. 2." 1.&2& H.565 is another VoIP signaling "rotocol standardised #( the ITD-T (International Teleco unications Dnion). This is the sa e #od( that standardises tele"hone net%ork #ehavior and indeed$ the H.565 is si ilar to its counter"arts on that net%ork. It could #e #rie!l( descri#ed as a kind o! GIS>& over "acket net%orksG. (H.565$ 6@@;) H.565 %as %idel( used in the nineties and Internet users %ill "erha"s #e !a iliar %ith such a""lications as .icroso!t &et.eeting or -no e.eeting$ %hich #oth used this "rotocol. It too uses RTP !or data trans ission. 0hile H.565 "rovides roughl( the sa e kind o! !unctionalit( as SIP$ it is older and can toda( #e considered nearl( o#solete$ as the Internet co o%nG IETF standard (SIP) instead o! this one. unit( has co e to "re!er Gits

11

2.2

2abber, also 3no n as 45%% <a##er is an *.1 (e,tensi#le arku" language) #ased "rotocol. It %as originall(

develo"ed in 1==: #( <ere ie .iller$ %ho started the <a##er Free So!t%are "roFect (<a##er$
6@@;).

+riginall( its sco"e %as onl( instant

essaging$ #ut as an e,tensi#le "rotocol it has also

co e to su""ort Voice over IP. 4urrentl( <a##er too is standardised %ithin an IETF %orking grou" and is kno%n as the E,tensi#le .essaging and Presence Protocol$ *.PP (*.PP$ 6@@;). The relevant RF4Hs !or *.PP are 5=6@ (Saint-'ndre$ 6@@7a) and 5=61 (Saint-'ndre 6@@7#). The VoIP e,tension to *.PP is kno%n as <ingle and %as develo"ed #( -oogle
(<ingle$ 6@@;).

It too uses RTP !or data trans ission and uses the I4E

ethod to overco e &'T

"ro#le s. 0hile *.PP has long had a re"utation o! #eing a good and %ell designed "rotocol$ it %as the ado"tion o! *.PP #( -oogle !or use in its -oogle Talk service that has lended the "rotocol serious credi#ilit(. *.PP is currentl( the ain challenger to SIP. Even i! SIP has all #ut #een acce"ted as GtheG standard to #e used !or VoIP and is so e%hat set in stone !or the use in current -S. standards$ it is not out o! the Cuestion that so e#od( could develo" a #etter VoIP and instant have #een Cuite to its co "le,it( is its Gdesign #( co essaging "rotocol. 't least it is eas( to argue that there itteeG nature. Perha"s *.PP$ develo"ed !irst #( a an( architects to the doBens o! SIP RF4 docu ents and "erha"s one reason

s all Free So!t%are "roFect and then ado"ted #( a co "an( %ith resources to "ut it into good use$ %ill indeed have a good chance o! #eing the VoIP "rotocol o! the !uture. 2.& $nter(Asteris3 6*change %rotocol by Asteris3 ($A42! 'sterisk is a VoIP server that is covered se"aratel( in the ne,t section. 0hile 'sterisk su""orts several VoIP "rotcols$ >igiu $ the co "an( #ehind the 'sterisk "roFect$ has develo"ed its o%n Inter-'sterisk E,change Protocol$ I'*. It %as !irst used si "l( #et%een 'sterisk servers$ #ut has later #een also i "le ented in so e VoIP ter inals and so!t%are inde"endent o! the 'sterisk "roFect. (I'*$ 6@@;) 'n interesting "ro"ert( o! the I'* "rotocol is that it co #ines #oth signaling and voice data into the sa e data strea $ trans itted over D>P to "ort 789=. Several co unications can #e multiple*ed into this data strea . This overco es ost o! the "ro#le s &'T and !ire%alls "ose to the other "rotocols.

12

2.)

S3inny Client Control %rotocol by Cisco (SCC%! The Skinn( 4lient 4ontrol Protocol (S44P) is a "rotocol used #( 4isco in its

4all.anager server and associated "hone ter inals. It is a "ro"rietar( "rotocol so "u#lic in!or ation is scarce. )ut interestingl( 'sterisk su""orts this "rotocol too through a reverse engineered Free So!t%are odule chan(sccp. Ihtt"E??source!orge.net?"roFects?chan-scc"?J

SERVER 'PP1I4'TI+&S 's %ith other Internet technologies and IETF standards$ Free So!t%are has #een at

the !ore!ront o! innovation %ith the SIP "rotocol. &." Asteris3 The #est kno%n VoIP related Free So!t%are server is 'sterisk$ started #( .ark S"encer. Ihtt"E??asterisk.org?J Even though it is no%ada(s ostl( used as a VoIP solution$ it is ake unications. The easiest %a( ode still also ca"a#le o! "roviding traditional analog or digital tele"hon( services and should an interesting "roFect !or an(one interested in traditional teleco to tr( out 'steriskHs traditional teleco !eatures is %ith a co "uter eCui""ed %ith a

(su""orted #( 1inu,) or an IS>& ada"ter$ #ut >igiu also sells hard%are to ena#le 'sterisk to #eco e a true P)* s(ste (Private )ranch E,change) serving tens or hundreds o! tele"hones. 'sterisk su""orts SIP as one "rotocol to connect %ith$ and out o! the other "rotocols entioned in this article #oth I'* and S44P are also su""orted. 'sterisk uses a conce"t o! channels$ %here di!!erent ter inals can connect %ith di!!erent VoIP "rotocols or traditional tele"hon( inter!aces$ #ut ad inistering the di!!erent channels is - as !ar as "ossi#le inde"endent o! the channel t("e used. There!ore 'sterisk is not reall( a great %a( to learn a#out SIP$ even though it su""orts SIP %ell$ since its inner architecture does not re!lect the "hiloso"h( o! SIP. >ue to the architecture o! 'sterisk it is also straight!or%ard to use it in a con!iguration %here all RTP tra!!ic too is routed through the server$ contrar( to ho% SIP is intended to #e used. This is one %a( o! overco ing !ire%all and &'T "ro#le s #ut 'sterisk is also so eti es used as an inter ediar( #et%een t%o other%ise inco "ati#le SIP ter inals. It can serve as a edia gate%a( translating !ro one codec to another$ or si "l( hel" in connecting t%o devices using inco "ati#le SIP dialects.
13

'sterisk can also easil( #e used as a

edia gate%a($ connecting a SIP client to a

"hone on the traditional tele"hone net%ork. This is in !act a ver( valua#le and o!ten used !unction o! 'sterisk. In this %a( 'sterisk can also #e used in tande %ith +"enSER (see #elo%)$ letting +"enSER #e the SIP Pro,( and 'sterisk !unction as a an a""lication server (such as voice ail). 1inu, version edia gate%a( or also

'sterisk is usuall( availa#le in ost 1inu, distri#utions toda(. ' custo to #uild a dedicated 'sterisk server it is "ro#a#l( the easiest %a( to go. 'sterisk !ro "lethora o! co &.2 ercial IP-P)* o!!erings availa#le.

distri#ution called 'sterisk&o% has also #een "roduced #( the 'sterisk "roFect. I! one %ants 1.7. co es %ith a co "ara#l( eas( gra"hical inter!ace$ "utting 'sterisk co "eting %ith the

7penS6' +"enSER is a !ork o! the original SIP E,"ress Router kno%n as SER. SER %as

develo"ed initiall( #( IPTel.org$ %hose

e #ers all see to have so e connection %ith the "5 !or at %as created). ends !ocusing on +"enSER.

-raunhofer 8esellschaft ( ost !a ous as the "lace %here the )oth "roFects are still active #ut this author reco o! SER (@.=.9) is no% over one (ear old.

0hile the SER ho e"age is still current and actuall( recentl( got a !aceli!t$ the current version

The +"enSER "roFect %as started #( active SER develo"ers %ho did not #elong to the inner circle o! Fraunho!er develo"ers and !elt that the "roFect %as not oving ra"idl( enough. (The !inal catal(st !or the !ork %as the ina#ilit( o! the SER "roFect to "roduce a sta#le release %ith su""ort !or secure connection over T1S$ a !eature that %as dangling in the develo" ent version !or 9 onths.) 0hile 'sterisk is ore geared to%ards use as an o!!ice co "anies or VoIP service illions o! calls P)*$ +"enSER is heavil( geared to%ards use #( teleco

"roviders. It "rovides #road !unctionalit( in logging and accounting$ can serve

"er second and su""orts high availa#ilit( and load #alancing setu"s. Ihtt"E??%%%.o"enser.org?J +"enSER is a SIP Pro,( and as such is not su""osed to deal %ith RTP$ codecs and such issues at all. )ut +"enSER does have a loada#le odules s(ste $ and in !act there are also 'lso odules to route RTP or angle IP nu #ers inside SIP to overco e &'T "ro#le s. odules. In this %a( the an( crucial +"enSER !unctions are i "le ented as

architecture is si ilar to the '"ache %e# server.

14

Si" E,"ress .edia Server$ SE.S is o!ten used together %ith +"enSER to "rovide voice ail$ con!erencing and edia gate%a( !unctionalit(. Ihtt"E??develo"er.#erlios.de?"roFects?se s?J &.& S$% foundry Sip4 There are "ossi#le to ention the an( Free So!t%are SIP !ra e%orks and li#raries availa#le and it is not all here. SIP stacks in "articular see to #e a "o"ular idea !or a Free

So!t%are "roFect$ RTP li#raries there are onl( a !e% availa#le. 0e %ill ho%ever ention one ore Free So!t%are "roFect$ the SIP !oundr($ %hich

"roduces a SIP P)* kno%n as Si"*. The SIP !oundr( also hosts several li#raries related to SIP$ including reSIProcate$ originall( s"onsored #( 4isco and Si"*Ta"i. )oth o! these alternative li#raries are used in so e "ro"rietar( SIP so!t"hones$ !or instance Si"*Ta"i #( Kahoo and reSIProcate #( 4ounter"ath e(e)ea . In addition to its P)* o!!ering$ SIP !oundr( also "u#lishes its o%n so!t"hone$ Si"*eBPhone. Ihtt"E??%%%.si"!oundr(.org?J

41IE&T 'PP1I4'TI+&S 0e %ill no% !inall( #rie!l( ention

so e o! the

ost "o"ular Free So!t%are VoIP

client a""lications. 'll o! these are included in odern 1inu, distri#utions and are there!ore eas( to install and tr( out - (ou %ill o! course need a SIP account$ the ho e"ages o! Ekiga and 0engo %ill hel" (ou register one. )." 63iga (former 8nome5eeting! The !irst %idel( used Free So!t%are VoIP a""lication availa#le !or 1inu, %as -no e.eeting$ the lead develo"er is >a ien Sandras. -no e.eeting su""orted the H.565 "rotocol and %as thus co "ati#le %ith .icroso!ts $llustration ).": 63iga in a S$% video call. 9ead developer :amien Sandras has &et.eeting. 's #oth H.565 and &et.eeting called his beatiful ife. (Screenshot started to !ade into o#solesence$ -no e.eeting courtesy of e3iga.org!
15

!aced the risk o! #eco ing o#solete$ #ut toda( it has reinvented itsel! and is no% kno%n as Ekiga and su""orts also the SIP "rotocol. Ihtt"E??ekiga.org?J Ekiga is #ased on the -T/ !ra e%ork and onl( an e,"eri ental "ort !or 0indo%s e,ists. In the original -no e.eeting da(s this %as not such a "ro#le $ since its sco"e %as ore to #e a 1inu, counter"art to &et.eeting. 4o "ati#ilit( #et%een these t%o %as !airl( good$ the onl( "ro#le %as that ost codecs used #( .icroso!t could not #e used in -no e.eeting due to the so!t%are "atent situation. The solution %as to install a !ree codec on the &et.eeting users P4. Ekiga is still the do inant SIP client on -no e. ).2 ;%hone 's the na e suggests$ /Phone is a SIP client a""lication !or the />E deskto". It has gone through the hands o! several develo"ers$ !irst started #( )ill( )iggs$ then develo"ed #( so e researchers in 0estern Finland and no% #( a tea <anak is also a develo"er o! SER. 'll current and "ast /Phone develo"ers have #een so e o! the %orlds $llustration ).2: ;phone ".=.2." (Screenshot courtesy of ;%hone pro>ect at Source-orge! o! volunteers. +ne current lead develo"er <an

#est SIP e,"erts and /Phone has #een this authors !avorite a""lication to learn and tr( out SIP !eatures$ since technical details are %ell e,"osed in the user inter!ace. /Phone has so e %eaknesses$ !or a long ti e it did not su""ort video con!erencing and also its user inter!ace has traditionall( "erha"s #een ).& 7pen<engo +"en0engo is a relativel( ne% contender to the Free So!t%are VoIP contri#utions !ro VoIP service$ #ut arket. It is ore technical than an( others.

s"onsored #( the French VoIP "rovider 0engo$ #ut the 6.@ release has alread( seen e,ternal develo"ers too. The 6.@ release %as still closel( tied to the 0engo aking +"en0engo "rovider agnostic is a high "riorit( goal !or the

develo"ers. 'nd o! course it is alread( "ossi#le to su""ort other "roviders #( altering the source code. Ihtt"E??o"en%engo.org?J

16

+"en0engo is develo"ed %ith the Lt toolkit and .icroso!t 0indo%s has al%a(s #een the "ri ar( target environ ent although 1inu, and .ac +S are eCuall( su""orted too. The user inter!ace is ver( "ro!essional and has #roken a%a( !ro to e ulate co the traditional Gso!t%are "honeG "aradig on instant essaging a""lications (and

Sk("e) instead. +"en0engo %as also the !irst Free So!t%are "roFect to su""ort HTTP tunneling to #("ass !ire%alls that #lock SIP or RTP tra!!ic. To this authors kno%ledge +"en0engo %as also the source !or a !avorite VoIP innovationE audio s ile(s. ).) 5inisip .inisi" %as develo"ed "ri aril( #( Erik Eliason o! /ungliga Tekniska HMgskolan$ S%eden. It is a SIP "hone #ased on -T/ that %orks on #oth 1inu, and 0indo%s and #oth P4s and e #edded "lat!or s. Ihtt"E?? inisi".org?J 'lthough it is a ca"a#le SIP so!t"hone$ "erha"s not as %ell kno%n as the others Ho%ever$ it is %orth inisi" is

entioned here. $llustration ).&: 7pen<engo 2.= main indo . ($mage courtesy of 7pen<engo.org!

entioning #ecause o! ErikHs !ocus on

using the "roFect to sho%case the cr("togra"hicall( secured versions o! SIP and RTP. Readers interested in securit( and cr("togra"h( in VoIP are reco

ended to take a look at this "roFect.

S/KPE 'lthough it has nothing to do %ith Free

So!t%are nor SIP$ it is "rudent to also

ention Sk("e ost

in this article. '!ter all$ Sk("e is currentl( the

"o"ular VoIP a""lication.0e can co !ort ourselves in that %hile #eing closed source$ at least it is availa#le !or other o"erating s(ste s than 0indo%s.
17

$llustration 5.": S3ype is currently the most popular #o$% application.

It is no accident that Sk("e has #eco e "o"ular so !ast. Sk("e has actuall( solved all o! the "ro#le s that are seen as %eaknesses o! SIP clientsE It is usuall( a#le to !unction !ro #ehind an( !ire%all or &'T. ('s the !ounders &iklas NennstrM #uilding "eer-to-"eer a""lications.) '"art !ro and <anus Friis are also .icroso!t .essenger$ creators o! the "eer-to-"eer !ilesharing a""lication /aNaa$ the( %ere a#le to utilise an( lessons learned !ro Sk("e %as one o! the !irst a""lications to a#andon the "aradig o! e ulating a traditional "hone and instead o"ted a user inter!ace si ilar to instant Sk("e "rovides !or co "letel( encr("ted co technicall( su"erior to its co "etition toda(. It is ho%ever hard to see that eventuall( all o! the Internet %ould end u" using a VoIP solution that is "ro"rietar( and closed and onl( availa#le !ro one vendor. It %ould in unications ust that case #e the !irst ti e so ething like that ha""ened %ith an Internet co essanging a""lications. 'nd !inall($ unication. )( an( co "arison$ Sk("e is

"rotocol. 0hile Sk("e is technicall( su"erior to SIP or other co "etitors no%$ it *.PP or so ething else.

there!ore onl( #e a Cuestion o! ti e #e!ore it is su"erseded #( an o"en "rotocol$ #e it SIP$

18

)I)1I+-R'PHK Camarillo, G ( 2004): Earl( .edia and Ringing Tone -eneration in the Session Initiation Protocol (SIP). Internet Engineering Task Force$ 6@@7. Ihtt"E??%%%.iet!.org?r!c?r!c5=9@.t,tJ H. 2 (200!): H.565. 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?H.565J I"# (200!): I'*. 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?I'*J IC$ (200!): Interactive 4onnectivit( Esta#lish ent. 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?InteractiveO4onnectivit(OEsta#lish entJ IP %&ltimedia S&'s(stem (200!): IP .ulti edia Su#s(ste . 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?IPO.ulti ediaOSu#s(ste J IP)el.or* (200!): SIP E,"ress Router (%%% ho e"age). IPTel.org$ 6@@;. Ihtt"E??%%%.i"tel.org?ser?J +a''er (200!): <a##er. 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?<a##erJ +in*le (200!): <ingle ("rotocol). 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?<ingleOP6:"rotocolP6=J Per,ins, Colin (200 ): RTPE 'udio and Video !or the Internet. 'ddision 0esle( Pro!essional$ 6@@5. Postel, +. (-./0): FI1E TR'&SFER PR+T+4+1 (FTP)$ (RF4 =8=). Internet Engineering Task Force$ 1=:8. Ihtt"E??%%%.%u-!t"d.org?r!c?r!c=8=.ht lJ 1osen'er*, +. 2 al (2002): SIPE Session Initation Protocol (RF4 5691). Internet Engineering Task Force$ 6@@6. Ihtt"E??%%%.iet!.org?r!c?r!c5691.t,tJ Saint3"ndre, P (ed) (2004a): E,tensi#le .essaging and Presence Protocol (*.PP)E 4ore (RF4 5=6@). Internet Engineering Task Force$ 6@@7. Ihtt"E??%%%.iet!.org?r!c?r!c5=6@.t,tJ Saint3"ndre, P (ed) (2004'): E,tensi#le .essaging and Presence Protocol (*.PP)E Instant .essaging and Presence (RF4 5=61). Internet Engineering Task Force$ 6@@7. Ihtt"E??%%%.iet!.org?r!c?r!c5=61.t,tJ Sch&l4rinne, H. 2 al (200 ): RTPE ' Trans"ort Protocol !or Real-Ti e '""lications (RF4 588@). Internet Engineering Task Force$ 6@@5. Ihtt"E??%%%.iet!.org?r!c?r!c588@.t,tJ Sinnreich, Henr( 2 +ohnston, "lan (2005): Internet 4o unications Dsing SIPE >elivering VoIP and .ulti edia Services %ith Session Initiation Protocol. 6nd edition. 0ile($ 6@@9. Sris&resh, P 2 al (2002): .iddle#o, co unication architecture and !ra e%ork (RF4 55@5). Internet Engineering Task Force$ 6@@6. Ihtt"E??%%%.iet!.org?r!c?r!c55@5.t,tJ S)67 (200!): STD&. 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?STD&J

19

S8ale, 1.P. 2 al (2002): .iddle#o, 4o unications ( idco ) Protocol ReCuire ents (RF4 55@7). Internet Engineering Task Force$ 6@@6. Ihtt"E??%%%.iet!.org?r!c?r!c55@7.t,tJ )617 (200!): Traversal Dsing Rela( &'T. 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?TDR&J 9i,ipedia (200!): 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?J #%PP (200!): E,tensi#le .essaging and Presence Protocol. 0iki"ediaE the !ree enc(clo"edia that an(one can edit. English edition. 0iki edia Foundation$ 6@@;. Ihtt"E??en.%iki"edia.org?%iki?E,tensi#leO.essagingOandOPresenceOProtocolJ

-Henri, In*o is the author o! the #ook G+"en 1i!eE The Philoso"h( o! +"en SourceG. 0hile %orking !or the Finnish training "rovider Tieturi he taught a Internet and +"en Source related "rogra ultitude o! ing languages as %ell as s"eaking in con!erences

and se inars. '!ter %orking as an e-learning instructor at Tieturi he has also researched elearning at Helsinki Dniversit( o! Technolog(. 4urrentl( Henrik is %orking !or the so!t%are co "an( Sesca Technologies as Senior .anager o! 4a"ital 'rea %here he is involved in Voice over IP$ 1inu, and S( #ian "roFects$ a ong others. (henrik.ingo3o"enli!e.cc)

20

You might also like