CSD calls from Neo Freerunner

Michael Spacefalcon msokolov at ivan.Harhan.ORG
Mon Jan 20 08:31:55 CET 2014


For those who don't know what CSD is:

http://en.wikipedia.org/wiki/Circuit_Switched_Data

Here is an AT command session log of me making a CSD call from my
GTA02 on T-Mobile USA:

at+cgmm
+CGMM: "Neo1973 GTA02"

OK
at+cgmr
+CGMR: "FreeCalypso leo2moko port"

OK
at+cops?
+COPS: 0,0,"T-Mobile"

OK
atd13034944774
CONNECT

National Institute of Standards and Technology
Telephone Time Service, Generator 1b
Enter the question mark character for HELP
                        D  L
 MJD  YR MO DA HH MM SS ST S UT1 msADV         <OTM>

56677 14-01-20 05:30:54 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:30:55 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:30:56 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:30:57 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:30:58 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:30:59 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:00 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:01 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:02 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:03 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:04 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:05 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:06 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:07 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:08 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:09 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:10 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:11 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:12 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:13 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:14 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:15 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:16 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:17 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:18 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:19 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:20 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:21 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:22 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:23 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:24 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:25 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:26 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:27 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:28 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:29 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:30 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:31 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:32 00 0 -.1 045.0 UTC(NIST) *
56677 14-01-20 05:31:33 00 0 -.1 045.0 UTC(NIST) *
NO CARRIER

-- end of log --

The number I dialed in this test is the Automated Computer Time Service
provided by the National Institute of Standards and Technology:

http://www.nist.gov/pml/div688/grp40/acts.cfm

Note how the above web page says, in part: "Digital modems, such as
[...] wireless modems, cannot synchronize using ACTS."  Well, the log
above clearly shows that they are wrong, at least in the case of
high-quality wireless modems like Calypso. :-)

CSD calls may be placed from a GSM mobile either to a land line or to
another mobile.  (I don't know if it's possible to establish a CSD
connection from a land line to a mobile.)  When placing a CSD call to
a land line, one can connect to a traditional dial-up modem on the
receiving end - that's how I connected to ACTS, and if you've got your
own UNIX etc server at home with an old-fashioned modem on a land
line, it is really neat to be able to connect to it from anywhere in
the world via CSD, *bypassing the Internet*!

When you place a CSD call to another mobile, the network tells the
latter that it is a CSD call rather than voice.  If you have a GTA02,
you can have some fun by testing how various other mobile phones react
to incoming CSD calls: just have your FR dial a CSD call to the number
belonging to some "standard" cellphone (dumb or smart), running
"standard" proprietary fw, and see how the latter reacts to receiving
such an unusual call. :-)  To dial a CSD call, just omit the ending
';' from the ATD command you would normally use to dial an ordinary
voice call - see my log above.

But not all modems are created equal.  I've got a Huawei E303 3G modem
in the USB stick form factor to play with, and it appears that this
modem's fw does not support CSD at all.  After doing the usb_modeswitch
voodoo typically needed for these USB 3G modems (usually automated via
udev rules, but I had to install an updated usb_modeswitch package on
my Slackware 13.37 laptop), the modem shows up as a bunch of
/dev/ttyUSBx devices, supported by the "option" kernel module - hence
I wonder if it's anything like the modem in the GTA04.  /dev/ttyUSB0
presents an AT command interface, and the following observations can
be made from the latter:

* One can dial voice calls with ATD<number>; - makes the phone ring on
  the other end; upon answering that call one hears noise - the modem
  must be implementing some way to pass digital audio over USB, which
  is not being supplied in the manual AT-dial experiment.

* AT+CGDCONT=1,"IP","epc.tmobile.com" followed by ATD*99***1#
  establishes the GPRS/EDGE/3G data connection of the kind these
  modems are primarily intended for, and one can then "surf the net".

* But ATD<number>, using a real phone number (not GPRS) and no ';' at
  the end (the standard syntax for dialing CSD calls), always yields a
  NO CARRIER response - even though I tested using the same SIM card,
  connected to the same carrier network in the same geographical
  location as the successful CSD calls from the Calypso in the Neo FR
  using the same AT command.  Hence we can conclude that the difference
  is in the modem fw support, or rather lack thereof.

Does the modem in the GTA04 support CSD calls?  Has anyone tested it?

VLR,
SF



More information about the community mailing list