Manually using SMS/ru

From Openmoko

Jump to: navigation, search

В этой статье рассказывается о том, как отправлять и получать SMS сообщения через GSM, используя GSM - модуль Neo1973.

Если вы хорошо разбираетесь в технологии SMS, пожалуйста проверьте приведенные здесь AT команды SMS и исправьте их (а также удалите этот параграф), если найдете ошибки. Эта статья написана путем проб и ошибок за один вечер.

Если вы просто хотите приступить к практике без чтения дополнительной информации, то переходите сразу к пункту Организация.

Contents

Обзор

GSM - модуль Neo1973 использует расширенную версию набора (множества) команд Hayes AT для отправки и получения сообщений. Документацию по командам можно найти на форуме CTI, Техническая Спецификация GSM. Так как часто оказывается, что технические спецификации - компиляция ссылок на литературу и заключение, то я рекомендую почитать вместо них документацию SMS на Developer's Home.

libgsmd-tool

Хотя использование команд Gsmd посредством libgsmd-tool должно работать правильно, gsmd would complain about "unsolicited responses" when reading back a список SMS сообщений. Это происходит, когда необходимо прочитать несколько сообщений, а затем вернуть обратно в libgsmd-tool. Скорее всего он работает правильно при выборке одного сообщения. Эта проблема libgsmd-tool проявляется дублированием сообщений, или не показыванием response lines.

Поэтому я рекомендую использовать cu, a program used to "call up" another computer. Если у вас возникнут проблемы при использовании cu, you may want to refer to the article about manually using GSM for more information.

Организация

В статье manually using GSM мы подробно разберем путь от проверки отсутствия процессов, использующих GSM - модуль, подготовки системы к блокировке UUCP, а затем и до блокировки GSM - модуля. Если вы можете проверить настройку каталогов для блокировки UUCP, остановить демон gsmd, то вашего опыта работы с Neo будет достаточно. Опять же, если у вас возникнут затруднения, обращайтесь к статье manually using GSM за дополнительными деталями настройки системы.

Остановка демона GSM

Это действие гарантирует, что gsmd не будет использовать GSM - модуль и мешать вашим опытам.

root@fic-gta01:~$ /etc/init.d/gsmd stop 
Shutting down gsmd: Terminated

Сброс GSM - модуля

Это действие может быть выполнено последовательным отключением, а затем включением GMS - модуля. It is inferred this can be done by the Powering up the GSM Modem section of the manually using GSM article. If anyone can validate, or add the proper procedure, please update here.

root@fic-gta01:~$ echo 0 > /sys/bus/platform/devices/gta01-pm-gsm.0/power_on
root@fic-gta01:~$ echo 1 > /sys/bus/platform/devices/gta01-pm-gsm.0/power_on

Существует ли файл в /proc, по которому можно узнать состояние GSM - модуля?

Подключение к GSM - модулю

Воспользуйтесь программой cu, чтобы подключиться к GSM - модулю через /dev/ttySAC0. Сейчас, если при наборе вы допустили ошибку, не используйте [Backspace] или [Delete] для правки, используйте [Ctrl-H].

root@fic-gta01:~$ cu -l /dev/ttySAC0
Connected.
AT-Command Inter

Для проверки соединения наберите "AT" и [Enter] несколько раз. В итоге должны получить ответ "OK".

root@fic-gta01:~$ cu -l /dev/ttySAC0
Connected.
AT-Command Inter
OK
AT
OK

Настрока GSM - модуля

К этому моменту, GSM - модуль был сброшен и мы подсоединились к нему. Теперь нам нужно подключиться к сети GSM и настроить тестовый решим SMS несколькими командами. У нас не получится отправлять / получать SMS без применения следующих команд каждый раз при начале работы.

Включение эхо-повтора

Включение эхо-повтора позволит вам увидеть что вы делаете. Этого можно достичь командой "ATE1".

ATE1
OK

Дополнитеольные настройки

В зависимости от вашего оператора сотовой связи, следующие команды могут быть не нужны для вас. Для T-Mobile США, эти инструкции адекватны. Если ваша SIM - карта PIN - заблокирована, то вам, скорее всего придется использовать команду AT+CPIN = "<PIN #>"; также вам возможно потребуется ввести SMS - центр командой AT+CSCA.

Если вы считаете, что нужны дополнительные настройки, пожалуйста, помогите всем остальным: опишите их на этой странице.

Включение GSM - модуля

Чтобы включить GSM - модуль воспользуйтесь командой "AT+CFUN=1".

AT+CFUN=1
OK

Самое лучшее описание работы этой команды я нашел в функциях gsmd (usock.c). Согласно им, GSM - модуль можно отключать и включать командой "AT+CFUN". Перейдя по ссылке Сброс GSM - модуля вы узнаете как это сделать в командной строке.

Чтобы отключить модуль:

AT+CFUN=0
OK

Ссылка: Исходный код gsmd - usock.c Ссылка: Mobile Termination Control and Status Commands

Регистрация в сети GSM

Чтобы проверить подключение к сети воспользуйтесь командой "AT+COPS".

Вы можете получать различные ответы в зависимости от текущего состояния GSM - модуля. Результат работы команды дает представления о работе сети.

AT+COPS
OK

Чтобы узнать текущую сеть (оператора) воспользоваться командой "AT+COPS?".

AT+COPS?
+COPS: 0,0,"T - Mobile"

Ссылка: Network Service Related Commands Ссылка: Введение в AT команды (AT Commands Introduction)

Режим SMS Text

Чтобы перейти в режим SMS text воспользуйтесь командой "AT+CMGF=1". Заметим, что цель gsmd ,по-видимому, в том, чтобы использовать режим SMS PDU (protocol data unit), который лучше подходит для программирования. Вместе с тем использование режима SMS text делает отправку и получение сообщений возможным для простого человека.

AT+CMGF=1
OK

Ссылка: Operating Mode Ссылка: Select the Operating Mode

Отправление SMS

Чтобы отправить SMS сообщения воспользуйтесь командой "AT+CMGS="<Phone #>"". Появится приглашение командной строки ">". Введите текст сообщения и нажмите [Enter]. Нажатие <Ctrl-Z> - сигнал конца ввода текста. Сообщение будет отправлено адресату.

AT+CMGS="5555551212"
> HOWDY
> <Ctrl-Z>
OK

Получение SMS

Отправьте SMS на ваш Neo, воспользовавшись интернет - сервисами или другим мобильным телефоном. Чтобы получить на Neo все сообщения воспользуйтесь командой "AT+CMGL="ALL"". Вы получите что-то похожее.

AT+CMGL="ALL"
+CMGL: 1,"REC READ","907",,"07/07/30,18:21:45-20",129,156
Welcome to T-Mobile! To check your balance and refill your account, go to my.t-mobile.com or visit t-zones on your phone. Your T-Mobile number is 5555551212
+CMGL: 2,"REC READ","907",,"07/07/30,18:59:33-20",129,156
Welcome to T-Mobile! To check your balance and refill your account, go to my.t-mobile.com or visit t-zones on your phone. Your T-Mobile number is 5555551212
+CMGL: 3,"REC READ","15555551212",,"07/08/02,15:01:51-20",145,5
Hello
+CMGL: 4,"REC READ","501",,"07/08/02,15:14:43-20",129,92
tselfcare@t-mobile.com /Temporary Password /Dear Customer, Your temporary password is XXXXXX
+CMGL: 5,"REC READ","724",,"07/08/02,15:18:42-20",129,150
Your balance is 140 minutes ($28.04). You are $75 from Gold Rewards where you get 15% more minutes on subsequent refills & unused minutes last a year.
+CMGL: 6,"REC READ","724",,"07/08/02,15:18:42-20",129,145
Free MSG: $25.00 has been added to your account. Your new balance is 140 minutes and the new expiration date is 10-31-2007. Thanks for refilling!

OK

Чтобы получить непрочитанные сообщения воспользуйтесь "AT+CMGL="REC UNREAD"".

AT+CMGL="REC UNREAD"
...
OK

Чтобы получить прочитанные сообщения воспользуйтесь "AT+CMGL="REC READ"".

AT+CMGL="REC READ"
...
OK

Существуют другие команды для выборки (поиска) сообщений. Вы можете познакомиться с ними, почитав в свободное время литературу по ссылкам, приведенным в статье.

Заключение

Для выхода из cu, воспользуйтесь "~.". Заметим, что ssh также использует escape последовательность для завершения соединения, поэтому вам надо напечатать "~~." в терминале для передачи "~." на другую сторону.

Существуют, как правило, команды для удаления и сохранения сообщений. Вы можете узнать о них больше, прочитав литературу по ссылкам, приведенным в статье.

Personal tools