scmxx(1)

NAME
scmxx - exchange data with your Siemens mobile phone

SYNOPSIS
scmxx [--device device] [--baud baudrate] \
[--quiet] [--verbose] \
--reset | --help | --version | --info | --set-time |
--set-smsc --number number

scmxx [--device device] [--baud baudrate] \
[--out file] [--pipe pipe] [--pin pin] \
[--quiet] [--verbose] \
--remove | --send | --get \
--bitmap[=slot#] | --midi[=slot#] | --vcal[=slot#] |
 --vcard[=slot#] | --pbook=phonebook \
[file1 [file2 [...]]]

scmxx [--device device] [--baud baudrate] \
[--out file] [--pipe pipe] [--pin pin] \
[--quiet] [--verbose] \
--remove |& --get |& --send \
 --sms[=slot#|=status] [--text text] [--number number] [--direct] [--flash] [--srr] [--unicode] [--smsmem=memtype] \
[file1 [file2 [...]]]

DESCRIPTION
SCMxx can copy files to and from a Siemens mobile phone and also delete stored files. Files can read from a given file or through stdin and stored to a given file or stdout. SMS can also be directly sent or received without storing in the mobile phone. SCMxx was tested with several mobile phones manufactured by Siemens (only S25 and later). The output of text (phonebook and sms) depends on the character set of your current locale. Input is the same. This has the advantage of localization but may have the drawback that all other characters must be entered by a sequence \XXXX where X is a hex character (e.g. \20ac for EuroSign). This is a 16bit representative of the unicode value. The newline character can be entered using the common \n and '\' must be masked with itself. In bash, this might even result in a needed input like "\\".

OPTIONS

--device (-d)
    specify another than the compiled in device. This overwrites the SCMXX_TTY environment variable and the compiled-in value. For linux systems, this may be e.g. /dev/ttyS0 for serial connections and /dev/ircomm0 for infrared connections.

--baud (-b)
    specify the device's speed. Valid values are dependent on the system but may be 9600, 19200, 38400, 57600 or 115200. The default value is 19200. The S25 and *35i only work at the 19200, all later phones also work at full serial speed. Infrared connections may be an exception to these rules (dependent on the infrared donle). This overwrites the SCMXX_BAUD environment variable and the compiled-in value.

--out (-o)
    specify a file to use. When getting with "all" then the slotnumber, a dot and the filetype are appended to each file (SMS is an exception). When sending or deleting, this parameter has no use but the last parameters that should be valid files. Stdin/Stdout must be explicitly selected with the dash ("-"), the program is comfortable with not outputting anything (except getting unread SMS). There is nothing appended to "-" when getting multiple files.

--pipe (-p)
    specify a pipe to another program. When getting with "all", every file is piped to this programs on its own (except phonebook entries).

--quiet (-q)
    decreases verbosity by 1 (min verbosity: -1)

--pin
    use this pin if one is needed

--verbose (-v)
    increases verbosity by 1 (max verbosity: +1)

--reset
    try to reset the phone, so it gets accessible again. It may happen that the phone does not answer on the serial interface anymore, especially with a previous user-interrupted file transfer. This simply blindly sends some characters.

--help (-h)
    print the help message

--version
    print the version number

--remove (-r)
    removes an entry from the phone. "slot" is either a number or the keyword "all". When specified with --sms and --get, this will get'n'delete. When specified with --sms, this can also the a status type. Status types are: "unread", "read", "unsent" and "sent".

--get (-g)
    get an entry and save it to a file. "slot" is either a number or the keyword "all". When specified with --sms, this can also the a status type. Status types are: "unread", "read", "unsent" and "sent".

--send (-s)
    sends a file to the phone. "slot" is a number. When omitted, it tries to find an empty one (that may or may not take long). When a slot was specified and also multiple files to upload, the specified slot is the starting point to search for empty slots. Overwriting multiple, non-empty slots is not yet supported. When specified with --sms, this can also the a status type. Status types are: "unread", "read", "unsent" and "sent" but only the latter two work right now (and you should also use --direct or the sms will only get copied).

--info (-i)
    collect information from the phone

--set-time
    synchronize time to phone. The use of tools like ntpdate is recommended before using this.

--set-smsc
    set the SMSC number (requires --number)

--bitmap (-B)
    select bitmap (.bmp) slot number

--midi (-M)
    select midi (.mid) slot number

--vcal (-C)
    select vCalender (.vcs) slot number

--vcard (-F)
    select vCard (.vcf) slot number (not supported by *35i or S25).

--pbook (-P)
    select phonebook, see the output of --info for available phonebooks.

--sms (-S)
    select short message service

--text (-t)
    specify content text of SMS (sending only). Note that the length is limited to 160 GSM characters, minus 1 for every used character that needs 14bit encoding. The program will deny sending, if the text is too long. Multipart-SMS will be supported by a later version.

--number (-n)
    specify number to send the SMS to (sending only). Note that the number may have a leading '+' for international numbers. It is limited to 20 digits (without the '+' which is certainly enough.

--direct
    sends/gets the sms without storing it in the phone. This is not default because you will certainly be charged for it when sending. With direct getting, SMS that are not of type DELIVER are still stored on the phone (scmxx cannot decode those messages, yet).

--unicode
    send the short message and use UCS-2 (16bit unicode) as character set. This limits the short message to 70 character. If this option is not specified, 7bit GSM character encoding is used with a maximum of 160 characters. You do NOT need to specify this parameter to enable unicode sms decoding.

--smsmem
    select a sms memory to access. The slot number may vary depending on the selected memory. See the output of --info for the supported memory types. For *35i and S25 this is only "SM", the *45 might also feature "ME" and "MT". The latter is "ME"+"SM". "MT" is the default value on phones that support it. For all other phones, the default value is "SM".

--flash
    set the Class0 in the data coding scheme field that is normally interpreted as "immediate display". Not all receiving entities support this. Note that a second sms of this type normally overwrites a previous one without asking! The use is not recommended.

--srr
    this sets the StatusReportRequest bit in the pdutype field of the sms pdu. It depends on the SMSC if this is honored. With some carriers, this produces additional costs!

USAGE

Send an bitmap file to the phone as Bitmap:
    scmxx --send --bitmap=0 myfile.bmp
    OR
    scmxx -sB0 myfile.bmp
    OR
    cat myfile.bmp | scmxx -sB -

Get a Bitmap from the phone and save it into a new file:
    scmxx --get --bitmap=0 --out=myfile.bmp
    OR
    scmxx -gB0 -o myfile.bmp
    OR
    scmxx -gB0 >myfile.bmp

NOTES
There is an additional parameter --ignore-serial-bits. Use it only when you get no response from the phone at all. It clears all serial bits instead of reading them from the device. This might help although I'm not sure if this is caused by bad cables or a bad serial port setup.

Another parameter --device-timeout=<seconds> is provided for the case that your phone ever needs more than default value of 10 seconds to answer. Actually, this should be more than enough but one never knows. The minimum value is 1.

ENVIRONMENT

SCMXX_TTY
    see --device for decription

SCMXX_BAUD
    see --baud for description

AUTHOR
Hendrik Sattler <post@hendrik-sattler.de>