26 апр. 2016 г.

Raspberry Pi A/B 26 and 40 pin connector


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)
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.

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;

11 нояб. 2015 г.

Импорт данных из Lansweeper в Итилиум

Итилиум умеет импортировать данные в формате Everest. Да где ж их взять? Запускать Everest при входе пользователя? Можно. Но тормозит.
Альтернативный вариант - выбрать данные из SQL базы Lansweeper.
Потом - открываем полученный csv LibreOffice Calc, запускаем скрипт на OOBasic и получаем xml для загрузки в Итилиум.

28 окт. 2015 г.

Zabbix настройки

Почти сразу после установки.
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.

23 окт. 2015 г.

mysql <-> postgresql cli

  • $ mysql -u root -prootpassword
$ su - postgres
$ psql
  • mysql> show databases;
postgres=# \l
  • mysql> use mybase;
postgres=# \c mybase
  • mysql> show tables;
ocdp=# \dt
  • mysql> create database mybase;
postgres=# create database mybase;
  • mysql> drop database mybase;
postgres=# drop database mybase;
  • mysql> quit
postgres=# \q

9 мая 2015 г.

MDaemon 15.0.1, IIS, IE8 и аццкий sed

После очередного обновления (15.0.1) MDaemon резко присел на процессор, доведя загрузку до 100%. Причем происходило это не сразу, через чаc-другой работы. MDaemon работает через IIS.
Путем исследования процессов было выяснено, что процессор загружен 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 (в ближайшее время по крайней мере) не будет.