26 апр. 2016 г.
20 апр. 2016 г.
Install dcm4chee-cdw on raspberry pi 2 (or raspberry pi model b) part 2 - writing dicom to flashdrive
Replace path to mkisofs and cdrecord to own scripts.
Connect button and LED to gpio connector. (button - pins 9/11, led - pins 13/14)
Connect button and LED to gpio connector. (button - pins 9/11, led - pins 13/14)
Scripts will be availiable later.
13 апр. 2016 г.
Install dcm4chee-cdw on raspberry pi 2 (or raspberry pi model b)
1. Download minimal Raspberry Pi image from https://downloads.raspberrypi.org/raspbian_lite_latest,
write it on SD-card,
on any Linux - apply gparted to /dev/sdb, resize partition up to flash size.
2. Load system on Raspberry. Connect by ssh.
write it on SD-card,
on any Linux - apply gparted to /dev/sdb, resize partition up to flash size.
2. Load system on Raspberry. Connect by ssh.
29 мар. 2016 г.
Using Cisco SPA504G Yealink t27 t22p Fanvil C66 X5S Grandstream GXP1628 BLF lamps as status indicators and speed dial - Asterisk
; extensions.conf [Hints] exten => 9901,hint,Custom:LoginStat01 exten => 9801,hint,Custom:QueueStat01 exten => 9701,hint,Custom:PauseStat01 [Internal-Main] ; Operator login/logout ================================== exten => _99XX,1,Answer same => n,noCDR() same => n,GotoIf($["${DEVICE_STATE(Custom:LoginStat${CALLERID(num)})}" = "NOT_INUSE"]?logout) same => n,Set(DEVICE_STATE(Custom:LoginStat${CALLERID(num)})=NOT_INUSE) ; login indicator becomes green ; do something and hangup same => n(logout),NoOp("Выход из системы") same => n,Set(DEVICE_STATE(Custom:LoginStat${CALLERID(num)})=INUSE) ; login indicator becomes red ; do something and hangup
14 мар. 2016 г.
"Правильная" таблица CDR
<pre>
CREATE TABLE `cdr` (
`id` int(11) unsigned NOT NULL,
`calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL DEFAULT '',
`src` varchar(80) NOT NULL DEFAULT '',
`dst` varchar(80) NOT NULL DEFAULT '',
`dcontext` varchar(80) NOT NULL DEFAULT '',
`channel` varchar(80) NOT NULL DEFAULT '',
`dstchannel` varchar(80) NOT NULL DEFAULT '',
`lastapp` varchar(80) NOT NULL DEFAULT '',
`lastdata` varchar(80) NOT NULL DEFAULT '',
`duration` int(11) NOT NULL DEFAULT '0',
`billsec` int(11) NOT NULL DEFAULT '0',
`disposition` varchar(45) NOT NULL DEFAULT '',
`amaflags` int(11) NOT NULL DEFAULT '0',
`accountcode` varchar(20) NOT NULL DEFAULT '',
`userfield` varchar(255) NOT NULL DEFAULT '',
`uniqueid` varchar(32) NOT NULL DEFAULT '',
`linkedid` varchar(32) NOT NULL DEFAULT '',
`sequence` varchar(32) NOT NULL DEFAULT '',
`peeraccount` varchar(32) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `cdr`
ADD PRIMARY KEY (`id`),
ADD KEY `calldate` (`calldate`),
ADD KEY `dst` (`dst`),
ADD KEY `src` (`src`),
ADD KEY `uniqueid` (`uniqueid`),
ADD KEY `accountcode` (`accountcode`);
ALTER TABLE `cdr`
MODIFY `id` int(11) unsigned NOT NULL AUTO_INCREMENT;
CREATE TABLE `cdr` (
`id` int(11) unsigned NOT NULL,
`calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL DEFAULT '',
`src` varchar(80) NOT NULL DEFAULT '',
`dst` varchar(80) NOT NULL DEFAULT '',
`dcontext` varchar(80) NOT NULL DEFAULT '',
`channel` varchar(80) NOT NULL DEFAULT '',
`dstchannel` varchar(80) NOT NULL DEFAULT '',
`lastapp` varchar(80) NOT NULL DEFAULT '',
`lastdata` varchar(80) NOT NULL DEFAULT '',
`duration` int(11) NOT NULL DEFAULT '0',
`billsec` int(11) NOT NULL DEFAULT '0',
`disposition` varchar(45) NOT NULL DEFAULT '',
`amaflags` int(11) NOT NULL DEFAULT '0',
`accountcode` varchar(20) NOT NULL DEFAULT '',
`userfield` varchar(255) NOT NULL DEFAULT '',
`uniqueid` varchar(32) NOT NULL DEFAULT '',
`linkedid` varchar(32) NOT NULL DEFAULT '',
`sequence` varchar(32) NOT NULL DEFAULT '',
`peeraccount` varchar(32) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `cdr`
ADD PRIMARY KEY (`id`),
ADD KEY `calldate` (`calldate`),
ADD KEY `dst` (`dst`),
ADD KEY `src` (`src`),
ADD KEY `uniqueid` (`uniqueid`),
ADD KEY `accountcode` (`accountcode`);
ALTER TABLE `cdr`
MODIFY `id` int(11) unsigned NOT NULL AUTO_INCREMENT;
11 нояб. 2015 г.
Импорт данных из Lansweeper в Итилиум
Итилиум умеет импортировать данные в формате Everest. Да где ж их взять? Запускать Everest при входе пользователя? Можно. Но тормозит.
Альтернативный вариант - выбрать данные из SQL базы Lansweeper.
Потом - открываем полученный csv LibreOffice Calc, запускаем скрипт на OOBasic и получаем xml для загрузки в Итилиум.
Альтернативный вариант - выбрать данные из SQL базы Lansweeper.
Потом - открываем полученный csv LibreOffice Calc, запускаем скрипт на OOBasic и получаем xml для загрузки в Итилиум.
28 окт. 2015 г.
Zabbix настройки
Почти сразу после установки.
CacheSize=32M
StartPingers=5
После, естественно,
service zabbix-server restart
CacheSize=32M
StartPingers=5
После, естественно,
service zabbix-server restart
24 окт. 2015 г.
Установка Zabbix в контейнеры OpenVZ Proxmox - раздельно database на postgreSQL и frontend+server
Что хотим получить?
Zabbix, если его ставить из appliance или пакетными менеджерами по-умолчанию, обладает проблемами с масштабируемостью. Поставить его просто и просто начать работу, но решение будет не масштабируемым и потом, при расширении системы, потребуется много работы по замене сервера БД на Postgres, выносе БД на отдельный хост, запуске failover-кластера.
Есть свободная платформа виртуализации Proxmox, в которой помимо полной виртуализации qemu есть контейнеры OpenVZ - аналог Solaris Zones. Контейнеры позволяют запускать множество систем на одном ядре с малыми накладными расходами. Proxmox позволяет легко бэкапить зоны, поддерживает Live Migration и кластера.
PostgreSQL устойчивее чем MySQL при высоких нагрузках, тоже позволяет создавать кластеры.
Результат - без перекомпиляции всех пакетов, при минимуме усилий, получить полностью свободную, легко масштабируемую в дальнейшем, отказоустойчивую конфигурацию Zabbix.
Zabbix, если его ставить из appliance или пакетными менеджерами по-умолчанию, обладает проблемами с масштабируемостью. Поставить его просто и просто начать работу, но решение будет не масштабируемым и потом, при расширении системы, потребуется много работы по замене сервера БД на Postgres, выносе БД на отдельный хост, запуске failover-кластера.
Есть свободная платформа виртуализации Proxmox, в которой помимо полной виртуализации qemu есть контейнеры OpenVZ - аналог Solaris Zones. Контейнеры позволяют запускать множество систем на одном ядре с малыми накладными расходами. Proxmox позволяет легко бэкапить зоны, поддерживает Live Migration и кластера.
PostgreSQL устойчивее чем MySQL при высоких нагрузках, тоже позволяет создавать кластеры.
Результат - без перекомпиляции всех пакетов, при минимуме усилий, получить полностью свободную, легко масштабируемую в дальнейшем, отказоустойчивую конфигурацию Zabbix.
23 окт. 2015 г.
mysql <-> postgresql cli
- $ mysql -u root -prootpassword
$ psql
- mysql> show databases;
- mysql> use mybase;
- mysql> show tables;
- mysql> create database mybase;
- mysql> drop database mybase;
- mysql> quit
9 мая 2015 г.
MDaemon 15.0.1, IIS, IE8 и аццкий sed
После очередного обновления (15.0.1) MDaemon резко присел на процессор, доведя загрузку до 100%. Причем происходило это не сразу, через чаc-другой работы. MDaemon работает через IIS.
Путем исследования процессов было выяснено, что процессор загружен w3wp.exe, который упорно что-то читает и пишет. Путем исследования с помощью processhacker выяснено, что он читает и пишет ini-файлы.
Эти файлы, обычно содержащие десяток строк с настройками пухли за счет такой переменной:
Путем исследования процессов было выяснено, что процессор загружен w3wp.exe, который упорно что-то читает и пишет. Путем исследования с помощью processhacker выяснено, что он читает и пишет ini-файлы.
Эти файлы, обычно содержащие десяток строк с настройками пухли за счет такой переменной:
indexOf=function(e,g){var j;if(this==null)throw new TypeError('"this" is null or not defined');var k=Object(this),l=k.length>>>0;if(l===0)return-1; и потом - "j=+g||0;Math.abs(j)===Infinity&&(j=0);if(j>=l)return-1;for(j=Math.max(j>=0?j:l-Math.abs(j),0);jПоследняя строчка повторялась сколько угодно раз. Файлы достигали 10 Mb за штуку. IIS в лице веб-интерфейса MDaemon дурел от необходимости читать и писать их все - 1000 штук ))) Запустил такие команды , чтобы почистить содержимое файлов: cd \MDaemon\Users c:\usr\bin\find -name "User.ini" -exec sed --text --in-place=.bak /return-1/d {} ; c:\usr\bin\find -name "User.ini" -exec unix2dos {} ;Вторая команда нужна из-за косого sed. Не удалось найти win32 sed с поддержкой одновременно --binary и --in-place )). И потом -c:\usr\bin\find -name "User.ini.bak" -exec rm {} ;Нагрузка упала со 100% до 3-5%.
Надеюсь, что больше сюрпризов от MDaemon (в ближайшее время по крайней мере) не будет.
Подписаться на:
Комментарии (Atom)