Skip to main content

Blog update

..raw:: html

<html><body><p>I've upgraded to a new version of Wordpress and started using a new theme. I'm starting to really like it. I first wanted to start using Hemingway again, but it's unmaintained and the useful text area is _so_ small I started to look around the most popular themes on the Wordpress site. Carradine was the immediate favourite.</p></body></html>

Installing SIP SIMPLE Client on Debian 5.0 (Lenny)

..raw:: html

<a href="http://ag-projects.com/">AG Projects</a> is providing a pretty nice <a href="http://sipsimpleclient.com/">CLI based Open Source SIP phone</a> to the world. The installation instructions can be a confusing mess.

Here's a short summary on how to install it on a clean, brand new Debian Lenny installation. Details are correct at time of writing ;-)

First import the AG-Projects key into apt so we know the packages can be trusted.

`bash wget http://download.ag-projects.com/agp-debian-gpg.key apt-key add agp-debian-gpg.key `

Then open the file /etc/apt/sources.list and change al mention of "lenny" into "sid". Also add the following to the end of the file:

` # AG Projects software deb     http://ag-projects.com/debian unstable main deb-src http://ag-projects.com/debian unstable main `

Then it's time to upgrade to sid

`bash apt-get update apt-get dist-upgrade `

And finally it's time to install SIP Simple ```bash apt-get update apt-get install python-sipsimple sipsimple-cli

Mountain bike stuk

..raw:: html

<html><body><p>Zo, voor het eerst is er echt iets stuk aan mijn "nieuwe" mountain bike (ik heb hem al sinds de laatste week van januari, dus echt nieuw istie niet meer): ik ben door het zadel gegaan :-o

Ik hou het er maar op dat mijn techniek niet goed is ;-) Nu moet ik op zoek naar een zelfde soort zadel, want het beviel voor de rest prima. En natuurlijk pronto, want zondag moet er weer gefietst worden. Zo langzamerhand begint het klimmen ook weer een klein beetje beter te gaan.</p></body></html>

Shenanigans, diplomacy and copyright

..raw:: html

<html><body><p>Cory Doctorow writes an <a href="http://www.internetevolution.com/document.asp?doc_id=175415&amp;print=yes">interesting article</a> about the diplomatic process around the latest copyright "reform" the big entertainment companies are demanding from the UN.

Can we please make sure that all the big entertainment companies get deported to a gulag somewhere? I'd love to pay an artist for his work, maybe even a middleman, but not to a huge conglomerate paying pennies to the artists and pocketing millions themselves.</p></body></html>

Voice quality reporting for Cisco VoIP using FreeRadius

This is an, I hope, comprehensive writeup on how to configure a Cisco gateway to send RADIUS Accounting details to a RADIUS server running FreeRadius. Among other things, these RADIUS packets contain <a href="http://www.cisco.com/en/US/docs/ios/voice/cdr/developer/guide/cdrdefs.html#wp1011077">useful information about the quality of the audio</a> as perceived by the calling and called parties of the call.

First we have to configure the Cisco hardware to send the RADIUS packets. I'm using a Cisco AS5350XM configured to send only RADIUS accounting details at the end of the call. Note that although the configuration suggests as much, you're not required to use H.323, SIP will also work just as well.

aaa new-model
aaa group server radius voip-accounting
 server [ip address] auth-port 1812 acct-port 1813
 ip radius source-interface GigabitEthernet0/0
aaa accounting connection h323 stop-only group voip-accounting
radius-server host [ip address] auth-port 1812 acct-port 1813 key 7 [secret]
radius-server vsa send accounting

Note how I'm telling it basically the same thing twice. Apparently this is really necessary, haven't had the time to properly test. This was the easy part.

Setting "aaa new-model" is, as far as I know, required but it will also mess up the way logging in to your Cisco equipment works. Setting this will mean that you will need a username + password combination to log in and the enable password, instead of just a password and the enable password.

Now make sure FreeRADIUS is up and running on a server reachable by the Cisco hardware. Edit /etc/freeradius/radiusd and make sure that the "with_cisco_vsa_hack" is set to yes:

with_cisco_vsa_hack = yes

Edit /etc/freeradius/dictionary so that the Cisco dictionary is NOT specifically loaded

$INCLUDE        /usr/share/freeradius/dictionary

Add the following to the dictionary file to be able to use the values the Cisco equipment is sending you (there's lots more information in the RADIUS packets, this is just what I needed):

ATTRIBUTE       coder-type-rate         118     string  Cisco
ATTRIBUTE       hiwater-playout-delay   119     string  Cisco
ATTRIBUTE       lowater-playout-delay   120     string  Cisco
ATTRIBUTE       round-trip-delay        121     string  Cisco
ATTRIBUTE       late-packets            122     string  Cisco
ATTRIBUTE       lost-packets            123     string  Cisco
ATTRIBUTE       early-packets           124     string  Cisco

I had to make sure the numbers didn't overlap with the existing values already in the Cisco dictionary. This is kinda important, you don't want to end up with the wrong data in the wrong column. Swapping source and destination numbers is totally possible if you're not careful.

Now it's time to insert a record in the database. For some reason my colleague who setup the radius server inserted the query into /etc/freeradius/sql/mysql/dialup.conf (check the comments). There might be better places. If you only want to save the end of call records, make sure you have no other accounting queries active in the queries file:

accounting_stop_query = "INSERT INTO ${acct_table}
(RadAcctId,
 AcctSessionId,
 AcctUniqueId,
 UserName,
 Realm,
 NASIPAddress,
 CiscoNASPort,
 NASPortId,
 NASPortType,
 AcctStartTime,
 AcctStopTime,
 AcctSessionTime,
 AcctAuthentic,
 ConnectInfo_start,
 ConnectInfo_stop,
 AcctInputOctets,
 AcctOutputOctets,
 CalledStationId,
 CallingStationId,
 AcctTerminateCause,
 ServiceType,
 FramedProtocol,
 FramedIPAddress,
 AcctStartDelay,
 AcctStopDelay,
 H323GWId,
 H323CallOrigin,
 H323CallType,
 H323Setuptime,
 H323ConnectTime,
 H323DisconnectTime,
 H323DisconnectCause,
 H323RemoteAddress,
 H323VoiceQuality,
 H323ConfId,
 Timestamp,
 codec,
 hiwater,
 lowater,
 roundtrip,
 plate,
 plost,
 pearly,
 DestinationId )
VALUES (
 '',
 '%{Acct-Session-Id}',
 '%{Acct-Unique-Session-Id}',
 '%{SQL-User-Name}',
 '%{Realm}',
 '%{NAS-IP-Address}',
 '%{Cisco-NAS-Port}',
 '%{NAS-Port-Id}',
 '%{NAS-Port-Type}',
 from_unixtime(unix_timestamp('%S')-%{Acct-Session-Time}),
 '%S',
 '%{Acct-Session-Time}',
 '%{Acct-Authentic}',
 '',
 '%{Connect-Info}',
 '%{Acct-Input-Octets}',
 '%{Acct-Output-Octets}',
 '%{Called-Station-Id}',
 '%{Calling-Station-Id}',
 '%{Acct-Terminate-Cause}',
 '%{Service-Type}',
 '%{Framed-Protocol}',
 '%{Framed-IP-Address}',
 '0',
 '%{Acct-Delay-Time}',
 '%{h323-remote-address}',
 '%{h323-call-origin}',
 '%{h323-call-type}',
 '%{h323-setup-time}',
 '%{h323-connect-time}',
 '%{h323-disconnect-time}',
 '%{h323-disconnect-cause}',
 '%{h323-remote-address}',
 '%{h323-voice-quality}',
 '%{h323-conf-id}' ,
 '%{Timestamp}',
 '%{coder-type-rate}',
 '%{hiwater-playout-delay}',
 '%{lowater-playout-delay}',
 '%{round-trip-delay}',
 '%{late-packets}',
 '%{lost-packets}',
 '%{early-packets}',
 '%{remote-media-address}'
)"

Note that we only added the last few SQL parameters and somehow FreeRADIUS is able to provide the rest. Make sure you have the correct table name and columns configured (double/triplecheck the query and your table).

The column H323VoiceQuality will contain the so called ICPIF impairment factor. A small writeup of what that means is <a href="http://ccie11440.blogspot.com/2007/11/calculated-planning-impairment-factor.html">here</a>.

2 Generaties

..raw:: html

<html><body><p>Afgelopen Kerst bij mijn ouders geweest en op de terugweg ook even bij mijn grootouders koffie gedronken en gegeten. Mijn Pake is nu 87 en heeft van de keuringsarts weer voor 5 jaar zijn rijbewijs mogen verlengen. Dat is toepasselijk gevierd met een neiuwe auto. Ik heb de Polo uitgeprobeerd en hij is goedgekeurd.

Als eerste Pake en Beppe

<a href="http://www.flickr.com/photos/ramdyne/3177443119/" title="Pake en Beppe by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3300/3177443119_5b112d7de8.jpg" width="500" height="366" alt="Pake en Beppe"></a>

En ook maar even een foto van mijn ouders

<a href="http://www.flickr.com/photos/ramdyne/3177442713/" title="Heit en Mem by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3528/3177442713_5d7878c045.jpg" width="500" height="272" alt="Heit en Mem"></a>

</p></body></html>

When did I start coding (and related questions)

..raw:: html

At <a href="http://stackoverflow.com/questions/327973/how-old-are-you-and-how-old-were-you-when-you-started-coding">stack overflow</a> someone asked three questions about programmers and age:

1. How old are you? 33 1. When did you start programming? 6 or 7 1. When was that? 1982-1983

I'm not going to post here what my first own application was, it was way too nerdy; you'll have to make me drunk to hear it. Copying code from <a href="http://www.kijk.nl/">KIJK</a>, which featured lots of Basic code in those days obviously doesn't count. They even transmitted code via a radio station at the time.

The reason I started programming quite young is because of my parents. Both my mom (who at the time knew absolutely nothing about computers, she had some basic administrative jobs) and my dad (who at the time had a construction company) started a programming course. At the time everything was done in Basic so I also started learning that. I'll someday write about what they had to write to graduate from their course and what they did afterwards with their knowledge.

BTW, yes, I know of several programmers past 53, I had several colleagues who started programming with papertape...

Diksmuide, Ieper en Gent

..raw:: html

<html><body><p>Mijn zus loopt dit semester stage in Brugge. Afgelopen weekend ben ik samen met haar een weekendje door Vlaanderen getrokken.

Zaterdachochtend die kant opgereden, Machteld opgepikt en toen lekker binnendoor naar Diksmuide gereden. Vorige jaar ben ik daar op de eerste dag van de vakantie langsgereden en toen heb ik besloten bij de eerste gelegenheid de IJzertoren te bezoeken.

<a href="http://www.flickr.com/photos/ramdyne/3075666344/" title="IMG_6631.jpg by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3138/3075666344_c506a25658.jpg" width="333" height="500" alt="IMG_6631.jpg"></a>

De IJzertoren staat in een park met een soort crypte die de gevallen Vlaamse soldaten uit de Eerste Wereldoorlog herdenkt. De torewn zelf is een verdieping of 21 hoog met nog een terras er bovenop. De toren zelf is best een mooi stuk 20e eeuwse architectuur, wellciht een beetje boers en somber metslewerk, maar dat is het dan ook wel. Binnen in de toren daal je dan af naar beneden door een tentoonstelling over de gevallen soldaten tijdens de oorlog van '14-'18. Helaas is het hier en daar ook een behoorlijk fout Vlaams Nationalistische bedoening, mijn Friese genen begonnen hier en daar flink te sputteren.... Een paar "zalen" zijn wel echt de moeite waard, deze gaan dan vooral over het leven in de loopgraven. die zijn ook erg mooi en beklemmend ingericht.

<a href="http://www.flickr.com/photos/ramdyne/3075667622/" title="_MG_6656.jpg by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3011/3075667622_1a0629a254.jpg" width="402" height="500" alt="_MG_6656.jpg"></a>

Daarna naar Ieper gereden langs de Ijzer en het Kanaal Ieper-IJzer. In ieper de het museum Flanders Fields bekeken, erg goed gedaan, echt een aanrader. Goed gebruik van audio, veel nuttige informatie, veel plaatjes en period artifacts. Daarna naar de Menen Poort (Menin Gate) gelopen, dit is een oude stadspoort die veel Gemenbest soldaten bij naam herdenkt die hier in de omgeving gestorven zijn tijdens WO1. Hier heb ik me een tijdje "misdragen" door met mijn flitser en pocketwizards wat foto's te maken.

<a href="http://www.flickr.com/photos/ramdyne/3074834765/" title="Wreaths at Menin Gate by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3144/3074834765_a50859fc23.jpg" width="302" height="500" alt="Wreaths at Menin Gate"></a>

<a href="http://www.flickr.com/photos/ramdyne/3074833793/" title="Machteld in one of the entrances of the Menin Gate by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3183/3074833793_634a203b08.jpg" width="256" height="500" alt="Machteld in one of the entrances of the Menin Gate"></a>

<a href="http://www.flickr.com/photos/ramdyne/3074834919/" title="Menin gate bij nacht by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3024/3074834919_8795d8012e.jpg" width="279" height="500" alt="Menin gate bij nacht"></a>

Daarna naar Gent gereden en na wat moeilijkheden (ik blijk toch echt te kunnen verdwalen) eindelijk het hotel gevonden. De volgende ochtend is het nog steeds koud, maar is het helaas ook begonnen emt regenen. We gaan met de tram het centrum in en bekijken de Baafse Kathedraal en drinken warme chocolademelk.

<a href="http://www.flickr.com/photos/ramdyne/3075670810/" title="_MG_6729.jpg by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3169/3075670810_1177a16a18.jpg" width="500" height="333" alt="_MG_6729.jpg"></a>

Daarna lopen we naar het Design Museum, waar we kunnen aanpikken bij een rondleiding met gids. De gids legt met humor en veel nuttige details het verhaal van het museum uit vanaf ongeveer Roccoco tot nu. We gaan terug naar de kathedraal en bekijken de crypte en het origineel van het Lam Gods van de gebroeders Van Eyk, dat zeker de moeite waard was om voor terug te lopen.

Daarna gaan we terug naar het hotel en breng ik Machteld naar het station en ga ik weer terug naar huis.

Meer foto's vind je op <a href="http://flickr.com/photos/ramdyne/sets/72157610623899150/">Flickr</a>.</p></body></html>

Eindelijk, de salontafel is bijna zover!

..raw:: html

<html><body><a href="http://www.flickr.com/photos/ramdyne/3056624131/" title="Nieuwe salontafel by ramdyne, on Flickr"><img src="http://farm4.static.flickr.com/3186/3056624131_7a1105d009.jpg" width="353" height="500" alt="Nieuwe salontafel"></a>

Het heeft een jaar of 4 geduurd, maar eindelijk kan ik komend weekend mijn nieuwe salontafel bij mijn ouders ophalen. Het ontwerp is een co-productie tussen mijn ouders en mij, naar het model van mijn eettafel, alleen ongeveer 1:2 schaal en dan een beetje opgerekt voor de bruikbaarheid. Ik weet niet waar het aan heeft gelegen, maar twee weken geleden kreeg mijn pa het op zijn heupen om toch maar eens aan de tafel te beginnen.

Er is een tijdschriftenplank bij, maar die hebben we bedacht nadat de foto's gemaakt zijn. 100% massief eiken, dus steviger dan nodig is. Ik kan bijna niet wachten tot het weekend is.</body></html>

Spelen in de sneeuw

..raw:: html

<html><body><p>Ik probeer zo'n beetje elke zondag met een paar collega's en nog wat andere kennissen en vrienden wat in de bossen rond te fietsen. Zo ook vanmorgen weer en deze keer baalde ik er echt van mijn camera niet bij me te hebben. Sneeuw! En voor Nederlandse begrippen viel er VEEL SNEEUW, helaas bleeft het niet allemaal liggen, maar de nseeuw die afgelopen nacht gevallen was was wel lekker bevroren.

Vandaag ook voor het eerst het lange rondje bij Leersum gedaan (richting Amerongen) en dat was best te doen, het korte rondje is veel heftiger, veel meer steile klimmen. Het lange rondje (dat aansluit op het korte rondje) is veel meer lange klimmen en lange afdalingen. Helaas met de regen van de afgelopen weken ook veel diepe kuilen vol water (of iets dat lijkt op net gesmolten chocolade ijs), dus de fiets ziet er niet uit.

Het was wel aan de frisse kant, helaas....</p></body></html>

Will somebody please

..raw:: html

<html><body><p>Will somebody please put some real content in the Dutch Playstation store? Apart fom some small number of games there's hardly any real content over there. A few movie trailers, on average a single new trailer per month, with no updates since June; 1, I repeat 1 totally uninteresting video diary, no music, nothing!

Does Sony want the PS3 to fail? It's such a capable machine in lots of ways, but, sheesh.

Oh and we need proper Quicktime support, fast.</p></body></html>