Veel gebeurd

Een alleszeggende titel. Vorige week kennis gemaakt met iemand die bij mij om de hoek woont (en dan ook echt om de hoek) die een complete educatieve muziekomgeving onder Linux heeft gebouwd met behulp van JACK, mididings, QMidiRoute, QmidiNet, Qsynth en Bash scripts. Waanzinnig. En werken als een trein. Hele klassen kunnen via het netwerk met elkaar muziek maken, meespelen met backing tracks of gewoon lekker rommelen met diverse instrumenten. Heel bijzonder en je begrijpt wel dat ik heel graag wil meewerken aan het verder perfectioneren en professionaliseren van deze leeromgeving.

M’n Raspberry Pi’s lagen wat stof te happen maar daar is sinds een paar weken wel een einde aan gekomen. Werd eigenlijk getriggered door een post op de Jack-Devel mailinglist met een patch voor ARM platformpjes zoals de RPi. Een vergelijkbare patch was maanden geleden al een keer gepost maar is bijkans niet meer googlebaar dus aan mijn aandacht ontglipt. Door de patch op Jack-Devel kon ik weer verder als in JACK (zowel Jack1 als Jack2) draait prima op de RPi met deze patch. In eerste instantie kreeg ik de boel niet goed draaiende (vooral full-duplex kreeg ik niet voor elkaar) maar na me goed ingelezen te hebben heb ik mijn RPi zo weten te tweaken dat deze bruikbaar is voor real-time, low-latency audio. Afgelopen woensdag m’n bevindingen laten zien en horen op een Horus meeting en de RPi hield zich prima als virtuele gitaarversterker. En dat allemaal op een ontwikkelboardje van nog geen €30,-. Mijn bevindingen heb ik neergepend in de linuxaudio.org Wiki: http://wiki.linuxaudio.org/wiki/raspberrypi

Ook op mijn werk heb ik het erg druk. Heb me gestort op het WebRTC gebeuren en dat begint nu wel te lopen. Klanten zijn bijzonder geïnteresseerd in het videobelplatform dat we aan het ontwikkelen zijn en het werkt gewoon goed. Ook is het altijd fijn om nieuwe dingen te leren (WebRTC, WebSocket, STUN/TURN/ICE) of je meer te kunnen verdiepen in dingen waar je al wel wat van af wist maar die je nooit echt praktisch hebt hoeven toepassen (audio- en videocodecs, encrypten van datastromen, iptables). Ondertussen zijn we al weer verder aan het kijken naar een volgend project waarbij de focus ligt op router-achtige hardware en software, oftewel we gaan proberen zelf eenvoudige network appliances te gaan bouwen. Onze bureaus worden inmiddels bevolkt door RPi’s, MikroTik RouterBoards en PC Engines Alix boardjes. En die mag je dan onder de baas z’n tijd gaan zitten hacken. Hoe vet is dat. Vooral als het werkt en je met elkaar kunt bellen via een boardje met een 400MHz MIPS processor waar zelfgebouwde OpenWRT firmware op draait.

Oh ja, en maandag gaan we trouwen.

Veel gebeurd

Nieuwe tutorials

Heb twee nieuwe tutorials gemaakt mbt. het opzetten van een server waarmee je kan (video)bellen met SIP clients en WebRTC clients zoals Google Chrome.

Installing webrtc2sip on Ubuntu 12.04
Asterisk and sipml5 interoperability

En ja, ze zijn in het Engels vanwege wat verzoeken vanuit de Doubango community. Bovendien gebeurt er in Nederland nog bar weinig op het gebied van WebRTC.

Nieuwe tutorials

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!

Linux Audio Conference 2010

ZIt ik een beetje rond te kijken op Open Blik zie ik dat de Linux Audio Conference van linuxaudio.org komend voorjaar in Utrecht is! Zo, daar word ik wel even enthousiast van. Nog mooier zou zijn als ik een bijdrage zou kunnen leveren aan deze conferentie. Gezien mijn universitaire achtergrond en mijn huidige werk bij de Universiteit van Amsterdam zou dat zo maar eens een hele mooie kans zijn.

Uiteraard blijf ik dit volgen en zal ik alle verdere ontwikkelingen hier neerpennen. Mooi iets om naar uit te kijken.

Linux Audio Conference 2010

Die vermaledijde xruns!

Je kent het wel, ben je lekker met JACK bezig, hang je Audacity er aan, beetje editten en in ene wordt het je systeempje te veel. Gevolg: xruns, xruns en nog meer xruns. Op mijn netbookje heb ik hier dus last van en waarschijnlijk ligt dat aan een brakke geluids- of codecmodule. Ik heb er maar een soort van noodknop voor gemaakt die de gehele soundstack opnieuw laadt. Daarna zijn de xruns gelukkig weer weg. Ik moet maar eens gaan uitzoeken hoe die ALSA drivers nou precies aan de kernel hangen, zijn het nou kernel afhankelijke modules of staan ze los van de kernel die je gebruikt? Het moet wel allemaal een beetje stabiel draaien, juist ook met het onboard geluidskaartje, ik ga niet de hele tijd een externe geluidskaart meeslepen.

De noodknop is eigenlijk niet meer dan een scriptje (heb het maar restartsound genoemd) dat alle geluidsmodules uit de kernel trekt, alsa stopt, de modules weer laadt en alsa weer opstart.

Die vermaledijde xruns!