15 дек. 2022 г.

Proxmox GBE bond and Mikrotik RB2011UiAS-2HnD

Two gigabit cards on every server in cluster, five gigabit ports on RB2011 - create 2 LACP bonds to increase live migration speed.

7 дек. 2022 г.

Windows 11, Internet Explorer and HiWatch NVR

 Microsoft now loves MS Edge as much as loved MS Internet Explorer years ago and switch IE to Edge form time to time.

But HiWatch still love MSIE - you cannot watch cameras in any other browser.

It is annoying thing in W10, but it become a nightmare in W11 - you even cannot find how to run IE.

You can create vbs file to run IE -

CreateObject("InternetExplorer.Application").Visible=true

Took from here

2 дек. 2022 г.

Add disk to LVM array , extend ext4 filesystem

Not required

  • create partition
  • unmount volume (for ext4)

Check

df -h
fdisk -l
lsblk
lvdisplay
pvdisplay

Extend

pvcreate /dev/vdg
vgextend data /dev/vdg
lvextend -l +100%FREE /dev/data/lvol0
resize2fs -p /dev/mapper/data-lvol0






24 нояб. 2022 г.

Создание LVM массивов RAID5, thin provision, кэширование на SSD. Create LVM RAID5, thin provision, SSD cache.

 Задача - создать на новых дисках RAID5 массивы для хранения виртуальных машин в Proxmox, ISO и Backup.

Один массив - thin provision lvm, такие массивы позволяют легко создавать снапшоты, что делает резервное копирование легким и удобным. Но такие массивы не позволяют хранить ISO и бэкапы, то есть обычные файлы. 

Поэтому второй массив создадим обычным смонтированным каталогом, в терминах Proxmox - Directory. Так как LVM позволяет создавать кэшируемые массивы, настроим на нем кэш на NVME носителе, со скоростью около 2000 Mb/s, что примерно в 4 раза быстрее SATA.

10 авг. 2022 г.

Windows shortcuts

control system   System
sysdm.cpl        System properties
appwiz.cpl       Add/Remove Program
control printers Control panel printers
compmgmt.msc     Computer management
certmgr.msc      Certificates
eventvwr.msc     Event viewer
diskmgmt.msc     Disk administration
ncpa.cpl         Network adapters
dsa.msc          AD Users and Computers


11 июл. 2022 г.

Распределение входящих звонков между своим коллцентром и аутсорсингом

В зависимости от полученного случайного числа (равномерное распределение) передаем либо в свой, либо в посторонний КЦ. 50 - порог, если поменять, то соотношение переданных звонков изменится.

 same => n,Answer
 same => n,Set(TIMEOUT(response)=30)
 same => n,Background(announce/announce180122)
 same => n,Background(silence/5)
 same => n,Macro(recording,${CALLERID(num)},${EXTEN})
 same => n,Set(WhoServe=${RAND(1,100)})
 same => n,Verbose("WhoServe is ${WhoServe}")
 same => n,Gotoif($[${WhoServe} > 50]?ownday)
 same => n(outsourceday),Dial(sip/+74951112233@outsource,300,'g')
 same => n,Hangup()
 same => n(ownday),Queue(callcenter,t,,,600)
 same => n,Hangup()

13 мая 2022 г.

Linux ISCSI Initiator

 - Конфиг лежит в /etc/iscsi, но там 2 файла - настройки, касающиеся параметров подключения (которые можно оставить как есть, особенно если нет chap авторизации) и id хоста (initiatorname.iscsi).
 
- Сами устройства лежат в /var/lib/iscsi/nodes, появляются там после того, как мы опросили Target командой

    iscsiadm -m discovery --type sendtargets –p 192.168.1.1

31 мар. 2021 г.

Backup Asterisk configs and Databases to Yandex.Disk by cron task

wget http://repo.yandex.ru/yandex-disk/yandex-disk_latest_amd64.deb
dpkg -i yandex-disk_latest_amd64.deb
yandex-disk setup (set yandex account)
yandex-disk sync --exclude-dirs other,client,dirs,comma,separated
ls ~/Yandex.Disk
apt install p7zip-full

create script:
==============
#!/bin/bash
tar -c --recursion /etc/asterisk/* | 7z a -pPassWordForAESCrypt -si /root/Yandex.Disk/clientname/conf-`date +%Y-%m-%d-%H-%M`.7z
mysqldump -u MySqlUser -pMySqlPassword DataBaseName |7z a -pPassWordForAESCrypt -si /root/Yandex.Disk/clientname/db-`date +%Y-%m-%d-%H-%M`.sql.7z
tar -c --recursion /var/www/* | 7z a -pPassWordForAESCrypt -si /root/Yandex.Disk/clientname/www-`date +%Y-%m-%d-%H-%M`.7z
find /root/Yandex.Disk/clientname -name "*.7z" -mtime +30 -exec rm -f {} \;
yandex-disk sync --exclude-dirs other,client,dirs,comma,separated
==============

add script to cron (crontab -e)
for example - 3 times per week:

0 3 * * 1,3,5 /root/confbackup




24 сент. 2020 г.

Asterisk black list

same => n,ExecIf($["${CALLERID(num)}" = "9113223232"]?Hangup())

or

same => n,ExecIf($[${REGEX("^(921|981)" ${CALLERID(num)})}]?Hangup())

13 авг. 2020 г.

Передача информации в CRM при снятии трубки оператором очереди в Asterisk

Задача: Отдавать Web-based CRM информацию о звонке в очередь в момент снятия трубки. Решение: Макрос, вызываемый при соединении агента. Указывается либо в параметрах очереди (параметр membermacro или membergosub) или в вызове приложения queue(). У меня заработало в макросе, указанном в вызове приложения. 
Отдавать нужно: 
1. Номер того, кто звонит 
2. Номер того, кто снял трубку. 
3. Уникальный ID звонка. 
Если с 2-м и 3-м параметрами все хорошо, они в макросе определены, причем определены для конкретного канала, то callerid(num) неожиданно возвращает номер агента очереди. Вероятно, это выглядит как исходящий звонок агенту. Но нам нужен callerid(num), который был установлен, когда звонок поступил в очередь. Делаем в 2 этапа, через так называемые Variable inheritance - https://wiki.asterisk.org/wiki/display/AST/Variable+Inheritance 

1.Контекст очереди: 

same => n,Set(_MYCID=${CALLERID(num)}) 
same => n,Queue(free,t,,,1800,,HookCRM) 

2.Контекст макроса: 

[macro-HookCRM] 
exten => s,1,Verbose("membername - ${MEMBERNAME},uniqueid - ${UNIQUEID},callerid - ${MYCID}") 
same => n,Verbose(0,${CURL(http://192.168.0.1/api/call?operator_id=${MEMBERNAME}&call_number=${MYCID}&call_id=${UNIQUEID})})