По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Многие слышали, но боялись "пощупать" страшного зверя по имени FreeSwitch (FS). Уверяю Вас, что страшного ничего нет. Правда придется перестроить свои мозги на его понимание. Он сильно отличается от Asterisk. И хотя FS такая же программная АТС как и Asterisk, но задачи у них разные. FS позиционируется как "провайдерская" АТС, а Asterisk офисный вариант. Несмотря на это, я его использую даже, как говорится, "для дома, для семьи", то есть дома на одноплатнике Orange PI Plus 2E. Так как на нем стоит Ubuntu 16, то описывать установку я буду для Ubuntu из исходников.
Если кому-то нужно попроще, то может установить на Debian (разработчики именно его рекомендуют.
Как поставить из пакетов можно почитать здесь https://freeswitch.org/confluence/display/FREESWITCH/Linux
А для самых искушенных даже на Windows :) https://freeswitch.org/confluence/display/FREESWITCH/Windows
Сначала необходимо выполнить обновление системы:
apt-get update
apt-get upgrade
Установим зависимости:
apt-get install autoconf automake devscripts gawk g++ git-core libjpeg-dev libncurses5-dev libtool make python-dev gawk pkg-config libtiff5-dev libperl-dev libgdbm-dev libdb-dev gettext libssl-dev libcurl4-openssl-dev libpcre3-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libedit-dev libldns-dev libpq-dev libtool-bin libopus-dev libshout3-dev libmpg123-dev libmp3lame-dev libsndfile-dev libavresample-dev libswscale-dev libpng-dev libpng++-dev mpg123
После этого перезагружаемся:
reboot
Создаем папку и клонируем гит:
cd /usr/src
git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd /usr/src/freeswitch
./bootstrap.sh –j
Подключаем необходимые модули:
mcedit modules.conf
+ mod_rtmp
+ mod_directory
+ mod_callcenter
+ mod_dingaling
+ mod_shout
+ mod_cidlookup
+ mod_curl
+ mod_xml_curl
Мне нужно было использовать zrtp и хранить данные в базе PostgreSQL (кстати, разработчики считают MySQL недобазой :)) Собираем с ключами:
./configure --enable-zrtp --enable-core-pgsql-support
make
make install
Если при сборке FS ругается на openssl (switch_core_cert.lo) или что то подобное, то нужно проверить версию. Под 1.1.0 не устанавливается. Нужно ставить 1.0.2
Устанавливаем звуковые файлы:
8 kHz Standard Audio
make sounds-install
make moh-install
16 kHz High Definition Audio
make hd-moh-install
make hd-sounds-install
32 kHz Ultra High Definition Audio
make uhd-moh-install
make uhd-sounds-install
48 kHz CD Quality Audio
make cd-sounds-install
make cd-moh-install
Установим русские звуковые файлы:
make sounds-ru-install
make cd-sounds-ru-install
make uhd-sounds-ru-install
make hd-sounds-ru-install
Установим права и владельцев:
adduser --disabled-password --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH Voice Platform" --ingroup daemon freeswitch
chown -R freeswitch:daemon /usr/local/freeswitch/
chmod -R o-rwx /usr/local/freeswitch/
Создадим init скрипт для запуска /etc/init.d/freeswitch:
#!/bin/bash
### BEGIN INIT INFO
# Provides: freeswitch
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Freeswitch debian init script.
# Author: Matthew Williams
#
### END INIT INFO
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
DESC="Freeswitch"
NAME=freeswitch
DAEMON=/usr/local/freeswitch/bin/$NAME
DAEMON_ARGS="-nc"
PIDFILE=/usr/local/freeswitch/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
FS_USER=freeswitch
FS_GROUP=daemon
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
#
# Function that sets ulimit values for the daemon
#
do_setlimits() {
ulimit -c unlimited
ulimit -d unlimited
ulimit -f unlimited
ulimit -i unlimited
ulimit -n 999999
ulimit -q unlimited
ulimit -u unlimited
ulimit -v unlimited
ulimit -x unlimited
ulimit -s 240
ulimit -l unlimited
return 0
}
#
# Function that starts the daemon/service
#
do_start()
{
# Set user to run as
if [ $FS_USER ] ; then
DAEMON_ARGS="`echo $DAEMON_ARGS` -u $FS_USER"
fi
# Set group to run as
if [ $FS_GROUP ] ; then
DAEMON_ARGS="`echo $DAEMON_ARGS` -g $FS_GROUP"
fi
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null --
|| return 1
do_setlimits
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --
$DAEMON_ARGS
|| return 2
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
return 0
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
;;
#reload|force-reload)
#
# If do_reload() is not implemented then leave this commented out
# and leave 'force-reload' as an alias for 'restart'.
#
#log_daemon_msg "Reloading $DESC" "$NAME"
#do_reload
#log_end_msg $?
#;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
Установим ссылку на CLI
cd /usr/local/bin/
ln -s /usr/local/freeswitch/bin/fs_cli fs_cli
Проверим всё ли запускается:
cd /usr/local/freeswitch/bin
./freeswitch
freeswitch@s02d> sofia status (или просто нажимаем F5)
freeswitch@s02d> list_users
Если нет ошибок, и высветились профили и пользователи, то можно отключаться:
freeswitch@s02d> shutdown
Меняем стандартный пароль для всех пользователей (указав свой):
mcedit /usr/local/freeswitch/conf/vars.xml
<X-PRE-PROCESS cmd="set" data="default_password=lkhd456hkhggl2"/>
Включаем русский язык, если нужно:
mcedit /usr/local/freeswitch/conf/vars.xml
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/ru/RU/elena"/>
<X-PRE-PROCESS cmd="set" data="default_language=ru"/>
После правки применяем изменения:
fs_cli -x "reloadxml"
Устанавливаем необходимые кодеки:
mcedit /usr/local/freeswitch/conf/vars.xml
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,PCMU,PCMA,VP8"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,PCMU,PCMA,VP8"/>
Ну и в конце стартуем FS:
service freeswitch start
Для подключения к FS используем следующую команду:
fs_cli -rRS
Вот и всё. Мы установили и запустили FreeSwitch. О том, как настраивать пользователей, гейты, диалплан читайте в следующих статьях.
Пока ты читаешь эту статью, в Интернете идёт настоящая война. Сотни тысяч ботов, сканируют сеть в поисках уязвимых систем, доступов со слабыми паролями, открытых баз данных и отсылают тонны спама с вредоносными вложениями. Миллионы зараженных устройств в огромных ботнетах готовы направить терабайты трафика, чтобы положить какой-нибудь ресурс.
Сейчас мы попробуем вооружить тебя знаниями о том, какие бывают виды сетевых атак, вредоносного ПО и других угроз информационной безопасности. Погнали!
Типы сетевых атак
Начнем с самой известной атаки - DoS - Denial of Service (он же отказ в обслуживании). В ее случае злоумышленник отправляет огромное количество запросов к объекту атаки, перегружая его и тем самым, выводя из строя. Цель этой атаки - перегрузить системные ресурсы объекта и тем самым нарушить его нормальную работу.
Возможно, ты также слышал про DDoS (или ддос), с еще одной буквой D, которая означает Distributed - распределенный. Разница между ними в том, что в случае DDoS, атака запускается не с одного компьютера, а при помощи множества подконтрольных злоумышленнику устройств, которые заражены вредоносным ПО, заставляющим их совершать атаку - это называется ботнет. Ботнеты могут быть очень большими. Например, самый большой ботнет Necurs только в 2017 году насчитывал свыше 6 миллионов скомпрометированных устройств.
Что же это за дырявые устройства такие? Это, как правило “умные” девайсы интернета вещей IoT - лампочки, пылесосы, часы, холодильники, двери и окна, владельцы которых даже не догадываются, что они давно взломаны. Так что, пока ты по дороге домой приказываешь своей “умной” пароварке готовить рагу, она может участвовать в атаке на какой-нибудь банк на другом конце планеты.
Кстати, ботнеты применяют не только для DDoS атак, гораздо чаще их применяют для массовой рассылки писем или проще говоря - спама. Однако, это не тот спам, к которому ты привык.
Спам, о котором мы говорим, обычно маскируется под совершенно нормальное почтовое сообщение. Например, это может быть поддельное письмо от известной доверенной организации с каким-нибудь документом во вложении. Но как только ты откроешь этот документ, то запустишь в свой компьютер какой-нибудь страшный вредонос, который откроет к нему доступ злоумышленнику или просто заразит твою систему.
Или тебя могут попросить перейти по ссылке на внешне знакомый сайт и ввести там свой логин и пароль. Это, кстати, называется фишинг (phishing). Но самое простое и самое прибыльное для злоумышленника - взять твой компьютер в заложники! Для этого он может подсунуть туда шифровальщик, который зашифрует все файлы операционный системы и сделает их нечитаемыми, а затем потребовать выкуп за ключ для расшифровки в биткоинах. Это называется вымогательское ПО или - ransomware.
Помимо шифровальщиков, на твоём компьютере, планшете или мобильном телефоне также могут оказаться:
Бэкдоры (Backdoor) - программы, которые позволяют злоумышленнику удаленно управлять твоим девайсом или устанавливать на него всякую дрянь
Майнеры (Miner) - скрытая программа, которая тихонечко добывает крипту для злоумышленника за счет твоего компьютера
Банкеры (Banker) - крадут с твоего девайса всю информацию, связанную с онлайн банкингом и других платежных системах
Шпионские программы (Spyware) - отслеживают что ты набираешь с клавиатуры, следят за тем, что происходит на твоем рабочем столе, записывают видео и делают скриншоты и даже - могут получать доступ к твоей вэб камере или микрофону.
Рекламное ПО (Adware) - наградит тебя надоедливым, неудаляемым рекламным баннером, от которого невозможно избавиться. Есть также отдельный подкласс такого ПО - Pornware. О содержимом таких баннеров вы догадываетесь
Руткиты (Rootkit) - скрывают пребывание любого из озвученных вредоносов на твоем девайсе - стирает логи, прячет процессы.
Всю эту гадость принято объединять одним определением - Троян (Trojan), в честь знаменитого Троянского коня.
Вирусы - программы, которые заражают файлы на компьютере вредоносным кодом и инфицируют системы вокруг.
Черви - тоже распространяют себя от системы к системе, но используют сетевые протоколы или уязвимые устройства. WannaCry, например, распространялся через уязвимость в протоколе SMB. Он просто сканировал весь интернет и нашел серверы с открытым портом 445, на котором и живёт SMB.
Вообще, сканирование портов - это первые шаги для совершения атаки. Злоумышленники ищут в Интернете известные порты прикладных уровней - и пробуют пробить уязвимость этих протоколов, например - подсунуть туда какой-нибудь вредоносный код, который система возможно обработает. А если повезет - то и вовсе получить доступ к открытой информации, живущей на этом порту.
Ну, а если владелец всё таки защитил доступ к сетевому ресурсу паролем, то злоумышленник может попробовать метод полного перебора или - Bruteforce, - то есть ввод всех возможных комбинаций логина и пароля, и, если ничто не будет блокировать его действия, то рано или поздно такая комбинация будет найдена.
Помни - пароль только из цифр или только из букв может быть взломан меньше чем за секунду! Поэтому стоит воспользоваться нашим генератором устойчивых паролей.
На этом все! А пока - сохраняйте спокойствие, не открывайте письма с непонятными вложениями, не переходите по подозрительным ссылкам, не используйте слабые пароли, не вводите их на подозрительных сайтах, не устанавливайте программы из недоверенных источников, используйте антивирус, носите шапочку из фольги, мойте руки и тщательно укрепляйте рубежи своей IT инфраструктуры.
Данная статья будет посвящена одному из основных протоколов IP телефонии – SIP (Session Initiation Protocol - протокол установления сеанса), разработанный одним из отделений IETF - MMUSIC (Multiparty Multimedia Session Control). Описывается в спецификации RFC 2543 и RFC 3261.
SIP – это протокол прикладного уровня модели OSI, описывающий способы и правила установления интернет-сессий для обмена мультимедийной информацией, такой как: звук, голос, видеоряд, графика и др. Для соединения обычно используется порт 5060 или 5061. В качестве транспортных протоколов SIP поддерживает: UDP, TCP, SCTP, TLS . Протокол SIP широко применяется в офисной IP-телефонии, видео и аудио-конференциях, он-лайн играх и др.
Элементы
Протокол SIP имеет клиент-серверную модель. Основными функциональными элементами являются:
Абонентский терминал. Устройство, с помощью которого абонент управляет установлением и завершением звонков. Может быть реализован как аппаратно (SIP-телефон), так и программно (Софтфон).
Прокси-сервер. Устройство, которое принимает и обрабатывает запросы от терминалов, выполняя соответствующие этим запросам действия. Прокси-сервер состоит из клиентской и серверной частей, поэтому может принимать вызовы, инициировать запросы и возвращать ответы.
Сервер переадресации. Устройство, хранящее записи о текущем местоположении всех имеющихся в сети терминалах и прокси-серверах. Сервер переадресации не управляет вызовами и не генерирует собственные запросы.
Сервер определения местоположения пользователей. Представляет собой базу данных адресной информации. Необходим для обеспечения персональной мобильности пользователей.
Важные преимущества
Так как группа MMUSIC разрабатывала протокол SIP с учётом недостатков предшествующего ему H.323, то SIP обзавелся следующими достоинствами:
Простота
Так как SIP унаследовал текстовый формат сообщений от HTTP, то в случае если одному терминалу при установлении соединения неизвестна какая-либо возможность, известная другому, то данный факт попросту игнорируется. Если же такая ситуация возникнет с протоколом H.323, то это приведет к сбою соединения, т.к H.323 имеет бинарный формат сообщений и все возможности протокола описаны в соответствующей документации.
Масштабируемость
В случае расширения сети, при использовании протокола SIP , существует возможность добавления дополнительного числа пользователей.
Мобильность
Благодаря гибкой архитектуре протокола SIP, пропадает необходимость заново регистрировать пользователей, в случае смены ими своего местоположения.
Расширяемость
При появлении новый услуг существует возможность дополнят протокол SIP новыми функциями.
Взаимодействие с другими протоколами сигнализации
Имеется возможность использования протокола SIP с протоколами сигнализации сетей ТфОП, такими как DSS-1 и ОКС7.
Типы запросов
Для организации простейшего вызова в протоколе SIP, предусмотрено 6 типов информационных запросов:
INVITE — Инициирует вызов от одного терминала к другому. Содержит описание поддерживаемых сервисов (которые могут быть использованы инициатором сеанса), а также виды сервисов, которые желает передавать инициатор;
ACK —Подтверждение установления соединения адресатом. Содержит окончательные параметры сеанса связи, выбранные для установления сеанса связи;
Cancel — Отмена ранее переданных неактуальных запросов;
BYE — Запрос на завершение соединения;
Register — Идентификация местоположения пользователя;
OPTIONS — Запрос на информацию о функциональных возможностях терминала, обычно посылается до фактического начала обмена сообщениями INVITE, ACK;
SIP - ответы
Определено 6 типов ответов, которым прокси-сервер описывает состояние соединения, например: подтверждение установления соединения, передача запрошенной информации, сведения о неисправностях др.
1хх — Информационные ответы;
Информационные ответы сообщают о ходе выполнения запроса и не являются его завершением. Остальные же классы ответов завершают выполнение запроса.
2хх — Успешное окончание запроса;
3хх — Информация об изменения местоположения вызываемого абонента;
4хх — Информация об ошибке;
5хх — Информация об ошибке на сервере;
6хх — Информация о невозможности вызова абонента (пользователь с таким адресом не зарегистрирован, или пользователь занят).
В следующей статье мы рассмотрим основные сценарии установления соединения по протоколу SIP, а также его модификации и дополнительные функции.