This is an explanation of the init strings in wvdial.conf for Huawei/E220 :
A command string should start with "AT" or "at", except for the commands "A/" and "+++". At or aT are invalid
After issuing ATDT, the modem will attempt to establish a connection.
ATZ Resetting the modem
After the command ATZ has been issued, a pause of two seconds should be respected before entering the next commands
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Several commands can be given in one command string.
- ATQn: Result codes (Q0 Modem returns result codes, not quiet mode). If the quiet mode is enabled, the responses from the modem are not sent to the PC.
- ATVn: Result codes in numerical or verbose form (V1: returns the code in word mode, not numerical).
ATE: Command echo to host (E1 Commands are echoed). With this command you can select if the modem should return all the commands to the screen or not. This is useful to check if all characters are received by the modem. If characters appear double on the screen, disable echoing by the modem or by your terminal. The value of ATE can be written in the RAM of the modem using AT&W.
- ATSn: Sets and reads the selected register. Sn=x Sets register n to the value x.n is a numeric value, varying between 0 and 255 (depending on the register).
AT&Cn: Carrier-detect (&C1 DCD is active if modem is on-line). Data Carrier Detect (DCD) is a hardware signal that notifies the software that the modem is in communication with another modem. Most software’s will not start-up properly if the DCD is active. Default is &C1.
AT&Dn: Data Terminal Ready settings (&D2 Hang up on DTR-drop and go to command mode)
- +FCLASS=0 : Select Active Service Class. It is a GSM 07.07 command and sets the wireless module in specified connection mode (data, fax, voice), hence all the calls done afterwards will be data or voice. Parameter:
- 0 - data
- 1 - fax class 1
- 8 - voice
- ATE : Command echo to host (ATE0 Commands are not echoed)
- AT+IFC - DTE-Modem Local Flow Control. Selects the flow control behaviour of the serial port in both
directions: from DTE to modem (<by_ta> option) and from modem to DTE (<by_te>):
<by_te> - flow control option for the data received by DTE:
- 0 - flow control None
- 1 - XON/XOFF filtered
- 2 - C105 (RTS) (factory default)
- 3 - XON/XOFF not filtered
<by_ta> - flow control option for the data sent by modem
- 0 - flow control None
- 1 - XON/XOFF
- 2 - C106 (CTS) (factory default)
It is a ETSI GSM 07.07 command for GPRS. GSM 07.07 "AT command set for GSM Mobile Equipment (ME)" describes the Main AT commands to communicate via a serial interface with the GSM subsystem of the phone (see http://www.ctiforum.com/standard/standard/etsi/0707.pdf ). Note that the descendant of this specification is 3GPP TS 27.007 - AT command set for User Equipment (UE) ( http://www.3gpp.org/ftp/Specs/html-info/27007.htm ).
+CGDCONT defines the Packet Data Protocol (PDP) Context
AT+CGDCONT[= [<cid> [,<PDP_type> [,<APN> [,<PDP_addr> [,<d_comp> [,<h_comp> [,<pd1> [,…[,pdN]]]]]]]]]] Set command specifies PDP context parameter values for a PDP context identified by the (local) context identification parameter, <cid> Parameters: <cid> - (PDP Context Identifier) numeric parameter which specifies a particular PDP context definition. 1..max - where the value of max is returned by the Test command <PDP_type> - (Packet Data Protocol type) a string parameter which specifies the type of packet data protocol "IP" - Internet Protocol "PPP" - Point to Point Protocol <APN> - (Access Point Name) a string parameter which is a logical name that is used to select the GGSN or the external packet data network. If the value is null or omitted, then the subscription value will be requested. <PDP_addr> - a string parameter that identifies the terminal in the address space applicable to the PDP. The allocated address may be read using the +CGPADDR command. <d_comp> - numeric parameter that controls PDP data compression 0 - off (default if value is omitted) 1 - on <h_comp> - numeric parameter that controls PDP header compression 0 - off (default if value is omitted) 1 - on <pd1>, …, <pdN> - zero to N string parameters whose meanings are specific to the <PDP_type> Note: a special form of the Set command, +CGDCONT=<cid>, causes the values for context number <cid> to become undefined. Note: issuing AT+CGDCONT<CR> is the same as issuing the Read command AT+CGDCONT? is a read command, it returns the current settings for each defined context. AT+CGDCONT=? is a test command, it returns values supported as a compound value.
The requirement of an APN is Telco dependent. A lot of them use the same APN for all users and apply a default through the tower or something like that, others use a specific one. I.e., Three in the UK needs you to set the APN as three.co.uk. For the others, a lot of them you can just plug and go without requiring any APN at all. The requirement of an APN is more an exception than the rule.
The Initiative for GPRS Connections proposed the use of the phone number *99#.
When the modem sees the number *99#, it is going to attempt the call. Assuming that the GPRS context is correct (and the server exists at the IP address and port specified) a TCP socket will be opened between the modem and the server application and the modem will return the string "CONNECT".
When wvdial is in Stupid Mode, it does not attempt to interpret any prompts from the terminal server. It starts pppd immediately after the modem connects. Apparently there are ISP's that actually give you a login prompt, but work only if you start PPP, rather than logging in. Go figure.