This project has been cancelled due to lack of time and a decent GPRS module... Sorry folks. The only thing left is a prototype of general purpose multiplexer for 2.6 kernel. Mail me if you're still interested.

AT+CMUX is a command for GSM TE to enter multiplexer mode.

In RS-232 connection is made between two devices and there's usually only one session at a time. It means that you have to disconnect a GPRS session in order to check signal strength or receive SMS.

With multiplexer you may have several logical sessions over one physical, RS-232 line. 3GPP has proposed GSM07.10 — official standard for GSM multiplexer, widely accepted among industry leaders.

What's the problem then? It's just another protocol to implement...” one may say. And if it's so important and popular, why isn't software delivered by terminal producers? Perhaps Linux 07.10 implementation will be simply reinventing the wheel? Or maybe noone needs it at all?

Well... The fact is software is delivered... as Windows VCOMM drivers. I haven't seen Linux drivers yet. I don't know why. Maybe Linux community makes no pressure to make one, or perhaps we don't see it useful.

Does anybody need it? Imagine you have your embedded device powered by Linux and the only connection to the outside world is a GPRS channel. You want to send this device an asynchronous command to do some measurement. You have to establish some kind of peer-to-peer network or dedicated APN, since GPRS sessions usually are firewalled and masqueraded. Or you could send this device plain, old, simple and cheap SMS. But there's a challenge to receive that message and don't drop existing session. Multiplexer comes to mind.

My task is to write CMUX driver in kernel space. You can certainly implement it in userland but it would be solution-specific. I want to create ordinary driver, offering real device nodes, so you (or daemons like pppd) can do ioctl or flow control just like it was regular RS-232 line.

More to come…

· xhtml · css ·