I'm with @Renan: it looks like this problem was fixed in newer kernels. (One such thread on LKML.)
The key error is the invalid interface number
one. It means the USB driver sees the device, but it's numbering its features (interfaces) in a way the driver doesn't expect, and it can't cope. Googling around, you can find several cases where people are fixing weaknesses in the kernel to cope with these newer devices, and their odd interface numbering behavior.
I'm not 100% certain on this, since I can't find a definitive document that says either that out-of-order interface numbers are wrong, or that it's all been fixed for all USB devices in kernel x.y.z. It appears to be more of a Whac-a-Mole sort of development effort.
Upgrading the kernel on a server is not an easy fix by any means. I would try an intermediate step to check the hypothesis first: put your server's version of Debian in to a VM, make a snapshot, upgrade the kernel there, and see if it will see the USB device after the upgrade. (Obviously you need to be using VM software that will push a USB device into the VM. Most will these days.)
If that doesn't work, you can easily roll back to the snapshot, since this VM should be useful for future testing before you roll something out to the prodouction server.
I actually had to achieve this same goal recently and the simplest solution was to access the device via a combination of an Arduino and SEEED Studio GPRS shield. This gave lower level access to the hardware and was able to ensure I was sending pure AT commands.
With this I was also able to initiate calls, send SMS messages, etc all from a Fedora system.
http://www.seeedstudio.com/wiki/GPRS_Shield_V2.0
Best Answer
Most 3G modems are supported in Linux. I've used several different models, mostly Huawei, on embedded devices using standard Linux packages and libraries - they all do pretty much the same thing, just with brighter lights or faster stripes. Good starting points are
wvdial
andpppd
.The main obstacle to overcome is working out the individual methods each provider uses for authentication and access, but this is generally well documented. The Archlinux wiki pages on configuring
wvdial
andpppd
are pretty good: