CDR Reader for PBXs (C) Alexey V. Kuznetsov, 2001-2002 avk@gamma.ru Данная программа предназначена для считывания информации о произошедших звонках с различных типов офисных АТС (далее PBX) и записи их в текстовые файлы. В случае Win32 – это обычное консольное приложение, в случае UNIX данная программа сама может перевести себя в фоновый режим (стать демоном). Запись может производиться как в один единый, так и в отдельные файлы по дням или по месяцам при условии, что поддержка записей, выдаваемых конкретной PBX, есть в программе. На данный момент поддерживаются следующие PBX: Definity. Merlin. Panasonic KXTD816, KXTD1232, KXTA308, KXTA616, KXTA624 и другие с аналогичным типом SMDR. Meridian. GHX-616/36/46 Формат командной строки для запуска: cdr_read [-D dir] [-L logfile] [-d] [-e] [-b] [-a] [-o] [-s speed] [-c csize] [-p parity] [-f sbits] [-t type] serial_dev -D dir директория, в которой создавать файлы для записи информации со станции; по умолчанию – текущая; -L logfile файл для записи сообщений, выдаваемых программой, по умолчанию stderr (т.е. на экран); -s speed скорость COM-порта, по умолчанию 9600 (для Merlin’а надо задать 1200); -c char_size число битов данных; допустимые значения от 5 до 8; по умолчанию 8; -p parity проверка на четность; допустимые значения: e – even parity; o – odd parity; n – no parity (default); m – mark parity (Win32 only); s – space parity (Win32 only); -f stop bits число стоповых битов; допустимое значение 1 или 2; по умолчанию 1; -t type тип PBX; возможные значения: raw (все складывать в файл с именем raw в директории, заданной ключом -D без всякого разбора); definity (в директории создаются файлы с именем MM.DD, где MM – номер месяца, DD – номер дня; предполагается, что в ch sys cdr установлено CDR Date Format: day/month, если не установлено, то формат будет DD.MM); merlin (полностью аналогично definity); panasonic – для АТС Panasonic KX-TD816, KX-TD1232, KX- TA308, KX-TA616, KX-TA624 и других с аналогичным типом SMDR; ghx – для АТС GHX-616/36/46 и других с аналогичным типом SMDR; meridian. -d выводить дополнительную отладочную информацию (если будут проблемы, то желательно запустить программу с этим ключом и выдачу в файл, заданный в –L, прислать мне); -e если задан файл ключом –L, то всю выводимую туда информацию дополнительно выводить и в stderr, т.е. по умолчанию на }jp`m; -a писать в начале каждого файла полученную дату (работает только для Definity); -o выводить всю информацию, которая пишется в файл, дополнительно в stdout – нужно для того, чтобы другая программа, например, на лету закачивала полученную информацию, скажем, в какую-нибудь базу данных; -m писать логи в отдельный файл для каждого месяца, а не для; имя файла будет при этом в формате MM.log; -n считать, что на месте номера дня в логах находится номер месяца, и наоборот; -b стать демоном (при задании этого ключа программа сразу завершается, оставляя свою фоновую копию, работает только под UNIX). serial_dev устройство последовательного ввода/вывода (com1, com2 и т.д. под Win32 или /dev/cuaa0, /dev/cuaa1 и т.д. под UNIX). Разделителем строки при вводе считаются символы CR (0x0D), LF (0x0A) или любая их комбинация, пустые строки (т.е. состоящие только из символов CR, LF или любой их комбинации) и символы NUL (0x00) при вводе игнорируются. При записи считанных строк в файлы они разделяются в случае Win32 последовательностью CR LF, в случае UNIX – LF. ГДЕ ВЗЯТЬ СВЕЖУЮ ВЕРСИЮ Ссылку на последнюю версию программы CDR Reader вы можете найти на мой страничке http://www.gamma.ru/~avk. За дизайн странички не обессудьте – я не УЕБ-дизайнер, да и ломает. COPYRIGHT NOTES Данная программа может свободно использоваться и распространяться и ее исходный код может быть использован в любых целях при условии, что во всех распространяемых копиях и во всех программах, использующих части исходного кода будет сохранено упоминание о моем авторстве. Успешной работы! Алексей Кузнецов RELEASE NOTES v.1.08. · Поправлена поддержка логов от Панасоника на предмет случая, когда когда он выдает вместо лидирующего нуля пробел в номере дня или месяца. v.1.07. · Добавлен ключ -n для российских вариантов АТС, которые пишут дату в формате DD/MM/YY, а не в родном MM/DD/YY. v.1.06. · Добавлена поддержка GHX-616/36/46. · Добавлен ключ -m для записи в отдельные файлы по месяцам. v.1.05. · Добавлена поддержка Meridian. · При открытии файла в его конец пишется пустая строка. Нужно для того, чтобы первая запись после открытия не приклеивалась к предыдущей, если при перезапуске машины в файл по каким-либо причинам не прописался перевод строки. v.1.04. · Добавлены ключи -p, -c, -f. v.1.03. · Добавлен ключ -o. v.1.02. · Добавлена поддержка Panasonic KXTD816/1232. v.1.01. · Добавлен ключ -a – нужно для биллинговых программ, не понимающих дату, заданную именем файла, а не внутри текста. · Данные, полученные из буфера до получения даты, теперь не пищутся в ошибки, а буферизуются и пишутся той датой, которая будет получена первой. Так что остерегайтесь перезапускать машины в полночь, когда силы зла властвуют безраздельно :)