Cisco – How does one send non-ascii characters through Cisco GSM SMS

ciscorouter

I'm currently using a Cisco 881G2 Router which has a Cellular interface.

Sending Text messages from the router is as simple as typing the following command:

cellular 0 gsm sms send <telephonenumber> <message>

Sending messages containing plain text works just fine.

According to the GSM 03.38 standard, there are 128 characters in the Basic Character Set. Several of these chracters however, require the use of an 8-bit ASCII character set, which is not the default in Cisco IOS. Thanks to Brett Lykins' answer below, I have been able to configure my router to accept 8 bit ASCII characters, including some of the Scandinavian characters like æ, ø, å and the capitilized versions of these. Using Telnet doesn't give me the option to send special characters, but both Putty and SecureCRT over ssh does allow me to send these special characters.

Regretfully, even after making these very helpful modifications, the text messages being do not arrive correctly. The two tests I did are:

cellular 0 gsm sms send 00474792xxxx Hålla!
cellular 0 gsm sms send 00474792xxxx Greetings æ, ø, å

My mobile phone received the messages "Hemla!" and "Greetings f- x- e", rather than what was sent. I have for security reasons obfuscated my mobile number above.

The question is – how does one send a text message which contains these types of characters?

Unfortunately, the Configuration Guide provides no clues on how to do this.

The router runs C880 Software (C880DATA-UNIVERSALK9-M), Version 15.2(3)T2
I have tried with Putty, and with SecureCRT 7.0.3 on Windows using VT100 emulation.

Best Answer

This one has flummoxed me in the past. The commands you're looking for relate to turning on the 8-Bit character set.

Now, this may still not allow the cellular modem to send the characters via SMS (I do not have a card to test this with), however this is the only command that I know of that may help you out.

Per the Configuring Operating Characteristics for Terminals guide from Cisco (specifically the section on Specifying an International Character Display):

The classic U.S. ASCII character set is limited to 7 bits (128 characters), which adequately represents most displays in the U.S. Most defaults on the modem router work best on a 7-bit path. However, international character sets and special symbol display can require an 8-bit wide path and other handling.

You can use a 7-bit character set (such as ASCII), or you can enable a full 8-bit international character set (such as ISO 8859). This allows special graphical and international characters for use in banners and prompts, and adds special characters such as software flow control.

The commands to enable 8 bit character set are:

default-value special-character-bits 8
default-value exec-character-bits 8

To test, I tried to type æ into my lab router with the following results:

R-VOIPLAB#
R-VOIPLAB#>

Since I have the default 7-bit character lengths turned on, it interpreted the æ as angle brackets.

Now, I turned on 8 bit character sets and logged out of my session and back in (the logout is necessary to begin using the new terminal settings we just configured):

R-VOIPLAB#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R-VOIPLAB(config)#default-value exec-character-bits 8
R-VOIPLAB(config)#default-value special-character-bits 8
R-VOIPLAB(config)#exit
R-VOIPLAB#exit

After logging back in:

R-VOIPLAB#
R-VOIPLAB#æ
R-VOIPLAB#æ, ø, å

Notes:

This testing was done with the following configuration, so your milage might vary with a different terminal emulator, different router, etc:

  • Test computer: Mac OSX 10.9.2
  • Terminal program: SecureCRT for Mac, Version 7.2.0
  • Terminal emulation type: VT100
  • Connection type: SSH
  • Router: 2821
  • IOS: 15.1(4)M6