<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Ravings Of A Strange Mind</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/" />
<modified>2006-04-15T01:38:32Z</modified>
<tagline></tagline>
<id>tag:www.voxgratia.net,2006:/blog/1</id>
<generator url="http://www.movabletype.org/" version="3.17">Movable Type</generator>
<copyright>Copyright (c) 2005, CraigS</copyright>
<entry>
<title>The Secret Project</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/09/the_secret_proj.html" />
<modified>2006-04-15T01:38:32Z</modified>
<issued>2005-09-23T09:27:53Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.11</id>
<created>2005-09-23T09:27:53Z</created>
<summary type="text/plain">Those people who have been around the OpenH323 project for a few years have noticed that I am far less involved in the project than I used to be. Part of that is because I am no longer employed by...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>
<dc:subject>Life</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>Those people who have been around the OpenH323 project for a few years have noticed that I am far less involved in the project than I used to be. Part of that is because I am no longer employed by the company that owns the openh323.org domain, so my time is spent working on for other people and that code doesn't always end up in the CVS.</p>

<p>But recently, these changes have been because I've been working on a very new and exciting project that has consumed almost all of my spare time, and will continue to do so for the forseeable future. I think it is time that I finally announced this new project.</p>

<p>The new project is called "Get A Life".</p>]]>
<![CDATA[<p>I've finally learnt that I need to Get A Life, because I've realised that what I've had for the last 20 years does not qualify. It's not even close.</p>

<p>I guess I could write on for several pages about the terrible woes that have befallen me over the past few years (and I did start off doing exactly that), but the bottom line is that what has happened is nobody's business but mine, and there are lots of other people who are far worse off than me. So, I'll save the sob story and cut straight to the chase.</p>

<p>My experiences of the past year or so have had a profound effect on me. I'd like to think I am different person, but that's for other people to decide. Regardless, I'm working to redress nearly 20 years of being an asshole to my family.</p>

<p>I'm spending a lot more time with my wife and kids than I have in the past. If I had a brain, I would have done this a lot earlier but because I'm stupid I've let 20 years go by and damn near let my kids grow up and move out before it occurred to me to do anything about it. Hopefully it is not too late.</p>

<p>I'm also doing a lot of other stuff that is not sitting in front of a computer. For example, my eldest son and I have both become volunteer firefighters and now we are on call 24x7 to go and put out fires and attend car wrecks. I wish I'd done it years ago and I recommend it to anyone who wants to put something back into the community as well as meet new people and learn new skills.</p>

<p>As far as OpenH323 and OPAL is concerned, I will continue to work on both of these projects, both because I enjoy it and because that is how I intend to continue earning my living. But I don't intend to spend much of my discretionary time answering mailing list questions, unless I feel like it.</p>

<p>Anyway, just wanted to write something. </p>

<p>I feel better now :)</p>]]>
</content>
</entry>
<entry>
<title>Fax facts</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/08/fax_facts.html" />
<modified>2006-04-15T01:38:52Z</modified>
<issued>2005-08-27T13:20:41Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.10</id>
<created>2005-08-27T13:20:41Z</created>
<summary type="text/plain">As VoIP becomes more prevalent as a replacement for traditional PSTN connections, the issue of how to handle fax traffic becomes more and more of an issue. Fax imposes special demands on VoIP networks because the standards used for fax...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>As VoIP becomes more prevalent as a replacement for traditional PSTN connections, the issue of how to handle fax traffic becomes more and more of an issue. Fax imposes special demands on VoIP networks because the standards used for fax transmission are designed to exploit features of switched circuits that do not fit within the parameters of most VoIP equipment.</p>]]>
<![CDATA[<p>A fax terminal works by scanning the source image and converting it into a stream of pixels that are transmitted to the remote terminal using a data protocol called T.30. This protocol defines how the pixel data is compressed, and how to attach additional meta-data to the transmission like the source terminal number, resolution, number of pages etc. T.30 is an interactive protocol that is composed of commands and responses that allow the terminals to negotiate capabilities at run-time. </p>

<p>T.30 is transmitted over a switched circuit voice line by converting the bitstream into modulated tones. This is the familar warbling that you hear when you accidentally pick up on a fax call. But these tones are merely the modulation technique used to transmit the T.30 data over a fixed bandwith communications channel. The actual payload is the underlying T.30 fax commands transmitted at baud rates between 300 and 19200 baud - the tones themselves are not really important. In this regard, a fax machine is exactly the same as a data modem, except that T.30 defines the higher protocol layers rather than just providing a raw bit stream like a data modem.</p>

<p>T.30 tone modulation is designed to work over a circuit switched voice connection, which these days is usually a 64 kbps voice channel sampled 8000 times a second. This approximates the previous generation analogue phone technology that used a copper wire pair with an approximate bandwidth of 3100 hz. These circuit switched connections have low (and constant) latency, have no jitter, but may experience loss or dropouts. The T.30 modulation is designed for this environment - it exploits the full bandwidth of the circuit switched connection (well, as far as the modulation technology of the era allowed), and the T.30 protocol implements error detection, and error correction, to solve the drop-out and signal noise problems</p>

<p>Given all of this, it might seem that T.30 could be used over a G.711 VoIP connection, because these are intended to emulate ye olde analogue copper wire circuit connection just like a BRI. After all, fax is just audio tones and G.711 is (by definition) the same audio modulation used on PSTN for BRI or PRI lines. But as many people will tell you, fax over G.711 only works reliably over a LAN network, and becomes very unreliable if used over the public Internet.</p>

<p>So why is this? </p>

<p>Nobody uses G.711 for long haul VoIP because it is very susceptible to jitter due to the heavy load on the underlying network. Voice calls tend to break up unless every hop in the underlying network can easily handle the raw 64 kbps data rate, which is actually closer to 80 kbps if a frame size of 30 msec is used.</p>

<p>The circuit switched networks for which T.30 was designed don't have jitter, and the modulation techniques and protocols specified by T.30 contain no provision for dealing with it. Unsuprisingly then, T.30 simply can't deal with the variable jitter of a VoIP connection, although it tries (and fails) valiantly.</p>

<p>The problem is made worse if a codec other than G.711 is used, because most compressed codecs are based on a psycho-acoustical analysis of human speech and remove portions of the signal that, although not important to human voice communication, are vital for modulated data signals. This is the same reason why in-band DTMF tones don't work over compressed codecs, by the way.</p>

<p>The obvious solutions to this problem is to ensure the underlying network can support G.711 calls that are of sufficient quality to allow fax calls to work. Presumably this is what the Vonage network does, as they used to use G.711 (and may still) and they also advertised full fax functionality.</p>

<p>At this point, it's worth reviewing what happens when sending a fax over a VoIP connection using T.30 audio tone modulation.</p>

<p>The source image is converted into a stream of bits which is encoded into a stream of T.30 commands. This bit stream is then converted into an analog waveform that corresponds to an audio frequency tone with specific modulation characteristics. An approximation of this waveform is then created by sampling it 8000 times per second using a non-linear encoding (G.711), and the samples are grouped into 30ms chunks of audio data, and then transmitted over an IP network. The receiver re-assembles the received samples to recreate the analogue waveform and then demodulates it to retreive the original T.30 bit stream. The image data is then extracted from this bit stream.</p>

<p>In other words, the analog image is converted into T.30 digital data which is converted into an analogue waveform, which is then digitised, sent as digital data over an IP network, converted *back* into an analogue wavform, converted yet back yet again into a T.30 digital bit stream to display an approximation of the original analog image. Analog to digital to analog to digital to analog to digital  to analog again. How crazy is that? I think it is amazing that it works at all!!</p>

<p>Fortunately, other engineers have also looked at this Rube Goldberg chain of technology and quickly understood that there is an obvious solution. Given that the T.30 command stream is already digital data, it can be sent it over an IP network as is. No need to convert it into analogue tones - just send the raw T.30 data inside IP packets. The standard that defines how this is done is the well-known, but often misunderstood, ITU T.38 standard.</p>

<p>In one stroke, T.38 solves most of the problems with sending fax over an IP network. A T.38 fax call uses 20% of the bandwidth than the modulated audio approach because it is now a stream of bits at an average speed of 14400 bps rather than a stream of audio samples at 64000 bps. </p>

<p>Reliability is now greatly increased because the portion of the decode chain that was susceptible to jitter (the analogue demodulator) is no longer needed. To increase it even further, T.38 allows for the inclusion of redundant data to prevent errors caused by the occasional loss of packets when using a transport with non-guaranteed delivery, like UDP.</p>

<p>As far as implementation is concerned, T.38 does not require any analog modulation or demodulation, because it is only concerned with encapsulating and de-encapsulating a raw T.30 bit stream. As such, it requires much less CPU horsepower than the audio tone approach.</p>

<p>T.38 should not be confused with the similar-sounding T.37 which uses a totally different approach. Whereas T.38 is intended for realtime fax transmision using an encapsulated T.30 data stream, T.37 is intended for "store and forward" applications. It requires the fax data to be converted into TIFF format and then encoded using base64 into a text message and then transmitted using SMTP.</p>

<p>Hopefully this article has helped dispel some of the mystery surrounding fax over IP. Efficient fax transmission over an IP network is acheived by understanding that a fax call is not about sending and receiving modulated audio tones - these are simply the legacy of the old analog phone network and it far more efficient to simply deal with underlying bit stream and send that over the IP data network instead.</p>]]>
</content>
</entry>
<entry>
<title>Believing the impossible</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/08/believing_the_i.html" />
<modified>2006-04-15T01:39:12Z</modified>
<issued>2005-08-18T15:51:56Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.9</id>
<created>2005-08-18T15:51:56Z</created>
<summary type="text/plain">Time for one of my pet peeves. Three times in the past week I have been been faced with blatantly incorrect behaviour in someone else&apos;s code. Something really obvious, like a segmentation fault, or a return value set to something...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>Time for one of my pet peeves.</p>

<p>Three times in the past week I have been been faced with blatantly incorrect behaviour in someone else's code. Something really obvious, like a segmentation fault, or a return value set to something stupid, or a function that reports an incorrect input value when the the offending argument is obviously within the valid range.</p>

<p>In each of these cases I spent the time to isolate the problem and create a simple test program that demonstrated the failure condition. </p>

<p>In all three cases the author, when presented with this information, uttered those four hated words:</p>

<p>   "It works for me"</p>

<p>If this happens again, I may just have to do serious damage to someone or something.<br />
</p>]]>
<![CDATA[<p>I've written on <a href="http://www.southeren.com/blog/archives/000093.html">this subject</a> in my blog before, but it still staggers me that supposedly experienced software authors still make this most fundamental of mistakes.</p>

<p>Let's just imagine you are a software author, and somebody has come to you with a problem that they think is in your code. And let's say that the user is not one of the clueless "why is my cursor stuck" kind - they are a fellow software developer who is highly motivated, who wants the software to work, and has done all of the kinds of things you would do if you were looking for this kind of problem. Things like isolating the bug to a specific set of failure modes, making sure it is reproducable, looking at alternate environments to see if that affects the failure mode - the usual stuff.</p>

<p>Given this information, you look at the report and think "Hey, that is impossible. There is no way the code can do that, and I should know because I wrote it". You might even try and reproduce the problem yourself and of course, it "works for you".</p>

<p> This means you have to make a choice on how to proceed. Do you:</p>

<p>a) Assume the person has got it wrong and there is no problem.</p>

<p>b) Assume that there is a problem but you can't see it for some reason.</p>

<p>Of these two choices, a) seems like most attractive because it is the one that involves the least work for you. But really, how realistic is this? For this to be the correct course of action, the poor sod reporting the bug would have to be so deluded that they have managed to concoct a whole story with no basis in reality simply for your benefit. Are you really so self-centred as to believe that people have nothing better to do than create works of fiction in order to bother you? Isn't there even the smallest chance that perhaps, just perhaps, there is a bug in your code that under some circumstances can exhibit the behaviour being seen? Or are you that perfect that this is simply not possible...</p>

<p>So really, the only sensible choice is b) - they actually have found a problem which for some reason does not occur on your system. So, you are to have to try and find it, or at least, provide them with some more information so they can try and isolate the problem further. <a href="http://en.wikipedia.org/wiki/Differential_diagnosis">Differential diagnosis</a> can be very helpful in this kinds of situations.</p>

<p>The reverse often happens as well: you are using someone else's code and you can't even get it to work. Supposedly the code works, but damn it, you can't even get off first base. In this situation, you once again have two choices:</p>

<p>a) Decide that the code is fundamentally flawed if you can't get it to work, so it must be truly broken. Report this as a bug and do something else until it is fixed.</p>

<p>b) Realise that other people have used the code, and so you have failed to understand something that perhaps is not obvious.</p>

<p>You'd be suprised how many people chose a)...</p>

<p>Here is a real-world example: I was asked recently to evaluate a video codec from a vendor who had created a highly optimised codec for a particular hardware platform. I wrote a benchmark program, and integrated the codec as per the documentation provided by the vendor. I could push frames into the encoder, which created a nice bitstream that was supposedly compliant with the codec specification. The bitstream had the right bitrate, but I could not decode the bitstream using a reference implementation of the same codec. However, the decoder from the same vendor recreated the source images just fine.</p>

<p>It was tempting to just decide that the code was just crap because, although it was self-consistent, it was demonstrably non-compliant to the specification. But I also knew that the vendor has delivered this code to other companies, and that it had been used before. So even though it was not compliant, it must be possible to make it work. I just had to find out how.</p>

<p>It took me two days, but I eventually discovered that if I reversed each byte in the bitstream end for end, and then reversed three bits in the first byte that specified the codec mode, then the bitstream magically became compliant and worked just fine. This was not documented anywhere, and the vendor was unable (or unwilling) to explain why this was needed. By assuming that the vendor did actually have somewhat of a clue, I was able to find a way to make it work. Of course it would have been nice if the code had done the right thing, or even if the documentation had been correct, but at least I did not embarrass myself by claiming the codec was garbage and then having the vendor prove me wrong.</p>

<p>So please, the next time a user report a bug that seems impossible, then remember what Sherlock Holmes said:</p>

<p>"How often have I said to you that when you have eliminated the impossible, whatever remains, however improbable, must be the truth?"</p>]]>
</content>
</entry>
<entry>
<title>History shock</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/08/history_shock.html" />
<modified>2006-04-15T01:39:40Z</modified>
<issued>2005-08-15T15:14:30Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.8</id>
<created>2005-08-15T15:14:30Z</created>
<summary type="text/plain">If you are reading this, the chances are that you one of those lucky people who are completely familiar with the Internet, computers and all of the hi-tech gadgets and goodies that go along with them. Let&apos;s put it another...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>If you are reading this, the chances are that you one of those lucky people who are completely familiar with the Internet, computers and all of the hi-tech gadgets and goodies that go along with them. Let's put it another way - I'd be willing to bet that the only reason your VCR is flashing "12:00" right now is because you've not used it since the last time the power went off. And that's because you use a DVD (when you rent a movie) and you use a PVR for recording those rare shows you can't get via BitTorrent.</p>]]>
<![CDATA[<p>Obviously, I'm completely into the tech thing to the extent that my budget and time allow. My house is covered by WiFi, all three of my kids have their own computers (my eldest son has two on their own subnet) and everyone has the level of Internet access deemed appropriate to their age and experience. </p>

<p>We have a shared media server with all of our music on it, which we seriously need because my kids have extremely eclectic tastes. As an example: I picked up a CD burnt by one of my kids a few weeks ago which contained tracks by Ramstein, some Bach, a few tracks from "The Secret Garden", and some songs by "Flander and Swan". </p>

<p>As far as TV is concerned, we don't have satellite or cable (I refuse to pay $80 per month for a stack of sports channels I will never use in order to get the few channels I do want). Our family policy is that nobody has TVs in their bedrooms (my wife and I included) and the one TV with an antenna is in the family room where anybody can use it. We watch the few free-to-air programs we like and then get what else we want via BitTorrent. Between us, we watch Stargate Atlantis, Stargate SG-1, Alias, the various elements of the CSI franchise, ER and The West Wing. We've also grabbed TV series that we all like that can't be had on free to air, such as "Scrapheap Challenge" (which we call "Skrothog" because that is the what it is called in Swedish and most of the BitTorrent files for Scrapheap Challenge have Swedish subtitles), Daria and Reboot.</p>

<p>It's very, very easy to get used to being surrounded by this warm glow of technology. So much so, that I was taken by suprise the other day when someone was astonished that I had already seen the latest episodes of just about anything worth watching on Australian free to air TV, even before the series had been advertised (let alone shown). </p>

<p>In that instant, I realised (again) that I am a member of a very small subset of the community that had access to this kind of technology. Most people think they have to wait two years for US TV shows to be shown in Australia. Most people still pay full-price for long distance and international phone calls. Lots of people have iPods, but very few of them realise that devices like this have been around since 1999. Most people see telephones and computers being completely different devices that don't really have anything to do with each other.</p>

<p>Some of you might remember a book from the 70's by Alvin Toffler called "Future Shock". The book title came from the name Toffler gave to the disorientiation felt by people who felt overwhelmed by the relentless arrival of new technologies that they did not understand.</p>

<p>I keep feeling the reverse of this (can we call it "history shock"?) when I hear someone complaining about how there is nothing on TV (why not use BitTorrent and get nearly anything you want?). I get it when someone complains about the cost of international phone calls (international phone calls are cheaper for me than long distance). I get it when someone says they can't find a phone number (why not use one of any number of Internet resources)</p>

<p>I'm not saying that "history shock" is a bad thing. Mostly, it is a reality check for the techno-geek that lets them know that they are living in a world that is detached from the "reality" that most people experience. This can be useful as a prompt to be more understanding of those who are not paid-up members of the digerati. It can also be a pointer to a possible opportunity to make money by converting a hard-to-understand technology into something everyone can use.</p>

<p>It's also good to remember that even uber-geeks can get so wrapped up in their toys that they miss good stuff going on elsewhere. History shock helps me know when to take time off. That, and my kids starting to roll their eyes :)</p>

<p>Time go and sleep.</p>]]>
</content>
</entry>
<entry>
<title>Quick report from ClueCon</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/08/quick_report_fr.html" />
<modified>2006-04-15T03:34:45Z</modified>
<issued>2005-08-05T16:32:30Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.6</id>
<created>2005-08-05T16:32:30Z</created>
<summary type="text/plain">Sorry that I&apos;ve not had time to keep the posts flowing, but I&apos;ve been at ClueCon in Chicago, and things have been more than a little hectic. First of all, I arrived on Tuesday evening at 5pm local Chicago time...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>
<dc:subject>Conferences</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>Sorry that I've not had time to keep the posts flowing, but I've been at <a href="http://www.cluecon.com">ClueCon</a> in Chicago, and things have been more than a little hectic.</p>

<p>First of all, I arrived on Tuesday evening at 5pm local Chicago time after 24 hours of continuous travel. I was dehydrated and jetlagged, so of course I went out with the other delegates and had a few drinks. I can remember until about 9:30pm, and then I woke up in my hotel room at 3:30am. Everyone says I had a great time, but damned if I can remember <em>anything</em>. I remember reading somewhere that everyone should give up drinking once they turn 40 - I think that time may have come.</p>]]>
<![CDATA[<p>But first of all, let me say that ClueCon seriously rocks. Not only have we been having a great time, but we've been getting some great work done. The talks have been interestings, and the speakers even more so. Because this is the US, there is a very definite Asterisk flavour to everything, but regardless there have been lots of really smart people who are ready to talk about all aspects of VoIP. I've learnt more about PRIs and TDM in the last few days than I managed to absorb in the previous 5 years.</p>

<p>Brian and Tony from <a href="http://www.asterlink.com">AsterLink</a> have done a fantastic job in looking after everyone and doing their best to keep everyone happy. I know I'll be doing my level best to come to the next ClueCon.</p>

<p>The big highlight for me was spending time with the guys from Sangoma, especially Gideon and Nenand. I'd forgotten how much fun it is to work with smart, motivated people who love their work and really care about their products.</p>

<p>I announced the release of Derek's IAX2 code during my talk, and that got a round of applause. As it should - he has done some great work and I know that lots of people will be looking at that code very closely over the next weeks.</p>

<p>There is no way I will be able to remember everything that has happened so expect to keep hearing about various stuff over the next few weeks. I'll try and do some more posts as and when I remember stuff.</p>

<p>Oh byeah - Net connectivity is really good (most of the time) so I've been able to catch up on OpenH323 and OPAL patches. I'm going to try and get some coding done this weekend - or at least I'm going to try.<br />
</p>]]>
</content>
</entry>
<entry>
<title>IAX, ClueCon and T-shirts</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/07/iax_cluecon_and.html" />
<modified>2006-04-21T15:55:58Z</modified>
<issued>2005-07-30T11:08:39Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.5</id>
<created>2005-07-30T11:08:39Z</created>
<summary type="text/plain">I&apos;ve just finished checking a whole bunch of new code into the CVS. This code came from long-time contributor Derek Smithies who has performed the amazing feat of implementing the IAX2 protocol as part of OPAL, and did it with...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>I've just finished checking a whole bunch of new code into the CVS. This code came from long-time contributor Derek Smithies who has performed the amazing feat of implementing the IAX2 protocol as part of OPAL, and did it with the support and permission of his employer <a href="http://www.indranet.co.nz>Indranet Technologies</a>. I'm sure that a lot of people will be very interested in this new code.</p>]]>
<![CDATA[<p>I'll be talking about this new code next week at <a href="http://www.cluecon.com">ClueCon</a> in Chicago in the context of OPAL. I'll also be talking about Woomera, and learning from the other speakers. I know of quite a few OpenH323 and OPAL developers who will be there - if you are going to be there then please email me and let me know so we can arrange for everyone to get together.</p>

<p>If you are looking for me, I'll be the one wearing the <a href="http://www.cafepress.com/voxgratia.org">Open Source VoIP t-shirt</a> :)</p>]]>
</content>
</entry>
<entry>
<title>VoIP security</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/07/voip_security.html" />
<modified>2006-04-21T15:55:17Z</modified>
<issued>2005-07-28T14:01:51Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.4</id>
<created>2005-07-28T14:01:51Z</created>
<summary type="text/plain">Yesterday, a Slashdot article was carrying the following quote in an article titled &quot;Voip Security&quot;: The fact that VoIP operates across standard networks makes it vulnerable to all manner of IP hacking - including man in the middle attacks,sniffing, session...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>
<dc:subject>Industry</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>Yesterday, a <a href="http://hardware.slashdot.org/article.pl?sid=05/07/27/1224258&tid=215&tid=172&tid=218">Slashdot article</a> was carrying the following quote in an article titled "Voip Security":</p>

<p><i>The fact that VoIP operates across standard networks makes it vulnerable to all manner of IP hacking - including man in the middle attacks,sniffing, session hijacking, etc.</i></p>

<p>This seems to be saying that VoIP is somehow less secure because it operates across networks that use standards. This is an interesting conclusion, because the implication is that this is somehow different from the situation with the existing telephone network that VoIP is replacing. </p>

<p>There are so many holes in this argument that it is hard to know where to start, but I'm going to try anyway.</p>]]>
<![CDATA[<p>The most obvious flaw in this statement is that the networks that VoIP operates on (including the Internet) only exist because there are standards. Without these standards, which act as treaties beween all of the people who want interconnect, there would be no way to build the network in the first place. To use an analogy, this is kind of like complaining about the fact that air pollution is a problem because we breath air. There's not a lot we can do about it.</p>

<p>Looking past this statement, the concern seems to be that VoIP networks are somehow more susceptible to interception or hacking than the technology it is replacing. Again, this argument does not hold water, because PSTN networks can be hacked in just as many ways as IP networks. As was pointed out by responders to the Slashdot article, any kid with a phone handset and a pair of alligator clips can clip onto a phone line and intercept calls, or make unlimited calls on someone else's account until they do something stupid and get caught.</p>

<p>So what's the problem? </p>

<p>As usual, I think it's all about perceptions. For some reason, VoIP networks are <em>perceived</em> as being less secure. And this is because the technology behind VoIP (i.e. the Internet) is understood to some extent by the the people making the claims. Those same people have little understanding of the PSTN network, because that has just become part of the invisible fabric of society. The reality is that both technologies currently have much the same problems and vulnerabilities. But there is on major difference - VoIP has much more room to actually address the issue of security.</p>

<p>The word "secure" tends to get used as a catch-all label for a grab bag of issues including call interception, phone fraud, and billing problems. As far as VoIP in concerned, the solution comes down to two issues: authentication, which means knowing that you are talking to the person you think you are talking to; and privacy, which relates to the ability to ensure that communication between two parties cannot be intercepted by an untrusted third party.</p>

<p>The two concepts of authentication and privacy are theoretically independent, but in practice there is little point in having privacy without authentication. This is because defeating a "man-in-the-middle" attack requires authentication, and there is little point in having private communications if it can be subverted by simply interposing a third party. So authentication is the first requirement, and then privacy will follow.</p>

<p>The PSTN network implements authentication by enforcing a relationship between a billing entity and a piece of wire or fibre. This works because the PSTN switches (which are under the control of servicde provider) are actually physical connected to a piece of network cable that goes to the customer. In the case of cell phones, authentication relies on a number embedded in the handset. Neither of these are particularly strong methods of authentication - cloning of cell phone handsets is rife and anybody who has seen a telephone technician attach a test handset to wire pairs in a street phone switch panel cannot possibly see this as being secure. Privacy is achieved by the same physical means, which in the end all comes down to security through obscurity, which we all know is a totally outmoded concept.</p>

<p>VoIP technology will change this. Not might change, but will change. I predict that the next few years will see cryptographically authenticated and encrypted VoIP networks become the standard. This technology will be based on exactly the same methods used by secure web sites, namely certificates and encryption. In fact, the standards already exist for authentication and privacy for both SIP and H.323 and the only reason they have not been widely implemented to date  is just a matter of maturity (in the networks) and lack of demand (from consumers). That is already changing.</p>

<p>Apart from consumer demand, there are several factors driving the service providers towards fully authenticated and private VoIP communications. Emergency 911 support is one of them. There is also the desire to move to post-billing for VoIP which will require much more robust authentication than the simple account number and PIN that most vendors use currently. </p>

<p>A fully authenticated VoIP network requires an infrastructure to distribute issue, maintain and distribute certificates (or equivalent) to endpoints. I see this as being piggybacked onto some other authentication system, such as the keyring concept used by Phil Zimmerman's PGP network. It could also be done by the Passport system from Microsoft, or the similar offerings from any of the major portals such as Yahoo or AOL. Within a corporate environment, it could be done using smartcards or hardware built-in to the endpoint itself.</p>

<p>Regardless, there is no reason to believe that VoIP is any less secure than PSTN, and lots of reasons to see why it can be far more secure than PSTN could ever be. I'm looking forward to seeing it happen, and if possible, making it happen via OPAL :)<br />
</p>]]>
</content>
</entry>
<entry>
<title>The history of OPAL</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/07/the_history_of.html" />
<modified>2006-04-21T15:54:26Z</modified>
<issued>2005-07-27T15:11:08Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.3</id>
<created>2005-07-27T15:11:08Z</created>
<summary type="text/plain">The history of OPAL as a piece of software development is a long story. A verrryyy loooong story. And a lot of it isn&apos;t even my story, as Robert has been the prime mover behind the development of OPAL even...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>
<dc:subject>Opal/OpenH323</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>The history of OPAL as a piece of software development is a long story. A verrryyy loooong story. And a lot of it isn't even my story, as Robert has been the prime mover behind the development of OPAL even though the idea was originally conceived by both of us. But as I am going to be talking about OPAL next week at <a href="http://www.cluecon.com">ClueCon</a> in Chicago, I think it is time that I wrote down a coherent version of the history of this software, especially as I am intending to be using it for new VoIP projects looking going forward into the future.</p>]]>
<![CDATA[<p>OPAL has it's roots, obviously, in OpenH323. To understand exactly how OpenH323 spawned OPAL, we need to go back to late 1999. Robert and I had just got the first release of OpenH323 working (mostly) and we were looking at the problems we had with the code and what we wanted to do next. Robert and I used to meet in person once a week (we used to, and still do, live 100km away from each other in different cities) to spend an entire day just discussing code architecture and other issues we wanted to address. We covered a lot of ground in those discussions, and we came up with s few major issues we wanted to resolve for the next version of OpenH323, which we called OPAL for Open Phone Abstract Library. OPAL is also a gemstone which is found mainly in Australia, so it had a nice ring to it :)</p>

<p>The major issues we wanted to resolve were:</p>

<p>   - We wanted to support a new protocol called SIP that everyone was talking about. It seemed obvious to us that as it was under the control of the IETF, it would only be a matter of time before it would be pushed as the successor to H.323 (which was administered by the ITU)</p>

<p>   - In OpenH323, different types of connection were difficult to join together even though they had almost the same characteristics. For example, a H.323 connection, a sound card, and a PSTN termination device all have an audio channel, and some signalling controls, but look completely different to each other in terms of API. Wouldn't it make sense to have them all look the same (or at least, very similar) so that programs that handled one device type could handle them all?</p>

<p>   - the directory structure of OpenH323 meant that filename collisions were possible. This was due to OpenH323 having a single layered include file hierarchy.</p>

<p>   - OpenH323 did not provide abstract classes for concepts like "connection" and "endpoint", which meant that similar concepts in new protocols would not share any common ancestor with their H.323 equivalents.</p>

<p>   - The implementation of shareable blocks of code such the RTP stack and codecs were not very well modularised.</p>

<p>   - The video code in OpenH323 worked well, but did not seem to be a clean design. We felt it is needed to be streamlined and made easier to use.</p>

<p>  Our plan was that Robert would start working on the reorganisation of OpenH323 to create OPAL, while I started on an implementation of SIP using PWLib and whatever parts of OpenH323 I could use. In the mean time, we would continue to support OpenH323 and backport changes to OPAL whenever needed.</p>

<p>  We attacked the code with gusto, with Robert creating a new directory structure and implementing the idea of "streams" that we agreed would be the abstraction that normalised devices and protocols into interchangeable entities. Robert developed the idea of a "manager" that served to control the various protocol specific endpoints and provided the mechanism whereby an application could control various features from a single class instance regardless of the number of different protocols or devices that were being used. My SIP implementation was proceeding well, with simple calls working well and we were fixing SIP compatibility issues with equipment from various vendors. The single biggest missing feature at this stage was video, and that was next on Robert's hit list.</p>

<p>  Then we decided to do the deal with Quicknet in early 2000, and OPAL effectively went into hibernation for four years. This was an immense source of frustration to Robert, as he had done the lion's share of the work on OPAL to date, but the simple fact was that neither of us were unable to spare time to work on OPAL when we needed to work on OpenH323 to earn money. </p>

<p>  During this time, other people continued to work on OPAL but Robert and I did added almost no new code. Several times, Robert merged the OpenH323 source tree back to into OPAL, which helped to keep the code more or less at the same level as OpenH323. During this time, people like Damien Sandras (of <a href="http://www.gnomemeeting.org">GnomeMeeting</a> fame) kept the flame alive by continuing to ask about the future of OPAL. But the reality was that OPAL was, if not dead, then certainly gravely ill.</p>

<p>  Then, in mid 2003, we left Quicknet, and the picture changed again. Robert was able to find the time to do some work on OPAL, but he was now working somewhere else and was not working with either OpenH323 or OPAL at all in his professional life. I was working with OpenH323 at least some of the time, but there did not seem to be much interest in OPAL at all.</p>

<p>  And then in the last 12 months, the picture has changed again. Thanks again to Damien Sandras, and other people like Ted Szoczei, interest in OPAL has resurfaced. Robert has also found the time to work on video again, and I have talked to many people who are interested in seeing OPAL become a fully working stack. </p>

<p>  So that's how we got to where we are. OPAL is being actively developed and used by many different people and I expect that it will become the principal vehicle for many new VoIP projects in the near future. If you are interested in being part of that process, or have some ideas on how to help, then join the OpenH323 mailing list and let everyone know what you think. Or email me if you want to talk about it more in private - either way please speak up and make difference.<br />
</p>]]>
</content>
</entry>
<entry>
<title>Links of the Day</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/07/links_of_the_da.html" />
<modified>2006-04-21T15:53:48Z</modified>
<issued>2005-07-26T15:58:30Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.2</id>
<created>2005-07-26T15:58:30Z</created>
<summary type="text/plain">From time to time I get asked what web sites I check on a regular basis for news. I posted on this back in December 2003, and it was interesting to see what has and hasn&apos;t changed...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>From time to time I get asked what web sites I check on a regular basis for news. I posted on this <a href="http://www.southeren.com/blog/archives/000045.html">back in December 2003</a>, and it was interesting to see what has and hasn't changed</p>]]>
<![CDATA[<p>I'm still checking <a href="http://www.slashdot.org">SlashDot</a> on a daily basis. IMHO, it's still the best place for geek news. But I also check out Bruce Simpson's <a href="http://www.aardvark.co.nz/">Daily Aardvaark</a> site for a more Australiasian skew on things. BTW, Bruce in an interesting guy - anyone who <a href="http://www.aardvark.co.nz/pjet/">builds and tests his own jet engines</a> is a serious geek!</p>

<p>The <a href="http://www.smh.com.au">Sydney Morning Herald</a> is still my source of normal-world news. The daily Column-8 column provides a light-hearted way to start the day.</p>

<p><a href="http://antwrp.gsfc.nasa.gov/apod/astropix.html">APOD</a> is worth checking every couple of days, because a few times every week they slip in something new between the repeats. Same with <a href="http://www.imdb.com/">IMDB</a> and <a href="http://www.darkhorizons.com/news.php">Dark Horizons</a> - as a long time movie geek these help me stay up to date with the latest gossip. And I'm still reading <a href="http://www.penny-arcade.com/">Penny-Arcade</a> every few days as well to keep up with the latest news in the gamer world. This helps me to stay in tune with my two sons who are both semi-serious gamers :)</p>

<p><a href="http://www.randi.org/">James Randi's weekly commentaries</a> provide me with dose of rationality in an increasingly irrational world. I've yet to find anything him say anything that I seriously disagree with. Which is very different from <a href="http://www.alphapatriot.com/home/">The Alpha Patriot</a> with whom I can find sometimes find common ground, but who ocassionaly disappears into some alternate reality. Still, it provides a useful comparison to the usual bland fare offered by most new sites</p>

<p>After writing this, seems my tastes have not changed all that much over the past few years. Not sure if that is good or bad...</p>]]>
</content>
</entry>
<entry>
<title>New site....</title>
<link rel="alternate" type="text/html" href="http://www.voxgratia.net/blog/archives/2005/07/new_site.html" />
<modified>2006-04-21T01:15:11Z</modified>
<issued>2005-07-25T15:11:24Z</issued>
<id>tag:www.voxgratia.net,2005:/blog/1.1</id>
<created>2005-07-25T15:11:24Z</created>
<summary type="text/plain">Welcome to Craig&apos;s new RoaSM blog. I know it has been a long time coming, but life kept getting in the way. But now that I have MovableType re-installed, I can get back to my semi-occasional discourses on a variety...</summary>
<author>
<name>CraigS</name>
<url>http://www.voxgratia.org</url>
<email>craig@southeren.com</email>
</author>
<dc:subject>Site News</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.voxgratia.net/blog/">
<![CDATA[<p>Welcome to Craig's new RoaSM blog. </p>

<p>I know it has been a long time coming, but life kept getting in the way. But now that I have <a href="http://www.movabletype.org">MovableType</a> re-installed, I can get back to my semi-occasional discourses on a variety of topics.</p>

<p>A static version of my old blog will continue <a href="http://www.southeren.com/blog/old_index.html">to be available</a> until I can migrate entries I think are worth keeping.</p>]]>

</content>
</entry>

</feed>