Журнал Радио 12 номер 2000 год. ДОМАШНИЙ ТЕЛЕФОН

Журнал Радио 12 номер 2000 год. ДОМАШНИЙ ТЕЛЕФОН СИСТЕМА РЕГИСТРАЦИИ И ТАРИФИКАЦИИ ИСХОДЯЩИХ ЗВОНКОВ В. КУЛАКОВ, г. Ростов-на-Дону   Иногда возникает необходимость зафиксировать информацию об использовании телефонной линии: набираемый номер, время и продолжительность разговора. Особенно это актуально с введением повременной оплаты телефонных разговоров и при частых междугородных и международных звонках. Описываемое устройство предназначено для регистрации исходящих телефонных звонков в базе данных компьютера.

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

Описываемая система состоит из регистратора набираемых номеров и компьютера с установленной на нем программой. Регистратор подключают к телефонной линии. Он считывает набираемые номера и передает их компьютеру через последовательный порт. Если в момент звонка компьютер был выключен, или обрабатывающая программа не запущена, то зарегистрированные данные временно хранятся в энергонезависимой памяти устройства.

Основа устройства — Р╡С-контроллер DD3 (рис. 1). наиболее дешевый из предлагаемых компанией Microchip. Данные о звонках и настройке хранятся в энергонезависимой памяти DD2. Телефонные аппараты (ТА) можно подключать как непосредственно к линии, так и через регистратор. В последнем случае регистратор сможет определить, с какого аппарата велся разговор. Эту возможность удобно использовать, например, для разделения счетов за междугородные переговоры между несколькими пользователями одной телефонной линии. Связь с компьютером осуществляется через оптопару U5. что позволяет гальванически развязать компьютер и телефонную линию. Питание устройства осуществляется от телефонной линии.


Показать в полный размер

В исходном состоянии (т. е. когда телефонные трубки лежат на всех аппаратах, подключенных к линии) контроллер отслеживает состояние датчика напряжения в линии — делителя R4R6. производит счет текущего времени и примерно каждые полминуты вызывает обрабатывающую программу компьютера. Если компьютер включен и программа запущена, регистратор сверяет свои внутренние часы с часами компьютера и при необходимости передает накопленную информацию о звонках.

После снятия трубки контроллер определяет путем измерения напряжения на коллекторах транзисторов оптопар U1.1 — U1.44. с какого именно аппарата сняли трубку. Если этот телефон подключен непосредственно к линии, то считается, что трубку сняли с ТА1. Затем информация о занятии линии и номер определенного аппарата передается компьютеру, что отражается в строке состояния программы и в ее значке на панели задач. Далее устройство считывает набираемый номер и одновременно передает его в компьютер для дальнейшей индикации. После набора каждой цифры в контроллере сбрасывается программный счетчик времени, который позволяет определить окончание набора номера.

Если после набора цифры прошло более 5 с и число набранных цифр более пяти, считается, что номер набран. При этом на управляющий электрод ключа К1 поступает высокий уровень, ключ открывается и подключает компаратор DA1 к общему проводу. Однако контроллер продолжает отслеживать состояние датчика напряжения в линии R4R6 на тот случай, если набор номера будет возобновлен. Сели это произойдет, компаратор снова отключится и опять сбросится счетчик времени.

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

Так как подобных случаев бывает достаточно много, то результирующая база данных может быть сильно "засорена" неверной информацией. Если для домашних условий это еще может быть приемлемо, то для организаций, где за день производится множество звонков, неверная информация сильно затруднит обработку полученных данных. К тому же подсчет суммарной стоимости разговоров, конечно, будет неточен.

Для минимизации этой проблемы в регистраторе начало разговора определяется отслеживанием сигнала контроля посылки вызова (КПВ) станции. Для этого и служит компаратор DA1. Как уже было сказано, после окончания набора номера компаратор подключается к линии. Питается он через резистор R5, а сигнал с линии поступает на него через конденсатор СЗ и резистор R10. При этом программа контроллера анализирует сигнал с выхода компаратора, сопоставляя его с частотой сигнала контроля посылки вызова. Эта частота должна быть 425±2 Гц.

После того, как произойдет соединение, звонящий абонент услышит сигнал КПВ, вызываемому будет подаваться сигнал вызова, а контроллер обнаружит сигнал частотой 425 Гц. Длительность посылки сигнала КПВ около 1 с. а пауза между посылками — не более 5 с. Таким образом, зарегистрировав отсутствие сигнала КПВ в течение более 5 с, можно считать, что на другом конце сняли трубку (начался разговор). В реальном устройстве это время принято немногим больше (10 с), а счет длительности разговора начинается с 5 с. т. е. точность составляет ±5 с.

Однако частота КПВ не всегда равна 425±2 Гц. она может значительно отличаться в зависимости от того, на какую АТС производится вызов. Программа контроллера позволяет обнаруживать частоту в пределах 410...440 Гц. но и этого не всегда бывает достаточно. Если частота сигнала контроля посылки вызова выходит за эти пределы, разговор считается начатым через 20 с после окончания набора последней цифры в случае городского звонка и через 40 с — в случае междугородного.

Затем регистратор производит подсчет длительности разговора и ожидает, когда трубка будет уложена на аппарат. Как только это произойдет, контроллер зафиксирует полученную информацию в памяти и передаст ее программе компьютера (если она запущена). Объема энергонезависимой памяти достаточно для запоминания примерно 100 внутригородских звонков. После этого контроллер возвращается в состояние ожидания снятия трубки.

Уже упоминалось, что связь с компьютером осуществляется через оптопары U5.1, U5.2 Прием данных производится с коллектора оптрона U5.2. Для передачи зажигается светодиод оптрона U5.1. при этом на выводах порта компьютера RTS и DTR программно выставляются соответственно положительный и отрицательный уровни для питания транзисторов VT2, VT3. Когда светодиод оптопары U5.1 погашен, ее транзистор закрыт. Поэтому транзистор VT2 закрыт, a VT3 открыт и на приемный вывод порта R. поступает отрицательный уровень. При включении оптрона U5.1 транзистор VT2 открывается, VT3 закрывается и на компьютер поступает положительный уровень.

Для включения оптрона U5.1 требуется относительно большой ток (больше, чем ток. который можно потреблять от телефонной линии). Поэтому после передачи каждого байта контроллер делает паузу для зарядки накопительного конденсатора С1, вследствие чего скорость передачи данных будет небольшая, порядка 100 бит/с. Но и этого вполне достаточно для этих целей. Если питать устройство от батареи гальванических элементов, то скорость можно повысить до 300 бит/с. Для этого необходимо в прилагаемой программе прошивки содержимое по адресам 0x01C-0x01F изменить на нуль.

Кварцевый резонатор ZQ1 задает частоту работы внутреннего тактового генератора контроллера DD3. Мультивибратор на элементах DD1.1 и DD1.2 предназначен для работы внутренних часов контроллера, время на которых корректируется при каждом обмене данных с компьютером. Для сохранения показаний часов при кратковременных отключениях от линии служит ионистор С2. Он заряжается через резистор R3 с высоким сопротивлением (100 кОм). чтобы не шунтировать цепь питания контроллера в момент включения устройства. Поэтому зарядка ионистора С2 длится довольно долго, порядка 5...6 часов, а его емкости хватает на 20...30 минут работы регистратора, чего вполне достаточно для поддержания работы часов при недолгом пропадании напряжения питания.

Вместо ионистора С2 допустимо установить батарею гальванических элементов с напряжением 3...4.5 В. Если есть уверенность, что телефонная линия отключаться не будет, можно не устанавливать ни ионистор. ни батарею.

Устройство не требует налаживания и должно работать сразу после сборки. Биты конфигурации для прошивки: генератор LP. сторожевой таймер может быть включенным или выключенным.

Регистратор работоспособен на стандартных телефонных линиях с напряжением 48...60 В. На спаренных линиях и на АТС типа "Квант" он работать не будет.

Обрабатывающая программа разработана в среде C++Builder V1.0 и представляет собой стандартную многооконную программу для операционной системы Windows (рис. 2). Программа в своей работе использует BDE (Borland Database Engine), которая частично включена в дистрибутив. Поэтому его объем получился относительно большим и составляет 2.3 МБайт. Процесс установки прост: от пользователя требуется только задать папку для файлов программы. По умолчанию программа будет установлена в "Program Files". После установки программа поместит свой ярлык в меню "автозагрузка". Если при каждом включении компьютера нет необходимости ее запускать, этот ярлык удаляют вручную.

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

После первого запуска программы открывают окно "Настройка" (через главное меню) и во вкладке "Местоположение" указывают код страны (для России — "7") и код города, где будет находится регистратор. Если выход в город осуществляется через дополнительную цифру, то ее также следует указать. После этого нужно нажать на кнопку "Да". Затем необходимо установить связь с регистратором. Через меню "Регистратор -> Выбор порта" укажите последовательный порт, к которому подключается регистратор и через "Регистратор -> Установка связи" проверьте связь с регистратором. После установки связи произведите начальный сброс всех настроек энергонезависимой памяти регистратора через меню "Регистратор -> Сброс". Теперь устройство готово к работе.

Как происходит сам процесс работы устройства? Как только вы снимите трубку с аппарата, в строке состояния и в значке программы на панели задач будет написано: трубка снята и указан номер данного телефона. Затем наберите какой-нибудь номер. Во время набора в строке состояния и в значке программы вы увидите набираемые цифры. После того, как процессор регистратора определит, что набор номера закончен, появится надпись "Набор закончен" и по обнаружению сигнала контроля посылки вызова будет написано "Соединение", а по исчезновению этого сообщения — "Разговор". В момент начала разговора включится счетчик длительности переговоров. Когда разговор окончится, данные об этом звонке будут переданы в компьютер.

Чтобы увидеть эти данные, необходимо открыть таблицу исходящих звонков — "Открыть -> Звонки". Здесь будет представлена вся имеющаяся база данных входящих звонков. Для каждого из них имеются поля с указанием даты и времени окончания разговора, кода страны, города, номера абонента, которому был адресован звонок, номера телефона, с которого звонили (один из пяти), названия страны, города, имени абонента, длительности разговора, цены за единицу использованного времени и суммарной стоимости состоявшегося разговора. После открытия этой таблицы главное меню программы будет заменено на меню таблицы звонков.

Учитывая, что записей о звонках со временем накапливается достаточно много, предусмотрена возможность сужения объема их просмотра. Например, через команду "Сортировка -> За период" можно просмотреть данные о звонках за определенный период времени, скажем, за последний месяц. А используя одновременно команды "Сортировка -> Междугородные и международные" и "Сервис -> Сумма за период" можно определить примерную сумму оплаты междугородных звонков за месяц. Через пункты меню "Просмотр -> ..." просматривают звонки, сделанные с конкретного телефона. Так как программа многооконная, то одну и ту же таблицу вы сможете открывать несколько раз одновременно и просматривать в разных вариантах. Вывод на печать осуществляется через "Сервис -> Печать". Этот пункт выводит форму предварительного просмотра (QuickReport). из которой нажатием кнопки "Print report" форма выводится на принтер.

Помимо таблицы принятых звонков в программе есть еще две таблицы. Одна из них называется "Записная книжка" (рис. 3). другая — "Таблица тарифов" (рис. 4). В первой содержатся коды стран и городов, номера и имена абонентов. Из этой таблицы информация переносится в таблицу исходящих звонков в соответствии с полученным от регистратора номером. "Записную книжку" можно редактировать, добавлять новые номера и имена абонентов или удалять ненужные. Имеется возможность поиска в ней нужных сведений.

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

Задание тарифов происходит следующим образом. В таблице тарифов нужно добавить новую строку нажатием кнопки "+". После этого вводят код страны и города и название пункта назначения. Для дальнего зарубежья можно задавать только код страны, а код города — не обязательно. Необходимо также указать дату вступления тарифа в силу. В связи с тем. что тарифы периодически меняются, то по указанной дате программа определит, какой из действующих тарифов для данного пункта действителен на момент конкретного звонка. Допустим, что для определенного города был задан тариф, действующий с 01.01.99. Затем был введен новый тариф с 01.06.99. Таким образом, для этого города должны быть заданы оба тарифа. При этом звонки, сделанные в промежуток с 01.01.99 по 01.06.99. будут обсчитываться по первому тарифу, а позже — по второму. Если звонок был сделан до 01.01.99. то будет считаться, что его стоимость равна нулю.

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

Предположим, надо задать дневной тариф, действующий с 07:00 до 23:00. и ночной на остальное время. Сначала нужно перейти в первое окно "Время по:" и задать "06:59:59". В окне "Тариф Г задать ночной тариф. При этом во втором окне "Время с:" появится 07:00:00. Затем во втором окне "Время по:" задаем время "23:00:00", а в окне "Тариф 2" — дневной тариф. При этом в третьем окне "Время с:" появится время "23:00:01". Далее необходимо задать в окне "Тариф 3" "Время по: "23:59:59" и ночной тариф.

Если в выходные и праздничные дни существует отдельный тариф, то следует перейти на вкладку "Дополнительно" и установить флажок "Отдельный тариф в выходные и праздничные дни". После этого вкладка "Выходные и праздники" станет доступной и можно будет задать соответствующий тариф. Также во вкладке "Дополнительно" видна таблица праздничных дней, которую можно редактировать. При установленном флажке "Посекундно" программа считает, что тариф задан за секунду. Если после соединенно оплата берется сразу за какое-то время, то оно задается в окне "Учитывать... первых минут (секунд)".

Помимо основных функций предлагаемая система может выполнять ряд вспомогательных. В окне "Настройка" во вкладке "Блокировки" можно установить флажки запрета междугородных звонков отдельно для каждого телефона. При этом, если первая цифра набранного номера — "8", дальнейший набор становится невозможным. Также блокируется набор любого номера с первого телефона (ТА1). Поскольку этим телефоном считается тот. который подключен непосредственно к линии, то эта возможность эквивалентна защите от несанкционированного использования линии.

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

Если ярлык программы находится в папке "Автозагрузка", удобно установить флажок "Запускать программу в свернутом виде" во вкладке "Дополнительно" окна "Настройка". Это позволит программе работать в фоновом режиме, а пользователь сможет контролировать состояние телефонов, не разворачивая программу, по сообщениям на значке программы в панели задач.

Примечание редакции. Дистрибутив программы и прошивку РIC-контрол-лвра можно найти на нашем ftp сервере по адресу: ftp://ftp.paguo.ru/pub/tanff.

Вернуться к содержанию журнала "Радио" 12 номер 2000 год







Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.