# SMS Backup Format

The SMS backup format is text file encoded in current encoding of platform where Gammu is running.

This file use ini file syntax, see INI file format.

## Sections

The file consists of sections, whose name starts with `SMSBackup`. When creating the backup file, three digits are appended to this text defining order. While reading the backup, any part after `SMSBackup` text is ignored and everything which begins with this is processed. So you can as well give the section name `SMSBackupFoo` and it will be processed.

The number of messages in backup file is currently limited by `GSM_BACKUP_MAX_SMS` (100000 at time of writing this document).

### `SMSBackup` section

Each section interprets one physical SMS message (eg. one message part in case of multipart messages).

#### Decoded text

For SMS backups created by Gammu, there is a decoded text as a comment just after the section name:

    [SMSBackup001]
    ; This is message text

The text can be split to more lines if it is too long or of original message included new lines.

Note

This is easiest way to get message text, however also the least reliable one, because it is stored in the comments in the file.

#### Variables

The following variables can be defined for each SMS:

`SMSC`

  Text representation of SMSC number, not used by Gammu if `SMSCUnicode` exists.

`SMSCUnicode`

  Hex encoded UCS-2 string with SMSC number.

`Class`

  Message class.

`Sent`

  Timestamp, when message has been sent.

`PDU`

  Message type, one of:

  - `Deliver` - received message

  - `Submit` - message to send

  - `Status_Report` - message to send with delivery report

`DateTime`

  Timestamp of message (sent or received).

`RejectDuplicates`

  Whether receiver should reject duplicates.

`ReplaceMessage`

  ID of message to replace.

`MessageReference`

  Message reference number as generated by network.

`State`

  State of the message:

  - `Read`

  - `UnRead`

  - `Sent`

  - `UnSent`

`Number`

  Recipient number.

`Name`

  Name of the message.

`Length`

  Length of message text.

`Coding`

  Coding of the message:

  - `8bit` - binary message

  - `Default` - GSM encoding, up to 160 chars in message

  - `Unicode` - Unicode encoding, up to 70 chars in message

`Text00` … `TextNN`

  Numbered parts of the message payload.

`Folder`

  ID of folder where the message was saved.

`UDH`

  User defined header of the message.

## Example

The backup of message can look like following:

    [SMSBackup000]
    #ABCDEFGHIJKLMNOPQRSTUVWXYZ
    #
    SMSC = "+4540590000"
    SMSCUnicode = 002B0034003500340030003500390030003000300030
    Sent = 20021201T025023
    State = UnRead
    Number = "+4522706947"
    NumberUnicode = 002B0034003500320032003700300036003900340037
    Name = ""
    NameUnicode =
    Text00 = 004100420043004400450046004700480049004A004B004C004D004E004F0050005100520053005400550056005700580059005A000A
    Coding = Default
    Folder = 1
    Length = 27
    Class = -1
    ReplySMSC = False
    RejectDuplicates = True
    ReplaceMessage = 0
    MessageReference = 0