Извлечение SMS средствами perl

Perl модуль Device::Gsm

Модуль для работы с SMS чере perl: Device::Gsm

AT команды

Краткий обзор:

AT+CGMI — выводит производителя телефона

AT+CPMS=? — выводит список возможных Memory Storage'ов для каждой группы
Например:

AT+CPMS=?
+CPMS: ("MT","IM","OM","BM","DM"),("OM","DM"),("IM")
  
OK
Перавя группа: ("MT","IM","OM","BM","DM") — Memory Storages сообщения в которых можно читать и удалять
Вторая группа: ("OM","DM") — Memory Storages в которые можно писать и из которых можно отправлять
Третья группа: ("IM") — Memory Storages из которых можно получать новые сообщения

AT+CPMS? — выдает выбраные в каждой группе Memory Storage'ы кол-во сообщений в них и вместимость.

AT+CPMS?
  +CPMS: "MT",118,254,"OM",56,254,"IM",62,254
  
  OK
"MT",118,254 — чтение будет осуществляться из Memory Storage MT, в нем 118 сообщений и максимально может быть 256

AT+CPMS="MemoryStorageToRead"[,"MemoryStorageToWrite"[, "MemoryStorageToReceive"]] — Позволяет устанвить из каког Memory Storage'а будет производиться чтение, в какой будет произвоиться запись, а из какого получение новых. В качестве результата выдает три пары кол-во, вместимость, по паре для каждго из Memory Storage'ей

AT+CMGL=4 — выводит все сообщения из текущего Memory Storage'а для чтения

AT+CMGR=Number — выдает одно сообщение за указанным номером из текущего Memory Storage'а для чтения

См. так же: Список AT команд от Nokia(pdf)

Memory Storages в телефонах Motorola

IM — Inbox
OM — Outbox
DM — Drafts
BM — Broadcast messages (?)
MT — Все предидущие в объединенные одном
Взято отсюда: https://bugs.cihar.com/view.php?id=408

Memory Storages в телефонах Nokia

ME — Память телефона(?)
MS — Память Sim-карты
MT — Все предидущие в объединенные одном

Формат SMS сообщения

Читайте доки, они рулят:
Technical realization of the Short Message Service (SMS) - GSM 03.40 - Version 5.3.0 (.pdf)
Alphabets and language-specific information - GSM 03.38 - Version 7.2.0 (.pdf)
SMS and the PDU format (.html) (.html.tgz)