WebRTC en WebSocket: webrtc2sip ftw!

Sinds Google WebRTC geopensourced heeft en er diverse drafts zijn opgesteld mbt. de standaardisatie van WebRTC als API door het W3C consortium wint WebRTC steeds meer terrein en is het inmiddels een hot topic geworden. Steeds meer bedrijven (ook grote multinationals) gaan er mee aan de slag en zien er grote kansen in.

WebRTC (Web Real-Time Communication) is een API die real-time communicatie in de browser mogelijk maakt, zonder plug-ins, add-ons of Flash. Denk bij real-time communicatie aan o.a. telefonie, chatten en videoconferencing.

WebSocket is een redelijk nieuwe API met bijbehorend protocol die het mogelijk maakt om TCP verkeer twee kanten op te sturen over één TCP verbinding en als je dit implementeert in een browser dan wordt het mogelijk voor applicaties om allerlei TCP verkeer heen en weer te sturen, zoals bijv. SIP verkeer.

Wat nu als je deze twee recente technologieën combineert met behulp van een derde nieuwe technologie, HTML5, en de mogelijkheden van JavaScript? Dat dachten ze bij Doubango ook en afgelopen voorjaar lanceerden ze hun sipml5 SIP client waarmee je vanuit een browser die WebRTC en WebSocket ondersteunt naar andere SIP clients kan bellen die WebRTC kunnen verstaan. Helaas is het aantal SIP clients dat het bij WebRTC horende mediaprofiel ondersteunt nogal klein, eigenlijk geldt dit alleen voor de SIP clients van Doubango zelf (zoals IMSDroid, iDoubs en sipml5). Dus in de praktijk had je er niet zo gek veel aan.

Recentelijk is daar met de release van webrtc2sip van Doubango drastisch verandering in gekomen. webrtc2sip maakt het mogelijk welke SIP client dan ook met elkaar te verbinden, ongeacht of deze nu WebRTC ondersteunt of niet. Dit maakt het dus mogelijk om conventionele SIP clients zoals bijv. Linphone te laten communiceren met sipml5. Vanaf je mobiele telefoon kun je nu dus heel gemakkelijk videobellen naar iemand die op een website ingelogd is in Google Chrome (of straks Firefox 18). Niks add-ons, niks plug-ins, niks Flash.

Op mijn werk stuitten we eigenlijk bij toeval op sipml5 en de hele infrastructuur daarachter bij het zoeken naar een alternatief voor bellen vanuit de browser mbv. Flash. Verschillende klanten hadden hier om gevraagd echter kregen we de boel niet goed aan de praat. Inmiddels heb ik een webrtc2sip server gebouwd en is er een webapplicatie met bijbehorende apps in ontwikkeling. Dit werkt zo veel beter dat de benaderde klanten vooralsnog enthousiast zijn. Nu hoeven ze geen aparte applicaties meer te installeren maar kunnen ze vanuit hun browser de werkzaamheden doen waarvoor ze videobellen nodig hebben (denk aan alarmcentrales of webconsults).

Binnenkort biedt ook Firefox ondersteuning voor WebRTC aan (vanaf versie 18) wat betekent dat straks meer dan de helft van de gebruikte browsers op het internet WebRTC aankan. Oftewel, WebRTC zit in een momentum en als ik de auteur van bloggeek.me mag geloven zal dat het nodige gaan veranderen in de VoIP business.

WebRTC en WebSocket: webrtc2sip ftw!

Sony Ericsson Xperia pro is binnen

Afgelopen vrijdag nieuwe telefoon binnengekregen. Ook al is het model al anderhalf jaar oud ik ben er erg tevreden mee. Het toestel is sneller, heeft een capacitief scherm met multitouch, scherm is ook veel groter en er draait inmiddels Android 4.0.4 op.

Flashen van de ROM was nog wel een beetje een gedoe. Niet het flashen zelf maar vooral het zoeken naar hoe je dit het beste kan doen. Er zijn tientallen forumtopics hierover maar een forum is niet het geschikste medium om dit soort handleidingen te publiceren. Dit moet je in een Wiki zetten of anders in een blog entry. Maar niet in een schreeuwerig forumdraadje met allemaal kleurtjes, verschillende fontgroottes en zinsneden als “u gotta root ya phone like dis”.

Uiteindelijk heb ik Flashtool gedownload en hiermee de officiële Android 4.0.4 ROM op mijn telefoon gezet die ik ergens van MediaFire geplukt heb. Op de site van Sony Ericsson zelf kon ik niks vinden en ook met de officiële PC Companion software kon ik helemaal niks. Kennelijk kon je als Xperia pro bezitter slechts tijdelijk je telefoon updaten via de officiële weg. Of ik heb niet goed gezocht. Maakt nu niet meer zo veel uit, mijn telefoon draait nu op Android 4.0.4 en dat werkt vooralsnog prima.

Sony Ericsson Xperia pro is binnen

JACK en Flash

Op mijn muziek PC gebruik ik geen PulseAudio en alleen JACK. Flash kan niks met JACK dus ik kan wel Flash filmpjes bekijken maar dan alleen zonder geluid. Onhandig natuurlijk. Dus een oplossing voor proberen te vinden. Uiteindelijk op drie mogelijke opties uitgekomen:

  1. De PulseAudio modules laden die met JACK kunnen praten.
  2. Libflashsupport-jack compileren en installeren.
  3. De JACK ALSA plugin installeren.

Optie 1 viel af, ik gebruik immers geen PulseAudio. Optie 2 ook want kennelijk is libflashsupport niet echt heel stabiel en bovendien heel beperkt. Dus ben voor optie 3 gegaan, wat me zelf ook wel de elegantste oplossing leek. Het libasound2-plugins pakketje van Ubuntu mist weliswaar de JACK plugin maar een versie met de JACK plugin staat in de PPA van Motin. Deze geïnstalleerd, een werkend .asoundrc bestand gefabriekt  en in mijn homedirectory gezet. Browser herstart, Youtube filmpje aangezet en nu dus mooi wel met geluid via mijn Firewire kaart.

JACK en Flash