Saturday, May 12, 2007

Diverting calls for sipX extensions to Exchange 2007 Unified Messaging voicemail

The guys on the sipX-users mailing list have once again been very helpful in working out how to use Exchange UM's voicemail services rather than the sipX internal system. There is currently a known issue where calls originating external to sipX get diverted, but are missing some important information required to allow Exchange to identify a diverted call. This is being worked on, and I'll provide an update as soon as I have more information. In the mean time, internal calls and diversions work fine. Instructions on how to get Exchange UM voicemail going with Asterisk and Trixbox are available here.

You will want to follow my previous documentation, regarding creating the external_mappingrules.xml file, and modify it to include the following information.

<userMatch>
<!--ExchangeVoicemailRule-->
<userPattern>3xx</userPattern>
<permissionMatch>
<permission>Voicemail</permission>
<transform>
<user>222</user>
<host>
dc1.lithnet.local</host>
<urlparams>transport=tcp</urlparams>
<headerparams>Diversion=&lt;tel:{digits}&gt;;reason=no-answer;screen=no;privacy=off</headerparams>
<fieldparams>q=0.1</fieldparams>
</transform>
</permissionMatch>
</userMatch>


This will divert all calls to 3xx to our subscriber access number (222). If successful Exchange will answer with a prompt to leave a message for the user of the extension you called.

Obviously, this will only work if you are using sipX as your primary PBX that hosts your internal extensions. If you are using Asterisk as the primary, you will need to wait for my Asterisk instructions.

Below is my entire external_mappingrules.xml file, including the Exchange dial rules.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mappings xmlns="http://www.sipfoundry.org/sipX/schema/xml/urlmap-00-00">
<hostMatch>
<hostPattern>${SIPXCHANGE_DOMAIN_NAME}</hostPattern>
<hostPattern>${MY_FULL_HOSTNAME}</hostPattern>
<hostPattern>${MY_HOSTNAME}</hostPattern>
<hostPattern>${MY_IP_ADDR}</hostPattern>
<userMatch>
<!--ExchangeVoicemailRule-->
<userPattern>3xx</userPattern>
<permissionMatch>
<permission>Voicemail</permission>
<transform>
<user>222</user>
<host>
dc1.lithnet.local</host>
<urlparams>transport=tcp</urlparams>
<headerparams>Diversion=&lt;tel:{digits}&gt;;reason=no-answer;screen=no;privacy=off</headerparams>
<fieldparams>q=0.1</fieldparams>
</transform>
</permissionMatch>
</userMatch>
<userMatch>
<!--ExchangeDialRule-->
<userPattern>2xx</userPattern>
<permissionMatch>
<transform>
<host>dc1
.lithnet.local</host>
<urlparams>transport=tcp</urlparams>
<fieldparams>q=0.9</fieldparams>
</transform>
</permissionMatch>
</userMatch>
</hostMatch>
</mappings>


Sunday, May 6, 2007

Connecting to an IBM Lotus Domino Server with Outlook 2003

I recently started a new job at an organisation that uses IBM Lotus Notes/Domino for their enterprise collaboration. As a person who has always used and relied on Microsoft Outlook, I have been finding the transition extremely difficult. The Lotus Notes client is lacking in a lot of areas that I have taken for granted in Outlook. It's not user friendly, not intuitive, and generally requires a lot more effort to perform a task than it would in Outlook. Rather than use standard windows controls (scroll bars, text boxes, buttons etc), IBM seems to have found the need to write their own. Of course this has the end result that none of the standard navigation and shortcut keys that we are all used to work. In fact, there was even a password field that showed my password in plain text rather than masking it as I typed!

Now, we are using version 6.x which it has been around since 2004. I know that version 7 is out, with 8 on the horizon. But I can't help thinking that even for its time, version 6 is very backwards. It looks, feels and behaves like a Windows 3.1 application. Considering Outlook 2003 was out a year before Notes 6 was released, I would have expected a little more.

Thankfully, all is not lost. I decided to browse the Microsoft downloads page, and see if there was anything available that would ease my transition into this new role. Much to my surprise, I found that Microsoft do indeed have a plug-in that connects Outlook 2002/2003 to a Domino server! I like to think that Microsoft feel sorry for guys like me, and wrote this plug-in to make our lives a little easier. In reality, it's probably more to assist organisations when migrating from Notes/Domino to Exchange/Outlook.

The restrictions are that you must be using Outlook 2002/2003 (a 2007 version of the plug-in does not seem to be available), and the server must be running Domino 5 or 6. Not the best news for the staff from my last job that are migrating to Domino 7 soon. Sorry guys.

Exchange/sipX Timeout Problems Resolved

Thanks to the efforts of Scott Lawrence and Mike Eklund from the sipX-users forum, I have updated my previous post with instructions on how to configure sipX to use SIP/TCP when communicating with the Exchange server. Mike has been working on this problem for a while, and with Scott's guidance, was able to determine the appropriate configuration modifications needed to resolve the issue. Thanks guys, a job well done and I'm sure that many others will appreciate your efforts.

Previously, sipX made 4 attempts to contact the Exchange server using SIP/UDP, before falling back to SIP/TCP. This caused a 5 second delay before a connection was made, and about 50% of the time, the call timed out before the Exchange server had a chance to answer it. To resolve this, we are now able to get sipX to use SIP/TCP for all communications with our Exchange UM server.

Unfortunately, we can't do this through the web interface at this stage, but I believe the sipX developers may be working on adding more direct support for Exchange UM in a future release. In the mean time, we must create some additional XML files, and modify the sipX configuration file. Full details are available in the updated post. If you have already followed the older instructions, then please delete the Exchange dial plan you configured before proceeding.

Please note that if you have the Unified Messaging role installed on a server that has the Mailbox role installed, there may be resource contention issues that result in timeouts and/or broken speech synthesis. Basically, the store.exe process is designed to agressively cache mailbox data into RAM. As the UM processes are infrequently used, they are paged out to disk to free up RAM for store.exe. When you try and call the Exchange server, Windows has to load these pages back into RAM, resulting in further timeout delays. The call usually times out, but will connect straight away if you call again shortly after.

I recommend installing the UM role on a dedicated server (or one that at least does not have the Mailbox role installed) in a production environment. In a lab environment, you can change the size of the store.exe cache to relieve these issues be following the instructions at http://support.microsoft.com/default.aspx?kbid=815372&product=exch2003 (instructions are for Exchange 2003, but are the same for 2007).

Wednesday, May 2, 2007

My (soon to be) new phone

It's time for a new mobile phone. I've been looking for something with push email capabilities for a while now. Specifically, I was after a device running Windows Mobile that can perform ActiveSync over GPRS. The problem has been for me that these devices are usually quite chunky. I currently have a Nokia 6230, which is an awesome phone. It's small, lightweight, good battery life, but has no push email support. Nokia's recent move towards Symbian OS has put me off upgrading to a new model. I've always found Symbian to be clunky and slow, and don't really want to have to deal with that.

What I really wanted was a phone in a Nokia 6320 form factor that had Exchange support. No silly touch screen, no silly tiny keyboards, just a phone with email. Just when I thought all hope was lost, HP have come to the party and announced their first smartphone, the iPAQ Voice Messenger 510. This has everything I want and more! Let's have a look at the checklist:

Minimum Requirements:
Runs windows Mobile: check!
Wifi support: check!
Exchange ActiveSync: check!
Persistent store: check!
Quad Band GPRS/EDGE: check!
Form Factor: 48.6 x 16.3 x 107 mm – tiny! Check!

Bonuses:
VoIP: integrating with my Exchange UM setup - check!
Voice Commands: check!
Speech synthesis and recognition: check!

Downsides:
Still not available yet!!! C'mon HP, get your act together!



And I thought I was going to look like a complete nuff-nuff talking to my Exchange server, now I'll be having conversations with my phone as well!