По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
OpenSIPS - это SIP-прокси-сервер с открытым исходным кодом операторского уровня, используемый для сигнализации SIP, и может обрабатывать все типы операций SIP. Он используется многими провайдерами телекоммуникационных услуг, телефонии и операторами связи из-за его надежности и производительности.
Итак, если вы, ребята, хотите обрабатывать тысячи одновременных вызовов и SIP-сессий, тогда OpenSIPS - ваш выход. Существует множество различных сценариев, в которых openSIPS может хорошо играть в вашей инфраструктуре. Некоторые из них:
OpenSIPS как SIP Edge Proxy
OpenSIPS в качестве среднего регистратора или главного сервера регистрации
OpenSIPS как входящий и исходящий шлюз
OpenSIPS как балансировщик нагрузки
И многое другое
Примечание: OpenSIPS обрабатывает только SIP-сигнализацию, а не медиа. Для обработки мультимедиа вы можете использовать RTPPROXY или RTPENGINE.
Как установить OpenSIPS 3 из исходного кода на Debian 9
Являясь модульным, мощным и гибким SIP-сервером, OpenSIPS можно установить на все основные дистрибутивы Linux. В этом уроке мы будем использовать Debian 9 в качестве базовой операционной системы. Итак, вот шаги, которым мы должны следовать, чтобы запустить наш первый экземпляр OpenSIPS и запустить его:
Установите все необходимые зависимости
Склонируйте последнюю версию репозитория OpenSIPS
Скомпилируйте это
Создайте файлы конфигурации
Настройте сервис OpenSIPS
Настройте OpenSIPS-CLI
Создайте базу данных OpenSIPS
Запустите сервер OpenSIPS 3
Поэтому, прежде чем мы начнем устанавливать зависимости, нам нужно сначала понять, как мы будем настраивать наш экземпляр OpenSIPS. Что ж, базовому серверу OpenSIPS не нужно много библиотек или зависимостей, но мы будем использовать панель управления OpenSIPS позже вместе с поддержкой MySQL, поэтому мы установим некоторые другие зависимости, чтобы мы могли легко скомпилировать некоторые дополнительные модули OpenSIPS.
Шаг 1: Установка всех зависимостей
Давайте обновим все списки пакетов, которые у нас есть.
apt update
Теперь давайте установим все зависимости вместе с сервером MySQL (MariaDB).
apt install git gcc bison flex make openssl perl libdbi-perl libdbd-mysql-perl libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl libberkeleydb-perl mysql-server ssh libxml2 libxml2-dev libxmlrpc-core-c3-dev libpcre3 libpcre3-dev subversion libncurses5-dev git ngrep libssl-dev net-tools
После того, как мы установили все эти пакеты, нам нужно установить пакеты devel для сервера MySQL.
Для MariaDB:
apt install libmariadbclient-dev-compat sudo
Для сервера MySQL:
apt install libmysqlclient-dev
Теперь нам нужно установить зависимости для сервера micro httpd, который OpenSIPS будет использовать для прослушивания соединений JSON RPC.
apt install libmicrohttpd-dev pkg-config libjsoncpp-dev libjson-c-dev
ln -s /usr/include/jsoncpp/json/ /usr/include/json
wget http://ftp.us.debian.org/debian/pool/main/j/json-c/libjson-c3_0.12.1-1.1_amd64.deb
dpkg -i libjson*
Все зависимости должны быть установлены сейчас, и теперь мы готовы клонировать исходный код openSIPS 3.
Примечание: не забудьте установить имя пользователя и пароль root для msyql, используя - mysql_secure_installation
Шаг 2: Клонирование репозитория OpenSIPS
Мы будем клонировать последнюю версию репозитория OpenSIPS 3 в /usr/src
cd /usr/src ; git clone https://github.com/OpenSIPS/opensips.git -b 3.0 opensips-3.0
Шаг 3: Скомпилируйте исходный код
Чтобы сначала скомпилировать модули OpenSIPS или исходный код, перейдите в каталог opensips-3.0.
cd /usr/src/opensips-3.0
Теперь наберите
make menuconfig
Откроется главное меню конфигурации OpenSIPS. Из этого меню мы можем скомпилировать OpenSIPS и сгенерировать наши конфигурационные скрипты. Поэтому, прежде чем мы скомпилируем, нам нужно включить дополнительный модуль, который нам нужен для поддержки MySQL и JSON.
Теперь давайте выберем несколько дополнительных модулей, которые нам нужны. Итак, перейдите к Configure Compile Options -> Configure Excluded Module (Настройка параметров компиляции -> Настройка исключенного модуля).
Мы должны выбрать 4 модуля - db_mysql, dialplan, json, httpd
Примечание: если вы хотите выбрать или скомпилировать какой-либо другой модуль, обязательно установите его зависимости.
Теперь вернитесь, используя клавишу со стрелкой влево и сохраните изменения. И как только мы выберем наши модули для компиляции, тогда просто выберите Compile and Install OpenSIPS
Компиляция началась, и если вы правильно установили все зависимости, то ошибок быть не должно.
После успешной компиляции вам будет предложено нажать любую клавишу, чтобы вернуться в главное меню.
Шаг 4: Генерация скрипта конфигурации OpenSIPS.
Скрипт конфигурации OpenSIPS - это мозг сервера OpenSIPS, он контролирует всю маршрутизацию, обработку SIP-трафика, регистрации и почти все операции SIP. Поэтому для нас очень важно создать его из меню конфигурации. После компиляции всех модулей, перейдите к Generate OpenSIPS Script.
Мы можем сгенерировать 3 типа скриптов из меню конфигурации:
Residential Script - обеспечивает регистрацию пользователя.
Trunking Script - Подходит для предоставления услуги транкинга. Он не поддерживает регистрацию.
Load-Balancer Script - используется для балансировки нагрузки входящих и исходящих вызовов.
Примечание. Эти конфигурационные файлы будут иметь базовую конфигурацию. Вам всегда нужно редактировать эти файлы, чтобы они работали в соответствии с вашим сценарием.
Для этой установки мы будем использовать Trunking Script.
Теперь перейдите к настройке скрипта Configure Script
Выберите функции, которые вы хотите добавить в свой скрипт.
После выбора всех необходимых параметров сохраните сценарий и выберите Generate Trunking Script.
Это все. Теперь вернитесь и сохраните все изменения - Exit & Save All Changes.
Шаг 5: Настройка сервиса OpenSIPS
Очень важно понять файловую структуру OpenSIPS и важные каталоги, прежде чем начать работу над ней. Вот некоторые основные каталоги, над которыми мы будем работать во всей этой установке.
/usr/local/etc/opensips/ - Каталог файлов конфигурации OpenSIPS по умолчанию
/usr/local/lib64/opensips/modules/ - Каталог модулей OpenSIPS
/etc/init.d/ - Каталог файлов сервиса OpenSIPS
/etc/default/opensips - Файл конфигурации службы OpenSIPS
Мы можем найти файл opensips.init и opensips.default в каталоге /usr/src/opensips-3.0/packaging/debian/. Поэтому нам нужно скопировать эти файлы в каталог /etc/init.d/ и /etc/default/.
cp /usr/src/opensips-3.0/packaging/debian/opensips.init /etc/init.d/opensips
cp /usr/src/opensips-3.0/packaging/debian/opensips.default /etc/default/opensips
chmod 755 /etc/init.d/opensips
update-rc.d opensips defaults 99
mkdir -p /var/run/opensips
Теперь у нас все настроено и готово запустить наш первый сервис OpenSIPS, но прежде чем мы это сделаем, нам нужно скопировать наш файл конфигурации в каталог /usr/local/etc/opensips/, который мы создали из меню конфигурации OpenSIPS. Этот файл конфигурации находится в /usr/src/opensips-3.0/etc/
ls /usr/src/opensips-3.0/etc/
Теперь мы скопируем этот конфигурационный файл транкинга в /usr/local/etc/opensips/
mv /usr/src/opensips-3.0/etc/opensips_trunking* /usr/local/etc/opensips/opensips_trunk.cfg
Теперь вы можете видеть, что у нас есть opensips_trunk.cfg в каталоге /usr/local/etc/opensips, и мы будем использовать этот же файл для нашего сервера OpenSIPS, поэтому мы должны указать путь к нему в файле инициализации opensips.
Примечание: мы также должны убедиться, что у нас есть правильный двоичный путь OpenSIPS в файле инициализации opensips.
nano /etc/init.d/opensips
Мы должны добавить путь к скрипту и демону в переменную DAEMON и CFGFILE.
Шаг 6: Настройка OpenSIPS-CLI
Начиная с OpenSIPS 3, мы будем использовать инструмент OpenSIPS-CLI для управления экземплярами OpenSIPS. Ранее мы использовали для работы со скриптом opensipsctl, но он был удален из OpenSIPS версии 3. Мы будем использовать это приложение для выполнения всех видов различных операций, таких как отправка команд MI, создание базы данных и многое другое.
Давайте клонируем репозиторий opensips-cli в /usr/src/
cd /usr/src && git clone https://github.com/OpenSIPS/opensips-cli.git
Теперь давайте установим все зависимости, которые нам нужны для этого удобного небольшого приложения.
sudo apt install python3 python3-pip python3-dev gcc default-libmysqlclient-dev
sudo pip3 install mysqlclient sqlalchemy sqlalchemy-utils pyOpenSSL
Как только мы установим все зависимости, пришло время установить OpenSIPS-CLI.
cd /usr/src/opensips-cli
sudo python3 setup.py install clean
После успешной установки мы сможем выполнить команду opensips-cli.
Примечание. Когда opensips-cli запускается, она всегда ищет файл opensips-cli.cfg в каталоге /etc/. Если файл отсутствует, она запустится с настройками по умолчанию.
Теперь мы создадим файл opensips-cli.cfg в каталоге /etc/.
nano /etc/opensips-cli.cfg
[opensips-1]
log_level: WARNING
prompt_name: opensips-cli
prompt_intro: Welcome to OpenSIPS at SECUREVOIP
prompt_emptyline_repeat_cmd: False
history_file: ~/.opensips-cli.history
history_file_size: 1000
output_type: pretty-print
communication_type: fifo
fifo_file: /tmp/opensips_fifo
database_path: /usr/src/opensips-3.0/scripts/
database_url: mysql://root:password@localhost
database_name: opensips
Мы должны добавить вышеуказанный блок в файл opensips-cli.cfg. Вы можете настроить все параметры в файле конфигурации. Синтаксис и значение каждой переменной следующие:
[opensips-1] - Имя экземпляра
log_level - Уровень сообщений лога
prompt_name - Имя оболочки
prompt_intro - Приветственное сообщение оболочки
history_file - Где хранить историю opensips-cli
output_type - Параметры вывода, вы также можете использовать json
communication_type - Тип связи - fifo, json
database_path - Путь к сценариям базы данных
database_url - URL вашей базы данных MySQL
database_name - База данных, которая будет использоваться
Теперь давайте запустим opensips-cli с нашим новым файлом конфигурации.
opensips-cli -i [instance_name] -f [config file]
Шаг 7: Создание базы данных OpenSIPS
Наконец, пришло время создать базу данных OpenSIPS. Мы будем использовать бэкэнд MySQL, и если вы захотите использовать другой бэкэнд, такой как PostgreSQL, вам, возможно, придется установить некоторые зависимости.
Сначала откройте файл opensips-cli и выполните следующие действия:
Запустите OpenSIPS-CLI
Выполните - database create
Введите URL базы данных MySQL
Теперь давайте проверим базу данных и таблицы opensips, войдя в MySQL.
Примечание. Рекомендуется создать отдельного пользователя mysql для доступа к базе данных opensips.
Шаг 8: Запуск сервера OpenSIPS 3
Теперь пришло время наконец запустить наш сервер OpenSIPS, но прежде чем мы это сделаем, нам нужно настроить некоторые параметры в файле opensips_trunk.cfg.
nano /usr/local/etc/opensips/opensips_trunk.cfg
Нам необходимо обновить URL-адрес MySQL всех модулей в скрипте, указав имя пользователя и пароль MySQL.
Примечание. Если после запуска службы opensips вы получаете сообщение об ошибке отказа в доступе на стороне сервера MySQL, создайте нового пользователя MySQL только для базы данных opensips.
Нам нужно убедиться, что у нас указан правильный путь к модулю в скрипте конфигурации.
Обновите переменную PATH в файле /etc/init.d/opensips.
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
Как только мы это сделаем, последний шаг - установить для переменной RUN_OPENSIPS значение yes.
nano /etc/default/opensips
Примечание. Убедитесь, что в вашей ОС существует пользователь opensips, или вы можете добавить его с помощью - useradd -r opensips.
После обновления конфигурации в файле default нам нужно выполнить systemctl daemon-reload.
Итак, теперь мы готовы запустить наш сервис opensips. Во-первых, давайте удостоверимся, что в нашем конфигурационном файле OpenSIPS нет неправильной конфигурации.
opensips -C -f /usr/local/etc/opensips/opensips_trunk.cfg
Теперь давайте запустим сервис OpenSIPS
systemctl start opensips
systemctl enable opensips
Если вы выполнили все шаги и установили все зависимости, вы увидите, что сервер opensips работает и прослушивает порт 5060.
Примечание. По умолчанию OpenSIPS использует файл /var/log/syslog для ведения журнала. Поэтому, если вы получаете какие-либо ошибки при запуске службы opensips, обратитесь к этому файлу логов для устранения неполадок.
Мы можем убедиться, что сервер OpenSIPS работает или нет по-разному.
Проверяя файл opensips_fifo в каталоге /tmp.
Выполняя команды MI через opensips-cli
Поздравляем! Вы успешно установили свой первый сервер OpenSIPS, и мы желаем вам всего наилучшего в вашем путешествии по VoIP.
Поговорим про голосовой трафик в классических корпоративных сетях, а именно про его сегрегацию от обычного дата трафика и про включение телефонов в саму КСПД.
Обычно, телефоны находятся на столе рядом с компьютером на рабочем стол, подключаются такой же витой парой (UTP), что и компьютер, и тоже используют протокол Ethernet. Для подключения телефона к коммутатору существует две опции – подключение оборудования к свитчу «параллельно», используя два кабеля или же подключив телефон и компьютер «последовательно»:
Первый «параллельный» сценарий заработает, но есть несколько больших недостатков – дополнительный кабель и занятый порт на коммутаторе.
По этой причине в данный момент большинство IP – телефонов, включая Cisco, имеют маленький коммутатор на 3 порта внутри IP – телефона:
Первый порт подключается к коммутатору;
Второй порт подключается к компьютеру;
Внутренний порт подключает сам телефон;
Теперь поговорим о вопросе разделения голосового трафика от любого другого – и мы можем выполнить данную задачу с помощью голосового VLANа.
Голосовой VLAN также иногда обозначается как AUX VLAN
Посмотрите на схему ниже – это то, как будет выглядеть наше подключение – все компьютеры и обычный трафик будут находиться в VLAN 10, а голосовой трафик мы поместим в VLAN 11.
Как это все работает? Между коммутатором и телефоном у нас есть так называемый "транк". Порт на телефоне, который подключается к компьютеру, является портом доступа. Телефона передает весь трафик с компьютера на коммутатор без каких - либо меток, непомеченным. Трафик с самого телефона всегда будет помечаться, и в транке будут разрешены только два вышеупомянутых VLANа.
Настройка
Если вы уже знакомы с настройкой VLANов, то создание голосового VLANа не составит для вас вообще никакого труда. Давайте настроим порт на коммутаторе, где мы будем использовать VLANы 10 и 11.
Сначала мы создаем данные VLANы:
MERION-SW1(config)#vlan 10
MERION-SW1(config-vlan)#name DATA
MERION-SW1(config-vlan)#exit
MERION-SW1(config)#vlan 11
MERION-SW1(config-vlan)#name VOICE
MERION-SW1(config-vlan)#exit
Теперь настроим интерфейс:
MERION-SW1(config)#interface GigabitEthernet 0/1
MERION-SW1(config-if)#switchport mode access
MERION-SW1(config-if)#switchport access vlan 10
MERION-SW1(config-if)#switchport voice vlan 11
MERION-SW1(config-if)#exit
Мы переключили данный порт в режим доступа и настраиваем его для VLAN 10. Команда switchport voice vlan сообщает коммутатору, чтобы он использовал VLAN 11 как голосовой VLAN.
Для того, чтобы телефон понял, какой VLAN нужно использовать, используются два протокола – Cisco Discovery Protocol (CDP) для телефонов Cisco и Link Layer Discovery Protocol (LLDP) для телефонов от других вендоров
Проверка работоспособности
Для проверки корректности настройки, мы будем использовать команду show interfaces
MERION-SW1#show interfaces GigabitEthernet 0/1 switchport
Name: Gi0/1
Switchport: Enabled
Administrative Mode: static access
Operational Mode: static access
Administrative Trunking Encapsulation: negotiate
Operational Trunking Encapsulation: native
Negotiation of Trunking: Off
Access Mode VLAN: 10 (DATA)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: 11 (VOICE)
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk Native VLAN tagging: enabled
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk associations: none
Administrative private-vlan trunk mappings: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Appliance trust: none
Как видно из вывода выше, VLANы настроились корректно. И теперь посмотрим на статус транка. Вывод скажет нам, что порт не является транком, он покажет какие VLANы в нем используются (то есть, которые мы настроили). Несмотря на то, что он показан как нетранковый, в реальности он все - таки является транком.
MERION-SW1#show interfaces GigabitEthernet 0/1 trunk
Port Mode Encapsulation Status Native vlan
Gi0/1 off negotiate not-trunking 1
Port Vlans allowed on trunk
Gi0/1 10-11
Port Vlans allowed and active in management domain
Gi0/1 10-11
Port Vlans in spanning tree forwarding state and not pruned
Gi0/1 10-11
На этом настройка завершена – для остальных рабочих станций и телефонов данный шаг нужно выполнить точно также, но на других портах коммутатора. Голосовой трафик будет идти в приоритете перед остальным трафиком и это скажется в лучшую сторону на качестве связи.
Давайте для начала разберемся, что же такое Composer. Представленное программное обеспечение является менеджером пакетных зависимостей, разработанный для облегчения загрузки, а также установки различных PHP библиотек для вашего проекта. К примеру, используя менеджер пакетов, вы можете с легкостью добавить различные библиотеки к вашему проекту, разработкой которого вы занимаетесь, а также очень легко выполнять развертывание иных проектов, каковые имеют при себе документ composer.json.
Composer.json является текстовым документов, который содержит библиотеки, каковые использует проект. Кроме того, Composer используется возможно использовать для установки различных фреймворков PHP, а также CMS.
Данный менеджер пакетов представляет собой типичный PHP-скрипт, то есть программный продукт, разработанный на языке PHP.
Главной целью данного программного продукта является предоставление удобного инструмента для веб-разработчиков, с помощью какового он с легкостью может выполнять загрузку, а также установку библиотек в проект, выполнять их обновление, и, при необходимости, деинсталляцию. С помощью менеджера пакетов можно выполнять все перечисленные выше действия с помощью нескольких команд.
Composer при скачивании библиотек выполняет не только установку, но также устанавливает зависимости, от которых они уже могут зависеть. Допустим, вы загрузили некий пакет, который имеет зависимость от нескольких пакетов, и так далее. Данный менеджер пакетов автоматически выполнит установку.
Представленный PHP-скрипт создает в корне проекта специальную папку Vendor, в которую уже и выполняется установку сторонних библиотек. Помимо этого, также создается документ autoload.php с помощью которого происходит интеграция пакетов в проект.
Помимо перечисленных выше документов, при установке сторонних пакетов, также создается дополнительный документ composer.lock. Если же вышеописанный файл composer.json выполняет роль описания и требований версий библиотек, тогда composer.lock содержит в себе сами версии библиотек, каковые установились юзером.
Основной целью документа composer.lock является оставить среду, в каковой был разработан и протестирован проект без каких-либо изменений.
Работать с менеджером пакетов возможно с помощью консоли либо терминала, используя некоторые команды.
Как установить менеджер пакетов на OpenServer (Windows)
OpenServer по умолчанию содержит в себе Composer. Это будет зависеть от версии PHP.
Для того, чтобы работать с данным менеджером пакетов, потребуется его собственная консоль, которую возможно открыть с помощью нажатия ПКМ на раздел Открыть сервер, и обнаружить пункт консольного меню в списке меню.
Чтобы убедиться в том, что Composer включен, достаточно ввести команду Composer, и для вас отобразиться информация о вашей версии.
Если же вы получите уведомление, что ваша версия уже устарела, вы можете обновить ее с помощью специальной команды composer self-update.
Как установить менеджер пакетов на хостинг?
Чтобы установить Composer на хостинг-сервис, просто скачайте эту программу и загрузите ее в корневой каталог проекта, например, по FTP.
Команды на удаленном сервере обычно выполняются через SSH. По умолчанию на виртуальном хостинге этот сетевой протокол отключен. Чтобы включить его, вам нужно найти соответствующий элемент на панели управления, открыть его и нажать на кнопку Включить SSH внутри него.
Если на вашем компьютере установлена операционная система Windows 10, тогда SSH-клиент автоматически будет добавлен в систему. А это может означать, что для использования команд над управлением удаленного сервера, вам не потребуется ничего устанавливать, так как можно использовать Windows PowerShell либо командную строку.