Не проходит голосовой вызов модема

Здравствуйте!
Я использую GPRS по вызову. Модем TELEOFIS WRX700-R4.
Данному модему чтобы выйти в сеть по GPRS требуется голосовой вызов. Я настроил точку учета
2016-05-18_11-20-25.png
и голосовой вызов осуществляется, но модем по GPRS не выходит.
При этом сам модем регистрирует входящий звонок, но как будто не успевает на него среагировать.
Звонок с ЛЭРС

DEBUG: WRX700: 09:16:59 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=OFF (ON REQUEST)
DEBUG: WRX700: 09:17:00 CLOSE_CSD NAME=7 +79246523319
DEBUG: WRX700: 09:17:04 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=OFF (ON REQUEST)
DEBUG: WRX700: 09:17:04 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=OFF (ON REQUEST)
DEBUG: WRX700: 09:17:04 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=OFF (ON REQUEST)Для проверки, я взял симку из диспетчерского модема, вставил в телефон и также набрал нужный номер.
Один гудок, затем сброс звонка.
В журнале модем принял звонок, сбросил и подключился по GPRS.
DEBUG: WRX700: 09:31:37 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=OFF (ON REQUEST)
DEBUG: WRX700: 09:31:41 INCOMING CALL: +79246523319
DEBUG: WRX700: 09:31:41 START SESSION
DEBUG: WRX700: 09:31:41 CLOSE_CSD NAME=7 +79246523319
DEBUG: WRX700: 09:31:42 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=OFF (ON REQUEST)
DEBUG: WRX700: 09:31:46 START GPRS CONNECTION
DEBUG: WRX700: 09:31:47 OPEN GPRS SESSION 1 OF 15 IP=100.81.230.118
DEBUG: WRX700: 09:31:47 TRY CONNECT TO 90.188.42.228:50002
DEBUG: WRX700: 09:31:47 START NTP CONNECTING
DEBUG: WRX700: 09:31:47 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=ON SOCKET=0
DEBUG: WRX700: 09:31:49 NTP CONNECT
DEBUG: WRX700: 09:31:51 OPEN_SOCKET NAME=6 IP=89.109.251.21,123
DEBUG: WRX700: 09:31:51 CLOSE SOCKET NAME=6 IP= REASON=TIMEOUT
DEBUG: WRX700: 09:31:51 START NTP CONNECTING…Вопрос: как мне настроить ЛЭРС УЧЕТ чтобы голосовые звонки с диспетчерского модема успешно запускали GPRS подключение?

Какой диспетчерский модем вы используете?

TELEOFIS RX100-R4

Попробуйте настроить диспетчерский модем.

Модем настроил, но звонок по прежнему не проходит.

Приложите журнал модема после настроек диспетчерского модема.

Сделайте ещё следующее.

  1. В системных параметрах на закладке “Протоколирование” включите флажок “Протоколировать отладочные сообщения”.
  2. Запустите опрос, чтобы был осуществлён вызов.
  3. Отключите отладочные сообщения.
  4. Отправьте нам журнал сервера за сегодняшний день.

Посмотрим что именно нам отвечает вызывающий модем.

Журнал модема не изменился:
DEBUG: WRX700: 09:16:59 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=OFF (ON REQUEST)
DEBUG: WRX700: 09:17:00 CLOSE_CSD NAME=7 +79246523319
DEBUG: WRX700: 09:17:04 STATE GSM=ON SIM=SIM1 OPERATOR=MegaFon GPRS=OFF (ON REQUEST)А журнал прилагаю
Время опроса 11.52
server.2016-05-24.log (291 KB)

Вот лог обмена с вашим вызывающим модемом:

2016-05-24 11:52:17.178	D:6360	GSM-модему отправлена команда: ATD+79243921494;  	Lers.Poll.GsmCaller
2016-05-24 11:52:22.111	D:6360	Ответ GSM-модема:   OK  	Lers.Poll.GsmCaller
2016-05-24 11:52:22.111	D:6360	Прекращаем набор номера	Lers.Poll.GsmCaller
2016-05-24 11:52:22.113	D:6360	GSM-модему отправлена команда: ATH  	Lers.Poll.GsmCaller
2016-05-24 11:52:22.419	D:6360	Ответ GSM-модема:   OK  	Lers.Poll.GsmCaller

Вызов со стороны сервера был осуществлён и модем ответил, что он прошёл успешно. После этого ЛЭРС УЧЁТ кладёт трубку.

Почему WRX700 не вышел на связь стоит узнать в поддержке TELEOFIS. Вы можете сделать это самостоятельно, или мы можем спросить сами.

Для этого, пожалуйста, повторите действия из предыдущего моего поста, чтобы мы получили журнал вызова модема. И приложите журнал самого модема за это же самое время, чтобы мы могли сопоставить даты когда вызов был отправлен и когда он был зафиксирован модемом.

У вас сейчас вызов был в 11:52, а отладочная информация от модема получена в 9:17.

Для эксперимента я вручную через команду ATD<…>; позвонил на модем. Звонок прошел успешно и модем вышел на связь.
В тех.поддержку TELEOFIS я обращался, но они ответили, что у них все работает правильно, поэтому лучше написать Вам.

Журналы прилагаю.
Дозвонился, почему-то, со второго раза (в журнале 2 звонка: в 8:44 и в 8:46, последний отразился в журнале модема).
Скриншот ЛЭРС УЧЕТ.png
Журнал модема.txt (11.2 KB)
server.2016-05-25.log (83.9 KB)

В журналах заметно отличие. Если вы вызываете по телефону, WRX700 протоколирует строки:
DEBUG: WRX700: 09:31:41 INCOMING CALL: +79246523319
DEBUG: WRX700: 09:31:41 START SESSION

Если вызывает ЛЭРС УЧЁТ, видим только это:
DEBUG: WRX700: 08:46:51 CLOSE_CSD NAME=7 +79246523319

Не совсем понятно почему во втором случае WRX700 протоколирует другую информацию и не выходит на связь. Мы обратимся в поддержку телеофиса и попробуем разобраться в чём причина.

По логу от WRX видно, что в одном случае идет голосовое сообщение и оно проходит. А в другом идет дозвон CSD DATA, поэтому мы и не подключаемся после этого вызова. Проверьте точно ли ставится точка с запятой после номера в AT команде, при дозвоне с сервера.

Мне тоже кажется, что дозвон с программы идет как-то не так, потому что если управлять модемом через HyperTerminal и прописать ATD+79243921494; то WRX отвечает корректно.

В этом сообщении я привёл журнал работы сервера ЛЭРС УЧЁТ с модемом.

После команды ATD+<номер телефона> стоит точка с запятой. Следовательно, модем обязан осуществить голосовой вызов. Почему же выполняется вызов CSD?

Можно ли посмотреть через монитор COM порта все команды настройки, которые вы передаете на RX100 (именно через монитор порта)?

Вот такая картина:
<20160526161259.754 SYS>
COM открыт
<20160526161259.754 SYS>
Скорость передачи 9600
<20160526161259.754 SYS>
RTS выключен
<20160526161259.754 SYS>
DTR выключен
<20160526161259.754 SYS>
Биты данных=8, Стоповые биты=1, Четность=None
<20160526161259.754 SYS>
Служ. символы: Eof=0x1A, Error=0x00, Break=0x00, Event=0x1A, Xon=0x11, Xoff=0x13
<20160526161259.754 SYS>
Контроль передачи: ControlHandShake=(), Замена=(), Лимит Xon=128, Лимит Xoff=128
<20160526161259.754 SYS>
Скорость передачи 9600
<20160526161259.754 SYS>
RTS выключен
<20160526161259.769 SYS>
DTR выключен
<20160526161259.769 SYS>
Биты данных=8, Стоповые биты=1, Четность=None
<20160526161259.769 SYS>
Служ. символы: Eof=0x1A, Error=0x00, Break=0x00, Event=0x1A, Xon=0x11, Xoff=0x13
<20160526161259.769 SYS>
Контроль передачи: ControlHandShake=(), Замена=(), Лимит Xon=128, Лимит Xoff=128
<20160526161259.769 SYS>
DTR выключен
<20160526161259.769 SYS>
Таймауты: ReadInterval=-1, ReadTotalTimeoutMultiplier=-1, ReadTotalTimeoutConstant=-2, WriteTotalTimeoutMultiplier=0, WriteTotalTimeoutConstant=0
<20160526161259.769 SYS>
Размер вх./исх. очереди 4096/2048
<20160526161259.769 SYS>
Очистка порта: RXABORT, RXCLEAR
<20160526161259.769 TX>
ATQ0 [len=4]
<20160526161259.769 TX>

<20160526161259.848 RX>
[len=0]
<20160526161259.848 RX>
OK [len=3]
<20160526161259.848 RX>

<20160526161259.926 SYS>
Скорость передачи 9600
<20160526161259.926 SYS>
RTS выключен
<20160526161259.926 SYS>
DTR включен
<20160526161259.926 SYS>
Биты данных=8, Стоповые биты=1, Четность=None
<20160526161259.926 SYS>
Служ. символы: Eof=0x1A, Error=0x00, Break=0x00, Event=0x1A, Xon=0x11, Xoff=0x13
<20160526161259.926 SYS>
Контроль передачи: ControlHandShake=(DTR_CONTROL), Замена=(), Лимит Xon=128, Лимит Xoff=128
<20160526161259.926 SYS>
DTR включен
<20160526161259.926 SYS>
Очистка порта: RXABORT, RXCLEAR
<20160526161259.926 TX>
ATD+79243921494; [len=16]
<20160526161259.926 TX>

<20160526161304.613 SYS>
Очистка порта: RXABORT, RXCLEAR
<20160526161304.551 RX>
[len=0]
<20160526161304.551 RX>
OK [len=3]
<20160526161304.551 RX>

<20160526161304.613 TX>
ATH [len=4]
<20160526161304.613 TX>

<20160526161304.988 SYS>
Скорость передачи 9600
<20160526161304.926 RX>
[len=0]
<20160526161304.926 RX>
OK [len=3]
<20160526161304.926 RX>

<20160526161304.988 SYS>
RTS выключен
<20160526161304.988 SYS>
DTR выключен
<20160526161304.988 SYS>
Биты данных=8, Стоповые биты=1, Четность=None
<20160526161304.988 SYS>
Служ. символы: Eof=0x1A, Error=0x00, Break=0x00, Event=0x1A, Xon=0x11, Xoff=0x13
<20160526161304.988 SYS>
Контроль передачи: ControlHandShake=(), Замена=(), Лимит Xon=128, Лимит Xoff=128
<20160526161304.988 SYS>
DTR выключен
<20160526161304.988 SYS>
DTR выключен
<20160526161304.988 SYS>
Очистка порта: RXABORT, RXCLEAR
<20160526161304.988 SYS>
Очистка порта: TXABORT, TXCLEAR
<20160526161304.988 SYS>
COM закрыт

И что делать?

WRX не принимает звонок по следующей причине:

ЛЭРС подает команду ATD<номер>; после этого ждет ответа ОК и сразу же подает команду ATH.
Но ответ модема «ОК» не означает, то что он дозвонился, а значит, только то что он начал звонить.
WRX не успевает получить сообщение о типе входящего звонка, а звонок уже разорван. И WRX не зная, что это голосовой, не устанавливает GPRS соединение.

Для нормального установления соединения нужно подождать некоторое время (WRX сам отобьет звонок).

Вернее не совсем так. Посмотрели еще раз - до WRX’а звонок доходит, но для правильно обработки нужно дождаться поступления нескольких гудков, после чего он сам отобьет звонок.

Как я понимаю, тут 2 варианта:
либо мы так настраиваем модем, чтобы он “успевал”,
либо настраиваем ЛЭРС-учет так, чтобы он отправлял команды, которые модем мог бы распознать.

По какому из вариантов пойдем?