Метод обнаружения аутентификации APN

Я работаю над проектом с участием GPRS. В частности, я использую чип GPRS/GSM u-blox Lisa-U200. Я столкнулся с проблемой контекста PDP, когда начал тестировать его на разных носителях. И, проведя несколько дней в Google, я, похоже, нигде не нашел ответа.

Почему некоторые телефоны / устройства требуют аутентификации APN (PAP/CHAP/None), а некоторые нет? Или как я назвал вопрос - как мобильные устройства (смартфоны) автоматически обнаруживают метод аутентификации APN? Или они вообще?

Я тестирую это так - Linux box, запускает pppd со скриптом чата. Скрипт чата определяет контекст (AT+CGDCONT=1,"IP" и т. Д.) И запускает соединение.

Симптомы - если я не указываю метод аутентификации в контексте PDP явно, он даже не активируется (или согласование LCP завершается неудачно в ppp). Из того, что я понимаю о сетях GPRS, это имеет смысл - я полагаю, потому что узел шлюза отказывается от контекста, если он не указывает, что будет следовать аутентификация.

Протестировано с небольшим количеством операторов, и вот самое странное - некоторые из протестированных мною операторов работают ТОЛЬКО, если я установлю PAP или CHAP (и предоставлю правильное имя пользователя и пароль). А некоторые работают все, что я укажу (NOAUTH, неправильный пользователь / пароль и т. Д.).

Идеи, которые я выдвинул, таковы:

1) Предоставьте пользователю возможность выбрать тип аутентификации. (Не тот подход, который мне нравится, потому что я предпочитаю, чтобы пользователь вводил как можно меньше.)

2) Если пользователь установил имя пользователя / пароль для APN - установите метод auth на CHAP (я заметил, что большинство операторов поддерживают как CHAP, так и PAP). Если нет - используйте None как метод. (Звучит разумно?)

3) Brute force - установить в CHAP, активировать - следить за ошибкой; если не удалось - установите PAP и активируйте, и т.д... (не могу сказать, что я слишком рад этому)

Прошу прощения, если я отвечу на очень тупой и распространенный вопрос с хорошо известным ответом в мобильной индустрии, или если я совершенно не в курсе своей логики, но я разработчик программного обеспечения, и это просто не имеет для меня никакого смысла:)

Спасибо всем, кто поделится опытом и знаниями по теме!

0 ответов

Другие вопросы по тегам