AT COMMAND FOR GSM MODEM

Post Reply
areang
Posts: 128
Joined: Mon Jul 31, 2006 3:23 pm

AT COMMAND FOR GSM MODEM

Post by areang »

Hi All !

I found this for Nokia Mobile Phone
How to use with FWH
# cquery 4.16b
# +GMI (TA manufacturer)
AT+GMI
Nokia Mobile Phones
# +GMM (TA model)
AT+GMM
Nokia 6210
# +GMR (TA revision)
AT+GMR
SW05.02
# +GSN (TA serial number)
AT+GSN
<deleted>
# +GOI (Global Object Identification)
AT+GOI
ERROR
# +GCI (Country of installation)
AT+GCI
ERROR
# +GCAP (Capabilities)
AT+GCAP
+GCAP: +CGSM,+FCLASS,+DS
# +CGMI (ME manufacturer)
AT+CGMI
Nokia Mobile Phones
# +CGMM (ME model)
AT+CGMM
Nokia 6210
# +CGMR (ME revison)
AT+CGMR
SW05.02
# +CGSN (ME serial number aka IMEI)
AT+CGSN
<deleted>
# +CSCS=? (TE character set)
AT+CSCS=?
+CSCS: ("GSM","HEX","IRA","PCCP437","PCDN","8859-1")
# +CIMI=? (International mobile subscriber identity)
AT+CIMI=?
ERROR
# +CMUX=? (Multiplexing mode)
AT+CMUX=?
ERROR
# +CSTA=? (Select type of address)
AT+CSTA=?
+CSTA: (129,145)
# +CMOD=? (Call mode)
AT+CMOD=?
+CMOD: (0-3)
# +CHUP=? (Hangup call)
AT+CHUP=?
# +CBST=? (Bearer service type)
AT+CBST=?
+CBST: (0-7,12,14-16,34,36,38,39,43,47-51,65,66,68,70,71,75,79-81),(0,2),(1)
# +CRLP=? (Radio link protocol)
AT+CRLP=?
+CRLP: (0-61),(0-61),(39-255),(1-255)
+CRLP: (0-96),(0-64),(39-255),(1-255),2,(3-255)
# +CR=? (Service reporting control)
AT+CR=?
+CR: (0,1)
# +CEER=? (Extended error report)
AT+CEER=?
# +CRC=? (Cellular result codes)
AT+CRC=?
+CRC: (0,1)
# +CHSD=? (HSCSD device parameters)
AT+CHSD=?
# +CHST=? (HSCSD transparent call configuration)
AT+CHST=?
ERROR
# +CHSN=? (HSCSD non-transparent call configuration)
AT+CHSN=?
+CHSN: (0-4,6),(0-3),(0-3),(0,4,8,12)
# +CHSC=? (HSCSD current call parameters)
AT+CHSC=?
# +CHSR=? (HSCSD parameters report)
AT+CHSR=?
+CHSR: (0,1)
# +CHSU=? (HSCSD automatic user initiated upgrading)
AT+CHSU=?
ERROR
# +CHSA=? (HSCSD non-transparent asymmetry configuration)
AT+CHSA=?
ERROR
# +CSNS=? (Single numbering scheme)
AT+CSNS=?
+CSNS: (0,2,4)
# +CVHU=? (Voice hang up control)
AT+CVHU=?
ERROR
# +CV120=? (V.120 rate adaption control)
AT+CV120=?
+CV120: (1),(0,1),(1),(0),(0),(0)
# +CSDF=? (Settings date format)
AT+CSDF=?
ERROR
# +CSIL=? (Silence command)
AT+CSIL=?
ERROR
# +CSTF=? (Settings time format)
AT+CSTF=?
ERROR
# +CNUM=? (Subscriber number)
AT+CNUM=?
# +CREG=? (Network registration)
AT+CREG=?
+CREG: (0-2)
# +COPS=? (Operator selection)
AT+COPS=?
+COPS: (2,,,"21601"),(1,,,"21630"),(1,,,"21670"),,(0,1),(2)
# +CLCK=? (Facility lock)
AT+CLCK=?
+CLCK: ("PS","SC","AO","OI","OX","AI","IR","AB","AG","AC","FD")
# +CPWD=? (Change password)
AT+CPWD=?
+CPWD: ("PS",5),("SC",8),("AB",4),("P2",8)
# +CLIP=? (Calling line identification presentation)
AT+CLIP=?
+CLIP: (0,1)
# +CLIR=? (Calling line identification restriction)
AT+CLIR=?
+CLIR: (0-2)
# +COLP=? (Connected line identification presentation)
AT+COLP=?
+COLP: (0,1)
# +CDIP=? (Called line identification presentation)
AT+CDIP=?
ERROR
# +CCUG=? (Closed user group)
AT+CCUG=?
# +CCFC=? (Call forwarding)
AT+CCFC=?
+CCFC: (0-5)
# +CCWA=? (Call waiting)
AT+CCWA=?
+CCWA: (0,1)
# +CHLD=? (Call and hold multiparty)
AT+CHLD=?
+CHLD: (0,1,1x,2,2x,3,4)
# +CTFR=? (Call transfer)
AT+CTFR=?
ERROR
# +CUSD=? (Unstructured supplementary service data)
AT+CUSD=?
+CUSD: (0,1)
# +CAOC=? (Advice of charge)
AT+CAOC=?
# +CSSN=? (Supplementary service notifications)
AT+CSSN=?
+CSSN: (0,1),(0,1)
# +CLCC=? (List current calls)
AT+CLCC=?
# +CPOL=? (Preferred operator list)
AT+CPOL=?
ERROR
# +CPLS=? (Selection of preferred PLMN list)
AT+CPLS=?
ERROR
# +COPN=? (Read operator names)
AT+COPN=?
ERROR
# +CAEMLPP=? (eMLPP Priority Registration and Interrogation)
AT+CAEMLPP=?
ERROR
# +CPPS=? (eMLPP subscriptions)
AT+CPPS=?
ERROR
# +CFCS=? (Fast call setup conditions)
AT+CFCS=?
ERROR
# +CAAP=? (Automatic answer for eMLPP Service)
AT+CAAP=?
ERROR
# +CUUS1=? (User to User Signalling Service 1)
AT+CUUS1=?
ERROR
# +CPAS=? (Phone activity status)
AT+CPAS=?
+CPAS: (0,1,3,4)
# +CFUN=? (Set phone functionality)
AT+CFUN=?
ERROR
# +CPIN=? (Enter PIN)
AT+CPIN=?
# +CBC=? (Battery charge)
AT+CBC=?
+CBC: (0,1),(0-100)
# +CSQ=? (Signal quality)
AT+CSQ=?
+CSQ: (0-31,99),(99)
# +CMEC=? (ME control mode)
AT+CMEC=?
ERROR
# +CKPD=? (Keypad control)
AT+CKPD=?
ERROR
# +CDIS=? (Display control)
AT+CDIS=?
ERROR
# +CIND=? (Indicator control)
AT+CIND=?
ERROR
# +CMER=? (ME event reporting)
AT+CMER=?
ERROR
# +CPBS=? (Select phonebook memory storage)
AT+CPBS=?
+CPBS: ("ME","DC","MC","RC","ON","SM","FD")
# +CPBR=? (Read phonebook entries)
AT+CPBR=?
+CPBR: (1-160),21,10
# +CPBF=? (Find phonebook entries)
AT+CPBF=?
+CPBF: 21,10
# +CPBW=? (Write phonebook entry)
AT+CPBW=?
+CPBW: (1-160),21,(129,145),10
# +CCLK=? (Clock)
AT+CCLK=?
ERROR
# +CALA=? (Alarm)
AT+CALA=?
ERROR
# +CSIM=? (Generic SIM access)
AT+CSIM=?
ERROR
# +CRSM=? (Restricted SIM access)
AT+CRSM=?
ERROR
# +CSCC=? (Secure control command)
AT+CSCC=?
ERROR
# +CALM=? (Select ringing tone)
AT+CALM=?
ERROR
# +CRSL=? (Ringing tone level)
AT+CRSL=?
ERROR
# +CVIB=? (Vibrator tone)
AT+CVIB=?
ERROR
# +CLVL=? (Volume control)
AT+CLVL=?
ERROR
# +CMUT=? (Mute microphone)
AT+CMUT=?
ERROR
# +CACM=? (Accumulated call meter)
AT+CACM=?
ERROR
# +CAMM=? (Accumulated call meter maximum)
AT+CAMM=?
ERROR
# +CPUC=? (Price per unit and currency table)
AT+CPUC=?
ERROR
# +CCWE=? (Call meter maximum event)
AT+CCWE=?
ERROR
# +CPWC=? (Power class)
AT+CPWC=?
+CPWC: (0,(0,4,5)),(1,(0-2))
# +CLAN=? (Set language)
AT+CLAN=?
ERROR
# +CLAE=? (Language event)
AT+CLAE=?
ERROR
# +CSGT=? (Set greeting text)
AT+CSGT=?
ERROR
# +CSVM=? (Set voice mail number)
AT+CSVM=?
ERROR
# +CRMP=? (Ring melody playback)
AT+CRMP=?
ERROR
# +CMAR=? (Master reset)
AT+CMAR=?
ERROR
# +CLAC (List all available AT commands)
AT+CLAC
ERROR
# +CALD=? (Delete alarm)
AT+CALD=?
ERROR
# +CAPD=? (Postpone or dismiss an alarm)
AT+CAPD=?
ERROR
# +CTZU=? (Automatic time zone update)
AT+CTZU=?
ERROR
# +CTZR=? (Time zone reporting)
AT+CTZR=?
ERROR
# +CPROT=? (Enter protocol mode)
AT+CPROT=?
ERROR
# +CMEE=? (ME error reporting)
AT+CMEE=?
+CMEE: (0-2)
# +CGDCONT=? (Define PDP context)
AT+CGDCONT=?
ERROR
# +CGDSCONT=? (Define Secondary PDP context)
AT+CGDSCONT=?
ERROR
# +CGTFT=? (Traffic Flow Template)
AT+CGTFT=?
ERROR
# +CGQREQ=? (QoS profile (requested))
AT+CGQREQ=?
ERROR
# +CGQMIN=? (QoS profile (minimum acceptable))
AT+CGQMIN=?
ERROR
# +CGEQREQ=? (3G QoS profile (requested))
AT+CGEQREQ=?
ERROR
# +CGEQMIN=? (3G QoS profile (minimum acceptable))
AT+CGEQMIN=?
ERROR
# +CGEQNEG=? (3G QoS profile (negotiated))
AT+CGEQNEG=?
ERROR
# +CGATT=? (GPRS attach/detach)
AT+CGATT=?
ERROR
# +CGACT=? (PDP context activate/deactivate)
AT+CGACT=?
ERROR
# +CGCMOD=? (PDP context modify)
AT+CGCMOD=?
ERROR
# +CGDATA=? (Enter data state)
AT+CGDATA=?
ERROR
# +CGCLOSP=? (Configure local octet stream PAD parameters)
AT+CGCLOSP=?
ERROR
# +CGPADDR=? (Show PDP address)
AT+CGPADDR=?
ERROR
# +CGAUTO=? (Automatic response to a network request for PDP context activation)
AT+CGAUTO=?
ERROR
# +CGANS=? (Manual response to a network request for PDP context activation)
AT+CGANS=?
ERROR
# +CGCLASS=? (GPRS mobile station class)
AT+CGCLASS=?
ERROR
# +CGCLPAD=? (Configure local triple-X PAD parameters)
AT+CGCLPAD=?
ERROR
# +CGEREP=? (GPRS event reporting)
AT+CGEREP=?
ERROR
# +CGREG=? (GPRS network registration status)
AT+CGREG=?
ERROR
# +CGSMS=? (Select service for MO SMS messages)
AT+CGSMS=?
ERROR
# +CAJOIN=? (Accept an incoming Voice Group or Voice Broadcast Call)
AT+CAJOIN=?
ERROR
# +CAREJ=? (Reject an incoming Voice Group or Voice Broadcast Call)
AT+CAREJ=?
ERROR
# +CAHLD=? (Leave an ongoing Voice Group or Voice Broadcast Call)
AT+CAHLD=?
ERROR
# +CAPTT=? (Talker Access for Voice Group Call)
AT+CAPTT=?
ERROR
# +CAULEV=? (Voice Group Call Uplink Status Presentation)
AT+CAULEV=?
ERROR
# +CALCC=? (List current Voice Group and Voice Broadcast Calls)
AT+CALCC=?
ERROR
# +CACSP=? (Voice Group or Voice Broadcast Call State Attribute Presentation)
AT+CACSP=?
ERROR
# +CANCHEV=? (NCH Support Indication)
AT+CANCHEV=?
ERROR
# +COTDI=? (Originator to Dispatcher Information)
AT+COTDI=?
ERROR
# +CGCS=? (VGCS subscriptions and GId status)
AT+CGCS=?
ERROR
# +CBCS=? (VBS subscriptions and GId status)
AT+CBCS=?
ERROR
# +CSMS=? (Select message service)
AT+CSMS=?
+CSMS: (0,1)
# +CPMS=? (Preferred message store)
AT+CPMS=?
+CPMS: ("ME","SM"),("ME","SM"),("SM")
# +CMGF=? (Message format)
AT+CMGF=?
+CMGF: (0,1)
# +CESP=? (Enter SMS block mode protocol)
AT+CESP=?
ERROR
# +CSCA=? (Service center address)
AT+CSCA=?
# +CMGF=1 (Text mode)
AT+CMGF=1
# +CSMP=? (Set text mode parameters)
AT+CSMP=?
# +CSDH=? (Show text mode parameters)
AT+CSDH=?
+CSDH: (0,1)
# +CMGL=? (List messages (text))
AT+CMGL=?
+CMGL: ("REC UNREAD","ALL")
# +CMGR=? (Read message (text))
AT+CMGR=?
# +CNMA=? (New message acknowledgement to ME/TA (text))
AT+CNMA=?
# +CMGS=? (Send message (text))
AT+CMGS=?
# +CMSS=? (Send message from storage (text))
AT+CMSS=?
# +CMGW=? (Write message to memory (text))
AT+CMGW=?
# +CMGD=? (Delete message (text))
AT+CMGD=?
# +CMGC=? (Send command (text))
AT+CMGC=?
# +CMGF=0 (PDU mode)
AT+CMGF=0
# +CMGL=? (List messages (pdu))
AT+CMGL=?
+CMGL: (0,4)
# +CMGR=? (Read message (pdu))
AT+CMGR=?
# +CNMA=? (New message acknowledgement to ME/TA (pdu))
AT+CNMA=?
+CNMA: (0-2)
# +CMGS=? (Send message (pdu))
AT+CMGS=?
# +CMSS=? (Send message from storage (pdu))
AT+CMSS=?
# +CMGW=? (Write message to memory (pdu))
AT+CMGW=?
# +CMGD=? (Delete message (pdu))
AT+CMGD=?
# +CMGC=? (Send command (pdu))
AT+CMGC=?
# +CSCB=? (Select cell broadcast message types)
AT+CSCB=?
+CSCB: (0,1)
# +CSAS=? (Save settings)
AT+CSAS=?
+CSAS: (1)
# +CRES=? (Restore settings)
AT+CRES=?
+CRES: (1)
# +CNMI=? (New message indications to TE)
AT+CNMI=?
+CNMI: (0-2),(0-3),(0,2,3),(0-2),(0,1)
# +CMMS=? (More messages to send)
AT+CMMS=?
+CMMS: (0-2)
Can I use with this ?

Code: Select all



include "FiveWin.ch"

function Main()

   local oDlg, nComm := InitComm()

   DEFINE DIALOG oDlg TITLE "Testing Comm functions"

   oDlg:bCommNotify = { | nComm, nStatus | BytesAtPort( nComm, nStatus ) }

   ACTIVATE DIALOG oDlg ;
      ON INIT EnableCommNotification( nComm, oDlg:hWnd, 20, 20 )

   CloseComm( nComm )

return nil

function InitCOMM()

   local cDcb, nError, nBytes
   local nComm := OpenComm( "COM1", 1024, 128 )

   if ! BuildCommDcb( "COM1:9600,n,8,1", @cDcb )
      MsgStop( "Error BUILD!" )
      return .f.
   endif

   #ifdef __CLIPPER__
      if ! SetCommState( cDcb )
   #else   
      if ! SetCommState( nComm, cDcb )
   #endif   
      MsgStop( "Error SETCOMM!" )
      return .f.
   endif

return nComm

function BytesAtPort( nComm, nStatus )

   local cBuffer := Space(20 )

   Msginfo( nSTATUS)
   ReadComm( nComm, @cBuffer )  // <<<<---- program will lock here
   Msginfo( AllTrim( cBuffer ))

return nil
Best Regards
Areang
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: AT COMMAND FOR GSM MODEM

Post by Enrico Maria Giordano »

Try the modem commands using the following simple terminal emulator:

Code: Select all

#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg

    LOCAL oGet, cTxt := ""

    LOCAL nCom

    DEFINE DIALOG oDlg;
           SIZE 500, 500;
           TITLE "Terminale"

    @ 0, 0 GET oGet VAR cTxt MEMO READONLY

    oGet:bKeyDown = { | nKey | Tasti( nCom, nKey ) }

    ACTIVATE DIALOG oDlg;
             ON INIT ( oGet:AdjClient(),;
                       nCom := APRICOM( oDlg, oGet ),;
                       IF( nCom < 0, oDlg:End(), ) );
             CENTER

    IF nCom >= 0; CLOSECOMM( nCom ); ENDIF

    RETURN NIL


STATIC FUNCTION TASTI( nCom, nKey )

    SENDSTR( nCom, CHR( nKey ) )

    RETURN NIL


STATIC FUNCTION APRICOM( oDlg, oGet )

    LOCAL nCom, cDcb

    BEGIN SEQUENCE
        nCom = OPENCOMM( "COM1", 16384, 16384 )

        IF nCom < 0
            ? "Errore di apertura della porta di comunicazione."
            BREAK
        ENDIF

        BUILDCOMMDCB( "COM1:115200,N,8,1", @cDcb )

        IF !SETCOMMSTATE( nCom, cDcb )
            ? "Errore di impostazione della porta di comunicazione."
            BREAK
        ENDIF

        oDlg:bCommNotify = { | nCom | Connect( nCom, oGet ),;
                                      EnableCommNotification( nCom, oDlg:hWnd, 1, -1 ) }

        IF !ENABLECOMMNOTIFICATION( nCom, oDlg:hWnd, 1, -1 )
            ? "Errore di abilitazione della notifica."
            BREAK
        ENDIF
    RECOVER
        nCom = -1
    END SEQUENCE

    RETURN nCom


STATIC FUNCTION CONNECT( nCom, oGet )

    LOCAL cStr

    ENABLECOMMNOTIFICATION( nCom, 0, 1, -1 )

    cStr = RECEIVESTR( nCom )

    cStr = STRTRAN( cStr, CHR( 13 ), "" )
    cStr = STRTRAN( cStr, CHR( 10 ), CRLF )

    oGet:Append( cStr )

    RETURN NIL


STATIC FUNCTION SENDSTR( nCom, cString )

    LOCAL nBytes := WRITECOMM( nCom, cString )

    RETURN nBytes = LEN( cString )


STATIC FUNCTION RECEIVESTR( nCom )

    LOCAL cBuf := SPACE( 1000 )

    RETURN LEFT( cBuf, READCOMM( nCom, @cBuf ) )
EMG
areang
Posts: 128
Joined: Mon Jul 31, 2006 3:23 pm

Post by areang »

Thank's Mr. Enrico !
I will try it

Regards
Areang
Post Reply