Call A Contact

[Update 1: Added the link for the Smartphone bits that you can download]

[Update 2: Added a Bug and Troubleshooting section at the end of this post]

[Update 3: Fixed a few small typos]

One of the things that has bugged me for a bit is the lack of integration between the phone numbers in Outlook contacts and a smart device (such as a Pocket PC or a Smartphone) connected to the computer when it comes to making phone calls.

In Outlook when you right-click on a Contact, it recognizes the context and the fact that there are phone numbers associated with that contact and it gives you an option to call them. Note, I am of course assuming that the said contact has phone numbers – either stored locally or retrieved from the GAL.

If you are running Office 2007 Beta 2, then the menu you see should be something along the lines of the image on the right hand side of this paragraph. (Sorry I have had to block out the actual phone numbers). Now, one would thing that when you click on one of those phone numbers, Outlook will dial that number for you. Well, note quite. Unfortunately, selecting any number, if you have Live Messenger installed, then you get Windows Live Call (which in turn asks me to sign up with some Verizon VOIP service – no thank you). I looked high and low and asked around but could not find anything that will let me send this phone number to my mobile and then use that to dial out. After ranting about it for a while and asking a few colleagues if there was a way, I thought I would write this myself.

So, here is the fruit of last weekends puntering about. There are two aspects to this solution – one that runs on your mobile device and the other is a Windows application that runs on your computer. You would need to install both these to get this working and it will work on both Pocket PC and Smartphone 5.0 (or higher). You will also need to have the .NET Framework 2.0 runtime on your computer and the .NET Compact Framework 2.0 SP1 runtime on your Mobile device. More details on how to install these a little later, but before that briefly explain how this works.

Well, simply you start a Windows application, called "Call A Contact" (yes, it is a Windows app and not a Outlook add-in – more on that in a bit) which "talks" to the other application on your device and instructs it to dial the provided phone number – fairly simple.

So, why a Windows app and not a Outlook add-in. Well basically it is because of time and patience (lack thereof). I only have Office 2007 Beta 2 running, and to get the VSTO CTP bits for Office 2007, the pre-requisite is the WinFX February CTP. For me this is not an option as I need to be on the latest version of the WinFX bits, for the WCF book that I am writing. Being, on the latest CTP, due to time constraints going back to an older version is not an option. Also, assuming I did go back to the Feb CTP of WinFX, the current VSTO bits are not very functional yet and we would still end up struggling. What about Office 2003 then? Well, almost the same similar story there as well. I don't have Office 2003 installed, and I will need to setup a VM with all the right dev bits – which again will take a long time – something I don't have at this point. As a result, the interim solution was to write a simple Win app, and that can be deprecated, with the Outlook add-in – that is when I can get all the bits along with the sun, moon and stars aligned. Smile

How do I use it?

Once you have installed both the desktop and mobile pieces, below are some screen shots showing how to use it from your computer. Make sure your device is connected via ActiveSync and cradled, and then start the app on your desktop (via Start => All Programs => Call A Contact).

You will see the Windows application as shown below. Click on Connect Device; if the connection between the desktop and the device is established then all the other controls will be enabled. The default paths for the apps (depending on the device) are pre-loaded, these can be changed if you installed the apps in some other location. Enter the phone number you want to call and click Run Program – simple as that.

(Before Connection)                             (After Connection)

The "Check Phone Status", when enabled, will check that the phone is free and only dial out if it is, otherwise you will see a dialog saving the phone is busy. If you don't care about this (which most likely you won't, because if the phone is busy the odds are you are already talking on it and know it is busy Wink. The three things I check for are:

  • Incoming Call
  • Current Call
  • On-Hold Call

Also, on your device if you use File Explorer and browse to where you installed the application (by default this should be in \Program Files\CallAContact and launch the application you will see a simple form where you can enter the phone number and get the same result. The Check Phone Status performs the same function. For example one a number is dialed out and the phone is busy if you try and dial another number with the check phone status option enabled you see an message saying the phone is in use, and to try later.

Note, if the CallAContact application is running on your device (as shown above) and you try to run it form the Desktop application – then nothing will happen. This is simply because since the application is already running on your device, I don't know what to do – should I quit that or not? (Remember we can only have one instance of the application on the device). So as best practice if you are using this on the mobile (though I can't imagine why), then make sure you exit the app when you are finished.

What about the Smartphone?

I have the code for that and have tested it in an emulator, but I need to get a device to test it, to ensure everything is working. You should be able to use this for that without any issues and I will be adding the links using which you can download the setup for Smartphone as well shortly.

What do I need to install it?

Well its not a long list of things, but depending on your current setup it might get a little tricky. Below are the things that are needed on your desktop and device. Please read this carefully as you will need to have all of these up and running.

  1. Mobile 5.0 device – This can be either a Pocket PC based mobile (like the HTC TyTn) or a Smartphone (like the QTEK 8500), but it has to be a Mobile 5.0 device.
  2. ActiveSync 4.2 – If you have an older version then please upgrade to version 4.2 from here. (which is the latest at the time of this writing).
  3. On your computer you will need the .NET 2.0 runtime. If you don't have this already then please get this from here (and it is a hefty download at 24 mb). If you are not sure if you have this already installed or not then skip on further and when you try and install the applications, that will fail (without causing any issues to your machine so you can relax), and will tell you that you are missing this.
  4. On your Mobile device you will need the .NET Compact Framework 2.0 with SP1. If you don't already have this installed then download it from here (at a heftier 37.1 mb). A couple of things that you need to read through. This is different from the .NET 2.0 bits in the above step. Also if you already have .NET Compact Framework 2.0 installed you will still need to get this as this is with SP1. Also, I would recommend installing this on your storage card – and not using up your main memory on the device.

If for some reason you don't have the .NET Compact Framework 2.0 SP1 installed (or you have an older version installed), when you try and run the application on the device you will see an error something like this:

Here are some screen shots showing you how to install the .NET Compact Framework mentioned earlier:

Steps for Installing

  1. Assuming you have all the bits mentioned above installed and working correctly then download the two required zip files below.
  2. Extract each of the files in a separate folder.
  3. Make sure your device is connected and powered on.
  4. In each of the folders double-click on Setup.exe and follow the prompts.

Files to Download:

Before you get to the link I should highlight the fact that you should backup all your data and don't come to me crying if something is screwed up because of this.

  1. Windows Application – (495 kb)
  2. Pocket PC Device – (384 kb)
  3. Smartphone Device – (378 kb)

If you want to change the default path for the program on the device and the type of device to be selected by default, then modify the WinCallAContact.exe.config file in any xml editor (or even notepad). This file can be found in the directory where you installed the application (default path is: C:\Program Files\Amit Bahree\CallAContact\). Change the PocketPCProgram key or the SmartPhoneProgramKey for updating the paths for either of those. Also if you prefer to default the app to Smartphone instead of Pocket PC, then change the WhichDevice from a "0" to a "1". Similarly if you don't want the Check Phone Status to be enabled then change that value to a "false". Note, all the values are case-sensitive.

Here is what the default config file looks like when you install this:

<?xml version="1.0" encoding="utf-8" ?>
<add key="PocketPCProgam" value="\Program Files\CallAContact\CallAContact.exe"/>
<add key="SmartPhoneProgram" value="\Program Files\smartphonecallacontact\SmartPhoneCallAContact.exe"/>
<add key="CheckPhoneStatus" value="true"/>
<add key="WhichDevice" value="0"/>

I have not done a lot of extensive testing, and I would like to heard your feedback and any issues you have. Also, please let me know if you would like me to extend this.

Lastly, when I get the Outlook add-in I will be posting it here (will get the VM up and running soon) – so keep an eye out – till then copy from Outlook and paste into this. If you are interested in the source code then let me know as well and I can post it up here.

Bugs Found:

  1. The Windows application had a bug where if the phone number had more than one whitespaces then it will not work correctly. This has been fixed. Please uninstall the old Windows Application, download and install the updated one (using the same links as above). Note, you do not need to update the application on your Mobile device as this was only on the windows application.

Troubleshooting Tips:

  1. When you try and call the phone number if you see a error similar to the one shown below then this can mean a couple of things. One your device is not connected any more, please reconnect and try again. Or two you did not install the application in the default location, but somewhere else. For example, if you installed the application on a storage card (which is recommended), then for your Pocket PC device change the path to "\Storage Card\Program Files\Call A Contact\CallAContact.exe" (without the quotes of course). If you want to find out the path on your device then use file explorer to see the location as shown in the screen shot below.


I am not really a TV junkie (with the exception of Tom and Jerry and Discovery Channel), but I recently saw a few episodes of a new drama called Numb3rs, which is all about a genius mathematician who uses Maths and helps solve crimes with the FBI. It is pretty cool (and g33ky of course Wink), check it out if you are into maths – you usually learn something in each episode.

Vista last of its kind?

Well, Gartner is saying that Vista will be the last of its kind, as for any future versions using a modular architecture as the current integrated architecture is unsustainable. I don’t think this in itself is anything new (most other companies have been doing it for a while). But in practice this is more difficult than it sounds. It will be quite difficult to break the Windows team and the way they do builds, code branches, etc. Also, what will happen to Longhorn then? However, I do hope Microsoft moves to this model as the existing ones will just keep getting more painful. (go this via

Google 3D Warehouse

Google’s 3D Warehouse is a collection of 3D objects that were created for use with Sketchup and are meant to be used with Google Earth. You can see one of London’s most famous attractions the Big Ben or India’s world famous Taj Mahal.

[I’m rocking out to Heartbeats by José González from the album Veneer]

Gadget to end all Gadgets

I saw the Carver One in an old Top Gear program and boy it sure is the gadget to end all gadgets! Big Smile You can see some videos here and more pictures and wallpapers.

Now, on Top Gear, if I heard it correctly the cost was £22.5K, but as per the UK dealer, if you include VAT, this costs £27,654. Also that is without any options and accessories! Either you can be kind to me and get me one or donate some moolah my way.

How to change the Screen orientation on a Phone / Pocket PC?

If you have a Windows Mobile 5.0 device like the one I recently got and were wondering how do I change the screen orientation, well its fairly easy. It is cool that the screen orientation changes between landscape and portrait when I slide out the keyboard. But, on rare occasions I want to change the orientation without sliding out the keyboard and it is a pity that there is no hardware button to do this.

Programmatically this is a simple task. If you are using C++, all you need to do us use the ChangeDisplaySettingsEx class and change the DM_DISPLAYORIENTATION value for the lpDevMode member type. The supported screen settings are returned via lpDevMode.dmDisplayOrientation, with a DMO_0 meaning that screen rotation is not supported by the device. Also, when the display mode is changed a WM_SETTINGCHANGE message is send to all apps.

If you are more of a managed code kind of a person and rather use that, then it is even simpler. When you create a new Windows Mobile 5.0 Pocket PC device application project, your solution should automatically have a reference to the Microsoft.WindowsCE.Forms assembly. If for some reason you don’t have then then add the reference to this assembly. It usually resides in the same location where you installed the CF SDK (e.g. in my case this is C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE\Microsoft.WindowsCE.Forms.dll).

In the SystemsSettings class, use the ScreenOrientation property to change the screen orientation (these are static). The possible values are 0, 90, 180, 270 (depicting angles), with the default being 0. To change the screen orientation between Landscape and Portrait you change the angle between 0 and 90 degrees as shown in the c# code snippet below.

Note, this only supported in .NET CF 2.0.

1 if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle0) 2 //change to landscape 3 SystemSettings.ScreenOrientation = ScreenOrientation.Angle90; 4 else 5 //change to portrait 6 SystemSettings.ScreenOrientation = ScreenOrientation.Angle0;


[I’m rocking out to Veronicas – Everything I’m Not [Jason Nevins Remix] – Google's answer to Word

Thanks to my colleague Rick Pollak for pointing this out.

Seems like Google has released which is their answer to Word. Registration is open, and you can sign up. I used my Google account and got a confirmation email – however I was able to use the site before I confirmed.

My first experience was not good – as IE had crashed – well it was running at almost 100% CPU and eating all the resources (click the image to see details). Which meant at the end of the day I could not kill that process and I had to restart the machine. But, since I am running IE 7 (Beta 3), I am not sure if there is an issue with IE itself or if the problem is with writely.

I have not used this for a long time, so these are only the first impressions and so far I am more impressed with the collaboration tools than the editor itself. It has all the basic things you would expect – fonts, spellcheck, etc. There are also other a little more advanced features such as the ability to insert comments, manage bookmarks, table and image support. The image can be a maximum of 2mb in size.

 The collaboration features seems to be quite impressive and it would be interesting when MOSS 2007 ships, what impact would it have on SharePoint 2007. I guess it is safe to say that almost all Enterprises will not be using this (you won’t want your document out there on someone else’s server now would you?). But, for most of us this probably is not too much of an issue. I know my Dad won’t have an issue for example. Also, the revisions is interesting – I have not used this. But it seems to be promising and might have helped in the WCF book I have been writing. All the back and forth between myself and the TE’s (Technical Editors).

The File > Save As menu is also interesting. As you can see as it allows one to save the document in a number of formats that you would expect such as HTML, Word, OpenOffice, PDF. And in a few that you won’t expect such as a RSS feed.

You can also tag the various documents (quite similar to the way you can to blog posts and photographs), and I can see the value in having something like that. This is of course similar to something that will also be in Vista.

Also you can directly publish to you blog. The blogs it supports “out of the box” are,,,,, But fear not, if whatever blogging thing you use, you can use it as long as it supports one of the following API’s: Blogger API, MetaWeblog API or MovableType API.

If security of your document is important, then you will be glad to know they say they take security very seriously. Here is what they have to say about it, about how secure are the documents.

Very! We take security very seriously. A layered security architecture ensures that only people you authorize can view or modify a document.

Of course all this free. You can take a tour here and find out more details here and sign up for this here. I am excited about this, mainly because so many people I know do not have the budget to spend on the likes of Microsoft Office, and OpenOffice is something also a bit of an overkill or just too much hassle to download and install. So, as long as you have a stable and fast Internet connection this might just be a winner.

Having said that, I  personally will not be saving any information that is important to me on their servers as I am a bit paranoid. Also the fact I already have licence’s for Microsoft Office is also a factor.

One question that does remain, would Adobe go after google now and ask them to remove the save as PDF functionality from this as they have rumored to have forces Microsoft in for Office 2007?

Websites that changed the world

Observer has a list of the top 15 websites that change the world. I am not sure I personally agree with all of them, but interesting nevertheless.


If you have not already heard, then there is a new CTP of ADO called ADO.NET vNext which adds support for both consuming and creating EDM (or Enterprise Data Modeling which some people know as Data Modeling or more commonly known as Entity-Relationship Models). If you want to get a quick overview of what this provides, then check out the 13 min demo (via flash) on what it does. There is also support for LINQ (or Language INtegrated Query). There aren’t any visual designers in this drop, but expect those to be added in the future ones. You can download this from here and get more information on the ADO.NET team’s blog.

Live Writer Feedback

[Update: Once published the maps were askew, so fixed that]

Now that I have had a chance to use Live Write for a bit, I thought I’d post my feedback so far.

What do I like?

Overall, I like it – its so far been the best tool I have used of its kind. I tried using Word 2007, but for me that never worked and it gets stuck in a loop – and keeps asking me for a credentials, which even after entering the correct one does not go work. I do not get any error or exception (though I have not had time to attach the debugger and see – maybe this weekend).

I like the GUI and overall if you are use to Microsoft software then this one is well layed out and just feel natural. I also like the fact that there is an SDK which lets you create plugins for this (e.g. the Currently Listening plugin which adds the song details at the end of this post). Also the image ftp upload works without any issues.

You can get a list of the plugins available from here. At the moment I have used DeeDee’s Code Writer and the Listening plugin mentioned above. Some of you might also like the flickr one if you use that.

I also like the whole drop shadow thing it does when adding images. And while the map is definitely cool, its still not very functional. E.g. I live in Clapham Common, south London shown in the map below (you can see both the Road and Aerial views). I think as an initial beta, all this is very nice. But there certainly can be a lot of improvements. The whole push pin (see the big ugly thing in red), is well just ugly. Also, the search outside of US is not perfect. E.g. I cannot search using post codes in the UK.

My Home in London (Aerial View)

My Home in London (Road View)


What don’t I like?

There are a few thins that are quite annoying. Overall nothing is a showstopper, but it is just the small bugging things – and frankly the difference which makes this overall difficult. Here are the things I am hoping that are fixed in the next drop:

  1. MDI application – currently this is a SDI, and if you have more than one posts open then it very quickly gets very crowded and irritating. I wish there were tabs that I could use to switch between posts.
  2. When a post is published successfully why is that post still open in the Window. There should be a dialog box or that post gets closed, or it automatically closes that post and shows you an empty window. But wait, this is not a MDI app, so cannot do that. Big Smile
  3. Support for png sucks; jpg is fine.
  4. The whole Open post dialog does not work for me. I don’t like the fact there is only one view for the posts and not any option to view a details or list, etc.
  5. I wish it had a similar spell check like Word. It does spell check, but not the same with the squiggles as Word.
  6. No support for smilies. But all is not lost, as CS 2.1 can change certain text e.g. [ 🙁 ] (without the spaces), gets converted into Sad.
    • Maybe this can be another plugin that someone can write – where you can predefine text which can be replaced.
    • And while we are at it, someone can write a plugin for Google Maps, now that would be cool.
  7. To see the issues that others are having check out the forum. Though I don’t know if anyone from the Live Writer team is following up on this as I don’t see them active on this.

I cannot comment on the SDK, as I have not had the time to play with it and from the looks of it I won’t get around to it in the near future.

Also, its worth noting that to use Live Writer you would need .NET 2.0 runtime x86 (you can get the x64 version or the IA64 version depending on your platform). While this might not be a problem for those on a high speed internet connection. For those on a dialup this might be an issue because of the hefty download size.

I’m rocking out to Paathshala-Be A Rebel by Blaaze, Aslam, Naresh Iyer from the album Rang De Basanti

Utility to tweak HTC Hermes

Thanks to my colleague, Steve Butcher for this one.

Instead of messing around with the registry, there a utility available that will allow you to make tweaks to the HTC TyTn (the phone I got). This was also called the HTC Hermes, among a host of other names by different vendors. As the site article says, the utility itself free, but you need to register and download it and the site is in German only.

If you are either too lazy, or don’t know German, or just can’t be bothered and still want this utility then let me know. Since I have already downloaded this I can send you the cab file directly (its 745 kb).

[I’m rocking out to A Bad Dream by Keane from the album Under the Iron Sea]

File Sharing darknet launched

BBC is reporting that a new file sharing darknet (what is that?) service called Relakks has launched in Sweden. I think they have been a bit overwhelmed lately, if you check their website, you get the following message. Wink.

We have been completely overwhelmed by the interest in our services. Whilst we are extremely happy about this, our vpn-servers aren’t. Neither is our banking partner. Both are having an extremely hard time keeping up with the interest.

Now, if only someone can translate that into English for me. I tried this, but it was not very successful.

New version of Google Talk

Google just released a new version of Google Talk, that adds support to send files between users, allows you to leave a voicemail for the person you were calling and share with others what music you are listening to.

Interesting IE 7 Security feature

IE 7 Certificate Error When looking at the Dell battery replacement site, using IE 7 (beta 3), the certificate was expired and even though I said “please ignore that and continue”, I saw this interesting feature as you can see in the screen shot. The address box has a red background – warning me and also a new Certificate error. This is certainly interesting and my kudos to the IE team as it would help the average non-technical user and raise the awareness.

I’m rocking out to Veronicas – Everything I’m Not [Jason Nevins Remix]

Windows Live Writer

Continuing my quest for better offline blogging, this is a test post using Windows Live Writer – first impressions are good despite some people having “interesting” behaviors with this online. I’ll keep you guys posted on how this goes for me.

Open Linux Mobile coming out soon

Qtopia Green PhoneTroltech will be releasing a open linux based mobile phone next month which has a user-modifiable linux OS and is a working mobile supporting GSM and GPRS. The phone will be available as part of a SDK and will be available in a candy-bar form. Troltech are hoping the “spirit of innovation” will help it be a success and will be marketed as the “first open Linux mobile device for application developers”. The phone is based on a dual-core XScale processor at 312 MHz with 64 mb ROM and 128 mb flash. The idea sounds very promising (especially to geeks), and it would certainly be interesting if it does take off.

More phone pictures

Some of you have asked me what I think of the phone and how does it feel – msmobiles has lots of pictures of the phone I got (HTC TyTn) (via Nino’s blog). I just think I am not brave enough now to run Linux on this phone quite yet; although I am sure Karan would beg to differ. Wink

Upgraded to CS 2.1 RTM

I upgraded the blog to CS 2.1 RTM, after a few days of testing and everything seems to be working fine. If you find something thats broken, please do let me know.