This document is not being updated, it remains to document the situation at the time of its writing.  The information in it may have been superceded and/or subsequent better solutions may exist.  In particular see the subsequent document which notes the arrival of IrCOMM Modem support in XP and as a patch to 2000 at Microsoft IrCOMM in Windows XP and 2000 also see my FAQ etc. Alan

Windows 2000 Infrared and Mobile Phones

Alan J. McFarlane

29th October 2000 ii

Scope

In Window 95 and 98 (and NT 4 with QuickBeam suite[1]) a Virtual COM Port existed and could be used to communicate with Mobile Phones[2] (or other infrared devices) over infrared. This functionality does not exist in Windows 2000 (I am not clear what the situation is in Windows ME). This document gives:

What worked before

In the previous versions of Windows the Virtual COM Port allowed communication with a service called IrCOMM provided by the Mobile phone. This allowed programs and services that could be used over a serial cable to be used over infrared instead.

On Mobile phones with ‘a built in modem’[3] for instance this allowed Windows to use the phone directly for dial-up networking, other phones without the AT command set built-in would still require the manufacturer’s software on the PC to translate the commands into the phones’ command format. Other programs such as logo and ring tone managers could also communicate through the Virtual COM Port to the Mobile phone.

The IrDA protocol stack

There has been much discussion over why Windows, in its 2000 incarnation, can no longer communicate with Mobile phones using IrDA. To explain why and to thus protect again further confusion it is worthwhile providing an explanation of the various protocols at play in the IrDA (“Infrared Data Association”) protocol stack.

As in the Internet protocol suite the IrDA stack comprises of multiple “layers”, there is no single “IrDA” protocol. In the Internet protocol suite IP communicates data between two devices over whatever hardware is in use (e.g. Ethernet etc), TCP uses the IP to transfer its data and provides the multiplexing of multiple application services, flow control and error checking. Any number of applications then use TCP’s services. For instance HTTP providing Web browsing, SMTP supporting sending of email and many others e.g. FTP, POP3, SNMP etc.

IrDA has protocols called IrLAP, IrLMP and TinyTP in its stack[4] (in that order from bottom up). TinyTP provides a TCP-like service, and thus most applications run over TinyTP. The most relevant of these here is IrCOMM; it provides “Serial and Parallel Port Emulation over IR (Wire Replacement)”. It thus allows the communication of the data and the control signals (e.g. RTS, DTR, Paper Out etc) that would normally run across the serial or parallel cables it is replacing. In Window 9x the Infrared Virtual COM Port communicated with Infrared devices using IrCOMM.

Another protocol that runs over TinyTP is OBEX (“Object Exchange Protocol”), this is the protocol that allows you to ‘beam’ Business Cards, Schedule entries and even general file types between PDAs, Mobile phones and PCs (Windows 2000 using “Wireless Link”, Linux and Windows 9x machines with QuickBeam suite etc). Other protocols also exist at this layer e.g. IrLAN, IrDial (see below) etc.

Problems with IrCOMM

Many manufacturers ‘chose’ to use IrCOMM as their IrDA connectivity method, for instance Palm for HotSync, Microsoft for ActiveSync, Mobile phone manufacturers for general connectivity and even the IrTran-P protocol for Digital Camera picture transfer. IrCOMM was probably so widely chosen as, due to the Virtual COM Port support in Windows, no changes were required to application programs on Windows to communicate with the device over infrared (given that the program had previously communicated with devices over a serial cable).

The widespread use of IrCOMM creates problems though. One of these is that only one application can listen for incoming IrCOMM connections similarly to the fact that only one application can use a serial port at a time. For instance if you want to HotSync your Palm and transfer pictures from your Digital Camera you have to disable and enable the corresponding applications when using the different devices. This is not the brave new world of easy to use plug and play applications and devices.

For that reason and others Microsoft decided to remove the Virtual COM Port support, their reasons include[5]:

An API for IrDA communications was added originally in Windows 98 (actually a version existed originally in Windows CE) and exists also in Windows 2000. The API allows access to TinyTP and to IrCOMM. The IrDA API is accessed through Winsock (IrSock!) and can easily be added to any application program to allow the application to communicate with infrared devices (ideally using TinyTP directly and not using the conflicting IrCOMM). See Microsoft documentation for details[6] [7].

IrDial

For infrared dial-up or even general network/LAN access solutions it seems that Microsoft, Nokia and Ericsson got together to design the IrDial protocol[8] (called IrNet by some e.g. the Linux community[9]). Two types of IrDial connection exist, one for talking to modems (or TAs etc) and one for talking to peer devices for ‘direct cable’-like connections (e.g. to a peer PC or a LAN access device). Note that this is not an IrDA standard, it is presumed though that efforts are underway to create an IrDA specification based on it.

In Windows 2000 they are called “Infrared Modem Port (SERIALx-x)” and “Infrared Port (IRDAx-x)” and Dial-up connections to use them can be created through “Dial-up to…” and “Connect directly to another computer” respectively.

Obviously for these new devices to work with Mobile phones, the Mobile phones would need to be updated to have IrDial modem support added. I am not aware of any Mobile phone that has this support added.

However this does not allow other program e.g. SMS, logo or ring tone managers to access the phone, these would have to individually be updated to use IrSock.

An example of a program that has been updated to talk through IrSock rather than relying on the Virtual COM Port is Palm HotSync Manager[10], it has been updated to include an IrCOMM server internally so that when the Palm initiates an IrCOMM connection HotSync Manager accepts it and HotSync proceeds. As discussed above the “Image Transfer” functionality of “Wireless Link” must be disabled to allow HotSync to operate in that mode[11].

Practical Solutions

IrDial support in phones and IrCOMM support in PC applications

For dial-up networking alone the simplest and best solutions for users would be for all Mobile phone manufacturers to add IrDial support to their phones. Another solution would be for an IrCOMM modem to be created for Windows 2000; this would work in a similar way to the existing IrDial modems.

In either case all of the Windows programs that wish to talk to Mobile phones over infrared would have to be updated with IrSock support to talk to the Mobile phones.

These both rely on suppliers updating their software/devices to work without the Virtual COM Port and thus are not practical solutions for the user.

Third-party IrCOMM Virtual COM port software

A solution that works both for dial-up networking and for general programs would be for the IrCOMM Virtual COM port support to be re-added. It seems that Extended Systems have considered this[12]. There is software available at a German web site[13] (and elsewhere!) that installs an IrCOMM Virtual COM port, that software has the same structure as that documented by Extended Systems and the INF files in the software also contain manufacturer strings of “Extended Systems”. It would thus seem that this software was produced by “Extended Systems”; it is unclear whether Extended Systems intended to release the software and what the conditions of use are.

Note that the main conflicts over the IrCOMM Virtual COM port support are caused by ‘server’ applications, those that run continuously listening for incoming IrCOMM connections e.g. HotSync manager, IrTran-P Digital Camera picture receiver applications. The default mode for the Virtual COM port software available above is “client only mode”, that is it will only make outbound connections and not accept incoming IrCOMM connections from devices. Used in this mode reduces the conflicts that will occur.

Points Outstanding

There have been some reports of people using their Nokia 7110 phones with Windows 2000 without any extra software. Confirmation of this and an explanation of how this works is required.

Any information on this or any other relevant information including any errors in this document would be appreciated in order to improve this document. Please send emails to alanjmcf@yahoo.com.INVALID.

 

 

Copyright © 2000 Alan J. McFarlane. All rights reserved.

Document for information only, no warranties blah de blah, all trademarks etc.

 



[1] QuickBeam suite from Extended Systems

[2] The British phrase “Mobile phone” is used throughout instead of various international equivalents “handy”, “cell phone” etc and should be considered equivalent to your culture’s version.

[3] Note digital Mobile phones e.g. GSM phones do not need nor will even contain a modem; a modem converts digital signals to pass over an analog phone system. All that Mobile phones need is support for the AT command set so that Windows can talk to them using a traditional modem driver. The ‘soft modems’ supplied for some modem phones convert the AT commands into the binary format accepted by the phone.

[4] Further details on the IrDA protocols can be found in the document irda_overview.pdf at Extended Systems or at the IrDA

[5]  IrTran-P, IrLPT, and IrDA Networking Support under Windows 2000

[6]  IrDA: Background and Overview included programming examples including for IrCOMM use.

[7] Winsock socket() documentation

[8]  IrDial PPP over IrDA

[9]  IrNET for Linux-IrDA

[10] Desktop Updater, at Palm Support, updates HotSync Manager to 3.1.1

[11] Ideally Palm would have updated HotSync Manager and the PalmOS HotSync application to communicate directly over TinyTP and thus remove conflicts over IrCOMM.

[12] IrComm_for_WIN_2000.doc at Extended Systems

[13] See IRDA4W2K