Asterisk monast

Monast https://github.com/dagmoller/monast.git

Іssue: monast.py lost connection to asterisk each 3-4 seconds, and make reconnection

Debian 7
Asterisk 13.5

Tested git commits

* a02a81b 2012-06-19 | added option to set custom peer status using UserEvent [Diego Aguirre]
    DONT WORK - Lost connection to server each 3-4 seconds.

* 777df26 2012-04-24 | changes [Diego Aguirre]
    WORK 

Selected version bbce290 2018-01-23
Commented lines in monast.py:

 server.pushTask(server.ami.command, "database show") \
       .addCallbacks(onCustomPeerStatus, self._onAmiCommandFailure, errbackArgs = (servername, "Error Requesting Custom Peer Status from ASTDB"))

Now connection to asterisk not lost.

Reason on issue: too much records in database, long time of executing request ‘database show’.

$ asterisk -rx 'database deltree q-answered'
156568 database entries removed.

FTP client iptables nf_conntrack_ftp

Symptoms

OS: Cloudlinux 6,7

ftp ftpserver.domain.com
Connected to ftpserver.domain.com (11.22.33.44).
220-----------------------------------------------
220 This is a private system - No anonymous login
Name (ftpserver.domain.com:root): ftpuser
331 User ftpuser OK. Password required
Password:
230 OK. Current directory is /files
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (11.22.33.44,19,73)
ftp: connect: Connection timed out

Continue reading

cPanel whmapi

Размер занятый активными акаунтами

$ whmapi1 listaccts api.filter.enable=1 api.filter.a.field='suspended' api.filter.a.arg0='0' api.filter.a.type=eq | grep -E 'user:| diskused:' | tr '\n' ' ' | sed 's/diskused:/\n/g' | tail -n +2 | awk 'begin {}; {sum+=$1; printf("%s %s\n",$3,$1)} END {print sum}'

Continue reading

Asterisk CDR setup

cdr_adaptive_odbc

Debian 9 Stretch
Asterisk 13.14.1 from debian repo.
MariaDB 10.3.7 from MariaaDB repo.

apt install unixodbc unixodbc-dev 

/etc/odbcinst.ini

[mariadb]
Description=MariaDB Connector/ODBC v.2.0
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage=1
UsageCount=2

Continue reading

zabbix jabber notification

Send script: /etc/zabbix/scripts/sendjabber.py

#!/usr/bin/env python
import xmpp,sys

xmpp_jid = '[email protected]'
xmpp_pwd = 'password'

to = sys.argv[1]
msg = sys.argv[2]

jid = xmpp.protocol.JID(xmpp_jid)
client = xmpp.Client(jid.getDomain(),debug=[])
client.connect()
client.auth(jid.getNode(),str(xmpp_pwd),resource='zabbix')
client.send(xmpp.protocol.Message(to,msg))
client.disconnect()

Continue reading

Veeam Linux agent install

Debian 9

wget http://repository.veeam.com/backup/linux/agent/dpkg/debian/x86_64/pool/veeam/v/veeam-release-deb/veeam-release-deb_1.0.1_amd64.deb
apt install ./veeam-release-deb_1.0.1_amd64.deb

Asterisk | Save queue log in MySQL database

Check for existing ODBC MySQL DSN

asterisk*CLI> odbc show 

ODBC DSN Settings
-----------------
  Name:   asterisk
  DSN:    asteriskcdr-odbc
    Last connection attempt: 2019-12-21 11:42:30
    Number of active connections: 1 (out of 1)

Add to /etc/asterisk/extconfig.conf

[settings]
; queue_log => odbc,{DSN-NAME},{TableName}
queue_log => odbc,asterisk,queue_log_test

Continue reading

Manjaro after install

Install packages

pacman -S net-tools ntp mc bind-tools nmap unrar vagrant virtualbox ttf-ubuntu-font-family \
telegram-desktop nextcloud-client sshpass gopass keepassxc terminator gthumb flameshot \
ttf-ms-fonts ipcalc extundelete ext4magic python-py-cpuinfo deluge iperf networkmanager-l2tp peek \
pwgen

Continue reading

Asterisk Waster настройка рабочего времени

No FreePBX, No TrixBox – only /etc/asterisk/ !
Инструмент для определения рабочее/нерабочее время в extentions Asterisk.
Порядок обработки правил: от Большего приоритета к меньшему.
Если текущее время удовлетворяет правилу – обработка закончена и комментарий равен ID – правила, которое его сформировало.
Если ни одно правило не подошло – последним будет НЕ рабочее время (value=0) и комментарий “default last rule”.
Формат возвращаемых данных – plain:

$ curl "http://waster.dev.local/api/isworktime?datetime=2017-12-22 17:00&case=callcenter"
status done
value 0
comment default last rule

Continue reading

mymail.my.com шлют почту через собственные сервера

Приложение для электронной почты на телефоны от http://mymail.my.com/ шлют почту через собственные сервера.

То есть: читает Вашу почту, сохраняет Ваши пароли…

2017-11-23 10:32:35 1eHmvz-0006an-PH <= [email protected] H=f5.my.com [185.30.176.73] P=esmtpsa X=TLS1.2:ECDHE_RSA                                                                                                _AES_256_GCM_SHA384:256 A=auth_plain:[email protected] S=1383 [email protected] from  for [email protected]

Continue reading

apache server-status w sending reply

ОС CentOS 6.7; Apache/2.2.15; nginx/1.13.5

Симтомы: Рост количество процессов httpd, при значении примерно в 2250 – сервер падает в 502 ошибку.

Смотрим:

lynx http://localhost/server-status

Инструмент: Apache Server Status Vizualization

Видим очень большие значения SS в статусе W Sending Reply.

Continue reading

Monast install

CentOS 7

yum install python-pip
pip install twisted

Use http://www.vrplumber.com/programming/starpy/

Download https://sourceforge.net/projects/starpy/files/

Unpack archive
Run in subfolder:

python setup.py install

Got :

/usr/lib/python2.7/site-packages/starpy-1.0.0a12-py2.7.egg-info

Start monast for check resulst:

 ./monast.py

Tests:

#
# in asterisk
tel2*CLI> manager show connected 
  Username         IP Address                                               Start       Elapsed     FileDes   HttpCnt   Read   Write
  monast           127.0.0.1                                                1573252470  26          34        0         04863  04863

#
# by processes 
[[email protected] pymon]# ps -ax |grep monast
29235 ?        S      0:00 /usr/bin/python -u ./monast.py --daemon

Web:

pear upgrade pear

pear install HTTP_Client

Asterisk: мониторинг очереди в Zabbix

Исходная: Астериск, Call-центр, операторов до 10.

Задача: Найти звонки, не принятые операторами Call-центра.

Инструментарии уже какой-то есть, но цифрам не доверяют, потому что число прошущенных звонков по системе сбора статистики очень большое, а найти его в CDR-viewer-е и показать Call-центру, во время разбора полетов не смогли. Потому и засомневались.

Dialplan не формализирован, в настройках куча устаревших рудиментов.

Решили начать с мониторинга – А что же там реально происходит.

День начала сбора статистики:

Среднее число звонков ожидающих попадание в очередь: 2,54

Continue reading

Nginx Pagespeed 404 file not found

Проблема: На клиенте не корректно отображается страницы сайта. Смотрим в Network – видим 404 Not Found на js и css, которые обработал pagespeed c фильтром combine_*

Link: Vendor  

Альтернативное решение: перенаправление на локальные файлы. Думаю, что это не правильный выход из ситуации. И не сработает с фильтрами pagespeed c фильтрами combine. Но имеет право на жизнь.

Перенаправление по 404 на локальные файлы

Link: Original

## Pagespeed optimized resources that returns 404, redirect to original resource
location ~ (.+)/x(.+),(.+)\.pagespeed\.[\.\-_[:alnum:]]+$ {
  # Handle resources with query string and Pagespeed optimized resources with 
  # file name prefixed with x (eg. xMyImage.png,qitok=qwer.pagespeed.asdf.webp)
  error_page 404 = @orig_resource;
  set $orig_resource_uri $1/$2?$3;
  try_files $uri $uri/ $orig_resource_uri;
}
location ~ (.+),(.+)\.pagespeed\.[\.\-_[:alnum:]]+$ {
  # Handle resources with query string
  error_page 404 = @orig_resource;
  set $orig_resource_uri $1?$2;
  try_files $uri $uri/ $orig_resource_uri;
}
location ~ (.+)/x(.+)\.pagespeed\.[\.\-_[:alnum:]]+$ {
  # Handle Pagespeed optimized resources with file name prefixed with x
  # (eg. xMyImage.png.pagespeed.asdf.webp)
  error_page 404 = @orig_resource;
  set $orig_resource_uri $1/$2;
  try_files $uri $uri/ $orig_resource_uri;
}
location ~ (.+)\.pagespeed\.[\.\-_[:alnum:]]+$ {
  # Default handler
  error_page 404 = @orig_resource;
  set $orig_resource_uri $1;
  try_files $uri $uri/ $orig_resource_uri;
}
## Redirect Pagespeed optimized resources that returns 404 to 
## original resource.
location @orig_resource {
  return 302 $scheme://$server_name$orig_resource_uri;
}

[collapse]

Zabbix обновление 3.2 до 3.4.1

OS: Debian 7 (wheezy)

apt-get update
...
Get:13 http://repo.zabbix.com wheezy/main Sources [1137 B]
Get:14 http://repo.zabbix.com wheezy/main amd64 Packages [2621 B]
Ign http://repo.zabbix.com wheezy/main Translation-en
Fetched 1630 kB in 8s (198 kB/s)
Reading package lists... Done
W: GPG error: http://repo.zabbix.com wheezy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 082AB56BA14FE591

# Починим
curl https://repo.zabbix.com/zabbix-official-repo.key | sudo apt-key add -

Continue reading

Veeam Error NFC storage connection

Veeam Backup Replication 7.0

Сообщение при выполнении backup-а:

Processing 'V02' Error: Client error: NFC storage connection is unavailable. Storage: [stg:52b935ee-ffdedee8-43b8-00199990ce08,nfchost:ha-host,conn:X2]. Storage display name: [R0-500GB].
Failed to create NFC download stream. NFC path: [nfc://conn:X2,nfchost:ha-host,stg:[email protected]/V02.vmx].

Continue reading

Dovecot грузит CPU

Проблема:
Со слов заказчика: Тормозит Веб-сервер, большое количество процессов httpd (более 400).
Симптомы:

Apache действительно показывает большое количество процессов, но внешняя активность клиентов – не высокая. Смотрим на загрузку CPU:


Continue reading

доработанная Simpla класс Scheme

Попалось на одном из проектов Simpla с доработками, которая падает в ошибку 500 с сообщением:
Allowed memory size of 67108864 bytes exhausted (tried to allocate 72 bytes) in /var/www/domain.com/api/Database.php

Причину искали, нашли, выводы:

Добавлена сущность “Узел”, включающая в себя N товаров.
Класс называется Scheme.

При работе с изображениями подчиненных товаров используется функция products->get_images.

Continue reading

Asterisk AmoCRM интеграция

На текущий момент работает:
– Входящие через Asterisk виден Менеджеру в AmoCRM (всплывает окно, видно в карточке клиента)
– Исходящий со страницы AmoCRM выполняется. (см. amocrm.php п.5)
– Записанные звонки проигрываются.
– CDR-загружаются в AmoCRM. (Загадочное место, не нашел внятных объяснений поставщика)
Continue reading