Я тестирую USB-модем USR 5637. В соответствии с документами USR я могу запросить поддержку модема для Caller Id с AT+VCID
:
Debug: modem_write
Debug: Write 10: "AT+VCID=?\r"
Debug: modem_read
Debug: Read 24: "AT+VCID=?
(0-16)
OK"
0-16
необычно, потому что в руководстве указаны значения 0, 1, 2
. Затем я продолжаю устанавливать значение 1
, что в соответствии с руководством Enables formatted Caller ID
:
Debug: modem_write
Debug: Write 10: "AT+VCID=1\r"
Debug: modem_read
Debug: Read 14: "AT+VCID=1
OK"
Позже, когда поступает вызов, информация об идентификаторе вызывающего абонента не представляется модемом USR. Информация об идентификаторе вызывающего абонента должна быть представлена между кольцами 1 и 2.
Тот же код хорошо работает с модемами на основе Conextant 93001, поэтому я уверен, что код правильный. (Или в основном нормально, без явного дефекта).
Почему модем USR не предоставляет информацию об идентификаторе вызывающего абонента?
Вот последовательность запуска, которую я использую:
init:
while (ATZ != OK)
goto init
# gather modem info
ATI0
ATI1
ATI2
ATI3
ATI4
# query fax class
AT+FCLASS=?
# query compression
AT+VSM=?
# query caller id
AT+VCID=?
# set caller id
AT+VCID=1
loop:
# process data
read_modem
...
goto loop
Вот как выглядит formatted Caller ID
на модемах Conexant. На модемах Conexant это появляется между кольцами 1 и 2:
Debug: modem_read
Debug: Read 59: "DATE = 0302
TIME = 1601
NMBR = 6045551212
NAME = JOHN DOE"