Thursday, 19 February 2009

The Dual Homed Issue

A number of server roles in OCS require multiple network interfaces - the mediation server or the edge server for example. This can lead to an issue where both network cards are on the same subnet.

The issue aris
es due to the fact that you're never quite sure which interface your traffic is going out of. On the mediator this causes a problem as traffic for your voice gateway must come out of its own interface whereas traffic on the OCS side must also come out of its unique interface.

With an edge
server you get a slightly different effect. For a start from a firewall perspective you need to know which interface is being used for traffic as you need to set the rules appropriately. Another issue is that LiveMeeting needs traffic responses from the interface it sent to in the first place - if it comes from another interface (even if that 'other' interface is a publicly routable address) LiveMeeting will assume that it's a NAT'ed address of somesort and will go away and sulk.

So, how do we deal with? Well the simplest way is to do it via the routing command. First, consider this scenario. (Click on the image to expand it).

In this example we have a server with two network interfaces connected to the same subnet of 192.168.143.0. The default gateway is set to the internet facing gateway of 192.168.143.254.

One thing to note here is that you can only have one default gateway. Setting a default gateway on both interfaces is pointless and can lead to bizarre behaviour - even more so if the default gateways are different. So, rule number 1, only specify a single default gateway.

So let's assume that your internal network is all the private addressing ranges of 10.0.0.0 – 10.255.255.255, 172.16.0.0 – 172.31.255.255 and 192.168.0.0 – 192.168.255.255. What we want to achieve is that all traffic for the internal network goes out of the interface 192.16.143.129 only and it goes via the internal gateway of 192.168.143.2.

So, firstly, how do we check to see which interface traffic is trying to go out of? The trick is to use TELNET and the NETSTAT command. The telnet session is used to start a connection to a remote host, and the NETSTAT command can be used to work out which interface is being used.

In this example, I'm going to connect to the SIP service on an OCS front-end server. So, first fire up two DOS prompts. In the first box, type 'NETSTAT -n' - you'll get an output like this.(Click on the image to get a larger view).

This will show any existing connections - the local address being the local interface being used, and the foreign address being the target. The :xxx shows the source and destination ports respectively. In the other DOS prompt, start a TELNET session to your host on a known port. In my example, I'm using the SIP service on an OCS front-end service. For example you could use 'TELNET host port' or in my example 'TELNET 172.22.0.141 5061' where 172.22.0.141 is my SIP server and 5061 is the SIP service.

Now, if your routing w
orks the system will connect to your target service. At this point, you can run the 'NETSTAT -n' command and see which interface the connection is going out from. Look out for the target IP address in the 'Foreign Address' column and the port that you specified. If your routing doesn't work, if you're going out of the wrong interface and via the wrong gateway for example, your system won't connect in the TELNET session. The 'NETSTAT -n' command can still be used to view the interface and the port however - the state will simply be 'SYN_SENT'. See the example here.

Line 3 shows my local interface of 192.168.143.128 (My internet facing network card) and the destination address of 172.22.0.141:5061 in a 'SYN_SENT' state. From this, we can see that the request is going out of the wrong interface.

So how do we resolve? Well it's essentially by adding in a static IP route which is in itself pretty easy - the trick is to make sure you specify the interface to use for the route. To get a print out of your routing table use the command 'ROUTE PRINT' from your DOS prompt. You'll get a screen like this.

Make a note of the interface references at the top. 0x10003 refers to the NIC with the MAC address of 00-0c-29-dc-1d-3f which is our interet facing NIC. 0x10004 refers to the MAC address of 00-0c-29-dc-1d-49 which is our internally facing NIC, and the one we're interested in.


What we're going to do is add static routes for the private address ranges via the internally facing NIC and via the internally facing gateway. Do this with the following commands:

ROUTE ADD 10.0.0.0 mask 255.255.255.0 192.168.143.2 IF 0x10004 -p
ROUTE ADD 172.16.0.0 mask 255.240.0.0 192.168.143.2
IF 0x10004 -p

The above commands may wrap - they need to be entered on the same line. Note the 'IF 0x10004' - this is where we specify which actual physical interface to use for the route. If you'd just have entered the gateway without this you may still be able to route to your target but you wouldn't be able to control the interface that the traffic is sourced from.

Enter the above commands, and re-run the 'ROUTE PRINT' you'll get this screen.
You'll now see the addition of the static routes at the bottom of the list - note it doesn't however specify the interface.

How do we test to make sure we're using the right interface? Well, as above, we use the TELNET test along with 'NETSTAT -n' to see where the traffic is going.


Fire up a couple of DOS prompts and in one window start a TELNET session to an internal host on a port you know to be open (and accessible via your firewall!). In my example, I'm connecting to an OCS Front-End server's SIP port with 'TELNET 172.22.0.141 5061'. Once you've started your telnet session, re-run the 'NETSTAT -n' command in the other window, and you should hopefully get an output like this:

Now, in this screen you can see on the last line a session to my target address of 172.22.0.141:5061 going out of the 192.168.142.129 interface - our internally facing interface. Also, the session is established showing that we're hitting the right gateway.

This is exactly what we wanted.

In general multi-homing Windows machines on the same subnet is not to be recommended, especially if you're using the machine for 'normal' Windows services such as file/print etc. For service provision as a SIP Proxy, mediation etc. however it's completely workable but more complex to set up.

Another note for your DNS by the way is to be make sure that only the relevant interface is entered into your DNS. For example on a mediator role you don't want the interface used as your voice gateway side to be returned when the DNS is queried for the server's address - you want to the OCS side interface to be returned.

On another note I've seen a number of sites where people have tried to control routing behaviour by changing binding orders and the like. They've often had some success doing this too. One thing I often hear about this scenario though is that it 'mostly works' and is 'a bit flakey'. Controlling the routing behaviour as above is as solid as a rock and just works.

So, there you have it, how to control multi-homed routing. Who said Windows wasn't exciting.








Tuesday, 1 July 2008

The Etiquette of Presence

One thing that's interested me with the whole idea of 'Presence' is what's the etiquette for your presence status? What's the norm for talking to somebody when they're on busy/available etc?

I can't help thinking that a lot of people do not use the presence/IM system in a productive way, instead they see it as another hinderance much like Email. I.e. it gets in the way of 'real' work. You can see these people as they, by default, every day, all day, have their presence set on 'Busy'.

Busy? Too busy for what? Too busy to talk to your fellow work colleagues even though that's part of your every day working life?

It seems to me people that do this are simply not aware of the working capabilities of a presence system or in fact possibly do not understand it. What's more, if somebody I deal with every day is always and by default marked as 'Busy' I pretty much end up completely ignoring the busy marker, therefore completely negating the point of it.

So this has led me to wonder about the etiquette of presence.

I thought for a start, I'd look at how I use mine and then see if we I couldn't work back from there. Firstly, I'd like to add that I'm a very big fan of immediate communication - I have a passionate hate of Email - I find it can become a big part of my working day just managing the amount of email I get and what's more a large amount goes unanswered. A large amount that could have quite easily been dealt with in a very short IM conversation.

So, let's look at states:

1. Available
I'm here, I'm doing stuff, but I'm available to chat. It doesn't mean I have nothing to do. This is my default state unless I'm with somebody or particularly focussing on something.
If somebody IMs me, I feel I can not respond to the IM immediately and the person sending the IM will not go off on one. It's not the same as somebody talking to you and completely blanking you for instance.
I'm available on the phone too.

2. Busy
I'm here, but I'm concentrating on something. I may choose to respond to your IM, but I may not. Don't take it personally. I will get back to you, and you may want to email me instead. I could be with somebody for example. I may be available on the phone, but you may get my VM.

3. In meeting

Obvious. I'm in a meeting. Try IM'ing me, I may be able to respond as a lot of my meetings involve client demos that are not particularly relevant to me during the whole session. If I don't respond, don't take it personally. I doubt you'll be able to get me on the phone, you'll more than likely get my VM.

4. Do not disturb.

I'm under pressure to achieve something/deliver something. Do not IM me, I'll not respond. Email me and I'll get back to you - mark it as urgent if required. My team members, or people 'important' to me are set to be able to IM me when on do not disturb.

5. Away

I'm not at my desk, I'm in an unscheduled meeting (loo stop or gone for a coffee). Try IM'ing me, I'll respond when I'm back at my desk. Likely to be available on the mobile.

Two points I'd like to qualify on the above. My status often switches to inactive - I.e. Available but inactive, or busy & inactive. This is often because I'm using my laptop Mac based apps, rather than my windows session. So windows thinks I'm inactive whereas in fact I'm at my laptop just not working in Windows. An annoyance that I'm solving currently with some funkery & XML scripting.

Second point is about 'In a meeting'. The 'In a meeting' status is generally taken from your Outlook diary. Now, a problem for this is that if, like me, you need some form of Time Recording (for billable work) then I tend to use Outlook for this recording. This results in a constant state of 'In a meeting'. In addition to this, if I'm at a client's site I may be actually available but my automatic status still shows as 'In a meeting'.

The presence & IM tools are there to help you be more productive and to control how people can talk and interact with you. That's if you use the states properly. If you just blindly set them to busy or away - or even worse just don't sign in - you're not getting the ability to manage all those conversations with your work colleagues.

It's a tool, in my opinion a bit of education on its use could go a long way.

You can also apply notes to your presence by the way - sometimes useful. It will show your out of office status for example, or you can have your status set to busy and your note saying 'Please email me if you need anything'.

It's an interesting area and it's massively easy to see who buys in to the idea of presence, IM and the whole UC thing compared to people who just don't quite get it. Funny thing is I remember exactly the same conversations when email first started to get popular in the early/mid 90s. What do I need it for??? Why don't people just call me?

Personally I find IM a great way to deal with those one of quick conversations. I also accept that what's important to me right now may not be that important to the person I'm talking to so if they choose not to respond immediately I don't go off in a huff.

It's also a good social way to keep up to speed on things - especially if like me you're away from the office and your colleagues for long periods of time.

In conclusion I would suggest people think about how they manage their presence status, what message they want to send out and also how they want people to interact with them. It's a massively powerful tool, and yet one that I think is currently misunderstood.


Thursday, 19 June 2008

Example RegEX Strings for OCS

Ok, I've been asked to provide some example RegEx seach/replace strings to get started on phone number normalisation within OCS. I've also promised forthcoming articles on integrating with Cisco CallManager & CUPS for Remote Call Control and for Enterprise Voice.

They're coming, honest. I've been busy. Or something.

Firstly, this is a good calculator for testing your expressions - remember to set it on 'Replace' for the operation.

Anyway, some example RegEx strings for you. First
ly, remember the format is First Line Search String, Second line replacement string. Click on the display to get a better view of this s/shot.


Let's take a few and have a look.

4 Digit Extensions
This is quite a common one - a 4 digit extension that needs converting to a full E.164. You need to know your extension ranges (I.e. 8000-8099 for example, or 4100-4199 as another example).

So, let's look at the search criteria.

^(80\d{2})$

So, we're matching on 80** effectively, I.e. 80 and two other digits, that could be anything. So 8001 would match, 8101 would not.

The replacement string is +44163556$1. This will prefix +44163556 to our number giving +4416355680xx where xx are the last two digits that meet the search string detailed earlier.

Now, that's quite a simplistic one, and just works.

Let's look at a more complex one - what about numbers with spacing, say an international one like 001 292 292 2954?

Firstly, I'd like to make a point about the spaces. We've had numerous discussions with Microsoft with regards to whether you need to include the spaces in the search criteria. The initial understanding was that you do not. In fact, if you use the route helper tool (available in the Office Resource Kit) you'll see it never, ever, accounts for spaces in numbers.

From personal and corporate experience we've found this NOT to work when normalising from the AD through to the Address Book Service - you simply have to account for spaces within your RegEx expression.

To be clear - these two numbers are NOT the same:

001 292 292 2954
0012922922954

So, let's look at the search pattern for the above number scheme:

^00(\d)(\s)(\d{3})(\s)(\d{3})(\s)(\d+)

Looks quite complex?

^00(\d) )(\s) - this searches for a three digit number starting with 00. In normal wildcard terms this is searching for 00*. Ths \s is a whitespace character, so we're serching for a 3 digit string with a following space...So again in normal wildcard display '00* '.
(\d{3}))\s) - searches for any three digits with a trailing space - so '*** '
(\d{3})(\s) - same as above, searches for any three digits with a trailing space
(\d+) - any number of remaining digits

So, as you can see, the search string builds up. Use the calculator detailed above to test and evaulate them - it's not as hard as it looks!

Now, let's look at the replacement string.

+$1$3$5$7

Now, the 1, 3, 5 & 7 refer to the string classes as specified in the search string. Let's break down

(1)(2)(3)(4)(5)(6)(7)
001_292_292_2954

(1) = 1 (The RegEx expression removes the leading 00)
(2) = First space
(3) = 292
(4) = Second space
(5) = 292
(6) = Third space
(7) = 2954 (Remaining characters)

So, again, let's look at the replacement string.

+$1$3$5$7

A bit clearer now? You're building:

+12922922954

...and you now have the full E.164 number.

It takes a little perseverence with your first evaluation of the numbers however it's pretty easier when you have a good calculator to hand.

Good luck.



Thursday, 12 June 2008

Office Communication Server & Telephone Numbers

One area of voice integration with OCS that I get asked about is that of number normalisation - even though typically the questioner does not actually realise that's what they're asking. The normal question I get is

'Why doesn't
my Communicator client have any numbers for anybody?'



I.e you right click on somebody there is no number available for you to call.

Well, there is a big re
ason for this, and it's an important one - one that seems to be causing an awful lot of confusion out there for one reason or another, whether it's phone numbers not appearing or not being able to actually make calls.

This big reason is that OCS only works with E.164 numbering. There's an article here on Wikipedia about it - but I'm sure if you're reading this you'll actually know what E.164 is.

This is an example of an E.
164 number compared to a 'normal' number: +44 870 60 10 100 - normalised is 08706010100.

The other thing to consider is that OCS only considers a number to be an E.164 if it starts with a '+'.....

Now, I want to stress this
, you may think you've come up with various funky ways to ignore the E.164 requirements by putting a plus in front of your AD numbers for example, or by doing number manipulations at the gateway etc. etc. however I cannot stress enough - just don't do it. The whole of the OCS product set is designed to work with E.164 - stick with it, and deal with the E.164 at the edge - I.e. interface to phones - in another article... I.e. I'll show you how to do it in a standardised way that makes interoperability relatively easy.

So, what am I covering in this particular piece? I want to show you how OCS interprets your telephone numbers from Active Directory and how you can get them to show within your communicator cli
ent. I'm not at this point covering voice integration for Remote Call Control or for Enterprise Voice - we'll get to that.

The first thing to get clear is that OCS does not read telephony information directly from the Active Directory with every query - this would place too large a load on the AD system in larger deployments
. Instead, a seperate Address Book system is implemented. This is an intermediary between the Active Directory and the OCS system.

The Address Book Server (let's call it the ABS from now on) will read E.164 numbers from Active Directory and populate them into the OCS Address Book. Now, hands up who has E.164 numbers populated in their AD? Anyone? No? Thought not.

So, how do
we get 'normal' numbers to correctly appear in our Communicator client?

We do these using a process called Normalisation - or Normalization if you can't spell.

By default, OCS has a number of in-built rules to normalise numbers between the Active Directory and
the OCS ABS however these are predominantly US based formats and as such do not translate particularly well to the UK and Europe.

So let's run through the process of normalising your numbers from AD.

Office Communications Server Resource Kit
The first thing I would recommend is getting hold of the OCS Resource Kit. This can be downloaded here. Install it on the server that has your ABS on it for now. As a bit of advice, do not accept the default directory, instead put it in the root (C:\OCSResKit or similar) - a lot of the commands are command line based and having to type in 'CD \program files\office communication
s server 2007 resource kit\bin' or whatever it is gets old really quickly.

Enabling Specific Normalisation
The first step in normalising your phone numbers is enabling control for normalisation - I.e. turning off the
in-built 'default' rules and specifying your own. To do this, you can use the 'ABSConfig.exe' tool from the resource kit. This tool is used to configure ABS within the OCS deployment and as such must be executed on the server housing your ABS.

Executing the utility gives you this screen. Ensure that 'Do not apply any include or exclude filters' is selected as well as 'Use normalisation rules and include the normalised number for the phone attribute
s'.

Select the options and then click 'Apply Changes'.

Note that you
can use this tool to modify the mappings of AD attributes to their OCS equivalents - for example I configured the main work number to come from the AD 'otherTelephone' attribute during testing to ensure I didn't break anything.

Next, click on the 'Configure WMI' tab at the top of the screen. On this screen only change the 'Normalisation Rules' section - ensure that 'Apply only
company-specific normalization rules' is selected and click 'Apply Changes'.

Once you've done that you can quit out
of the tool.









Normalisation File
To normalize the numbers
according to your own rules you need to create text file in the OCS' Address Book directory. You will have noted this at installation – if you didn’t, type ‘Net share’ from a DOS prompt on the server that runs the ABS and you’ll see the directory listed.

You need to create a text file in that particular directory explicitly called:

Company_Phone_Number_Normalization_Rules.TXT

Note the Americanism here – it’s important that this text file is named exactly as listed.

So, what’s in the file? Well, it essentially a list of normalization rules using regular-expressions as the search and replacement parameters.

In terms of file fo
rmat – these is no format other than every expression is started by a search string and finished by a replacement string.

Example format:

# Directly pass numbers that are already detailed as E.164
^(\+\d{10}\d+)$
$1
# now 4 digit extensions
# 8000-8099
^(80\d{2})$

+44163599$1

So, comments on the format. Hash is a comment. The first line is your matching RegEx - I.e. to see if the number that's read in scope of the modification. The next line is the modifier - I.e. the modification to apply to the number.

In the above example the first rule checks for numbers supposedly already in E.164 by checking
to si if the number starts with a '+' and is at least 10 characters long - if it is, it is passed untranslated.

The second rule checks for numbers between 8000 and 8099. This number is then modified to:

+44163599x where x is the original extension number. Note I've modified the numbers so they're not real numbers.

Now .NET Regular Expressions (RegEx) are a bit beyond the scope of this article however they're not that difficult to learn. It's useful to have a test though - for this purpose I can thoroughly recommend this site. Make sure you change the operation to 'Replace' and you then can test your RegEx against your numbers.

There are a couple of useful sites out there on .NET RegEx including this one and this one - worth a read-u
p.

There’s also a routing-helper tool within the OCS Resource Kit however as is often the case with MS software I found it hid too much and also did not tell the whole truth in terms of expression output – it ignored spaces for example in the tests but these were not ignored on the actual live OCS solution.

Your number must match one of the rules in this normalisation file for it to appear in the ABS. Now, fortunat
ely OCS dumps a file of all the numbers it cannot match into a single file - you can use this as reference for the rules that you'll need to enter.

The file is called 'Invalid_AD_Phone_Numbers.TXT' and is located in the in the Address Book shared directory. You'll see a number of entries - probably loads at first inspection - along the lines of this example:

Unmatched number: User: 'DhakinoNzwange' AD Attribute: 'mobile' Number: '6 8597683'
Unmatched n
umber: User: 'Derek.bristow' AD Attribute: 'ipPhone' Number: '0'

The above would tell me that these numbers would not appear for these users as there's no matching rules for those formats. In the above examples though it's worth noting that chances are a 0 and the number listed are actually wrong anyway - you really need to go through this file and make rules for all of the valid numbers that are listed in this non-matching file. The idea is to get the number of non-matched numbers down to a minimum.


Regenerating the Address Book
By default the address book within OCS is calculated and populated overnight. This is great for normal operation however it makes testing your normalization rules quite difficult. Luckily, there is a way to prompt the address book generation to run immediately.

This is a two step process:

1. Force a FULL regeneration of the address book
2. Run a synchronisation

To carry out each of these steps you can do the following:

Full Regeneration

Locate the ‘ABServer.EXE’ on your OCS server. This is typically in the following path:

C:\Program Files\Microsoft Office Communications Server 2007\Server\Core

You’ll need to run this command from a DOS prompt so start your DOS prompt and CD in to the above directory – it’ll take about 5 mis-types but you’ll get there eventually.

To regenerate, type the following command:

ABServer.EXE –regenur

This can take a few minutes to run – it must complete before you kick off the re-sync. To see whether it’s complete or not open the Event Viewer and look out for a 30028 event in the ‘Office Communications Server’ log.

Run a Synchron
isation
To run an immediate synchronisation, from the same directory run this command:

ABServer.EXE –syncnow

Again this can take a few minutes to run. From within the Event Viewer look out for a 21058 event to denote its completion.

After running
above have another look at the 'Invalid_AD_Phone_Numbers.TXT' file - this will indicate what numbers failed to match your rules. You'll need to revisit your rules file again and re-run the syncs.

Testing Your Rules
A more direct test is to see if you can see people’s phone numbers in your MOC. One thing to be aware of – and it’s caught me out no end of times – is that changes from the Address Book are not replicated to the client immediately. Only delta changes are downloaded and even so they’re a little unpredictable times. You can however force a FULL download of the address book for testing.

To do this, firs
thet close down your MOC by right-clicking on it and selecting ‘Exit’. Next, you need to locate the local copy of your address book. This is located in the following directory:

C:\Documents and Settings\Username\Local Settings\Application Data\Microsoft\Communicator\

NOTE: This directory is typically hidden so you will need to enable the viewing of hidden files within your Explo
rer.

The name of the file is ‘GalContacts’DB’ – delete this file and then start your Communicator again from the Start menu.

You should now be able to see the relevant numbers when you right-click on your contacts – as shown. (Of co
urse, you can only see them if you have some form of telephony enabled, Remote Call Control or Enterprise Voice....otherwise there's no point!).




Now, as a side note, do not be temped to try and do funky things here like adding 9s for an outside line etc. It simply does not work affectively and will cause you grief.

In my following articles I'll explain how to integrate into Cisco CallManager for both Remote Call Control and Enterprise Voice - all using E.164 numbers.

Until next time, thanks for reading, and hey, be careful out there.



When is broken tooth not a broken tooth

Last week while diving on the Shark/Yolanda reef I got a stabbing pain in my upper jaw - right at the back where your wisdom teeth usually are. I say usually are cos I no longer have mine.

Anyway, after poking about with my tongue and working out that if I press here I feel like I'm being electrocuted I decided that not pressing here was the order of the day. It started getting more and more problematic though and within a few days I was knocking back loads of Ibruprofen. Incidentally, on the ibruprofen story in the UK you're advised not to take more than 1800mg ish a day, maybe at a push 2400mg. After chatting to the drug man in Sharm he advised they did 800Mg tablets and I could take up to 4000Mg per day - I wasn't convinced to start but by the end of the tip I was knocking it back like nothing.

Slowly got worse to the point by Monday morning I was in an awful lot of pain - couldn't eat or apply pressure to my teeth.... So off to the dentist I trot. He poked me about a bit and suggested a jaw ex-ray as he couldn't find anything wrong with my actual teeth.

X-ray shows a hairline fracture in my upper jaw going back from the tooth in front of where my upper-left wisdom tooth used to be......

Well, today is my first day without ridiculous pain in my face and I also managed to eat some solid food. I achieved this state of nirvana by yesterday attending hospital and undergoing an operation to have my jaw pinned back together - in the process losing another tooth at the upper back.

So today, the sharp excruciating pain has gone, and I'm back to being sore. Sore I can cope with.

Funny thing was toward the end of (last) week and this weekend I thought I just had a broken tooth and was being a big girl's blouse.... It's kind of a relief that I wasn't.

Both the doc and the dentist were curious as to how I didn't know I'd done something more serious - the only thing I can think of is that as the pain came on a lot worse Saturday on ward was that the pain was being dulled by my use of Nitrox last week while diving? I.e. the pain came on pretty sharply once I'd stopped diving?

Well, you live and learn. I think I've had my fair share of hospitals now and I'd really, really like it if somebody else could give it a go from now on. Thanks very much.

I'm off to try and eat a bacon sandwich.

Here's a question - how come everytime I got to Egypt I start pining for Bacon sandwiches?







Wednesday, 11 June 2008

Diving - Sharm El Sheik, Egypt

I'm an avid scuba diver and have been since 2003 after trying out in a pool. Truth be told at the time I was actually trying to impress a girl - how many times have you done stupid things to impress women? Trying to impress got me into scuba and skydiving, so it's not all bad I guess. Anyway, I'm digressing.


First week of June I spent another week diving out of Sharm El
Sheik in Egypt - probably my 20th or so trip now specifically for diving. I thought I'd write up the experience.

Firstly, to get you in the mood, have a look at the pictures: My Gallery


Feel free to have a browse through.

So, onto the trip. The trip was booked with a company called
Explorers - they specialise in dive specific trips. I was introduced to them via another diving group called DiscoverScuba.

I am digressing slightly, but Discover Scuba is run by a guy called Chris Scott - if you're looking for somebody to train you in diving I couldn't recommend him enough. So much so when my friends have asked to go diving I've directed them via Chris, rather than dealing with them myself. He's a fantastic instructor with great patience and ability to train. Highly recommended.

Anyways, Explorers arrange dive specific trips to numerous areas however in this instance I'll focus on our trip to Sharm. The whole trip, flights & bed & breakfast hotel was about £400 - this is including a single supplement for me - it's cheaper if you share a room obviously, however I'm fussy and like to have the option of not having to worry about other people in the room.

Flights
We flew out of Gatwick around 10:45am on the Sunday. I was a bit disappointed to find we were flying with Thomson - in my snobbery I'd assumed Thomson were like the Chav airline of the holiday world.... but I was pleasantly surprised. The planes were very modern 767s and were very comfortable. Maybe not as comfortable as the previous carrier Astraeus, but they were good enough. One think I will add is that you must pre-book your meals if you actually want to eat on the plane - we didn't, and we found ourselves with no food. Chavtastic.

Flight out was about 5 hours and was an easy experience.

Sharm El Sheik Airport
You've not experienced an airport like it, I'll tell you that much. Sharm's Airport is a military airport about 20 minutes out of Naama Bay (the centre of Sharm). It's ok, but a little hectic. If you want to head out of central Sharm (into Ras Mohammad for example) you'll need a visa - this is GBP8 of 15US$. An important note is that you do not have to joing the big queue that everyone else joins - go to the far desks and just ask for a visa. Saves queing. If you're staying in Sharm you don't need the visa.

Transport to the Hotel
You get a free bus transport from the airport to the hotel obviously - however still being a fussy little fecker I much prefer to get a taxi. I don't like the busses as they can't take ages to round up people and generally farting about before taking you to your hotel.

Taxis from the hotel to downtown Naama are typically around 10GBP but you have to barter hard to get them down - they rely on the fact that the tourists don't know how much the taxis are. On this trip I simply couldn't be bothered so didn't really barter meaning we paid about 20GBP for the journey.... Shockingly lazy I think.

The Hotel
We normally book into the Ocean Club this is a 2/3* hotel located about 10 minutes (or 2.50GBP) out of the centre of Naama bay in a suicide taxi. It's rooms are adequate, it's food is ok, and it has a couple of good pools - one deep for dive training/swimming and play and one shallower one where bizarrely they used to do the dive training. It was quite comical watching people train to dive with their heads sticking out of the water.

It's not a bad hotel - I've used it many a time. It's a pretty good place to stay if you're travelling by yourself as you'l
l find a fair number of other single travellers there, typically diving with Ocean College - this means typically you'll see the same people around the bar/pool when you're not diving.

It's also cheaper to book a whole week here even if you're staying on a boat for a few days like we typically do - it gives you somewhere to dump your kit that you wouldn't normally want to take on a liveaboard.

The Diving
On to the important bit - the diving. We used the Ocean College dive school that's located within the hotel comple
x - it used to be next door. I've dived with them numerous times now and they're a good outfit. They try and keep the same group of people together on the day boats so you end up with a more friendly group - I've made some good friends from this setup and am on good terms with some of the DMs/Instructors from there, always useful.

There was a good group on this trip - some I knew from other trips, some personal friends and some people fresh to the trip. The group seemed to work and was probably one of the most socially-succesful groups I've had on the trip. Probably the reason why we seemed to get drunk so readily (and go swimming at 4:30am - go figure. That was Kim's fault that was). Anyway.

Over the week we did loads of diving including the local sites such as Ras Nasrani (Ras means 'head' or 'headland'.), the Gardens (Near, Middle, Fiddle & Far), Ras Bob, Ras Ghazlani amongst others. Personally the reefs for me start to blur into each other as my particular interest are wrecks and the more technical side of diving, rather than reef recreational. Saying that I do love the diving anyway and the reefs here are probably the most spectacular in the world... Certainly my favourite anyway and I've dived a lot of places, including the little reefs off of Australia.

We also did some drift diving in the beatiful Ras Mohammad nature reserve, and an early day out into the straights of Tiran to do the outside of Jackson (and for some, both sides of Thomas all on the same dive... but that's a whole different story).

You generally had a choice of 2 or 3 dives a day and the options of using Nitrox - one thing to be clear on here though is that these boats are only recreational diving, I.e. no-stop diving in PADI speak, or non-decompression dives in everybody-else speak. They run tech boats I understand although personally I've never used their tech services having normally arranged my own boats & techie mates.

The first day is usually easy local sites typically to ensure people are good in the water - remember some people won't have been in the water for a while. This didn't really apply to my immediate group anyway as we're all relatively experienced divers with a lot of dives under our belts.

Our guides were George Wilders (who's married to Clare, another one of the instructors from OC) and Marc. Both were very good guides giving good briefings and were also able to recognise capable divers and leave them to go off and do their thing. This is a very important point - I've had massive fall outs with dive organisations that insist you pootle around after a dive guide on a site that you probably know better than them anyway. Anyway, my point being the dive guide service was excellent. Mind you, I probably would say that cos I'm pretty sure George (via Clare) knows where I live and I'm not that silly.

Obviously OC hire out kit - I've no experience of it personally however I didn't hear of any complaints.

The boats are comfortable, the crew very helpful (as is generally the case in the Red Sea) and the food fantastic.

If I had any negative comment about Ocean College, and I'm struggling to come up with any, it's their costs. They seem to have gone up significantly in the last year. Also, they quote in Euros but bill in Egyptian Pounds (LE) which with the shift in the Euro lately means you get hit twice by the conversion rates. Not good - they should sort this out and bit entirely in Euros, or better still (well for me anyway) in US dollars.

Anyway, moving on to the diving. There was a bit of a plankton boom this year resulting in a large number of sitings of Manta Rays, Whale Sharks, Hammerheads etc. I've never seen so many sharks, mantas or Whale Sharks out of Sharm before, it truly was fantastic. To see the Hammerheads and the Mantas you often have to swim out in to the blue rather than along the reefs - this can lead to a curious dive. 45 minutes of boredom and sensory deprivation followed by 5-10 minutes of sheer excitement as a Manta Ray makes another pass at you (so to speak). You always had the choice of course of following the reefs - as we did on a few occasions.

We also did some night diving - a fantastic option out of sharm and not to be missed, assuming you're OK with diving in the dark. Fortunately I remembered to bring my proper torches this time. Having a decent torch is pretty important - I use the Kowalski diving lamps, fantastic gear distributed by LightHouse Diving. You get to see some different things at night - mating Octopus (Octopi?), hunting Lion fish etc. The Lion fish are pretty funny, they see the lights and use them to hunt by - shine your torch in a direction and off they trot. As I had a pretty powerful torch with me I ended up with a whole troop of the little fellas.

Have a look at the pictures to get an idea of what was seen on this trip! The diving really was spectacular.

Dive Gear
I was diving with a 5/3mm split semi-dry (I.e. 5mm core, 3mm limbs) that's seen better days so all the seals are gone - but even so I was warm enough. Water was around 25 degrees. I'm normally a bit of a wimp with water temperature - 22 degrees or below is dry-suit weather as far as I'm concerned.

Pretty much everyone on the boat was using std. recreational setups with single 12l tanks with octopus setups - didn't see any long-hose, pony or wing setups. Bizarrely I think Vicky had the most 'technical' set up as she'd borrowed some of my gear.

Nitrox was available if you prebooked.

Non-Diving Entertainment
There's numeros
places to eat in central Sharm (Naama Bay) as well as round the markets in Old Sharm. Some people find Old Sharm a little intimidating however there's nothing to worry about and it does give you a better impression of the area compared to the touristy Naama bay.

Food is generally cheap compared to the UK (Except for Little Buddha - see later) - you'll pay around 7GBP a head including a beer or two typically, rising depending on how much you drink. Food around Old Sharm is typically cheaper.

Some food recommends:

China/Thai house in Naama Bay. Tony Blair usually eats here - but don't let that put you off I don't think it'll turn you into a war mongering lieing grinning idiot just by attending. Food is good here. There's two restaurants - Thai & Chinese. What's unique is that you can order from both menus if you ask.
Camel Club Indian Curry House. Yes, Indian in Egypt. Located in the Camel Bar complex the food is fantastic - you'll need to book to get into though.
Fishermans in Old Sharm. Or the Cat Restaurant as Vicky so elegantly puts it. Fantastic food, quite cheap although they have put their prices up.

Some food don'ts:
Little Buddha. UK prices, poor service, and boring food. Nightclub bit after is a bit boring, didn't even get to use my glow-sticks.

There's good shopping for tat too in central Sharm and in Old Sharm, don't forget to barter as it's part of the fun. Unless you're like me - I think life's too short to argue about 50p. Graham however seemed to love it and would barter for ages only to pay what was agreed at the beginning anyway.

Taxis
Taxis around Sharm are pretty easy to get and cheap however never ever accept their price they offer. Always barter them down. Rememebr, there's a lot of taxis in Sharm, it's easy enough to walk away and get another one. Within Sharm a typical taxi fare is 2-3GBP (20-30LE).

They've all had new cabs by the way - gone are the crappy old Peugots they've all got sparkly new ones! They still drive like lunatics however, although they don't seem to take offence at being asked to slow down - even if you scream it.

Weather
Scorchio. All the time. Averaged around 38-42 for our whole week - when you come off the boat and you get hit by the on-land wind it's a bit of an eye opener. I always avoid the sun as I burn so easily - I tend to wear factor 50 for the whole week and still get burned.

Sharm Belly

A lot of people complain of dodgy stomachs when they come to Sharm and they typically blame the food. In 9 out of 10 cases it simply isn't the food - it's hydration. Dehydrytion can give you similar effects to mild food poisioning - weak, spending time on the loo etc. Us brits just don't drink enough water and when placed in an environment with such hot dry heat we still don't. You should really aim to drink about a litre an hour - more if you're diving. It sounds a lot, but I'd rather be going for a widdle a lot that being sat on the loo (you know what I mean, can't think of a polite way to put it). If you do get the symptoms grab something like dyralite from your hotel reception and drink as much water as you can.

Also, it's worth putting more salt on your food than you would at home.

Summary
Anyway, this was supposed to be a quick summary of our trip but it's ended up being a semi-review on Sharm and advice on how to holiday. So I'm going to shut up.

I love the place, and I will be going back soon. Hopefully this time to do some Heliox training.















Wednesday, 26 March 2008

Sleeping & Eating....Why?

Sleeping & Eating - aren't they quite possibly the biggest waste of time ever?

I'm one of those people who seems to have engineered himself into being completely unable to go to bed before 2:00am and yet is still on average up around 8:00am. I tell you what, if I could not sleep I'd be properly happy. Mind you, wouldn't make the after affects of alcohol any more enjoyable.

Same with food - what the hell is that all about? Why don't they hurry up an invent pills you can take that not only make you have a cracking night out but also nur...nurish....,er, feed you at the same time? It'd save a lot of effort wondering about what you can or can't eat.

It'd certainly make my life easier being hypoglycemic anyway. Why can I spell hypoglycemic but not nourish? Doh.

Sleep just seems such an odd thing to do? Surely we should have evolved past it by now.

Oh my, I've made my first non-technical blog.