Аналоговые голосовые модемы
Аналоговые голосовые модемы - это обычные модемы подключаемые к стандартной телефонной линии и имеющие возможность передавать в линию голос и слушать телефонную линию (примерно так же как работает звуковая карта, только подключенная к телефонной линии).
Голосовые модемы обладают рядом особенностей, которые нужно знать, выбирая устройство для работы с программой:
- Нет аппаратного определения ответа абонента при выполнении исходящего звонка. Стандартная телефонная линия, которая подключается к модему, не имеет сигнализации о том, что на другом конце абонент снял трубку при выполнении исходящего звонка. Поэтому определить факт поднятия трубки можно только слушая линию, и программным образом определять ответ абонента. Очевидно, что не во всех случаях можно это сделать правильно автоматически. Поэтому качество определения ответа абонента у аналоговых модемов существенно ниже, чем у устройств, которые имеют возможность делать это аппаратно (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 команды?
Вариантов несколько:
- Сохранить эти изменения в профайле по умолчанию вашего модема.
- В реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Wentor\Call Office\CommandSet нужно выбрать набор команд, который вы используете и в разделе Init можно добавить дополнительные команды инициализации.
- Непосредственно в сценарии после инициализации устройства можно добавить любые команды модему, но делать это следует осознанно и осторожно. Добавление команд в неправильном месте может привести к неадекватным результатам работы программы.
Команду модему можно отправить оператором:
Device.SendCommand ("AT\r");