Настройка GPRS-модема для двух операторов
Если вам часто приходится работать через GPRS-соединение с разными операторами, но с одним телефоном, то вероятно вам уже надоело менять каждый раз в настройках модема строку инициализации AT+CGDCONT. Казалось бы, можно как с обычными провайдерами - набирать разные номера и всё, но для GPRS так не получается (строчка инициализации каждому оператору нужна своя). Попробуем сегодня избавиться от этой проблемы. Раз и навсегда. Итак, начнём изучать AT-команды GPRS. Рассмотрим некоторые аргументы команды AT+CGDCONT=,,: * 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: * GPRS_SC - это константа, всегда равная 99 (для идентификации принадлежности строчки к GPRS, а не обычной телефонии);
* cid - уже знакомый нам идентификатор профиля.
Таким образом, команда набора номера *99***1# в действительности устанавливает соединение по первому профилю настроек. Также отмечу, что профиль 1 используется по умолчанию, и в некоторых инструкциях может быть предложена более короткая команда набора *99# - это полный аналог *99***1#.
Отсюда возникает логичный вывод, что надо просто зарегистрировать несколько профилей3 и уже для набора номера GPRS создать различные соединения с разным значением в строчке номера. Итак, в свойствах 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-команды у телефонов соединяются между собой в строке не напрямую, а через символ ";".