Перейти к содержанию
    

SIM800 LwIp 2.1.2 PPPoS с Мегафон соединяется, с Билайн нет

Коллеги по этой теме, вас мало, но я знаю что вы есть!

Несколько месяцев писал проект STM32F2 + SIM800 с библиотекой LwIp 2.1.2.

Всё это время для тестов использовал сим-карту Мегафон.

PPPoS успешно устанавливался.

И вот попробовал сим-карту Билайн, и очень удивился, что соединение не устанавливается.

На стадии установления соединения gsm_status_cb постоянно выдаёт PPPERR_USER.

Тесты в Москве провожу. Настройки APN пробовал разные, сим-карты от Билайна пробовал разные.

Ситуация повторяется. На этих же железках встроенный IP стек модема работает нормально с этими симками.

Кусок кода подключения к PPP:

    gsmst.ppp = pppapi_pppos_create(&gsmst.netif,
           gsm_output_cb, gsm_status_cb, 0);
    printf("PPP GSM=%lu\r\n", (u32)gsmst.ppp);

    /* Set this interface as default route */
    pppapi_set_default(gsmst.ppp);

    /* Ask the peer for up to 2 DNS server addresses. */
    ppp_set_usepeerdns(gsmst.ppp, 1);

    /* Auth configuration, this is pretty self-explanatory */
    ppp_set_auth(gsmst.ppp, PPPAUTHTYPE_CHAP, gsmst.pppun, gsmst.ppppw);

sprintf(gsmst.txcmd, "AT+CGDCONT=1,\"IP\",\"%s\"\r\n", apnserv);
gsm_cmd(gsmst.txcmd, GSM_STR_RESP_OK);

gsm_cmd("AT+CGQMIN=1,0,0,0,0,0\r\n", GSM_STR_RESP_OK);

gsm_cmd("AT+CGQREQ=1,2,4,3,6,31\r\n", GSM_STR_RESP_OK);

r = gsm_mcmd("ATD*99***1#\r\n", GSM_STR_RESP_CONNECT, GSM_TMOPPPCONNECT_10MS, GSM_CMDRETRYCNT);

pppapi_connect(gsmst.ppp, 0);

Есть ли какие гипотезы?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, работает. С использованием AT-команд встроенного IP-стека того же Билайн нормально подключается.

PPP работает и с Мегафон, и с МТС.

А с Билайн трабл. Не могу понять в чём причины. Типы авторизаций (PAP, CHAP) пробовал, APN менял, делал пустым.

Результат такой же:

AT+CGATT?
+CGATT: 1
OK
AT+CGDCONT=1,"IP","internet.beeline.ru"
OK
AT+CGQMIN=1,0,0,0,0,0
OK
AT+CGQREQ=1,2,4,3,6,31
OK
ATD*99***1#
CONNECT

ppp_connect[0]: holdoff=0
ppp phase changed[0]: phase=3
pppos_connect: unit 0: connecting
ppp_start[0]
ppp phase changed[0]: phase=6
pppos_send_config[0]: out_accm=FF FF FF FF
ppp_send_config[0]
pppos_recv_config[0]: in_accm=FF FF FF FF
ppp_recv_config[0]
ppp: auth protocols: PAP=0 CHAP=1 CHAP_MD5=1
sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x61d7a4e7> <pcomp> <accomp>]
pppos_write[0]: len=24
ppp_start[0]: finished
pppos_input[0]: got 38 bytes
pppos_input[0]: got 34 bytes
rcvd [LCP ConfReq id=0x1 <asyncmap 0xa0000> <auth pap> <pcomp> <accomp>]
sent [LCP ConfNak id=0x1 <auth chap MD5>]
pppos_write[0]: len=13
rcvd [LCP ConfNak id=0x3 <asyncmap 0xa0000>]
sent [LCP ConfReq id=0x4 <asyncmap 0xa0000> <magic 0x61d7a4e7> <pcomp> <accomp>]
pppos_write[0]: len=24
pppos_input[0]: got 28 bytes
pppos_input[0]: got 18 bytes
rcvd [LCP ConfReq id=0x2 <asyncmap 0xa0000> <auth chap MD5> <pcomp> <accomp>]
sent [LCP ConfAck id=0x2 <asyncmap 0xa0000> <auth chap MD5> <pcomp> <accomp>]
pppos_write[0]: len=23
pppos_input[0]: got 39 bytes
pppos_input[0]: got 6 bytes
rcvd [LCP ConfAck id=0x4 <asyncmap 0xa0000> <magic 0x61d7a4e7> <pcomp> <accomp>]
netif_set_mtu[0]: mtu=1500
pppos_send_config[0]: out_accm=0 0 A 0
ppp_send_config[0]
pppos_recv_config[0]: in_accm=0 0 A 0
ppp_recv_config[0]
ppp phase changed[0]: phase=7
pppos_input[0]: got 18 bytes
pppos_input[0]: got 9 bytes
rcvd [CHAP Challenge id=0x0 <26598088623412345678901234567890>, name = ""]
sent [CHAP Response id=0x0 <580d41db2b7ddc7150e58d5644409fa3>, name = "beeline"]
pppos_write[0]: len=32
pppos_input[0]: got 20 bytes
rcvd [CHAP Success id=0x0 ""]
CHAP authentication succeeded
CHAP authentication succeeded
ppp phase changed[0]: phase=9
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
pppos_write[0]: len=26
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>]
pppos_write[0]: len=14
pppos_input[0]: got 16 bytes
rcvd [IPCP ConfReq id=0x2 <addr 0.0.0.0>]
sent [IPCP ConfRej id=0x2 <addr 0.0.0.0>]
pppos_write[0]: len=14
pppos_input[0]: got 10 bytes
rcvd [IPCP ConfReq id=0x3]
sent [IPCP ConfAck id=0x3]
pppos_write[0]: len=8
 - Poll

pppos_input[0]: got 12 bytes
rcvd [LCP TermReq id=0x3]
LCP terminated by peer
ppp phase changed[0]: phase=6
pppos_send_config[0]: out_accm=FF FF FF FF
ppp_send_config[0]
pppos_recv_config[0]: in_accm=0 0 A 0
ppp_recv_config[0]
sent [LCP TermAck id=0x3]
pppos_write[0]: len=8
pppos_input[0]: got 10 bytes
pppos_input[0]: got 4 bytes

ppp phase changed[0]: phase=12
Connection terminated.
ppp_link_terminated[0]
ppp_link_end[0]
ppp phase changed[0]: phase=0
status_gsm: User interrupt

ppp_link_terminated[0]: finished.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте убрать команды с требованиями к сети: AT+CGQMIN и AT+CGQREQ (+вернуть значения по-умолчанию, если они сохранены в память), из за них могут возникать коллизии при подключении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, NovDS said:

Попробуйте убрать команды с требованиями к сети: AT+CGQMIN и AT+CGQREQ (+вернуть значения по-умолчанию, если они сохранены в память), из за них могут возникать коллизии при подключении.

Сначала выставил по дефолту 1,0,0,...

Потом убрал команды.

Не помогло. В чём-то ещё причина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы задаете логин-пароль beeline-beeline ? Вроде только в этом разница. у остальных операторов эти поля пустые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/30/2019 at 2:10 PM, vit496 said:

А вы задаете логин-пароль beeline-beeline ? Вроде только в этом разница. у остальных операторов эти поля пустые.

Да, логин-пароль задаётся он уже в самом соединении CHAP пробрасывается. Не AT-командами. Его похоже давно никто не контролирует из операторов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/29/2019 at 5:56 PM, Firer said:

AT+CGATT? +CGATT: 1 OK AT+CGDCONT=1,"IP","internet.beeline.ru" OK AT+CGQMIN=1,0,0,0,0,0 OK AT+CGQREQ=1,2,4,3,6,31 OK ATD*99***1# CONNECT

Попробуйте перед настройкой PDP отключиться от сети (только от Pocket Domain Service) и подключиться заново. Будет примерно следующая последовательность (команды по памяти написал, поэтому лучше проверить их):

// я так понимаю модем у вас автоматически подключается 
// предлагаю в этот момент отключиться

AT+CGATT=0
OK
  
// настроить PDP Context

AT+CGCONT=1,"IP","internet.beeline.ru"
OK
  
// подключиться заного

AT+CGATT=1
OK

AT+CGATT?
+CGATT:1
  
// и вручную активировать контекст
  
AT+CGACT=1,1
OK
  
AT+CGACT?
+CGACT:1
  
// и посмотреть выделен ли вам IP адрес
  
AT+CGPADDR=1
+CGPADDR: 1,”30.38.217.74 // возможный варинат ответа  
  
ATD**99***1#
CONNECT

Если у вас команда AT+CGPADDR покажет нормальный IP адрес, а LWIP все еще будет выдавать PPPERR_USER, то попробуйте сократить последовательность команд до следующей

AT+CGATT=0
OK

AT+CGCONT=1,"IP","internet.beeline.ru"
OK

ATD**99***1#
CONNECT

 Ну и вот здесь можете еще пример подключения посмотреть - ссылка на m2msupport.net

19 hours ago, Firer said:

Да, логин-пароль задаётся он уже в самом соединении CHAP пробрасывается. Не AT-командами. Его похоже давно никто не контролирует из операторов.

Все еще контролируют, но далеко не всегда. У наших клиентов в РФ обычно логин-пароль - пустые, а вот в ЕС - чаще всего установлен и без корректных настроек логин-пароль GPRS не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/1/2020 at 12:48 PM, Grigorij said:

Попробуйте перед настройкой PDP отключиться от сети (только от Pocket Domain Service) и подключиться заново. Будет примерно следующая последовательность (команды по памяти написал, поэтому лучше проверить их):


// я так понимаю модем у вас автоматически подключается 
// предлагаю в этот момент отключиться

AT+CGATT=0
OK
  
// настроить PDP Context

AT+CGCONT=1,"IP","internet.beeline.ru"
OK
  
// подключиться заного

AT+CGATT=1
OK

AT+CGATT?
+CGATT:1
  
// и вручную активировать контекст
  
AT+CGACT=1,1
OK
  
AT+CGACT?
+CGACT:1
  
// и посмотреть выделен ли вам IP адрес
  
AT+CGPADDR=1
+CGPADDR: 1,”30.38.217.74 // возможный варинат ответа  
  
ATD**99***1#
CONNECT

Если у вас команда AT+CGPADDR покажет нормальный IP адрес, а LWIP все еще будет выдавать PPPERR_USER, то попробуйте сократить последовательность команд до следующей


AT+CGATT=0
OK

AT+CGCONT=1,"IP","internet.beeline.ru"
OK

ATD**99***1#
CONNECT

 Ну и вот здесь можете еще пример подключения посмотреть - ссылка на m2msupport.net

Все еще контролируют, но далеко не всегда. У наших клиентов в РФ обычно логин-пароль - пустые, а вот в ЕС - чаще всего установлен и без корректных настроек логин-пароль GPRS не работает.

Для сим-карт Билайн на команды AT+CGACT=1,1 и даже на +CGACT=0,1 выдает ERROR. Когда запрашиваю AT+CEER отвечает No cause.

Естественно, IP-адрес не выделяется.

Деньги на симках есть. APN задаётся internet.beeline.ru

Все остальные симки заводятся по вашей последовательности нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Притом встроенным IP-стеком эта карта нормально юзается!:

AT+CIPCSGP=1,"internet.beeline.ru","beeline","beeline"

OK
AT+EMAILCID=1

OK
AT+EMAILTO=60

OK
AT+SAPBR=3,1,"CONTYPE","GPRS"

OK
AT+SAPBR=3,1,"APN","internet.beeline.ru"

OK
AT+SAPBR=3,1,"USER","beeline"

OK
AT+SAPBR=3,1,"PWD","beeline"

OK

AT

OK
AT+CREG?

+CREG: 0,1

OK
AT+CGATT?

+CGATT: 1

OK
AT+SAPBR=2,1

+SAPBR: 1,3,"0.0.0.0"

OK
AT+SAPBR=1,1

OK
AT+CSQ

+CSQ: 12,0

OK
AT+CMGR=1

OK
AT+CGATT=1

OK
AT+CSTT="internet.beeline.ru","beeline","beeline"

OK
AT+CIICR

OK
AT+CIFSR

10.87.186.100
AT+CIPSTART="TCP","...","..."

OK

CONNECT OK

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Итак, вопрос свёлся к следующему.

С сим-картами Билайн не получает IP-адрес через обычные команды +CGATT.
Со всеми другими симками ок.
Соединение через +SAPBR выдается и IP и соединяется.
В чём причина? Паузы между командами секунд по 20, ожидание адреса гораздо дольше. Не выдаётся! Хотя CGATT=1 отработал!
Разные платы с SIM800 пробовал. S2-105MB-Z160H
 
AT+CGATT?
+CGATT: 1

OK
AT+CIPSHUT
SHUT OK

AT+CGDCONT=1,"IP","internet.beeline.ru"
OK

AT+CSTT="internet.beeline.ru","beeline","beeline"
OK

AT+CIPSTATUS
OK
STATE: IP START

AT+CGPADDR=1
+CGPADDR: 1,"0.0.0.0"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня вообще не получается поднять PPP соединение - даже на Мегафоне (SIM800L). AT+CGDCONT=1,"IP","internet" просто выдает ошибку. При этом +SAPBR работает отлично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! не могли бы вы поделиться проектом , у меня сейчас задача поднять MQTT в связке с STM32 и SIM800 , на самом низком уровне я разобрался как все отправлять, с помощью библиотеки pahoMQTTPacket я формирую TCP пакеты и отправляю их ручками. 
А как на высоком уровне настроить взаимодействие lwIP и SIM800 я пока не врубаюсь. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 lwIP...  Должно работать, но....

У нас один из операторов категорически больше не воспринимает PPP соединения.

Возможно стоит уточнить у оператора доступно ли такое соединение. 

Если нет, тогда только через апнотес с высоким уровнем.

Для начала я бы проверил это терминалом без процессора и уже потом было бы понятно с какой стороны проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! Подскажите пожалуйста куда копать , использую сим карту МТС и на команду 
ATD**99***1
мне приходит NO CARRIER 

Профиль настроил правильно, плюс повторил действия из данного поста :

 

только данные MTS указывал

On 8/11/2020 at 9:38 PM, CADiLO said:

У нас один из операторов категорически больше не воспринимает PPP соединения.

 

 

Может моя проблема связана с этим ?
Проверял через терминал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...