Setting or Reading the Service Center Address / SMSC Address (AT+CSCA) (Tutorial 21)

Before you send SMS messages, one important thing that should be done is to make sure the correct service center address (SMSC address) has been set properly. Typically a service center address/SMSC address is a phone number formatted using the ISDN / telephony numbering plan (ITU E.164/E.163). For example, +85291234567. The AT command +CSCA (command name in text: Service Centre Address) can be used to set or read the service center address through which SMS messages are sent. The setting will be used by the AT commands +CMGW (command name in text: Write Message to Memory) and +CMGS (command name in text: Send Message).

In SMS text mode, the only way to specify the service center address to be used by +CMGW and +CMGS is through +CSCA. However, in SMS PDU mode, it is possible to specify the service center address to the AT commands +CMGW and +CMGS directly as a parameter value.

The mobile network operator usually pre-sets the correct service center number in the default profile of settings stored in the SIM card. Most mobile phones provide some ways for the user to view or change the service center number saved in the profiles of settings. For example, on my Nokia 6021 mobile phone, the message center number saved in the default profile of settings can be viewed and changed by going to Menu -> Messages -> Message settings -> Text messages -> Sending profile -> Default profile -> Message centre number.

Some GSM/GPRS modems and mobile phones (for example, Nokia 6021, Sony Ericsson T68i, Philips 598, etc) use the service center number in the default profile of settings as the default value of the +CSCA AT command. As a result, if the service center number in the default profile of settings is correct, you do not need to use the +CSCA AT command to set the service center number.


Note

To some mobile devices such as Nokia 6021, the +CSCA AT command does not save the service center number in non-volatile memory. Hence, if you switch off the GSM/GPRS modem or mobile phone, the setting will be gone. To save the service center number set with the AT command +CSCA, you have to make use of the AT command +CSAS (command name in text: Save Settings). To restore the saved service center number, the AT command +CRES (command name in text: Restore Settings) is required.

The command behavior is different on some mobile devices such as Sony Ericsson T68i and Philips 598. Every time the AT command +CSCA is used to change the SMSC address, the new SMSC address is saved to non-volatile memory.


21.1. Syntax of the +CSCA AT Command

21.1.1. Setting the Service Center Address

To set the service center address, perform a set operation with the +CSCA AT command using the following syntax: (Optional parameters are enclosed in square brackets.)


+CSCA=address[,address_type]


The address Parameter

The first parameter of the +CSCA AT command, address, specifies the SMSC address to be set. Usually it is a phone number formatted using the typical ISDN / telephony numbering plan (ITU E.164/E.163). For example, "+85291234567". Note that the value assigned to the address parameter should be a string, which means you should use double quotes to enclose the phone number.


The address_type Parameter

The second parameter of the +CSCA AT command, address_type, specifies the type of the SMSC address assigned to the address parameter. Two values, 129 and 145, are commonly used.

  • 129. Meaning: The SMSC address is formatted using the typical ISDN / telephony numbering plan (ITU E.164/E.163) but it is not sure whether the SMSC address is an international number, a national number or a number of other types. Example addresses: "85291234567" and "91234567".

  • 145. Meaning: The SMSC address is formatted using the typical ISDN / telephony numbering plan (ITU E.164/E.163) and it is an international number. Example address: "+85291234567".

As address_type is an optional parameter, it can be omitted. If you do so, the GSM/GPRS modem or mobile phone will use the default value of the address_type parameter, which is:

  • 129 if the SMSC address does not start with a "+" character. For example, "85291234567".

  • 145 if the SMSC address starts with a "+" character. For example, "+85291234567".


21.1.2. Reading the Service Center Address

To read the service center address, you can perform a read operation using the +CSCA read command "+CSCA?". The information response returned has the following format:


+CSCA: address,address_type


The definition of address and address_type is the same as above.


21.2. Example Demonstrating How to Use the +CSCA AT Command to Set and Read the Service Center Address

Now let's see an example that demonstrates how to use the +CSCA AT command to set and read the service center address. As said earlier, sometimes a proper service center address is in use by default and there is no need to make any changes. So first let's type the read command "+CSCA?" in a terminal program (for example, HyperTerminal in Microsoft Windows) to check if a proper service center address is in use currently. The response returned from a GSM/GPRS modem or mobile phone should be something like this:


AT+CSCA?
+CSCA: "+85291111111",145

OK


If you find that the service center address is not correct, use the +CSCA AT command to change it, like this:


AT+CSCA="+85290000000",145
OK


The final result code OK indicates the service center address was set successfully. If the execution of the command line fails, the final result code will be ERROR.

from developershome .com

Operating Mode: SMS Text Mode and SMS PDU Mode (Tutorial 20)


The SMS specification has defined two modes in which a GSM/GPRS modem or mobile phone can operate. They are called SMS text mode and SMS PDU mode. (PDU stands for Protocol Data Unit.) The mode that a GSM/GPRS modem or mobile phone is operating in determines the syntax of some SMS AT commands and the format of the responses returned after execution. Below are the SMS AT commands affected:

  • +CMGS (Send Message)

  • +CMSS (Send Message from Storage)

  • +CMGR (Read Message)

  • +CMGL (List Messages)

  • +CMGW (Write Message to Memory)

  • +CNMA (New Message Acknowledgement to ME/TA)

  • +CMGC (Send Command)

The syntax of the unsolicited result codes below also depends on the mode in which the GSM/GPRS modem or mobile phone is operating:

  • +CMT (Used to forward received SMS messages to the computer / PC.)

  • +CBM (Used to forward received cell broadcast messages to the computer / PC.)

  • +CDS (Used to forward received status reports to the computer / PC.)

These two AT commands are useful to you only if SMS text mode is used:

  • +CSMP (Set Text Mode Parameters)

  • +CSDH (Show Text Mode Parameters)


Comparison of SMS Text Mode and SMS PDU Mode

Below we compare SMS text mode and SMS PDU mode from various aspects. The comparison should help you learn the differences between these two modes and decide which mode should be used by your SMS messaging application.


Syntax of SMS AT Commands and Responses

When the GSM/GPRS modem or mobile phone is operating in different modes, the syntax of certain SMS AT commands and the responses returned after command execution is different. Here's an example for illustration. Let's say you would like to send the SMS message "It is easy to send text messages." to the mobile phone number +85291234567. In SMS text mode, this is the command line that you should enter:


AT+CMGS="+85291234567"It is easy to send text messages.


However, if the GSM/GPRS modem or mobile phone is operating in SMS PDU mode, executing the above command line will cause an error to occur. This is because the syntax of the +CMGS AT command is different in SMS PDU mode. To do the same task, the following command line should be used instead:


AT+CMGS=4207915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDCB6E32885EC6D341EDF27C1E3E97E72E


Defined Values for Certain Parameters

When the GSM/GPRS modem or mobile phone is operating in different modes, the defined values for certain parameters are different. Usually string values are defined for text mode while numeric values are defined for PDU mode. For example, the +CMGL AT command is used to list SMS messages stored in message storage. It takes one parameter that specifies the status of the SMS messages to be retrieved. The following table lists the defined values for the parameter in text mode and PDU mode:


Message status

Defined values in text mode

Defined values in PDU mode

Received unread

"REC UNREAD"

0

Received read

"REC READ"

1

Stored unsent

"STO UNSENT"

2

Stored sent

"STO SENT"

3

All messages

"ALL"

4


Suppose you would like to list all SMS messages from message storage. If the GSM/GPRS modem or mobile phone is operating in SMS text mode, you should assign the string value "ALL" to the +CMGL AT command, like this:


AT+CMGL="ALL"


In SMS PDU mode, the numeric value 4 should be assigned to the +CMGL AT command instead:


AT+CMGL=4


Input/Output Format of SMS Messages Used by SMS AT Commands

When the GSM/GPRS modem or mobile phone is operating in different modes, the input/output format of SMS messages used by SMS AT commands is different. In SMS text mode, headers and body of SMS messages are inputted/outputted as separate parameters/fields. In SMS PDU mode, TPDUs (Transport Protocol Data Units) in hexadecimal format are inputted and outputted. Headers and body of SMS messages are encoded in the TPDUs.

Here is an example for illustration. To send the SMS message "It is easy to send text messages." to the mobile phone number +85291234567, the following command line should be used in SMS text mode. As you can see below, the destination phone number header and message body are provided to the +CMGS AT command as separate parameters.


AT+CMGS="+85291234567"It is easy to send text messages.


To send the same SMS text message in SMS PDU mode, the following command line should be used instead. The message body, destination phone number header and some other headers are encoded in the hexadecimal sequence.

AT+CMGS=4207915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDCB6E32885EC6D341EDF27C1E3E97E72E

Ease of Use

As you can see in the previous example, it is easier to use AT commands in SMS text mode. You do not have to learn about the structure of different types of TPDUs in the bit level and the encoding and decoding of the hexadecimal sequence.


Supported Features of SMS Messaging

Although it is easier to use AT commands in SMS text mode, it supports fewer features of SMS messaging than SMS PDU mode. This is because you do not have complete control over the header values and message body in SMS text mode. Some tasks, although can be done in text mode, require the programmer to have knowledge about PDU mode and TPDU. For example, to request a status report from SMSC in SMS text mode, you have to set bit 5 of the first octet of the SMS-SUBMIT TPDU to 1 by the AT command +CSMP (command name in text: Set Text Mode Parameters). Similar tasks include setting the message validity period and sending a flash SMS message that immediately pops up on the phone screen when it arrives at the destination.


Level of Support

SMS PDU mode is more commonly supported by GSM/GPRS modems and mobile phones than SMS text mode.

from developershome .com

Getting Married, Kiss, Headache - Funny SMS


Getting married is very much like going to a restaurant with friends.
You order what you want, then when you see what the other person has,
you wish you had ordered that.
(Characters: 172)


Good news! A new way to send Romantic kiss to your girlfriend.
Just call me and order your kiss.
I will personally go and deliver it.
(Characters: 133)


Mon to Sun, From Jan To Dec,
From birth till my death,
my feelings 4 u have never changed.
For me, you've always been a headache!
(Characters: 129)