Звоним на него, с него пытаемся отправить SMS:

CODE

AT
OK

RING

+CLIP: "+79111234567",145,"",,"",0
ATA
OK
AT+CMGS=52
> 0011000B919711825199F80009A92604120430043B04350442000A00310033002E00320056002C00
20002B003200300043000A000A
+CMS ERROR: 515
AT+CCLK?
+CCLK: "00/01/01,00:43:03+00"

OK
AT+CMGS=52
> 0011000B919711825199F80009A92604120430043B04350442000A00310033002E00320056002C00
20002B003200300043000A000A
+CMS ERROR: 515
AT+CCLK?
+CCLK: "00/01/01,00:45:35+00"

OK
ATH
OK


Задержка 2.5 минуты! Если пока он (безуспешно) пытается отправить положить трубку на аппарате, с которого звоним -- видно NO CARRIER. Но дальше ждёт, ни на что не реагирует, те же две минуты до выдачи +CMS ERROR: 515

Тот же процесс отправки без звонка занимает ~15 секунд. С той же ошибкой.

Да, на счёте SIM-карты кончились деньги. С деньгами всё работает быстро. Секунд за 5. Что при звонке, что без звонка. Я не знаю почему...

Собственно вопросы (которые следовало бы адресовать китайским разработчикам...):

1. когда прекратится эта вакханалия с неожиданными ответами модема, когда в ответ на какую-либо команду можно получить "непредусмотренный" ответ совершенно не относящийся к выполняемой команде, но нарушающий весь протокол обмена? ITU-T V.250 в разделе 5.7.1 указывает, что есть три типа ответов, оконечные, промежуточные и непредусмотренные и любая команда заканчивается одним из 7-и оконечных ответов приведённых в таблице 1 раздела 5.7. А как понимать, если эти оконечные ответы начинают самопроизвольно возникать в ходе выполнения команд? Однозначная интерпретация ответов модема попросту невозможна (работает, но плохо, трюк с подачей AT после таких "неожиданных" ответов). Речь, собственно, о сообщени "NO CARRIER" возникающем когда попало (при входящих звонках, например, если на удалённой стороне завершили звонок, а модем занят обработкой какой-либо команды способной тоже выдать NO CARRIER -- как это воспринимать?)

2. Выдача некоторых "непредусмотренных" (unsolicited в анлийской документации) ответов вызывает пропажу ответа на некоторые команды. Так, например, стабильно пропадает ответ "OK" на команду "AT+CCLK?" если в этот момент приходит сообщение "+CPIN: xxxx". Всё аналогично п.1.

3. Не работает функция отмены команды (ITU-T V.250 раздел 5.6.1).

4. И самое главное -- совершенно непонятно что делать с 2.5-минутной задумчивостью в такой ситуации. С точки зрения потребителя "прибор завис".

Частичным (невозможно же на каждую "подвисающую" команду отдельный канал завести) выходом из ситуации могло бы быть использование GSM serial port multiplexer, но при переходе с SIM300 это невозможно...