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

10 мар. 2020 г.

Asterisk queue - cбросить канал

Проблема - не идут звонки на телефон после регистрации в очереди.
По команде queue show показывает, что телефон в агентах очереди, но "In use"
По команде sip show channels видим, что хотя звонка нет, есть зависший канал на этот телефон.
Поэтому очередь определяет его как все время занятый.

Лечение:
sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry Peer
192.168.10.175 225 80BDD706-AAB8-E (alaw) No Rx: ACK 225
Смотрим Call ID, находим по нему канал -
sip show channel 80BDD706-AAB8-E
SIP Call
Curr. trans. direction: Incoming
Call-ID: 80BDD706-AAB8-E311-A43F-BA0FA64CD691@192.168.10.175
Owner channel ID: SIP/225-0001c666
Our Codec Capability: (gsm|ulaw|alaw|g729)
Non-Codec Capability (DTMF): 1
Their Codec Capability: (gsm|ulaw|alaw|g726|speex|speex16|ilbc|g722)
Joint Codec Capability: (gsm|ulaw|alaw)
Format: (alaw)
Убиваем канал -
channel request hangup SIP/225-0001c666
При необходимости перегружаем очередь -
queue reload

Взято отсюда

11 дек. 2019 г.

Скопировать первую страницу со всех pdf to png

find ./*.pdf -exec pdftocairo -png -r 300 -f 1 -l 1 '{}' \; 

29 окт. 2019 г.

Zabbix notifications to Telegram

Send notification from Zabbix to Telegram messenger

18 окт. 2019 г.

OpenVPN Microtik to IPFire net-to-net

Connect Microtik router as openVPN client of IPFire security appliance - OpenVPN connection.