Настройка GPRS-модема для двух операторов
АрхивProDigiПри работе через GPRS-соединение с разными операторами, но с одним телефоном приходится постоянно менять строку инициализации модема. Давайте избавимся от этой проблемы.
Если вам часто приходится работать через GPRS-соединение с разными операторами, но с одним телефоном, то вероятно вам уже надоело менять каждый раз в настройках модема строку инициализации AT+CGDCONT. Казалось бы, можно как с обычными провайдерами - набирать разные номера и всё, но для GPRS так не получается (строчка инициализации каждому оператору нужна своя). Попробуем сегодня избавиться от этой проблемы. Раз и навсегда.
Итак, начнём изучать AT-команды GPRS1. Рассмотрим2 некоторые аргументы команды AT+CGDCONT=<cid>,<PDP_type>,<APN>:
- cid (Context identifier) - это номер создаваемого профиля настроек;
- PDP_type (Packet data protocol type) - тип соединения (обычно "IP");
- APN (Access point name) - адрес точки доступа (например, "internet.mts.ru").
Таким образом, строчка вида AT+CGDCONT=1,"IP","internet.mts.ru" регистрирует соответствующие настройки в профиле с номером 1.
Что же происходит потом? Для установки связи используется команда набора номера *99***1#. Рассмотрим описание команды набора ATD*<GPRS_SC>***<cid># в режиме GPRS:
- GPRS_SC - это константа, всегда равная 99 (для идентификации принадлежности строчки к GPRS, а не обычной телефонии);
- cid - уже знакомый нам идентификатор профиля.
Таким образом, команда набора номера *99***1# в действительности устанавливает соединение по первому профилю настроек. Также отмечу, что профиль 1 используется по умолчанию, и в некоторых инструкциях может быть предложена более короткая команда набора *99# - это полный аналог *99***1#.
Отсюда возникает логичный вывод, что надо просто зарегистрировать несколько профилей3 и уже для набора номера GPRS создать различные соединения с разным значением <cid> в строчке номера.
Итак, в свойствах GPRS-модема, в дополнительной строке инициализации надо указать такую команду (поправив, разумеется, значения APN под своих операторов)4:
AT+CGDCONT=1,"IP","internet.mts.ru";+CGDCONT=2,"IP","internet.beeline.ru"
А потом, создать два соединения и одному указать номер набора *99***1#, а другому *99***2#. Вот и всё.
1. Подробные описания по AT-командам для GSM-телефонов можно найти на сайте European Telecommunications Standards Institute [вернуться].
2. Мы, по понятным причинам, приводим неполное описание (в действительности аргументов у этих команд может быть больше). [вернуться]
3. Многие телефоны имеют только два профиля (1 и 2). Узнать сколько их у конкретной модели можно в терминальной программе, напечатав команду AT+CGDCONT=?. Первый диапазон выданных аргументов для режима "IP" укажет на количество профилей. Например, в ответе "+CGDCONT: (1-2),"IP",,,(0),(0)" указано, что телефон поддерживает два профиля. [вернуться]
4. Для тех, кто уже был знаком с системой AT-команд простых модемов, замечу тот факт, что расширенные AT-команды у телефонов соединяются между собой в строке не напрямую, а через символ ";". [вернуться]