How To – Get started with Cisco CME

For some time now I’ve had a Cisco 2621XM router kicking around in a cupboard. The great thing about these devices is that they’re capable of running Cisco Communications Manager Express. Cisco CME is great functionality to be embedded into these kinds of devices, it makes a great choice for a branch-office VoIP PBX where only a handful of extensions are required. If you’re just using IP telephony, you just need a basic voice device – no FXO or FXS modules.

What equipment do I need?

A budget lab would work well with either a 1760 or a 2621XM, both of which sell for about £20 on eBay UK. If you’re keen to connect the device up to an analogue system, either using a normal telephone line or some analogue phones you already have you’ll need either FXO or FXS cards.

FXO stands for Foreign Exchange Office, this is the line coming into your property from a telephone provider (BT etc).
FXS stands for Foreign Exchange Station, this is a line you’d connect up to your existing analogue handsets.

These cards, known a VIC’s, can be quite pricey and on the 2621XM will require an intermediate card (NM-2V). If you’re looking at using analogue services it’s probably best to opt with the 1760 to avoid needing this. A 2 port FXO/FXS card sells for around £50.
Continue reading How To – Get started with Cisco CME

Investigating the Be/O2 block of The Pirate Bay

The news in the UK recently has been flooded with the news that major UK ISPs have been forced to sink The Pirate Bay. The ISP that I use, Be There have now implemented their block.

Visitors trying to access TPB are greeted with a page informing them that access to the website has been blocked. To begin with this block only effected HTTP traffic but before long, HTTPs was also blocked. I’ve been interested in how this has been implemented, so began investigating. Firstly I took a look at the HTTP communication between a normal client and The Pirate Bay:

$ HOST="thepiratebay.se";echo -ne "HEAD / HTTP/1.1\nHost: $HOST\n\n\n"|ncat $HOST 80
HTTP/1.1 200 OK
X-Powered-By: PHP/5.4.3
Set-Cookie: PHPSESSID=70e899d0720d92eae47ad4347813ef0d; path=/; domain=.thepiratebay.se
Set-Cookie: language=en_EN; expires=Sat, 08-Jun-2013 08:59:18 GMT; path=/; domain=.thepiratebay.se
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Fri, 08 Jun 2012 08:59:18 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 08 Jun 2012 08:59:18 GMT
Server: lighttpd

Continue reading Investigating the Be/O2 block of The Pirate Bay

Blackberry calendar not synchronising from device to Exchange

An issue was recently escalated to me where BES users were experiencing problems with their Blackberry calendar synchronisation. Appointments would appear on the device if they were created in Outlook, but not the other way around.

Blackberry Enterprise Server (BES) was running 5.0.3 on a Windows 2003 Virtual-Machine (VMware ESX).

Looking back over the logs on the server, the problem could be traced back to the installation of BES 5.0 Service Pack 3. The Changes in 5.0 SP3 didn’t show anything that could obviously cause this, so the first task was to update MAPI CDO to the latest version.

Digging throught the Messaging Agent log files yielded the following:

[40000] (01/06 00:00:04.871):{0x268} Failed to start CDO helper 070FD658 in StartCalHelper, retcode = 128
[40000] (01/06 00:00:04.871):{0x268} {dave.hope@example.net} StartCalHelper() failed in RunCalHelper
[40000] (01/06 00:00:04.871):{0x268} {dave.hope@example.net} CDO helper 078FD658 returned error '100' failed for LongTermEntryId=0 in LaunchCalHelper
[40000] (01/06 00:00:04.950):{0x268} {dave.hope@example.net} Unable to launch CDO helper in SynchronizeHelper
[40000] (01/06 00:00:04.950):{0x268} {dave.hope@example.net} Unable to process message with LongTermEntryId=0 in SynchronizeHelper
[20216] (01/06 00:00:04.950):{0x268} {dave.hope@example.net} Synchronize() failed: ERR_FAIL, Tag=2242466
[40000] (01/06 00:00:04.950):{0x268} {dave.hope@example.net}-UserControl::SlowSyncComplete-Entering SessID=4fce8f76
[40000] (01/06 00:00:04.950):{0x268} {dave.hope@example.net}-UserControl::SlowSyncComplete-Exits result=OK
[40000] (01/06 00:00:04.950):{0x268} {dave.hope@example.net}-HandleAppointmentToSynchronize-Exit-rc=Error
[40279] (01/06 00:00:04.950):{0x268} {dave.hope@example.net} SubmitToRelaySendQ, Tag=2242466

After trying everything I could possibly think of, the problem turned out to be outdated NIC drivers. BES was running under VMware ESX using an emulated e1000 NIC which shows up in Windows as an “Intel PRO/1000 MT”. The out-the-box driver was version 6.3.6.31 (from 2002). The latest version 8.10.3.0 (from 2008) can be downloaded from the Intel website.

Updating to the latest driver resolved the problem (amazingly).