Аналоговые голосовые модемы: различия между версиями
Admin (обсуждение | вклад) |
Jugin (обсуждение | вклад) |
||
(не показано 7 промежуточных версий 2 участников) | |||
Строка 6: | Строка 6: | ||
В настоящее время эта технология постепенно уходит с рынка, уступая более современным и скоростным технологиям передачи данных, поэтому качество современных модемов падает год от года, как в аппаратном, так и программном плане. | В настоящее время эта технология постепенно уходит с рынка, уступая более современным и скоростным технологиям передачи данных, поэтому качество современных модемов падает год от года, как в аппаратном, так и программном плане. | ||
== Поиск модема == | |||
Программа осуществляет поиск модема просматривая в реестре раздел, в котором размещена информация о модемах. Для того, что бы программа увидела модем в разделе модема должны быть два строковых параметра: | |||
* '''FriendlyName''' - любое имя устройства. | |||
* '''AttachedTo''' - номер COM порта, например COM3. | |||
Если модем с такими параметрами обнаружен, выполняется попытка открытия COM-порта, к которому подключен модем. Если открытие успешно, модем доступен для использования в программе. | |||
== Набор команд == | |||
Разные модели модемов имеют как правило различные наборы команд. Для правильной работы программы с конкретным модемом, необходимо знать набор команд этого модема. Программа Call Office при открытии модема пытается определить набор команд, если ей это удается продолжает работу с модемом используя найденный набор команд. Если же определить набор команд модема не удалось, на экране появится окно выбора набора команд. Если у вас появилось такое окно, в нем же вы можете отправить результаты опроса модема разработчикам, то есть нам. Мы проанализируем ваш журнал и вышлем рекомендации. | Разные модели модемов имеют как правило различные наборы команд. Для правильной работы программы с конкретным модемом, необходимо знать набор команд этого модема. Программа 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"); | |||
== [[Часто_Задаваемые_Вопросы/Вопросы работы устройств#Аналоговые голосовые модемы|Аналоговые голосовые модемы]] в [[Часто_Задаваемые_Вопросы/Вопросы работы устройств|Часто Задаваемых Вопросах]]== |
Текущая версия на 10:03, 29 октября 2020
Аналоговые голосовые модемы - это обычные модемы подключаемые к стандартной телефонной линии и имеющие возможность передавать в линию голос и слушать телефонную линию (примерно так же как работает звуковая карта, только подключенная к телефонной линии).
Голосовые модемы обладают рядом особенностей, которые нужно знать, выбирая устройство для работы с программой:
- Нет аппаратного определения ответа абонента при выполнении исходящего звонка. Стандартная телефонная линия, которая подключается к модему, не имеет сигнализации о том, что на другом конце абонент снял трубку при выполнении исходящего звонка. Поэтому определить факт поднятия трубки можно только слушая линию, и программным образом определять ответ абонента. Очевидно, что не во всех случаях можно это сделать правильно автоматически. Поэтому качество определения ответа абонента у аналоговых модемов существенно ниже, чем у устройств, которые имеют возможность делать это аппаратно (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");