Аналоговые голосовые модемы

Материал из Call Office Wiki
Перейти к навигации Перейти к поиску

Аналоговые голосовые модемы - это обычные модемы подключаемые к стандартной телефонной линии и имеющие возможность передавать в линию голос и слушать телефонную линию (примерно так же как работает звуковая карта, только подключенная к телефонной линии).

Голосовые модемы обладают рядом особенностей, которые нужно знать, выбирая устройство для работы с программой:

  • Нет аппаратного определения ответа абонента при выполнении исходящего звонка. Стандартная телефонная линия, которая подключается к модему, не имеет сигнализации о том, что на другом конце абонент снял трубку при выполнении исходящего звонка. Поэтому определить факт поднятия трубки можно только слушая линию, и программным образом определять ответ абонента. Очевидно, что не во всех случаях можно это сделать правильно автоматически. Поэтому качество определения ответа абонента у аналоговых модемов существенно ниже, чем у устройств, которые имеют возможность делать это аппаратно (SIP-шлюзы, GSM-модемы)
  • Нет полноценной записи сообщений с линии. Подавляющее большинство голосовых модемов не работает в режиме полного дуплекса, то есть не может одновременно говорить в линию и слушать линию. Поэтому запись разговоров с линии возможна только в моменты, когда программа слушает линию, во время произнесения сообщений, записать звук с линии нельзя.

В настоящее время эта технология постепенно уходит с рынка, уступая более современным и скоростным технологиям передачи данных, поэтому качество современных модемов падает год от года, как в аппаратном, так и программном плане.

Поиск модема

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

  • FriendlyName - любое имя устройства.
  • AttachedTo - номер COM порта, например COM3.

Если модем с такими параметрами обнаружен, выполняется попытка открытия COM-порта, к которому подключен модем. Если открытие успешно, модем доступен для использования в программе.

Набор команд

Разные модели модемов имеют как правило различные наборы команд. Для правильной работы программы с конкретным модемом, необходимо знать набор команд этого модема. Программа Call Office при открытии модема пытается определить набор команд, если ей это удается продолжает работу с модемом используя найденный набор команд. Если же определить набор команд модема не удалось, на экране появится окно выбора набора команд. Если у вас появилось такое окно, в нем же вы можете отправить результаты опроса модема разработчикам, то есть нам. Мы проанализируем ваш журнал и вышлем рекомендации.

Управлять появлением окна выбора команд можно с помощью ключа в реестре. Для этого в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Wentor\Call Office\Modem можно создать параметр DWORD с именем SelectCommandSet и присвоить ему значения:

  • 0 - режим работы по умолчанию (автоматически определять набор команд);
  • 1 - всегда показывать окно с выбором набора команд;
  • 2 - не показывать окно с выбором набора команд (в этом случае будет использоваться набор команд определенный автоматически или выбранный последний раз);

Поэтому, если программа неверно работает с модемом, указанный параметр можно установить в 1, и попробовать различные наборы команд. Если при одном из них модем заработает как нужно, этот параметр можно установить в 2 и продолжать работать с этим модемом без дополнительных запросов на выбор набора команд.

Если программа некорректно работает с модемом сформируйте журнал работы программы и вышлите нам с подробным описанием проблемы.

Определение наличия голосовых функций модема

Определить наличие или отсутствие голосовых функций модема можно, проанализировав журнал работы программы.

Если в журнале присутствуют строки:

 AT+FCLASS=?<cr> - <cr><lf>+FCLASS: (0-1)<cr><lf><cr><lf>OK<cr><lf>
 AT+FCLASS=8<cr> - <cr><lf>ERROR<cr><lf>
 AT#CLS?<cr> - <cr><lf>ERROR<cr><lf>
 AT#CLS=8<cr> - <cr><lf>ERROR<cr><lf>

то модем не имеет голосовых функций.

Если же присутствует строка

 AT+FCLASS=?<cr> - <cr><lf>+FCLASS: (8)<cr><lf><cr><lf>OK<cr><lf>

или

 AT+FCLASS=?<cr> - <cr><lf>+FCLASS: (80)<cr><lf><cr><lf>OK<cr><lf>

а также любая из строк:

 AT+FCLASS=8<cr> - <cr><lf>OK<cr><lf>
 AT#CLS?<cr><cr><lf>8<cr><lf>OK<cr><lf>
 AT#CLS=8<cr> - <cr><lf>OK<cr><lf>

значит, модем поддерживает голосовые Функции, и его можно использовать для обзвона абонентов или приёма голосовых вызовов.

Как можно передать модему какие-нибудь AT команды?

Вариантов несколько:

  1. Сохранить эти изменения в профайле по умолчанию вашего модема.
  2. В реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Wentor\Call Office\CommandSet нужно выбрать набор команд, который вы используете и в разделе Init можно добавить дополнительные команды инициализации.
  3. Непосредственно в сценарии после инициализации устройства можно добавить любые команды модему, но делать это следует осознанно и осторожно. Добавление команд в неправильном месте может привести к неадекватным результатам работы программы.

Команду модему можно отправить оператором:

 Device.SendCommand ("AT\r");

Аналоговые голосовые модемы в Часто Задаваемых Вопросах