Уведомление на почту о заполнении диска в Linux

  • Linux
Для отправки уведомления у вас должна работать стандартная утилита mail. Адреса кому отправлять уведомление для удобства можно прописать в /etc/aliases, я добавляю строку admins и в нее прописываю нужные адреса.
Сам скрипт (найден где-то на форуме, немного переделан под себя):
#!/bin/bash

##Global vars
threshold=90  ##Порог критического значения свободного места, после 90% шлем уведомление
subject="Disk status $( hostname )"
temp_file=/tmp/disk_status

##Function      : check_disk_space
##Description   : it will check all partitions and it will return                  # non-zero exist status if use >= threshold 

check_disk_space(){
         awk -v threshold=$threshold 'BEGIN{
         status = 0
         cmd = "LC_ALL=C df -Ph" 
         while( cmd | getline ) {
             used=$5 
             if ( $1 != "Filesystem" && int(used) >= threshold ) {
                 printf "CRITICAL : Disk space alert (%s) :: [ Partition %s | mount point %s ]n", 
                 used,$1, $NF > "/dev/stderr"
                 status = 1
             }
         }
    exit status
    }'
}

check_disk_space > $temp_file 2>&1

if [[ -s $temp_file ]]
   then
       mail -s $subject admins < $temp_file
fi

Адресная книга для телефонов Grandstream из FreePBX 13

Адресная книга удобная опция, которую часто спрашивают заказчики, поэтому разберемся как прописать ее для телефонов Grandstream

Сначала нам нужен скрипт который выгрузит номера и их Caller ID (он же поле «Имя») из настроек внутренних номеров FreePBX. Я делал на версии FreePBX 13, возможно будет работать и на более ранних.
<?php
$config = include("db/config.php");

$db = new PDO($config["db"], $config["username"], $config["password"], $config["options"]);

$sql = "SELECT extension, name from users";   // Делаем выборку записей книги
$q = $db->prepare($sql);
$q->execute();
$rows = $q->fetchAll();

unlink($config["pb_file_gs"]);  // Удалим старый файл

$fp = fopen($config["pb_file_gs"],"w+");
fputs($fp, '<?xml version="1.0" encoding="UTF-8"?><AddressBook>');

foreach($rows as $row) {         // Пробежим по всем записям, подготовив XML файл нужного вида
    	fputs($fp, '<Contact>
                        <FirstName>'.$row['name'].'</FirstName>
                        <LastName></LastName>
                        <Phone>
                                   <phonenumber>'.$row['extension'].'</phonenumber>
                                   <accountindex>1</accountindex>
                                   <downloaded>1</downloaded>
                        </Phone>
                        <Groups>
                                   <groupid>4</groupid>
                        </Groups>
            </Contact>
	'); 
}
fputs($fp, '<Group id="4">Server</Group> </AddressBook>');
fclose($fp);
?>


Файл «db/config.php»
<?php
return array(
    "db" => "mysql:host=localhost;dbname=asterisk",
    "pb_file_gs" => "/var/www/html/phonebook/phonebook.xml",
    "username" => "freepbxuser",     //Mysql login
    "password" => "123456", //Mysql password
    "options" => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')
);


Потом заходим в телефон «Phonebook -> Phonebook Management»

Enable Phonebook XML Download -> Enabled, HTTP
Phonebook XML Server Path -> http://serverpbx/phonebook/
Phonebook -> Phonebook Management
Phonebook Download Interval -> 60
Remove Manually-edited Entries on Download -> No

В крон прописываем запуск скрипта, который будет выгружать книгу. Для проверки можно посмотреть логи httpd, чтобы удостовериться, что телефон загружает нужный файл. Чтобы не ждать, можно телефон перегрузить, тогда он при загрузке подтянет телефонную книгу.

Как проверить какие компьютеры в сети уязвимы к WannaCry Wcry?

Есть много способов, wsus, sccm, kaspersky, nod32 и т.д. Но я решил попробовать другой метод, на хабре был скрипт на powershell, который опрашивал сеть и выдавал список уязвимых ПК. Я его немного переделал и попробовал на своей сети. Возможно пригодится и вам.
Список компьютеров нужно поместить в файл comp.csv формата:
name
p1
pc2
...

И сам скрипт
# Powershell
# Скрипт проверки на подверженность атаки Wana decrypt0r 2.0 (WannaCry)
# Не проверяет заражена ли система (мне пока не чем проверить)
# При запуске с клиентского ПК требует установленной RSAT и возможно WMF5
# habrahabr / @sergey-s-kovalev / 15.05.2017 / free for use
cls

$ResultPath = "D:\wannacry\" # Указываем путь до папки, куда складывать отчеты

# Задаем списки для сохранения списков ПК
$SafeHosts = @()
$VulnerabilityHosts = @()
$OfflineHosts = @()
$NotManagedHosts = @()

$SafeDate = Get-Date -Date 11-2-2017 -Hour 0 -Minute 0 -Second 1 # Определяем безопасную дату файла

#имя файла с списком ПК
import-csv d:\wannacry\comp.csv | foreach { 

$ComputerName=$_.name

Write-host "Проверяем",$ComputerName

if ((Test-connection $ComputerName -count 2 -quiet) -eq "True")
  { 
      $Command = {(Get-Item c:\WINDOWS\system32\drivers\srv.sys).LastWriteTime} # Команда которая получает дату файла
     
     $Result = "Empty" # Задаем значение по умолчанию

     # Пробуем запустить команду на удаленном ПК
     Try {$Result = Invoke-Command -ComputerName $ComputerName -ScriptBlock $Command -ErrorAction Stop} Catch {write-host -foreground yellow $ComputerName, "включен, но управление через WinRM недоступно";$NotManagedHosts = $NotManagedHosts + $ComputerName}
     
     
     if ($Result -ne "Empty") { # Если результат не пустой
     # Сравнить дату файла с контрольной датой
        if ($Result -lt $SafeDate) {write-host -foreground red $ComputerName,"уязвим! Дата файла",$Result;$VulnerabilityHosts = $VulnerabilityHosts + $ComputerName} else {write-host -foreground green $ComputerName, "имеет необходимое обновление. Дата файла",$Result;$SafeHosts = $SafeHosts + $ComputerName} 
        }
    # Если результат пинга пустой
  } else {
	write-host -foreground DarkRed $ComputerName, "не в сети, не имеет IP-адреса или фаерволлом запрещен PING";$OfflineHosts = $OfflineHosts + $ComputerName
  } 
}
$LogTime = get-date -format yyyy-MM-dd_HH-mm-ss # Получить текущее время

# Выгрузить списки компьютеров в той или иной категории
$SafeHosts | Out-file -FilePath $ResultPath$LogTime"_-SafeHosts.log" -Encoding utf8 -Force
$VulnerabilityHosts | Out-file -FilePath $ResultPath$LogTime"_-VulnerabilityHosts.log" -Encoding utf8 -Force
$OfflineHosts | Out-file -FilePath $ResultPath$LogTime"_-OfflineHosts.log" -Encoding utf8 -Force
$NotManagedHosts | Out-file -FilePath $ResultPath$LogTime"_-NotManagedHosts.log" -Encoding utf8 -Force

WannaCry лечится Eset NOD32?

Eset сегодня написали на своем сайте следующее:
5. Для детектирования еще неизвестных угроз в наших продуктах используются поведенческие, эвристические технологии. Если вирус ведет себя как вирус — скорее всего, это вирус. Так, облачная система ESET LiveGrid успешно отражала атаку с 12 мая, еще до обновления сигнатурных баз.
Это довольно странно, потому что я видел сам как успешно заразились десятки компьютеров предприятия, на котором использовали NOD32. Базы антивируса были обновлены. Но Windows не была обновлена, да… В этом проблема.
Там же пробовали сканировать зараженный комп касперским с последними базами, тоже не видел. Единственное кто 12-14 мая успешно лечил комп, это Dr.WEB.

Ссылки на официальные обновления Windows от вируса WannaCry Wcry

Патч MS17-010 для исправления уязвимости Windows от вируса WCry
Обновление для системы безопасности Windows XP SP3 (KB4012598)
www.microsoft.com/ru-RU/download/details.aspx?id=55245

Windows 8.1 Update for x64-based Systems (KB4012213)
www.catalog.update.microsoft.com/Search.aspx?q=KB4012213

Windows 8.1 Update (KB4012213)
www.catalog.update.microsoft.com/Search.aspx?q=KB4012213

Каталог обновлений для Windows 7 и Windows 2008 R2
www.catalog.update.microsoft.com/Search.aspx?q=KB4012215

Ежемесячный набор исправлений качества системы безопасности для Windows 7 (KB4012215), март 2017 г.
March, 2017 Security Monthly Quality Rollup for Windows 7 (KB4012215)
download.windowsupdate.com/d/msdownload/update/software/secu/2017/03/windows6.1-kb4012215-x86_e5918381cef63f171a74418f12143dabe5561a66.msu

Ежемесячный набор исправлений качества системы безопасности для систем Windows 7 на базе процессоров x64 (KB4012215), март 2017 г.
March, 2017 Security Monthly Quality Rollup for Windows 7 for x64-based Systems (KB4012215)
download.windowsupdate.com/c/msdownload/update/software/secu/2017/03/windows6.1-kb4012215-x64_a777b8c251dcd8378ecdafa81aefbe7f9009c72b.msu

Накопительный пакет обновления для Windows 10 Version 1511 (KB4013198)
Накопительный пакет обновления для Windows 10 Version 1511 для систем на базе процессоров x64 (KB4013198)
www.catalog.update.microsoft.com/Search.aspx?q=KB4013198

Накопительный пакет обновления для Windows 10 Version 1607 (KB4013429)
Накопительный пакет обновления для Windows 10 Version 1607 для систем на базе процессоров x64 (KB4013429)
Накопительный пакет обновления для Windows Server 2016 для систем на базе процессоров x64 (KB4013429)
www.catalog.update.microsoft.com/Search.aspx?q=KB4013429

FreePBX 13 не применяет изменения в конфигурации

FreePBX 13 в Centos 7 выдал ошибку:
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)
Exception: Unable to connect to Asterisk through the CLI in file /var/lib/asterisk/bin/retrieve_conf on line 30
Stack trace:
1. Exception->() /var/lib/asterisk/bin/retrieve_conf:30

А дело в том, что изменились права на какой-то папке и нужно обновить права, запустим для этого скрипт
/usr/sbin/fwconsole start

Можете добавить его в запуск при загрузке в файл /etc/rc.d/rc.local

Не работает fail2ban... опять

  • Linux
По неведомой причине у меня уже 2ой раз после обновления ломается fail2ban. Сначала перестал работать парсер, но получилось найти в сети у кого была такая же проблема и решение. Проблема была в том, что fail2ban не находил в логах нужных записей, все время показывал, что ничего не обнаружено. Для решения проблемы нужно было вернуть старый парсер, для чего в конфиге добавить такую строку:
[DEFAULT]
backend = gamin

Но разработчики не спят, а кодят! Поэтому после следующего обновления через yum update прилетело обновление fail2ban до 0.9.2. И вдруг перестало работать обнаружение проблем в ssh. При старте выдает «jail ssh does not exist». Попытки перенастроить и нагуглить такую проблему оказались безрезультатны. Поэтому обновил fail2ban вручную до актуальной версии 0.9.6. Вроде работает :)
Для обновления выполните следующее:
cd /usr/src
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban/
python setup.py install
service fail2ban restart

Как узнать на каком порту mac адрес?

Для диагностики иногда требуется посмотреть за каким портом микротика находится определенный MAC адрес. Если просто зайти IP — Arp, то мы увидим таблицу mac адресов, но все на одном bridge интерфейсе. Чтобы узнать на каком он интерфейсе физически, нужно смотреть тут:
[admin@MikroTik] > interface bridge host print 
Flags: L - local, E - external-fdb 
BRIDGE            MAC-ADDRESS       ON-INTERFACE          AGE                 
bridge-LAN        00:0B:82:95:B7:1D ether10-slave-local   0s                  
bridge-LAN        00:1C:F0:CE:A7:A9 ether10-slave-local   1s                  
bridge-LAN        00:1F:16:F0:AE:A7 ether9-slave-local    0s                  
bridge-LAN        0C:84:DC:12:4C:49 wlan1                 0s                  
bridge-LAN        34:14:5F:77:46:0D wlan1                 3m32s               
bridge-LAN        34:69:87:93:A2:BD wlan1                 52s                 
bridge-LAN        50:2E:5C:C3:5F:94 wlan1                 44s                 
bridge-LAN        70:8B:CD:32:9E:C9 wlan1                 6s                  
bridge-LAN        AC:22:0B:14:5C:AE ether5                0s                  
bridge-LAN        AC:22:0B:14:5D:45 ether7-slave-local    1s                  
bridge-LAN        AC:22:0B:14:60:C7 ether10-slave-local   0s                  
bridge-LAN        AC:22:0B:14:61:B1 ether10-slave-local   0s                  
bridge-LAN        B8:70:F4:FF:18:F6 ether9-slave-local    0s                  
bridge-LAN        B8:98:F7:F1:30:C7 wlan1                 5s

Как отключить подписку в DepositPhotos

Это оказалось непростой задачей :) Пролазил все их менюшки, везде мне предлагалось только расширить пакет услуг. В FAQ тоже ничего не было, поэтому пришлось обращаться в техподдержку. Там подсказали вот что:
Для непрерывного сервиса на всех подписках включено автоматическое продление. Вы всегда можете самостоятельно отключить автоматическое продление в Вашем кабинете на сайте. Для того, чтобы отменить автопродление, пройдите в меню покупателя ru.depositphotos.com/home.html -> Настройки подписки (выпадающее окно) -> переключите с ON на OFF и далее следуйте подсказкам.

Пройдите по ссылке ru.depositphotos.com/image.html и выберите Настройки

Настройка fail2ban для защиты Elastix от подбора пароля для веб-интерфейса

  • Linux
Мануалов по настройке защиты asterisk много, а защиты самого elastix почему-то не нашел. Вопросы на форумах висят без ответов. Сделал сам, метод работает.
Создадим фильтр
vim /etc/fail2ban/filter.d/elastix-login.conf

[Definition]
#_daemon = asterisk
# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P\S+)
# Values:  TEXT

#[Jul 14 20:47:04] LOGIN asdf: Authentication Failure to Web Interface login. Invalid user asdf from 192.168.0.100.
#[Nov 10 20:56:01] LOGIN admin: Authentication Failure to Web Interface login. Failed password for admin from 37.176.189.82.
#
failregex = LOGIN .*: Authentication Failure to Web Interface login. Invalid user .* from <HOST>.
            LOGIN .*: Authentication Failure to Web Interface login. Failed password for .* from <HOST>.

ignoreregex =

И добавим правило в jail.conf
[elastix]
enabled = true
filter = elastix-login
action = iptables-multiport[name=NoLoginFailures, port="http,https"]
logpath = /var/log/elastix/audit.log
bantime = 3600
maxretry = 3

Защита SSH с Fail2Ban в CentOS 7

  • Linux
Соединение по SSH к вашему серверу, доступному с интернета часто подвергается атакам. Fail2ban самое популярное средство для защиты от перебора паролей. Сервис сам анализирует неудачные попытки входа и создает правила в iptables, блокирующие доступ злоумышленникам.

Ниже проверенный мануал по установке Fail2ban на сервере CentOS 7.

Читать дальше →

Asterisk GUI

Начал писать свой веб-интерфейс для asterisk, на php + js + html + ajax
Проект opensource. Пока еще на начальной стадии, но уже кое что умеет.
Из того, чего не видел у других — отображение очередей с статусами агентов и с кем они разговаривают (с привязкой к очереди), видно не отвеченные вызовы и нагрузку на очереди. Да, похожее есть в FOP2, но во-первых платно, во-вторых не совсем так.

Ссылка на github.com

Прошу попинать и высказать фидбек или хотелки, может по разработке подскажете что полезное.

Скриншот

Как добавить в очередь внешнего абонента

  • Asterisk
Нашел на форумах, возможно пригодится:

Вы можете добавить в очередь любой канал, в том числе внешний номер:

member => Local/12345@default

Где [default] наш контекст.

И так же можно использовать такую конструкцию:
member => SIP/12345@yourprovider

Как обновить PHP на CentOS 5 (6) до PHP 5.4 или PHP 5.5

  • Linux
Метод только, что проверил на Centos 5.11, обновил PHP 5.11 до PHP 5.5.
Смотрим какие пакеты PHP установлены:
# yum list installed | grep php

Если что-то есть, удаляем:
# yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

Добавьте PHP 5.5 пакеты в yum если у вас CentOS 5.x
# rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm

Для CentOS 6.x:
# rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

Теперь можно посмотреть какие пакеты доступны (5.4: php54w or 5.5: php55w):
# yum list available | grep php

Если нужна определенная версия:
# yum list available | grep php54

Ставим пакеты PHP 5.4 или 5.5, для примера я ставил php55:
# yum install php55w.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-gd.x86_64 php55w-ldap.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysql.x86_64 php55w-pdo.x86_64

Теперь можно посмотреть, какая версия установлена
# php -v
PHP 5.5.38 (cli) (built: Jul 21 2016 13:42:32)
Copyright © 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright © 1998-2015 Zend Technologies

Перезапустите сервис httpd:
# service httpd restart

Как собрать в архив все файлы rpm-пакета?

  • BASH
В продолжение аналогичного поста о dpkg предлагаю использовать следующий «наивный» вариант скрипта, собирающего те файлы, которые были скопированы в систему при установке rpm-пакета. Файлы, созданные автоматически INSTALL-скриптом пакета при этом «подобраны» не будут.

Для запуска скрипта нужно иметь возможность выполнять sudo под суперпользователем: это связано с тем, что немалая часть пакетов устанавливает файлы с эксклюзивным доступом к ним root'а: в таких случаях попытка создать tar-архив провалиться с треском.

Собственно код:

#!/bin/bash
[[ $1 == '-x' ]] && { shift; export TRACE=1; set -x; }
[[ $1 ]] || { echo 'You must specify package name or path to some file installed from the package' >&2; exit 1; }

if [[ ${1:0:1} == '/' ]]; then
        FILE=$1
        if ! PACKAGE=$(rpm -qf $(readlink -e $FILE)) 2>/dev/null || ! [[ $PACKAGE ]]; then
                echo 'Cant determine package name by file name' >&2
                exit 2
        fi
else
        PACKAGE=$1
        if ! PACKAGE=$(rpm -q $PACKAGE); then
                echo "This package seems to be not installed" >&2
                exit 3
        fi
fi

sudo bash <<EOSCRIPT
        tar -cjf "/tmp/${PACKAGE}.tbz2" -T <(
          while read f; do
                  [[ -d \$f ]] || echo "\$f"
          done < <(rpm -ql '${PACKAGE}')
        )
        chown "$(whoami)":"$(id -gn)" "/tmp/${PACKAGE}.tbz2"
        echo "/tmp/${PACKAGE}.tbz2 created" >&2 
EOSCRIPT


UPD: Поправил код скрипта, избавив его от 2-х вызовов sudo и пофиксив ошибки отсутствия присвавивания FILE=$1, а также ошибку сохранения короткого имени пакета, если было передано именно таковое.

Однострочник: получить дамп заголовков HTTP-трафика на первом ethernet-интерфейсе

Некоторые однострочники просто поражают своей лаконичностью, но могут быть не вполне функциональны.
Некоторые — написаны откровенно неэстетично и содержимое их вызывает блевотный рефлекс, но когда читать man'ы лениво — бегло сканируешь незамыленным глазом чей-то шедевр — и копируешь как есть, потому что… ну да, они «просто делают свою работу» (прямо как офисный планктон в Москве: просто делает что-то… как-то).
А есть однострочники, которые вроде и полезны весьма условно, но представляют интерес чисто академический: хочется разобрать их на винтики и понять, как же хиромантия сия устроена, что за магия заставляет вращаться чудесные шестерёнки Unix-way.
В качестве наглядного примера представляю на суд моих благодарных читателей (кстати, в последнее время я был безмерно счастлив отвечать на письма зело многочисленных поклонников моего скромного творчества) — вот этот многострочник, составленный из двух частей: одну легко найти на StackOverflow, а вторую приписал Ваш Покорный Слуга (здесь и далее — ВПС).

Вот:

sudo tcpdump -i $(ifconfig | sed -nr '/^[^[:space:]]/{ s%^([^[:space:]:]+).*$%\1%; h; b X}; /^\s*ether/{ g; p; q }; :X') -A -s 10240 'tcp port 3128 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | egrep --line-buffered "^........(GET |HTTP\/|POST |HEAD )|^[A-Za-z0-9-]+: " | sed -r 's/^........(GET |HTTP\/|POST |HEAD )/\n\1/g'


Те истинные герои Совнгарда, которые первыми осознают и прочувствуют Суть работы механизмов радости в контексте представленного выше примера — да не сочтут они за труд отписаться в комментариях к посту, дабы подвиг их не канул в Лету.

Аминь!

P.S. Если вы низвергаетесь в грешный мир этих наших интернетов не через SQUID на дефолтном порту 3128, то замените циферки 3128 на что-то более другое. Спасибо!

4 проблемы устаревших систем телефонии, которые может решить IP-телефония

Недавнее исследование, проведенное Hanover Research показало, что, несмотря на рост электронной почты, видео и социальных медиа, 74% представителей малого и среднего бизнеса (SMB) говорит, что голосовая связь остается крайне или очень важным средством для бизнеса. Тем не менее, те предприятия, которые до сих пор имеют традиционные системы аналоговой телефонии (и которых до сих пор большинство), получили 4 проблемы, которые им придется разрешить в конце концов. И все они могут быть решены с помощью перехода на системы IP-телефонии (VoIP).

Устаревшее оборудование и сопровождение

Аппаратное обеспечение системы телефонии становится устаревшим, как только новая, передовая технология становится доступной. Устаревшие системы имеют типичные проблемы в виде поиска запчастей, которые бывают в наличии только на вторичном рынке, поэтому стоимость ремонта и поддержки повышаются. Стоит добавить техников и инженеров, которые были официально обучены на старых системах телефонии, которые уходят на пенсию или покидают компанию, а искать и обучать новых сложная задача. С повышенными рисками безопасности, возрастающими требованиями клиентов в коммуникациях с бизнесом, а также необходимостью повышения производительности, модель ограниченного в возможностях голосового общения быстро становится делом прошлого.

Ограниченная емкость и масштабируемость

Хорошо, когда ваша компания растет. И плохо, но многие предприятия перерастают свою инфраструктуру и им становится необходима система телефонии, которая может обрабатывать тот увеличивающийся объем вызовов, количества абонентов и данных, передаваемых по сети. Добавление новых территориально удаленных офисов в большинстве случаев является кошмаром в случае с традиционной системой, так как оборудование требуется в каждом новом здании. В случае с VoIP, так как все сотрудники в одной и той же IP-сети, не требуется никакого дополнительного оборудования, что экономит время и деньги. С традиционной АТС, добавление дополнительных линии для сотрудников может занять несколько недель. Если у вас система IP телефонии, процесс занимает несколько минут. Эта поддержка роста работает в обоих направлениях, например если у вас выдался тяжелый год и ваши потребности в росте уменьшаются, вы можете удалить часть линий и платить только за тот объем номеров и минут, которые вы используете.

Особенности и функциональные возможности

Системы IP-телефонии умеют маршрутизировать клиентов в соответствующий отдел без проигрывания меню. Зачем? Другие компании, которые уже реализовали системы VoIP имеют возможности для превосходного обслуживания клиентов, так что если ваш бизнес этого не делает, конкуренты будут воровать их. Сотрудники и клиенты нуждаются расширенных функциональных возможностях, чем 3-полосный вызов и идентификатор вызывающего абонента. Видео чат, обмен мгновенными сообщениями, состояние присутствия, голосовая почта по электронной почте, записи телефонных разговоров, аналитические функции, которые повышают производительность и качество обслуживания клиентов. Эти и другие функции предлагаются в решениях унифицированных коммуникаций (UC).

Ежемесячные сборы

Компании всегда ищут способы сократить расходы, но, что большинство не знают, что делать если это их телефонный счет. Когда новые клиенты звонят нам, один из вопросов, который мы задаем им, какой телефонный счет был в прошлом месяце. Девять из десяти из них не имеют ни малейшего представления, но они знают, что они, вероятно, должны знать, так как много денег, похоже, расходуется на связь каждый месяц. Переход на VoIP может сэкономить до 70% от ваших ежемесячных расходов на связь, немедленно. Если вы выбираете облачную систему IP-телефонии, вы сможете получить новую телефонную систему, которая заработает в течение часа (а не недель) и без каких-либо затрат. Кроме того, многие тарифные планы VoIP дают возможность ограниченного или многоканального плана оплаты, так что вы можете оплатить то количеству линий или минут, что используете в зависимости от того, что сейчас имеет больше смысла для вашей бизнес-модели.

Если ваш бизнес является одним из многих, которые до сих пор платят, чтобы поддерживать традиционную телефонную систему, вы обязаны в конечном счете прийти к одной, если не ко всем, из этих проблем. Когда бизнес использует систему телефонии для ежедневного общения с вашими клиентами, самый безопасный шаг, вложиться в телефонную систему, которая проста в обслуживании, масштабируемая, функциональная, и экономически эффективная.

Читать дальше →