Category: Technology

  • My MacBook is broken (again)

    A few weeks after my Apple MacBook arrived, it had to go for repairs after the plastic top cover in front of the keyboard split.  To be fair to Apple, they repaired it under warranty (as they should – this is clearly a design fault – although they also scratched the top case and had to replace that too!).  Today, just 8 months later, I’ve noticed that it’s split again.  This is obviously a weak spot where my palm rests as I’m typing (after all, that is what the palm rest is for) but I’m not happy.  Looks like the Mac will be off to the Apple Store for repairs again soon but I really don’t want to be without my primary multimedia machine over the Christmas holidays.

    Last week I wrote about how Steve Jobs said that Apple couldn’t produce a $500 computer that’s not a piece of junk.  It seems to me that Apple doesn’t need the diversion of a small form factor PC (the context of Jobs’ comment) – they need to get the build quality on their normal (overpriced) models right first of all!

  • Securely wiping hard disks using Windows

    My blog posts might be a bit sporadic over the next couple of weeks – I’m trying to squeeze the proverbial quart into a pint pot (in terms of my available time) and am cramming like crazy to get ready for my MCSE to MCITP upgrade exams.

    I’m combining this Windows Server 2008 exam cramming with a review of John Savill’s Complete Guide to Windows Server 2008 and I hope to publish my review of that book soon afterwards.

    One of the tips I picked up from the book this morning as I tried to learn as much as I could about Bitlocker drive encryption in an hour, was John’s tip for securely wiping hard drives using a couple of Windows commands:

    format driveletter: /fs:ntfs /x

    will force a dismount if required and reformat the drive, using NTFS.

    cipher /w:driveletter:

    will remove all data from the unused disk space on the chosen drive.

    I don’t know how this compares with third party products that might be used for this function but I certainly thought it was a useful thing to know. This is not new to Windows Server 2008 either – it’s certainly available as far back as Windows XP and possibly further.

    For more tips like this, check out the NTFAQ or John’s site at Savilltech.com.

  • Book review: Active Directory Disaster Recovery, Florian Rommel

    Florian Rommel: Active Directory Disaster RecoveryA few months ago, I was asked if I would write a review of a new book about Active Directory (AD) disaster recovery (DR) and I was more than happy to do this – especially as I’d just finished writing an AD design for a DR infrastructure at my organisation. The book in question was Florian Rommel’s Active Directory Disaster Recovery book, which claims to offer expert guidance on planning and implementing Active Directory disaster recovery plans.

    AD DR is an important topic. Stop to think for a moment about how many services are reliant on this critical piece of many enterprises’ infrastructure and then consider what would happen if the AD was corrupted and no-one could log on…

    …and that’s why this book is potentially useful to so many administrators charged with the correct operation of Active Directory (including troubleshooting and recovering from any issues).

    The book starts out by explaining why organisations need a DR plan for AD (rather than just relying on the multi-master replication model), before moving on to look at AD design principles. The trouble is that those principles do not fit with Microsoft’s current advice for domain and forest design and there’s also the question of whether such design concepts even belong in a disaster recovery book (it could be argued that, if you’re reading this book, then you should already know about AD – indeed, the back covers says that the book “expects the reader to be familiar with the basics of Active Directory and Windows servers”).

    After two chapters of rather slow introduction the real content starts and subsequent chapters cover: designing and implementing a DR plan; strengthening AD for resilience; acting on the failure of a single DC (and then recovering from that failure); recovery of lost or deleted objects; recovering from a complete AD failure (shouldn’t that come after the single DC failure?); recovering from hardware failure; common recovery tools; and, finally, an example business continuity plan.

    Regardless of whether I agree with the advice in this book, the simple fact is that I found it very difficult to read. Not because it’s technical but because English does not appear to be the native tongue of either the author or the editorial and production team. As a result the text doesn’t scan well and is too informal in places – it felt more like the technical documentation I read at work than a professionally published book. That may sound like the pot calling the kettle black but I’m writing this on a blog (where opinion should be expected) and my prose is not subject to the review, proof reading and editing that a book should be (nor do I charge you to read it).

    I really want to say good things about this book as Florian Rommel clearly knows a lot about the subject. I have no doubt that he put a lot of work into its production (and I would have done a much better job of the AD design I mentioned at the head of this post had I read this book first) but the author seems to have been let down by the reviewers (James Eaton-Lee and Nathan Yocom) and by his proof reader (Dirk Manuel). I spotted a few errors that should have been picked up before publishing and there is far too much written that appears to be opinion rather than fact backed up with credible examples (in fairness, there is a bibliography but it would be better if there was a clear link between the content and the referenced source). Crucially though, for a book published in June 2008, four months after the release of Windows Server 2008, there’s no mention of any of the Active Directory changes in Microsoft’s latest server operating system.

    Sadly, the end result does not justify the cover price of £36.99 or $59.99.

    Active Directory Disaster Recovery by Florien Rommel is published by Packt Publishing (ISBN: 978-1-847193-27-8)

  • Defining custom presence states for Office Communicator

    Custom presence states in Office CommunicatorLast night, Garry Martin pinged me on Office Communicator and was very excited about something… as it happened, that something turned out to be the new features in Office Communications Server 2007 R2. He was also keen to show of the new custom presence tags he’d created and even I (the great instant messaging cynic) have to admit that they are pretty cool (I may find IM a distraction but presence awareness is a valuable tool).

    Why bother? Well, if you have to ask that question then this mod is probably not for you but I do find that there are different levels of busy in life and sometimes the default states are just not enough.

    I decided to implement this on my PC too and it’s quite simple. First up you need an XML file:



    Coffee Anyone?


    Yes, I really am busy…


    Customer Presentation

    In my case, this is called presence.xml and I’ve saved it in my Documents folder.

    Then you need a registry key to access it:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator]
    @=""
    "CustomStateURL"="file:///C:/Users/username/Documents/presence.xml"

    Restart Office Communicator and the new states are there for selection.

    I can’t claim any credit for this – the original details came to me from Tom Laciano (aka LCS Kid)’s blog post on OC Custom Presence States and Brett Johnson’s post which highlights the availability of an HTML application to do the hard work for you, via Garry. Tom’s blog post also mentions a couple of limitations in that you can’t have yellow (away) custom presence (why not?!) and that you have to sign in with one of the default states before selecting a custom one.

    At the moment I just have the three custom states that are in the example XML above but, after the day I’ve just had, I feel like adding another one – “Trying to process my Inbox to zero”…

  • Microsoft Virtualization: part 6 (management)

    Today’s release of System Center Virtual Machine Manager 2008 is a perfect opportunity to continue my series of blog posts on Microsoft Virtualization technologies by highlighting the management components.

    Microsoft view of virtualisation

    System Center is at the heart of the Microsoft Virtualization portfolio and this is where Microsoft’s strength lies as management is absolutely critical to successful implementation of virtualisation technologies. Arguably, no other virtualisation vendor has such a complete management portfolio for all the different forms of virtualisation (although competitors may have additional products in certain niche areas) – and no-one else that I’m aware of is able to manage physical and virtual systems in the same tools and in the same view:

    • First up, is System Center Configuration Manager (SCCM) 2007, providing patch management and deployment; operating system and application configuration management; and software upgrades.
    • System Center Virtual Machine Manager (SCVMM) provides virtual machine management and server consolidation and resource utilisation optimisation, as well as providing the ability for physical to virtual (P2V) and limited virtual to virtual (V2V) conversion (predictably, from VMware to Microsoft, but not back again).
    • System Center Operations Manager (SCOM) 2007 (due for a second release in the first quarter of 2009) provides the end-to-end service management; server and application health monitoring and management (regardless of whether the server is physical or virtual); and performance monitoring and analysis.
    • System Center Data Protection Manager (SCDPM) completes the picture, providing live host virtual machine backup with in-guest consistency and rapid recovery (basically, quiescing VMs, before taking a snapshot and restarting the VM whilst backup continues – in a similar manner to VMware Consolidated Backup but also with the ability to act as a traditional backup solution).

    But hang on – isn’t that four products to license? Yes, but there are ways to do this in a very cost-effective manner – albeit requiring some knowledge of Microsoft’s licensing policies which can be very confusing at times, so I’ll have a go at explaining things…

    From the client management license perspective, SCCM is part of the core CAL suite that is available to volume license customers (i.e. most enterprises who are looking at Microsoft Virtualization). In addition, the Enterprise CAL suite includes SCOM (and many other products).

    Looking at server management and quoting a post I wrote a few months ago licensing System Center products:

    The most cost-effective way to license multiple System Center products is generally through the purchase of a System Center server management suite licence:

    Unlike SCVMM 2007 (which was only available as part of the SMSE), SCVMM 2008 is available as a standalone product but it should be noted that, based on Microsoft’s example pricing, SCVMM 2008 (at $1304) is only marginally less expensive than the cost of the SMSE (at $1497) – both quoted prices include two years of software assurance and, for reference, the lowest price for VMware Virtual Center Management Server (VCMS) on the VMware website this morning is $6044. Whilst it should be noted that the VCMS price is not a direct comparison as it includes 1 year of Gold 12×5 support, it is considerably more expensive and has lower functionality.

    It should be noted that the SMSE is virtualisation-technology-agnostic and grants unlimited virtualisation rights. By assigning an SMSE to the physical server, it can be:

    • Patched/updated (SCCM).
    • Monitored (SCOM).
    • Backed Up (SCDPM).
    • VMM host (SCVMM).
    • VMM server (SCVMM).

    One of the advantages of using SCVMM and SCOM together is the performance and resource optimisation (PRO) functionality. Stefan Stranger has a good example of PRO in a blog post from earlier this year – basically SCVMM uses the management pack framework in SCOM to detect issues with the underlying infrastructure and suggest appropriate actions for an administrator to take – for example moving a virtual machine workload to another physical host, as demonstrated by Dell integrating SCVMM with their hardware management tools at the Microsoft Management Summit earlier this year).

    I’ll end this post with a table which shows the relative feature sets of VMware Virtual Infrastructure Enterprise and the Windows Server 2008 Hyper-V/Server Management Suite Enterprise combination:

    VMware Virtual Infrastructure Enterprise Microsoft Windows Server 2008/Server Management Suite Enterprise
    Bare-metal Hypervisor ESX/ESXi Hyper-V
    Centralised VM management Virtual Center SCVMM
    Manage ESX/ESXi and Hyper-V SCVMM
    VM Backup VCB SCDPM
    High Availability/Failover Virtual Center Windows Server Clustering
    VM Migration VMotion Quick Migration
    Offline VM Patching Update Manager VMM (with Offline Virtual Machine Servicing Tool)
    Guest Operating System patching/configuration management SCCM
    End-to-end operating system monitoring SCOM
    Intelligent placement DRS SCVMM
    Integrated physical and virtual management SMSE

    This table is based on one from Microsoft and, in fairness, there are a few features that VMware would cite that Microsoft doesn’t yet have (memory management and live migration are the usual ones). It’s true to say that VMware is also making acquisitions and developing products for additional virtualisation scenarios (and has a new version of Virtual Infrastructure on the way – VI4) but the features and functionality in this table are the ones that the majority of organisations will look for today. VMware has some great products (read my post from the recent VMware Virtualization Forum) – but if I was an IT Manager looking to virtualise my infrastructure, then I’d be thinking hard about whether I really should be spending all that money on the VMware solution, when I could use the same hardware with less expensive software from Microsoft – and manage my virtual estate using the same tools (and processes) that I use for the physical infrastructure (reducing the overall management cost). VMware may have maturity on their side but, when push comes to shove, the total cost of ownership is going to be a major consideration in any technology selection.

  • MVP = Mark’s Very Pleased

    MVPI’ve just heard that my Microsoft Most Valuable Professional (MVP) Award nomination for 2009 was successful and I can now say I’m an MVP for Virtual Machine technology.

    Thank you to everyone who reads, links to and comments on this blog as, without your support, I wouldn’t write this stuff and therefore wouldn’t be getting the recognition from Microsoft that I have.

    For those of you who skip over the Microsoft-focused content, don’t worry – it doesn’t mean that it will all be Microsoft from now on – I’ll still continue to write about whatever flavour of technology I find interesting at any given time, and I’ll still be trying to remain objective!

  • Bluetooth communications between an Apple iPhone 3G and a Ford Audio system

    My company car is due for replacement and the lease company has arranged a demonstration car of my choice for a week – so last Wednesday a shiny Ford Mondeo 2.2TDCi Titanium X Sport Estate was delivered to my house. (For readers outside Europe who don’t know what a Mondeo is, here’s an American review of the range-topping Titanium X Sport model – it might also be useful to note that “car” and “estate” are English words for what’s known as “automobile” and “wagon” in some parts of the world.)

    Whilst I’m not a great fan of the fake aluminium that car manufacturers seem to plaster all over the interior of cars these days, this car represents a reasonable balance between performance, economy and the need to transport a family complete with all their associated paraphernalia (or garden rubbish for the tip…) – and it’s pretty well-specced too. One of the features that I was particularly interested in was the Bluetooth and Voice Control system.

    (The Ford website features a longer version of this video but I couldn’t easily embed it here – and, for the benefit of those with no sense of irony, this is not serious – it is a parody of a fantastic programme that the BBC used to run called Tomorrow’s World.)

    My current car has a fully-fitted carphone kit for use with my work phone (a Nokia 6021) but if anyone calls me on my iPhone 3G I have to use another solution. Not so with the Mondeo. In fact, I couldn’t get the Nokia to recognise the Ford Audio system (even though it’s one of the handsets that Ford has tested) but the iPhone was quite happy to pair following the instructions in the owner’s handbook:

    1. The Bluetooth feature must be activated on the phone and on the audio unit. For additional information, refer to your phone user guide.
    2. The private mode must not be activated on the Bluetooth phone.
    3. Search for audio device.
    4. Select Ford Audio.
    5. The Bluetooth PIN number 0000 must be entered on the phone keypad.

    [Ford Mondeo Owners Handbook (2008)]

    Sony/Ford Audio System paired with iPhoneOnce paired, I could use the car’s controls to make calls and incoming calls on the iPhone were picked up by the car too.

    Ford are not the only manufacturer to have such as system, but it is the first time I’ve had it fitted as standard on a car (on my Saab 9-3 I would have needed to specify an expensive stereo with built in satellite navigation to get the Bluetooth functionality) – and Ford do claim to be the only manufacturer to offer the system on small cars too:

    Ford is the only manufacturer to offer a Bluetooth with Voice Control System on our smaller cars as well as our larger ones. It’s available on the Fiesta, Fusion, new Focus, new Focus CC, C-MAX, Mondeo, S-MAX, Galaxy, Fiesta Van, Transit Van, Transit Minibus, Transit Connect and Transit Chassis Cab.

    (There are some light commercials on that list too.)

    The downsides are that my phone has to have Bluetooth activated (and to be discoverable – leaving me subject to potential bluejacking). There’s also a bit of an echo (on both ends of the call) – something I haven’t experienced with the fitted car kit I use with the Nokia in my normal car – but it’s not bad enough to be a problem and, most importantly, the road noise at 70mph didn’t seem to cause too big a problem whilst making a call.

    Sony/Ford Audio System picking up contacts from somewhere - not sure where though!So, what doesn’t work with the iPhone? Despite the audio system somehow managing to detect a couple of my contacts (which I can then select by pressing a button to dial), the Bluetooth Voice Control doesn’t seem to be able to read the phone directory – but it does work if dial by number, as shown in the pictures below:

    Ford Converse+ System and Bluetooth Voice Control

    Call on iPhone placed using Ford Bluetooth Voice ControlCall on iPhone placed using Ford Bluetooth Voice Control

    Also, it would be nice to make the car’s audio system play the music on my iPhone over Bluetooth – except that Apple hasn’t given us A2DP (stereo Bluetooth Audio), so to connect the iPhone to the stereo requires use of a standard 3.5mm headset cable to the Aux socket on the car’s audio system (unavailable on the car I tested because that has a DVD system installed in the front seat headrests instead).

    As for whether I will lease this car… well, the jury’s still out on that one. It drives well and I get a lot of toys for my money but the VW Passat Estate, Audi A4 Avant (or possibly A6) and BMW 3 series touring are all on my shortlist. Does anyone know if the iPhone works with the built-in systems in these cars?

  • iPhone always out of juice? Reset the battery indicator calibration with a full discharge/charge

    There’s a lot of FUD around about iPhone battery life (and a lot of science involved in understanding the optimum recharge regime for Lithium-Ion batteries) but, even so, I was finding that my brand new iPhone 3G was getting down to around 30% after a just few hours of light use. It didn’t seem unreasonable if I was making calls but just sitting in my pocket?

    In theory, the best advice on increasing battery lifespan comes from Apple and they do say that:

    “For proper maintenance of a lithium-based battery, it’s important to keep the electrons in it moving occasionally. Be sure to go through at least one charge cycle per month (charging the battery to 100% and then completely running it down).”

    Then, one of my friends told me something that Apple doesn’t mention and it seems to have made a big difference to my indicated battery life.iPhone usage I don’t turn off Wi-Fi, 3G, location services, etc. unless I’m getting low on charge (because I actually want to use those features that I bought the phone for…) and I don’t have push e-mail since moving to GMail but, following my friend’s advice, I let the phone run completely out of juice and it took a long time to completely die after the warning messages for 20% and 10% battery power remaining. Then, after a full charge, my battery indicator seems to have calibrated itself to a much more realistic value (for reference, I’m on firmware v2.0.2).

    Of course, usage patterns will vary but my iPhone is currently showing about 60% battery with 55 Minutes of use and 21 hours and 58 minutes on standby since the last full charge.

    The iPhone 3G battery guide and charging tips post on Macrumors has a stack of information about iPhone battery life (including cited sources).

  • Default PIN codes and voicemail numbers for UK mobile networks

    Back in 2005, I published a list of useful mobile handset commands and it’s still attracting some interest so, as I bought a new mobile phone this week and it came with a list of the default PINs for each of the UK mobile operators, I’m re-publishing that information here in case it’s useful to someone:

    OperatorDefault PIN

    Vodafone 0000
    O2 5555
    Orange 1111
    T-Mobile 1210
    3 0000
    Virgin Mobile 1210
    Talk Mobile 0000
    Mobile World 1210

    Also included was a list of voicemail numbers (for those who don’t have an iPhone with visual voicemail…):

    OperatorVoicemail Access Number

    Vodafone 121
    O2 1750 [I’ve also used 901]
    Orange 123
    T-Mobile 222
    3 123
    Virgin Mobile 222
    Talk Mobile 121
  • Configuring a Cisco IP phone for VoIP using SIP

    Cisco logoOne of my projects at home has involved trying to get a variety of telephony systems to work together so that I can make voice over IP (VoIP) or plain old telephone service (POTS) as necessary to get the best call rates. In truth, it’s probably not about getting the best rates as our phone bill is already pretty small – maybe it’s just because the geek inside me wants to get an IP phone working on my desk… anyway, I still have a few pieces of the puzzle to fit in place but last week I had a major breakthrough in getting a Cisco IP phone to provide a voice over IP (VoIP) service using SIP. It was a long haul, but worth it in the end – and this is how it’s done…

    Cisco IP Phone 7940GFirst of all I needed an IP Phone. I managed to pick up a brand new 7940G for £50 on eBay (a bargain) and this was perfect for me. Why a Cisco phone? Partly because we use them at work (so I know they are good phones – and I like the form factor – although I wish it had a backlit screen) but mostly because there are so many of them about – that means that plenty of people have tried to do this and there is information available on the web. Using a Cisco phone does cause a couple of problems though:

    1. The standard protocol used for VoIP is session initiation protocol (SIP) and Cisco IP phones don’t use SIP natively. Cisco has it’s own IP Telephony system (Call Manager) which uses SCCP; however they do provide SIP firmware for their 79xx IP phones.
    2. Some of the Cisco documentation and software is only available with a service contract and generating configuration details can be a challenge if you don’t have access to a Cisco Call Manager solution – thankfully everything I used for this is available on the ‘net through a variety of websites that are aimed at getting people up and running with VoIP solutions.

    It’s also worth knowing that there are two types of configuration file for Cisco IP Phones:

    • The 79x0 models use a fairly simple configuration file.
    • The 79x1 models use an XML configuration, which is all very well if you have access to a Cisco Call Manager solution but not so well documented if you don’t.

    I found that the 7940 is a good model to go for as it has been around for a while, there is plenty of information available, and it can be picked up for a reasonably low price (and it helped to know that one of my colleagues already had this solution working well for him!). The 7960 is similar but with support for more lines and there are other models available (e.g. cordless phones, or phones with colour screens). In addition, Linksys (owned by Cisco) sells some similar phones that do run SIP natively but I don’t know if they use the same firmware.

    After choosing the phone there were a couple of other considerations:

    With the phone powered on and able to download a configuration, I uploaded the necessary configuration files to the TFTP server. Cisco Document ID: 5455 – Converting a Cisco 7940/7960 CallManager Phone to a SIP Phone and the Reverse Process gives details of the required files but the main ones to know are:

    • OS79XX.TXT – tells the phone which firmware to use.
    • SIPDefault.cnf – configuration information relevant to all phones.
    • SIPmacaddress.cnf – configuration information relevant to a specific phones.

    Other files that I have include:

    • RINGLIST.DAT – Lists audio files that provide the custom ring types.
    • CTU.raw – an audio file referenced by RINGLIST.DAT.
    • dialplan.xml – a dialplan.
    • Various firmware images named as follows:
      • P003x-xx-x-00.bin – universal application loader for upgrades from images earlier than 5.x.
      • P003x-xx-x-00.sbn – secure universal application loader for upgrades from images 5.x or later.
      • P0y3x-xx-x-00.loads – universal application loader and application image, where y represents the protocol of the application image (.loads) file: 0 for SCCP, and S for SIP.
      • P0y3x-xx-x-00.sb2 – application firmware image, where y represents the protocol used by the image: 0 for SCCP, and S for SIP.

    With all the necessary files available on the TFTP server, I set about upgrading the firmware to the latest SIP release by editing the OS79XX.TXT file to read P0S3-08-2-00 and resetting the phone. The TFTP server log told me that the phone picked up the appropriate firmware release, but that it couldn’t find one of binary images (P0S3-08-2-00.bin)

    After some research, it seems that POS3-08-x-00.bin does not seem to exist for any 8.x firmware:

    Versions [6.x] and [7.x] seem to have P0S3-0xxx-00.BIN files which make it easy when upgrading from SCCP to SIP as all you have to do is rename the file it loads in OS79XX.TXT to one of these *.BIN files and its all done straight to SIP.

    With version 8 series it doesn’t have these and that forces you to upgrade it in a 3 part reboot and load phase with[:]

    XMLDefault.cnf.xml
    [SEPmacaddress.cnf.xml]

    That loads the *.loads file then it loads *.sbn and reboots
    After warm reboot it loads *.sb2 which must be the sip software.

    Then reboots again starting in sip and then provisions with[:]

    SIPDefault.cnf
    [SIPmacaddress.cnf]

    Armed with this new information, I put the 7.4 SIP firmware into my TFTP root folder, edited OS79xx.TXT to read P0S3-07-4-00 and created an xmlDefault.CNF.XML file.

    After booting the phone I was pleased to see a message that said Upgrading software but that pleasure soon ended as the upgrade never completed. Thankfully I hadn’t “bricked” the phone and, after another reboot, the phone showed a message which said Load ID Incorrect. The TFTP logs indicated that the phone was trying to load a file called SEPmacaddress.cnf.xml.

    Googling turned up some more information and it turned out I was trying to go too far in one jump – my phone had been supplied with v3.x SCCP firmware and I was trying to go straight to v7.x firmware:

    You have to upgrade to a new version of SCCP or older version of SIP before the bootloader on the phone will be able to handle the newer firmware […] you can either use an older version of SIP first, or a newer version of SCCP. Older SIP is probably easier – 6.3 is the newest you can use to then jump to 7.x and/or 8.x.

    I put the v6.3 firmware on my TFTP server, edited OS79XX.TXT to read P0S3-06-3-00 and rebooted the phone. This time I saw the Upgrading Software message and watched the transfer take place.

    After rebooting itself the phone came back up on the v6.3 firmware and was showing itself as Phone Unprovisioned.

    I set about the second stage upgrade to v8.2 by editing OS79XX.TXT to P0S3-08-2-00 and rebooting the phone again. That didn’t help, but a further OS79XX.TXT edit from P0S3-08-2-00 to P003-08-2-00 did the trick as the Universal Application Loader booted.

    Despite attempting to read non-existent files called CTLSEPmacaddress.tlv and SEPmacaddress.cnf.xml (the Cisco 7940 and 7960 IP Phones Firmware Upgrade Matrix explains the hunt algorithm employed by the Universal Application Loader) the phone downloaded the appropriate files and restarted to return as an unprovisioned device, finally running the v8.2 SIP firmware.

    By this point, the TFTP logs were not much help as they didn’t indicate any errors but the status message on the phone gave me more clues:

    W350 unprovisioned proxy_backup
    W351 unprovisioned proxy_emergency
    W362 No Valid Line Names Provisioned

    The unprovisioned backup and emergency proxies didn’t bother me but I couldn’t understand why I had no valid lines provisioned. I had been trying to get the phone to use my Linksys SPA3102 as a SIP proxy but something was not quite right. In the end, I gave up and registered with SIPgate. After updating my configuration files to reflect the SIPgate account details, my phone picked up a valid line but couldn’t make or receive calls. Following advice on the SIPgate website, I made sure that the following ports were all open:

    I’m not sure if all of these are strictly necessary but they seem to have got things working. The final contents of my configuration files are detailed below, after the TFTP log from a successful boot:

    Connection received from ipaddress on port 50967 [25/07 00:41:32.672]
    Read request for file <CTLSEP
    macaddress.tlv>. Mode octet [25/07 00:41:32.672]
    File <CTLSEP
    macaddress.tlv> : error 2 in system call CreateFile The system cannot find the file specified. [25/07 00:41:32.672]
    Connection received from
    ipaddress on port 50968 [25/07 00:41:32.703]
    Read request for file <SEP
    macaddress.cnf.xml>. Mode octet [25/07 00:41:32.703]
    File <SEP
    macaddress.cnf.xml> : error 2 in system call CreateFile The system cannot find the file specified. [25/07 00:41:32.703]
    Connection received from
    ipaddress on port 50969 [25/07 00:41:32.719]
    Read request for file <SIP
    macaddress.cnf>. Mode octet [25/07 00:41:32.719]
    Using local port 1203 [25/07 00:41:32.719]
    <SIP
    macaddress.cnf>: sent 2 blks, 632 bytes in 0 s. 0 blk resent [25/07 00:41:32.735]
    Connection received from
    ipaddress on port 50970 [25/07 00:41:32.766]
    Read request for file <P0S3-08-2-00.loads>. Mode octet [25/07 00:41:32.781]
    Using local port 1204 [25/07 00:41:32.781]
    <P0S3-08-2-00.loads>: sent 1 blk, 461 bytes in 0 s. 0 blk resent [25/07 00:41:32.781]
    Connection received from
    ipaddress on port 50962 [25/07 00:41:54.672]
    Read request for file <SIPDefault.cnf>. Mode octet [25/07 00:41:54.672]
    Using local port 1205 [25/07 00:41:54.672]
    <SIPDefault.cnf>: sent 2 blks, 925 bytes in 0 s. 0 blk resent [25/07 00:41:54.688]
    Connection received from
    ipaddress on port 50963 [25/07 00:41:54.813]
    Read request for file <SIP
    macaddress.cnf>. Mode octet [25/07 00:41:54.828]
    Using local port 1206 [25/07 00:41:54.828]
    <SIP
    macaddress.cnf>: sent 2 blks, 632 bytes in 0 s. 0 blk resent [25/07 00:41:54.828]
    Connection received from
    ipaddress on port 50967 [25/07 00:41:56.891]
    Read request for file <RINGLIST.DAT>. Mode octet [25/07 00:41:56.891]
    Using local port 1207 [25/07 00:41:56.891]
    Connection received from
    ipaddress on port 50974 [25/07 00:41:56.907]
    <RINGLIST.DAT>: sent 1 blk, 15 bytes in 0 s. 0 blk resent [25/07 00:41:56.907]
    Read request for file <dialplan.xml>. Mode octet [25/07 00:41:56.907]
    Using local port 1208 [25/07 00:41:56.907]
    <dialplan.xml>: sent 1 blk, 104 bytes in 0 s. 0 blk resent [25/07 00:41:56.907]

    OS79XX.TXT

    P003-08-2-00

    SIPDefault.cnf

    ;begin
    image_version: P0S3-08-2-00
    proxy_register: 1
    dial_template: dialplan
    tftp_cfg_dir: “”
    sntp_server: “ntp.sipgate.net”
    sntp_mode: unicast
    time_zone: GMT
    dst_offset: 1
    dst_start_month: March
    dst_start_day_of_week: Sun
    dst_start_week_of_month: 8
    dst_start_time: 01
    dst_stop_month: Oct
    dst_stop_day_of_week: Sun
    dst_stop_week_of_month: 8
    dst_stop_time: 02
    dst_auto_adjust: 1
    time_format_24hr: 1
    date_format : D/M/Y

    # NAT/Firewall Traversal
    nat_enable: 1 ; 0-Disabled (default), 1-Enabled
    nat_address: “” ; WAN IP address of NAT box (dotted IP or DNS A record only)
    voip_control_port: 5060 ; UDP port used for SIP messages (default – 5060)
    start_media_port: 8000 ; Start RTP range for media (default – 16384)
    end_media_port: 8012 ; End RTP range for media (default – 32766)
    nat_received_processing: 0 ; 0-Disabled (default), 1-Enabled
    outbound_proxy_port: 5082
    telnet_level: 2
    ;end

    SIPmacaddress.cnf

    ;begin
    image_version: P0S3-08-2-00
    phone_label : “markwilson.it ” ; Has no effect on SIP Messaging
    line1_name : “sipgateid” ; SIPgate device ID#
    line1_authname : “sipgateid” ; SIPgate device ID#
    line1_password : “sipgatepassword” ; SIPgate device password
    line1_shortname : “phonenumber”
    line1_displayname : “phonenumber”
    proxy1_address : “sipgate.co.uk”
    proxy1_port : 5060
    line2_displayname: “”
    line2_shortname: “”
    line2_name: UNPROVISIONED
    line2_authname: “UNPROVISIONED”
    line2_password: “UNPROVISIONED”
    proxy2_address : “”
    proxy2_port : 5060
    phone_password: “password”
    logo_url: “http://webserver/sipgate.bmp”
    directory_url: “http://webserver/directory.xml”
    ;end

    RINGLIST.DAT

    CTU CTU.raw

    xmlDefault.CNF.XML





    2000
    2427 2428




    P0S3-07-4-00






    Further information

    Here are some of the sites that I found particularly useful as I went through this process:

    [update 10 September 2009: Here’s another useful resource on how to set up a cisco 7940 and 7941 IP phone to do SIP.]

    [update 27 March 2010: Tyler Winfield’s article on configuring Cisco IP phones with Asterisk is very thorough and easy to read – even if you’re not using Asterisk.]