Jump to content

    
Firer

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

Recommended Posts

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

Несколько месяцев писал проект 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);

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

 

Share this post


Link to post
Share on other sites

Да, работает. С использованием 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.

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
4 hours ago, NovDS said:

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

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

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

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

Share this post


Link to post
Share on other sites
On 12/30/2019 at 2:10 PM, vit496 said:

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

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

Share this post


Link to post
Share on other sites
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 не работает.

Share this post


Link to post
Share on other sites
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

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

Share this post


Link to post
Share on other sites

Притом встроенным 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

 

Share this post


Link to post
Share on other sites

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

С сим-картами Билайн не получает 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"

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

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

 

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.