Friday 26 June 2009

Windows protection features may cause application compatibility problems

Since Windows XP SP2, Microsoft has implemented a range of protection mechanisms to Windows to guard against malware. These include Data Execution Prevention, which is a hardware functionality in a CPU that is also implemented at a software level. Another lesser known technology is a pair of function calls in Kernel32.DLL of the Windows API, these functions are “EncodePointer” and “DecodePointer”. These function calls are used to protect pointers by obfuscating them using a “secret” value for an encoding or decoding process.

For reasons which I don’t really know about or have time to go into, we encountered a problem with a legacy application (RM Integris Classic) at our site which turned out to be much slower in execution and eventually hung. I decided to use an API tracing tool (Microsoft Dependency Walker, in this case, a tool which shows DLL dependencies) to see if there were problems with missing DLLs or function call exports being experienced in the application.

In this case, a major difference noted between two systems running Windows Vista, one of which could run Integris and one which could not, was the execution on the latter system of numerous and repetitive calls to Kernel32.DLL’s EncodePointer and DecodePointer functions. When I looked up these functions to see what they are used for, they turn out to be part of this new functionality that has been put into later releases of Windows. Specifically, EncodePointer and DecodePointer were introduced in Windows XP SP2. However it is interesting to note that I have not seen any compatibility problems before now with Windows XP running RM Integris.

I haven’t gone further into why the application might be incompatible with these calls, instead I have just looked to use the compatibility settings in Windows Vista and Windows 7 (on another computer that is running the Release Candidate). In the Vista (x86) computer, setting Omnis compatibility mode to Windows 2000 fixed the problem, but trying the same on the Windows 7 (x64) computer did not. However this gives me a solution for our planned migration to Vista; I’m currently building a master image of Vista for our HP laptops and intend to start deploying it early next week, and Integris is important to our site. Having that fix is useful when we will need to implement a transition to Windows Vista over the next year or so.

Tuesday 16 June 2009

VOIP internet telephony still fraught with pitfalls

So, now I’ve been using VOIP services over the Internet for four months, and it hasn’t been a straightforward experience. I think that it is quite fair to say that you get what you pay for. The level of service on VOIP providers falls well below what you get for an ordinary phone line from Telecom or Telstra. A comparison is warranted here with setting up a broadband connection to an ISP. I suppose all in all it is roughly similar, because each broadband modem has to be configured to work with a particular provider. However in NZ, the broadband infrastructure is nearly all owned by two providers, and modems are specified to work with either one or the other. So even though there are lots of different brands of modems, they pretty much all work without much mucking around and configuration problems in NZ.

The VOIP situation is a lot more different, because there isn’t that kind of stratification in the infrastructure. VOIP doesn’t worry much about what’s running underneath for the broadband connection, and in that sense it is like Gmail or some other commodity internet service that you buy from a range of providers. But whereas cable and ADSL are pretty much standardised worldwide, not enough of the VOIP protocols are standard, and neither are telephones, so there is a lot more potential for problems and possibly a lot more work needed to get a VOIP connection working in a range of situations. I made, now it would be admitted, the mistake of buying a D-Link VOIP router to begin with, not because I think D-Link is any good, but because it was available and had the features I needed for handling routing with the cable modem, and connecting a phone as well. The routing works very well, just like my experience with the D-Link ADSL router I had, but the phone side of things has been a lot of trouble, and I’ve had to flag away the DVG-1402S and replace it with a Linksys SPA2102. Because, among other things, it turns out that the D-Link is “incompatible” with some providers’ hardware/software in NZ. Yet, overseas, there are companies that are supporting these routers for their customers.

It appears that there is just a big lottery as to what will run on VOIP and what won’t. To add with that, the level of support from the two VOIP providers I worked with has fallen lower than I’m used to with the ordinary phone services. The support for VOIP should be higher, not lower, because getting a VOIP connection going is a lot more complex than just plugging in a phone on the old POTS network.

The Slingshot Experience - Finished

Earlier in the year I wrote about my experiences in switching from Telecom internet and phone, to Slingshot. Those posts made it clear that Slingshot didn’t live up to my expectations. Now, four months later, I just decided to cut out Slingshot altogether. In my estimation, it is hard to see how Slingshot today can still point to their Netguide award (which is several years ago now) based on my own impressions. The latest indignity is that they haven’t been open about the credits that were applied to my account. For various reason I decided to switch my VOIP phone to 2talk. Two weeks later I have still heard nothing from Slingshot, so I rang them to get them to refund the remaining credit. They agreed to do this, but they aren’t exactly being open about it; they can make money off keeping that money in deposit as long as I forget that it’s there. I don’t have any written record of any of these transactions on my accounts. They only send out an invoice each month, not a statement. They say you can look it up in their Visibill system, but you can only do that if you have a username and password, so in my case, where both my accounts are closed, I can’t look up anything at all.