From Earlham CS Department
Jump to navigation Jump to search

TS-GSM1 cell modem / GPRS connection info

Firstly, there is no info about anything relating to the TS-GSM1 cell modem on the wiki now which is something that should probably change in the future. Right now there is not a lot of definitive into that could be put in the wiki, so I have created the directory "/clients/users/hip/pmp/cell-modem" on quark to hold some of the important docs that I have. The most important file in there is "cell_modem_info.txt" which contains our AT&T account info, info about the specific modem cards that we have, and the APN usernames passwords that I have tried. (Please note that the "cell_modem_info.txt" file cannot be posted on the wiki or emailed because it contains the last 4 digits of Charlie's SSN as part of the AT&T account info.) Another file in this new directory is "PPP_setup.txt" which is a file originally from AT&T upon which we have based much of our PPP configuration efforts, although I think that by now it has lost much of its usefulness since we have tried many of its recommendations without success. Also in the "cell-modem" directory are some manuals for the TS-GSM1 board as well as the modem itself.

Attached is a bookmarks file that has some of the web sites that I have used as reference while working on the cell modem problem. Also included in these bookmarks are some other sites that will be of interest to HIP::KECK workers.

The PPP configuration file

The PPP configuration file has been the stage for many of the changes and tinkering that we have done in the past mainly because it seems that the actual modem dialing is fine and it is the PPP link configuration that is failing. The problem with working with the PPP configuration is that many of the breakthroughs have been purely chance. Much of the guessing that lead to these chance breakthroughs has come from looking at other people's configurations that are posted online because they are having some problems with them. This leads to the problem that we have never seen a working PPP configuration for a GPRS modem in Linux. Because of the chance aspect of our progress so far I would strongly suggest someone in the HIP group joining the TS-7000 Yahoo group to start asking questions in this group as this has been one of our primary sources.

Following the contents of the current PPP configuration file as it is on pmp3 right now which I think is that same as the one that I worked on when it was on pmp4. Lines that begin with a "#" are comments. I have also added comments for this email that begin with "#".

# ---Debugging settings--- # all of these can be removed or commented out when the configuration is working
# ---Modem settings---
connect "/usr/sbin/chat -v -t3 -f /etc/ppp/peers/connect"
disconnect /etc/ppp/peers/disconnect
# ---IP settings---
# :
ipcp-accept-local # I am not 100% sure what this really does
# ipcp-accept-remote # I am not 100% sure what this really does
# ---Turn off PPP compression---
# ---Authentication settings---
noauth # this says that the remote side (AT&T server) does not have to authenticate itself to us
require-pap # this says that we must authenticate ourselves to the remote side (AT&T server)
user ISP@CINGULARGPRS.COM # this is our APN username
# ---Misc PPP settings---
lcp-echo-failure 0
lcp-echo-interval 0
# persist
# maxfail 10
# asyncmap 0xa0000 # adding this option got us further in the PPP configuration
default-asyncmap # removing the above option and adding this one got us throught the PPP configuration and into an authentication error instead which is good since at least we are getting further in the process
# nomagic # this would turn off the magic numbers that are supposed to prevent loopback problems

Current dial state

$ ./dial-ppp
pppd options in effect:
debug           # (from /etc/ppp/peers/gprs)
nodetach                # (from /etc/ppp/peers/gprs)
dump            # (from /etc/ppp/peers/gprs)
require-pap             # (from /etc/ppp/peers/gprs)
user ISP@CINGULARGPRS.COM               # (from /etc/ppp/peers/gprs)
/dev/tts/1              # (from /etc/ppp/peers/gprs)
115200          # (from /etc/ppp/peers/gprs)
connect /usr/sbin/chat -v -t3 -f /etc/ppp/peers/connect         # (from /etc/ppp/peers/gprs)
disconnect /etc/ppp/peers/disconnect            # (from /etc/ppp/peers/gprs)
crtscts         # (from /etc/ppp/peers/gprs)
local           # (from /etc/ppp/peers/gprs)
noaccomp                # (from /etc/ppp/peers/gprs)
default-asyncmap                # (from /etc/ppp/peers/gprs)
nopcomp         # (from /etc/ppp/peers/gprs)
lcp-echo-failure 0              # (from /etc/ppp/peers/gprs)
lcp-echo-interval 0             # (from /etc/ppp/peers/gprs)
show-password           # (from /etc/ppp/peers/gprs)
novj            # (from /etc/ppp/peers/gprs)
novjccomp               # (from /etc/ppp/peers/gprs)
ipcp-accept-local               # (from /etc/ppp/peers/gprs)
noipdefault             # (from /etc/ppp/peers/gprs)
defaultroute            # (from /etc/ppp/peers/gprs)
usepeerdns              # (from /etc/ppp/peers/gprs)
nobsdcomp               # (from /etc/ppp/peers/gprs)
nodeflate               # (from /etc/ppp/peers/gprs)
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/tts/1
sent [LCP ConfReq id=0x1 <auth pap> <magic 0x105996e6>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0xa0000> <auth pap>]
sent [LCP ConfRej id=0x1 <asyncmap 0xa0000>]
rcvd [LCP ConfAck id=0x1 <auth pap> <magic 0x105996e6>]
rcvd [LCP ConfReq id=0x2 <auth pap>]
sent [LCP ConfAck id=0x2 <auth pap>]
sent [PAP AuthReq id=0x1 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0x2 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0x3 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0x4 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0x5 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0x6 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0x7 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0x8 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0x9 user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [PAP AuthReq id=0xa user="ISP@CINGULARGPRS.COM" password="CINGULAR1"]
sent [LCP TermReq id=0x2 "Authentication failed"]
sent [LCP TermReq id=0x3 "Authentication failed"]
Connection terminated.
Sending break to the modem
PDP context detached
Serial link disconnected.
Modem hangup

Above we can see the interaction of pppd with the remote side. The parts that have LCP near the beginning are the initial PPP configuration negotiation. We start out by saying that we want to authenticate with pap. The remote side says that asyncmap should be 0xa0000. We respond that we don't like that option ("ConfRej") which the remote side says is fine. We then proceed to send our authentication into to which we get no reply. After a few tries we give up and say that the authentication failed. This is all assuming that we are not looped back to ourselves. If one looks at the first line of the LCP negotiation one will note that it is the same as the fourth line. This could mean that some of our incoming traffic is actually from us. There was some reason that Maduna and I thought that this was unlikely, but I can't remember what it was.

Modem connect and disconnect files

These are working fine as far as we can tell since we are to the point of doing PPP configuration and authentication. One thing that is worth remembering in the connect file is that the APN is specified in the line: OK AT+CGDCONT=1,"IP","isp.cingular" The APN name is the last quoted string on this line. My interpretation of the APN is that it is the server to which the PPP connection is to be made. Thus, when authenticating pppd is logging into the APN.

Usernames and passwords

In the attached bookmarks file there is a section called "GPRS APN username/password listings" that lists some sites that give known usernames and passwords for given APNs. This is not illegal since all people connecting use the same username and password. I assume that the actual identification of the user is done through the modem's phone number. Having the password in the PPP configuration file is not really necessary since we are using a "pap-secrets" file which links usernames to passwords.

Regarding usernames and passwords I have called AT&T's support line and not gotten very far. All of the usernames and passwords that have been suggested are in the "cell_modem_info.txt" file. If you ever have to call AT&T support you will get the first tier of call center people. Mention APNs or some other scary thing to get to people who actually know what they are talking about.

Notes on the modem itself

The modem that we are using is supposedly made by Sony but after detaching one of them from the TS-GSM1 board I found a label which contains all of the critical info about the wireless modem itself such as its IMEI number which is a unique number that identifies all cell devices. The contents of this label are in the section "Cell modem info" in the "cell_modem_info.txt" file (at least for the one that I looked at). This label also revealed that the exact model is GR64 and that it is likely made by a company called Wavecom rather than Sony. A link to Wavecom's page about this model is included in the attached bookmarks file.

Well that is all I can think of right now. Please email me if you have further questions which you probably will. Most importantly, good luck!