Итак, проделана работа: сделана и смонтирована антенна 3G. Однако к ожидаемым результатам это не привело. По прежнему периодически видеонаблюдение отваливается. Рассмотрим сиптоматику.
Когда я начал разбираться с проблемой детально, формализовал ее следующим образом.
Когда роутер (Edimax 3G-6200n) включается, камера не работает (нет соединения с Мегафоном).
Когда я захожу с компьютера или хотя бы совершаю подключение к роутеру по Wi-Fi, камера начинает работать.
Когда я подключаюсь к роутеру через Wi-Fi своим iPhone, камера не работает.
Поэтому пользование камерой было такое. Приезжаю на объект с компьютером. Система оживает, соединение с Мегафоном устанавливается. Потом я могу еще 4-5 часов смотреть через 3G видео, затем Мегафон принудительно рвет соединение и оно не восстанавливается (см. п. 1). Иногда (непонятно от чего зависит) система оживала сама по себе, и еще 4-5 часов я мог смотреть за объектом.
Абсолютно непонятно было, почему именно подключение к Wi-Fi только компьютера являлось тем толкачом, который заводил систему. Чем отличается iPhone с точки зрения этой процедуры, я не понимаю.
Если рассматривать логи, то в них видно, что когда я не подключаюсь к Wi-Fi с помощью компьютера, постоянно идет вот такое.
Jan 1 00:09:10 (none) local2.notice pppd[2931]: pppd 2.4.4 started by root, uid 0
Jan 1 00:08:11 (none) local2.notice pppd[2785]: local IP address 10.64.64.68
Jan 1 00:08:11 (none) local2.notice pppd[2785]: remote IP address 10.112.112.116
Jan 1 00:08:56 (none) local2.info pppd[2785]: Terminating on signal 15
Jan 1 00:08:57 (none) local2.info pppd[2785]: Exit.
Jan 1 00:09:03 (none) local2.notice pppd[2931]: pppd 2.4.4 started by root, uid 0
Jan 1 00:09:03 (none) local2.info pppd[2931]: Using interface ppp4
Jan 1 00:09:03 (none) local2.notice pppd[2931]: local IP address 10.64.64.68
Jan 1 00:09:03 (none) local2.notice pppd[2931]: remote IP address 10.112.112.116
Jan 1 00:09:48 (none) local2.info pppd[2931]: Terminating on signal 15
Jan 1 00:09:49 (none) local2.info pppd[2931]: Exit.
Если же соединиться с помощью компьютера, все сразу становится вот так.
Jan 1 00:09:55 (none) local2.notice pppd[3077]: pppd 2.4.4 started by root, uid 0
Jan 1 00:09:55 (none) local2.info pppd[3077]: Using interface ppp4
Jan 1 00:09:55 (none) local2.notice pppd[3077]: local IP address 10.64.64.68
Jan 1 00:09:55 (none) local2.notice pppd[3077]: remote IP address 10.112.112.116
Jan 1 01:38:44 (none) local2.info pppd[3077]: Starting link
Jan 1 01:38:45 (none) local2.info chat[16062]: abort on (BUSY)
Jan 1 01:38:45 (none) local2.info chat[16062]: abort on (NO CARRIER)
Jan 1 01:38:45 (none) local2.info chat[16062]: abort on (ERROR)
Jan 1 01:38:45 (none) local2.info chat[16062]: report (CONNECT)
Jan 1 01:38:45 (none) local2.info chat[16062]: timeout set to 10 seconds
Jan 1 01:38:45 (none) local2.info chat[16062]: send (ATZ^M)
Jan 1 01:38:45 (none) local2.info chat[16062]: expect (OK)
Jan 1 01:38:45 (none) local2.info chat[16062]: ATZ^M^M
Jan 1 01:38:45 (none) local2.info chat[16062]: OK
Jan 1 01:38:45 (none) local2.info chat[16062]: — got it
Jan 1 01:38:45 (none) local2.info chat[16062]: send (ATE0V1&F^M)
Jan 1 01:38:45 (none) local2.info chat[16062]: expect (OK)
Jan 1 01:38:45 (none) local2.info chat[16062]: ^M
Jan 1 01:38:45 (none) local2.info chat[16062]: ATE0V1&F^M^M
Jan 1 01:38:45 (none) local2.info chat[16062]: OK
Jan 1 01:38:45 (none) local2.info chat[16062]: — got it
Jan 1 01:38:45 (none) local2.info chat[16062]: send (AT+CGDCONT=1,"IP","public.msk","",0,0^M)
Jan 1 01:38:46 (none) local2.info chat[16062]: timeout set to 30 seconds
Jan 1 01:38:46 (none) local2.info chat[16062]: expect (OK)
Jan 1 01:38:46 (none) local2.info chat[16062]: ^M
Jan 1 01:38:46 (none) local2.info chat[16062]: ^M
Jan 1 01:38:46 (none) local2.info chat[16062]: OK
Jan 1 01:38:46 (none) local2.info chat[16062]: — got it
Jan 1 01:38:46 (none) local2.info chat[16062]: send (ATD*99***1#^M)
Jan 1 01:38:46 (none) local2.info chat[16062]: expect (CONNECT)
Jan 1 01:38:46 (none) local2.info chat[16062]: ^M
Jan 1 01:38:46 (none) local2.info chat[16062]: ^M
Jan 1 01:38:46 (none) local2.info chat[16062]: CONNECT
Jan 1 01:38:46 (none) local2.info chat[16062]: — got it
Jan 1 01:38:46 (none) local2.info chat[16062]: send ( ^M)
Jan 1 01:38:46 (none) local2.info pppd[3077]: Serial connection established.
Jan 1 01:38:46 (none) local2.debug pppd[3077]: using channel 1
Jan 1 01:38:46 (none) local2.notice pppd[3077]: Connect: ppp4 <--> /dev/ttyUSB0
Jan 1 01:38:49 (none) local2.debug pppd[3077]: sent [LCP ConfReq id=0x1 <mru 1412> <asyncmap 0x0> <magic 0xfaf03f6f> <pcomp> <accomp>]
Jan 1 01:38:49 (none) local2.debug pppd[3077]: rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0x13d27e7> <pcomp> <accomp>]
Jan 1 01:38:49 (none) local2.debug pppd[3077]: lcp_reqci: returning CONFACK.
Jan 1 01:38:49 (none) local2.debug pppd[3077]: sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0x13d27e7> <pcomp> <accomp>]
Jan 1 01:38:52 (none) local2.debug pppd[3077]: ipcp: up
Jan 1 01:38:52 (none) local2.warn pppd[3077]: Local IP address changed to 193.201.230.223 Jan 1 01:38:52 (none) local2.debug pppd[3077]: sent [IP data] 45 00 00 39 87 63 00 00 ...
Jan 1 01:38:52 (none) local2.debug pppd[3077]: Script /etc/ppp/ip-up started (pid 16090)
Sep 18 20:20:03 (none) daemon.notice miniupnpd[16457]: HTTP listening on port 5000
Sep 18 20:20:08 (none) user.notice /bin/ez-ipupdate[16564]: /bin/ez-ipupdate started for interface ppp4 host stan-1.dyndns-ip.com using server members.dyndns.org and service dyndns
Sep 18 20:20:09 (none) local2.info pppd[3077]: System time change detected.
В Интернете относительно ошибки «Termination on signal 15» мнения самые противоречивые. Я долго думал, что он означает отсутствие ответа модема вследствие слабого сигнала. Чуть позже я понял, что тогда бы модем работал, просто отвечал бы «NO CARRIER» на попытку установить соединение. Также я отбросил еще несколько версий, и в результате остановился на единственной: ошибка является следствием таймаута при попытке запустить скрипт ip-up. Это понимание уже позволило локализовать проблему. Она – в роутере, а не модеме 3G или USB-порте.
Тогда я начал ковыряться в настройках WAN, LAN, Wireless и пр. В какой-то момент дошел до закладки «MAC address filtering». У меня была включена фильтрация по MAC-адресам, и в качестве устройств записан как раз компьютер и iPhone. Настройки секьюрити – абсолютно одинаковы. После отключения функции фильтрации по MAC-адресам все заработало нормально. В чем причина – для меня осталось непонятным. Вероятно, какой-то глюк или несовместимость клиентов Wi-Fi и PPP.
Правда, вслед за этим произошла другая неприятная история, связанная… конечно, опять с Мегафоном. Но об этом завтра.