Цитата(david_off @ Oct 21 2008, 23:12)

//теперь сессия готова к использования, что бы попробывать поднять её ещё раз, надо деативировать
//контекст, что приведёт модуль в начальное состояние. Для этого используем команду +CIPSHUT
AT+CIPSHUT
>>SHUT OK
если сейчас, после сообщения "SHUT OK", не сделать паузу хотя бы 1 сек, то в 90% будет вот что
AT+CSTT="WWW.UMC.UA","MTS","MTS"
--OK
AT+CIICR
+PDP: DEACT <- Какого !(,!,:? вылазит это сообщение? Ведь вроде получили, что "SHUT OK", Видно модуль хоть и выдал сообщение, но деактивация контекста не была произведена.
Я с этими всеми командами тоже долго боролся и изучал их, пока писал оптимальную (на мой взгляд

) процедуру обработки ошибок и сбоев. Кое чего понял.
Так вот, то что вы считаете следствием команды AT+CIICR, а именно ответ +PDP: DEACT, на самом деле является второй частью ответа на вашу первую команду AT+CIPSHUT.
Нужно понимать одну вещь (я её тоже не сразу понял): есть модем со своим стеком команд (не совсем прямым

) и есть GSM сеть. А команда AT+CIPSHUT - есть управляющая команда как для модема, так и для GSM сети. Так что, не на 90%, как вы пишите, а на все 100% должно быть следующее:
Ваш PDP контекст активирован, вы подаете команду:
AT+CIPSHUT
Модем сбрасывает свой стек в начальное состояние, посылает команду в GSM сеть и отвечает:
>>SHUT OK
GSM сеть деактивирует ваш PDP контекст и присылает подтверждение, которое модем транслирует вам:
+PDP: DEACT (тут может быть и другой текст, в зависимости от возможных ошибок).
Между первым и вторым ответом может проити достаточное время, и если вы в эту паузу начнете управлять модемом, то результаты могут быть мало предсказуемыми
Я после AT+CIPSHUT просто тупо жду 5-10 сек без анализа ответов.
Но вполне могут быть случаи, когда деактивация контекста сетью будет происходить гораздо дольше.
Мне еще предстоит на это нарваться...