По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Итак, у нас загрузилось ядро операционной системы. Далее отрабатывают системы инициализации операционной системы. Три варианта: SysV, systemd, Upstart.
Init в стиле SysV
Init в стиле SysV данная процедура инициализации, самая старая она более классический Unix вариант инициализации операционной системы. Для того, чтобы понять, как происходит инициализация необходимо понять, что такое режимы загрузки (они же runlevel), разобраться как между ними переключатся, рассмотреть работу со службами.
Обычно есть 7 уровней выполнения по умолчанию:
Выключение
Однопользовательский режим (чаще всего используется для отладки и настройки операционной системы)
DebianUbuntu по умолчанию
RedHatSuse по умолчанию текстовый режим.
WildCard (программируемый режим, можно сюда поставить любой)
RedHatSuse GUI (Graphical User Interface)
Перезагрузка.
Но существуют операционные системы, где 10 уровней по умолчанию. Конечно речь идет о самых распространенных ядрах и сборках *nix образных операционных системах.
Для дальнейших пояснений, как работает инициализация в стиле sysV нам необходим операционная система CentOS 5.4 или ниже, потому что в более новых операционных системах данный процесс давно уже заменен. Отроем файл настроек текстовым редактором vi или любым другим удобным для вас.
Мы можем увидеть содержание файла. Те самые уровни о которых шла речь выше. Плюс прописан уровень используемые при загрузке по умолчанию. Строчка id:3:initdefault:
Мы данный параметр можем отредактировать и например сказать, чтобы операционная система загружалась по умолчанию в Single Mode например.
Если мы посмотрим далее файл, мы можем увидеть настройку, которая описывает действия нажатия клавиш Ctrl+alt-delete. А также наглядно прописано, что запуск определенного уровня - это запуск определённого скрипта. Все скрипты запускаются из папки /etc/rc.d/
Все дальнейшие варианты инициализации растут, вот из этого варианта. И этой процедуры инициализации. Перейдем в директорию, где лежат все скрипты инициализации и выполняются данные скрипты при старте системы.
В данной папке куча скриптов, которые запускают определенные службы, например, ssh запускает демона ssh для подключения клиентом по 22 порту. Т.е здесь куча служб и запускаются они этими скриптами. Если мы например хотим остановить какую нибудь службу то набираем ./rsync stop , ну и соответственно ./rsync start для запуска данной службы. Аналогично мы можем управлять через команду service, например: service rsync restart . Поднимемся на уровень выше cd ..
Найдем все файлы, которые начинаются с rc. Для этого набираем: ls -l | grep rc. В результате мы увидим несколько скриптов.
Посмотрим rc3.d . А для этого перейдем в эту директорию. В ней можно увидеть кучу скриптов. В вариации Ubuntu современной и затем в вариации CentOS 5.4
Те скрипты, которые начинаются с буквы K, эти скрипты при старте убивают сервис, те скрипты, которые имеют первой букву S запускают сервис. Ну и соответственно порядковый номер исполнения скрипта в очереди. Для каждого runlevel свой набор скриптов.
Основные команды
Init управление инициализацией с помощью нее можно перемещаться между runlevel.
Telinit управление процессом init , в старых дистрибутива использовалась именно эта команда.
Wall вывод сообщения пользователям системы
Halt - выключение компьютера
Reboot перезагрузка компьютера
Shutdown - запланированное выключение
Service service_name start|stop|reload|restart
Для того, чтобы перемещаться по уровням загрузки, нам необходимо понять на каком уровне мы находимся сейчас. Набираем runlevel . Соответственно, если мы хотим переключится telinit 1 отрабатывают скипты мы попадаем в однопользовательский режим 1.
Для того, чтобы послать сообщение все пользователям на данной машине необходимо набрать с соблюдением регистра wall "Abrakadabra". У всех пользователей появится данное сообщение на экране.
Для выключения сейчас компьютера можно использовать shutdown h now.
Init в стиле Systemd
Init в стиле Systemd более современная система инициализации операционной системы Linux.
Необходимым элементом работы системы systemd , являются Unit. Unit- это модуль которыми оперирует systemd:
.service службы
.mount точки монтирования
.device устройства
.socket сокеты
Если при работе в консоли мы не указывает расширение юнита, то в принципе system может догадаться в каком случае, что используется. В операционной системе существуют 2 папки в которых хранятся Unit:
/usr/lib/systemd директория с Units по умолчанию, в которой создаются units при установке какого либо программного обеспечения.
/etc/systemd директория с управляемыми Units. Тут лежат те Unit которыми может управлять админ, добавлять , редактировать.
Посмотрим, что находится в данных директориях переходим в /usr/lib/system
Нам интересны 2 директории system и user.
Содержимое папки system выглядит вот так. В данной директории лежат все необходимые Units для системы в директории user для пользователя. Картинка будет примерно аналогичная.
Директория /etc/systemd.
Тут точно также есть две папки system и user, а также конфигурационные фалы. Данные конфигурационные файлы и отвечают за настройку systemd. Это те файлы которые пришли на замену /etc/inittab, предыдущей версии инициализации операционной системы. Файлы юнитов в директориях system и user мы можем редактировать для каких-то своих целей и даже писать targets.
Далее мы можем посмотреть запущенные Units. Для этого мы можем выполнить systemctl команду, она отвечает за все действия с systemd. Для примера команда systemctl list-units нам выведет все запущенные Units, сокеты ,устройства ,точки монтирования.
Можно посмотреть юниты, которые не стартанули systemd failed. А также мы можем управлять юнитами systemctl status|start|stop|restart crond.
Так же Systemd работает с Target (целями).
Есть target которые работают так же как runlevel в классической процедуре инициализации, они не пронумерованы в отличии от runlevel у них есть конкретные имена. В табличке можно посмотреть какие target соотносятся с какими runlevel. Их этих target может быть несколько, потому что target бывают не только загрузочные. Данная система использования target обратно совместимая с системой инициализации. Для переключения мы можем использовать команду telinit. Сами по себе target есть некая группировка юнитов, последовательность вызова юнитов. Это может быть target последовательного вызова нескольких служб и ниже стоящий target.
Текущий уровень мы можем посмотреть командой runlevel. По умолчанию это будет 3. Далее мы можем написать systemctl list-units --type=target
И можно увидеть, что находимся на 3-м уровне также т.к target соответствует. Так же мы можем переключатся между runlevel командой telinit. Например, для перехода в однопользовательский режим telinit 1. А так же мы можем использовать через синтаксис systemctl isolate reboot.target.
Для того чтобы поставить какой-то загрузочный target по умолчанию, необходимо отредактировать загрузчик, вставить параметры ядра, которые будут запускаться. Или сделать проще командой systemctl set-default f multi-user.target (использование например 3 runlevel по умолчанию).
Одной из особенностей system является интересная система журналирования journald. Демон журналов. Эта система уникальна тем, что собирает информацию из разных источников событий и привязывает их к конкретным юнитам и сервисам. Благодаря этому мы можем всю диагностическую информацию просматривать в одном месте. Соответственно находить неисправности и их устранять.
Работает следующим образом:
Journalctl f - показывает события по мере их возникновения.
Journalctl n 10 вывод последних 10 событий
Инициализация Init в стиле
Инициализация Init в стиле upstart это система инициализации, в том стиле которая задумывалась для Ubuntu, и заменила процедуру инициализации, которая пришла из Unix стандартную init процедуру. Процедура инициализации upstart контролирует инициализацию демонов и служб в течении загрузки системы и их остановку если у нас система выключается или нужно переключится в другой режим. Основное отличие от классической процедуры инициализации в том, что задачи и службы останавливаются по событиям и сами события могут генерироваться задачами и службами, могут приняты быть от любого процесса системы. Могут быть службы перезапущены в автоматическом режиме если они вдруг были завершены в аварийном режиме. Еще одно отличие в том, что у данного режима инициализации есть задачи (tasks). Основными понятиями являются службы и задачи. Основное отличие службы от задачи в том, что служба перезапускается если была аварийно завершена, а задача нет.
Процесс инициализации системы по upstart берет конфигурацию из файлов каталога /etc/init каталог файлов-заданий (jobs). Каждый файл отвечает за запуск каждого задания или службы и должен заканчиваться с расширением .conf . Уровни инициализации остались те же самые. Определение и переключение между уровнями выполняются теми же командами, описанными выше. Изменился файл, в котором мы описываем runlevel запуска по умолчанию. И для управления upstart используется утилита initctl.
Как мы видим в каталоге /etc/init находятся конфигурационные файлы Jobs. Каждый отвечает за запуск отдельной службы. Смотрим файл конфигурации простейшего файрвола операционной системы cat ufw.conf
Как мы видим ufw стартует при условии, описанном start on, выключается на определенных runlevel. Файл конфигурации с runlevel по умолчанию находится в файле cat /etc/init/rc-sysinit.conf
Управляются службы простыми командами status ufw start ufw stop ufw. В данной статье мы рассмотрели различные вариации инициализации. Думаю, информация будет очень полезной.
Rocket.Chat — это бесплатный масштабируемый open source корпоративный чат, разработанный с помощью Meteor. Rocket.Chat можно считать аналогом Slack, который можно развернуть на своем сервере, и подключаться к нему с клиентов на Linux, Windows, macOS, Android и iOS.
Функции Rocket.Chat
Чат в реальном времени
Аудиоконференции
Видеоконференции
Каналы
Гостевой вход
Трансляция экрана
Передача файлов
Полнофункциональный API
Для обеспечения безопасности используется:
Групповая синхронизация LDAP
Двухфакторная аутентификация 2FA
Сквозное шифрование
Единый вход SSO
Несколько поставщиков Oauth аутентификации
Рассказываем как установить и настроить сервер и клиент Rocket.Chat в Linux.
Шаг 1. Установка Snap в Linux
Для простоты мы будем использовать систему управления пакетами Snaps. Первым делом надо установить пакет snapd c помощью диспетчера пакетов.
$ sudo apt install snapd #Ubuntu и Debian
$ sudo dnf install snapd #Fedora 22+/CentOS/RHEL 8
$ sudo yum install snapd #CentOS/RHEL 7
Далее необходимо включить модуль systemd, который управляет основным сокетом мгновенной связи. Эта команда запустит сокет и позволит ему запускаться при загрузке системы.
$ sudo systemctl enable --now snapd.socket
Шаг 2: Установка Rocket.Chat в Linux
Для установки rocketchat-server выполните:
$ sudo snap install rocketchat-server
Когда установка через snap будет завершена, rocket.chat сервер начнет работать и прослушивать порт 3000. Далее откройте веб-браузер и введите следующий адрес, чтобы настроить rocket.chat через GUI.
http://SERVER_IP:3000
После загрузки мастера настройки укажите следующие параметры: полное имя администратора, имя пользователя, адрес электронной почты организации и пароль.
Далее надо указать информацию об организации: тип организации, название, отрасль, размер, страна и сайт.
Затем нужно указать информацию о сервере - имя сайта, язык, тип сервера, и включение или отключение двухфакторной аутентификации 2FA.
На следующей странице нужно зарегистрировать сервер. Здесь есть две опции. Первая - использовать предварительно настроенные шлюзы и прокси, предоставленные Rocket.Chat Вторая - сохранить автономность и создать учетные записи у поставщиков услуг, обновить предварительно настроенные параметры, а также перекомпилировать мобильные приложения с вашими частными сертификатами.
Настройка завершена, и ваше рабочее пространство готово, теперь надо нажать Go to your workspace (Перейти в рабочее пространство)
Вот так оно выглядит.
Шаг 3: Настройка обратного прокси для Rocket.Chat
Обратный прокси-сервер, например nginx или Apache, позволяет настроить приложение Rocket.Chat для доступа через домен или поддомен. Rocket.Chat является сервером приложений среднего уровня, который не поддерживает SSL/TLS. Обратный прокси-сервер позволит настраивать сертификаты SSL/TLS для включения HTTPS.
Обратный прокси Nginx для Rocket.Chat
Сначала установите Nginx.
$ sudo apt apt install nginx #Ubuntu/Debian
$ sudo dnf install nginx #Fedora 22+/CentOS/RHEL 8
$ sudo yum install nginx #CentOS/RHEL 7
Далее запустите службу Nginx, включите ее автоматический запуск при загрузке системы и проверьте ее статус
$ sudo systemctl enable --now nginx
$ sudo systemctl status nginx
Затем создайте block файл виртуального сервера для приложения Rocket.Chat, например, в каталоге /etc/nginx/conf.d/.
$ sudo vim /etc/nginx/conf.d/chat.merionet.com.conf
Далее вставьте конфигурацию в этот файл, заменив домен на свой и сохраните.
upstream backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name chat.merionet.com;
# You can increase the limit if you need to.
client_max_body_size 200M;
error_log /var/log/nginx/chat.merionet.com.log;
location / {
proxy_pass http://backend/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
Наконец проверьте синтаксис и перезапустите службу Nginx.
$ sudo nginx -t
$ sudo systemctl restart nginx
Обратный прокси Apache для Rocket.Chat
Установите пакет Apache2
$ sudo apt install apache2 #Ubuntu/Debian
$ sudo dnf install httpd #Fedora 22+/CentOS/RHEL 8
$ sudo yum install httpd #CentOS/RHEL 7
Далее запустите и включите службу apache и проверьте, запущена ли она и работает.
----- В Ubuntu/Debian -----
$ sudo systemctl enable --now apache2
$ sudo systemctl status apache2
----- В CentsOS/RHEL 7/8 -----
$ sudo systemctl enable --now httpd
$ sudo systemctl status httpd
Затем создайте файл виртуального хоста для приложения Rocket.Chat, например, в каталоге /etc/apache2/sites-available/ или /etc/httpd/conf.d/.
----- В Ubuntu/Debian -----
$ sudo vim /etc/apache2/sites-available/chat.merionet.com.conf
----- В CentsOS/RHEL 7/8 -----
$ sudo vim /etc/httpd/conf.d/chat.merionet.com.conf
Далее вставьте конфигурацию в этот файл, заменив домен на свой и сохраните.
<VirtualHost *:80>
ServerAdmin admin@merionet.ru
ServerName chat.merionet.com
LogLevel info
ErrorLog /var/log/chat.merionet.com_error.log
TransferLog /var/log/chat.merionet.com_access.log
<Location />
Require all granted
</Location>
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://localhost:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) http://localhost:3000/$1 [P,L]
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
В Ubuntu и Debian включите необходимые модули apache2 и перезапустите службу.
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_wstunnel
$ sudo a2enmod rewrite
$ sudo systemctl restart apache2
В CentOS/RHEL и Fedora перезапустите службу apache.
# systemctl restart httpd
Теперь откройте браузер и введите ваш настроенный адрес и приложение Rocket.Chat станет доступно через ваш домен, настроенный на прокси-сервере.
http://chat.merionet.com
Шаг 4: Установка клиентов Rocket.Chat
Клиентские приложения можно скачать с официального сайта Rocket.Chat. Чтобы установить десктопное приложение в Linux, вы загрузите пакет deb (x64) или rpm (x64) в зависимости от вашего дистрибутива Linux.
$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat_2.17.7_amd64.deb
Или
$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat-2.17.7.x86_64.rpm
Затем установите пакет с помощью диспетчера пакетов dpkg или rpm
$ sudo dpkg -i rocketchat_2.17.7_amd64.deb #Ubuntu/Debian
$ sudo rpm -i rocketchat-2.17.7.x86_64.rpm #CentOS/RedHat
Ручная установка Rocket.Chat
Если вы не хотите устанавливать Rocket.Chat через Snaps, вы можете сделать это вручную.
Установка Node.js
Сначала обновите список системных пакетов:
sudo apt update
Установите Node.js, npm и все другие зависимости, необходимые для сборки пакетов npm из исходного кода:
sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick
Мы будем использовать n, пакет npm, который позволяет интерактивно управлять версиями Node.js. Выполните команды ниже, чтобы установить n и Node.js:
sudo npm install -g inherits n
sudo n 8.11.3
Установка MongoDB
MongoDB - это документно-ориентированная база данных NoSQL, которая используется Rocket.Chat для хранения данных.
Импортируйте открытый ключ MongoDB и включите официальный репозиторий MongoDB:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
После включения репозитория apt обновите список пакетов и установите MongoDB, набрав:
sudo apt update
sudo apt install mongodb-org
Затем включите и запустите службу MongoDB:
sudo systemctl start mongod
sudo systemctl enable mongod
Создание нового системного пользователя
Теперь необходимо создать нового пользователя и группу с именем rocket, которые будут запускать инстанс Rocket.Chat.
sudo useradd -m -U -r -d /opt/rocket rocket
Добавьте пользователя www-data в новую группу пользователей и измените права доступа к каталогу /opt/rocket, чтобы Nginx мог получить доступ к установке Rocket.Chat:
sudo usermod -a -G rocket www-data
sudo chmod 750 /opt/rocket
Установка Rocket.Chat
Переключитесь на пользователя rocket
sudo su - rocket
Загрузите последнюю стабильную версию Rocket.Chat с помощью curl:
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
После завершения загрузки извлеките архив и переименуйте каталог в Rocket.Chat:
tar zxf rocket.chat.tgz
mv bundle Rocket.Chat
Перейдите в каталог Rocket.Chat/programs/server и установите все необходимые пакеты npm:
cd Rocket.Chat/programs/server
npm install
Чтобы протестировать нашу установку перед созданием модуля systemd и настройкой обратного прокси с Nginx или Apache, мы установим необходимые переменные среды и запустим сервер Rocket.Chat
export PORT=3000
export ROOT_URL=http://0.0.0.0:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Вернитесь в каталог Rocket.Chat и запустите сервер Rocket.Chat, введя следующие команды:
cd ../../
node main.js
Если ошибок нет, вы должны увидеть следующий вывод:
? +---------------------------------------------+
? | SERVER RUNNING |
? +---------------------------------------------+
? | |
? | Rocket.Chat Version: 0.71.1 |
? | NodeJS Version: 8.11.3 - x64 |
? | Platform: linux |
? | Process Port: 3000 |
? | Site URL: http://0.0.0.0:3000/ |
? | ReplicaSet OpLog: Disabled |
? | Commit Hash: e73dc78ffd |
? | Commit Branch: HEAD |
? | |
? +---------------------------------------------+
Остановите сервер Rocket.Chat с помощью Ctrl+C и вернитесь к своему пользователю sudo, набрав exit.
Создание модуль Systemd
Чтобы запустить Rocket.Chat как службу, нужно создать файл модуля rocketchat.service в каталоге /etc/systemd/system/.
sudo nano /etc/systemd/system/rocketchat.service
Вставьте следующий код:
[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target
[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=https://chat.merionet.com PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install]
WantedBy=multi-user.target
Сообщите systemd, что мы создали новый файл модуля, и запустите службу Rocket.Chat, выполнив:
sudo systemctl daemon-reload
sudo systemctl start rocketchat
Проверьте статус сервиса:
sudo systemctl status rocketchat
Вывод должен быть таким:
* rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
Main PID: 12693 (node)
Tasks: 10 (limit: 2319)
CGroup: /system.slice/rocketchat.service
`-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Наконец, включите автоматический запуск службы Rocket.Chat во время загрузки:
sudo systemctl enable rocketchat
Готово, мы установили Rocket.Chat вручную, теперь можно переходить к настройке обратного прокси и инициализации системы, которые были описаны начиная с шага 3.
Итоги
В этом руководстве вы узнали, как установить Rocket.Chat в Linux и как настроить Nginx и Apache в качестве обратного прокси.
Чтобы узнать больше о Rocket.Chat посетите страницу документации.
Привет! Сегодня в статье мы рассмотрим базовую настройку IP-АТС компании Cisco – CME – Call Manager Express, или как теперь он называемся Cisco Unified Communications Manager Express – CUCME. Также мы покажем как зарегистрировать телефоны, работающие по протоколам SCCP и SIP.
Чтобы понять, что необходимо настроить, рассмотрим, что происходит во время загрузки телефона. Процесс загрузки IP-телефона Cisco можно разделить на несколько этапов:
Телефон получает питание по Ethernet кабелю используя PoE (Power over Ethernet 802.3af), либо через блок питания;
Коммутатор присылает информацию о голосовом VLAN’e, используя протокол CDP (Cisco Discovery Protocol);
Телефон высылает DHCP запрос в голосовой VLAN, а в ответ DHCP сервер присылает информацию о IP адресации, включая DHCP Option 150, где указан адрес TFTP сервера;
Телефон связывается с TFTP сервером и скачивает конфигурационный файл и прошивку. В конфигурационном файле находятся данные об адресе и номере порта CME, а также название прошивки, которую он должен использовать. При первом подключении он отсутствует, и телефон скачивает файл по умолчанию XMLDefault.cnf.xml;
На основании IP адреса, указанного в конфигурационном файле телефон связывается с сервером обработки вызовов (в нашем случае это CME);
Теперь можем приступать к настройке оборудования.
Настройка voice VLAN
Чтобы разделить голосовой трафик и трафик с данными необходимо настроить голосовой VLAN на каждом порту коммутатора, который соединяется с IP телефонами.
switch#conf t – переход в режим конфигурации
switch(config)#interface fa0/1 – переход в режим конфигурации интерфейса
switch(config-if)#switchport mode access – настройка порта в качестве access
switch(config-if)#switchport voice vlan 100 – создание голосового VLAN с id 100
switch(config-if)#switchport access vlan 200 – создание VLAN данных с id 200
switch(config-if)#spanning-tree portfast – включение протокола STP
Настройка DHCP
Теперь необходимо настроить роутер Cisco как DHCP сервер для голосового VLAN. Команда Option 150 используется для указания адреса TFTP сервера, где хранятся конфигурационные файлы и прошивки.
router#ip dhcp pool VOICE – создание DHCP пула
router(dhcp-config)#network 192.168.1.0 255.255.255.0 – выделение подсети
router(dhcp-config)#default-router 192.168.1.1 – default gateway
router(dhcp-config)#option 150 192.168.1.1 – адрес TFTP сервера
router(dhcp-config)#dns-server 4.2.2.2 – адрес DNS сервера
Настройка NTP
Перейдем к настойке времени c использованием протокола NTP, при помощи которого мы сможем выставить корректные дату и время на всех телефонах.
router#conf t
router(config)#ntp server 64.209.210.20 – указываем адрес NTP сервера
router(config)#clock timezone MSK 3 – указываем временную зону
Настройка TFTP
Хотя маршрутизаторы Cisco можно использовать в качестве TFTP сервера, стоит заметить что для больших телефонных сетей лучше иметь отдельный TFTP сервер, поскольку файлы прошивки и конфигурации могут быстро заполнить всю доступную flash-память.
При использовании маршрутизатора в роли TFTP сервера необходимо вручную указать все файлы для скачивания, которые мы поместили во flash-памяти.
В нашем примере файлы находятся в папке phone/7940-7960/
router#conf t
router(config)#tftp-server flash:/phone/7940-7960/P00308000500.bin alias P00308000500.bin
router(config)#tftp-server flash:/phone/7940-7960/P00308000500.loads alias P00308000500.loads
router(config)#tftp-server flash:/phone/7940-7960/P00308000500.sb2 alias P00308000500.sb2
router(config)#tftp-server flash:/phone/7940-7960/P00308000500.sbn alias P00308000500.sbn
Здесь в команде tftp-server после alias указываем название файла прошивки, который будет запрашивать телефон, поскольку телефон не знает полный путь до файла, а запрашивает его только по названию.
Базовые настройки CME и регистрация телефонов
Теперь настроим необходимые параметры IP Source Address, Max-DN (Directory Number) и Max-Ephones для работы с протоколом SCCP.
router(config)#telephony-service – режим настройки телефонии
router(config-telepony)#ip source-address 192.168.1.1 – адрес, на который должны приходить запросы на регистрацию от телефонов
router(config-telepony)#max-ephones 24 – максимальное количество поддерживаемых телефонов
router(config-telepony)#max-dn 48 – максимальное количество поддерживаемых номеров
Параметры max-ephones и max-dn напрямую влияют на объем памяти, которую резервирует маршрутизатор для поддержки службы CME. При установке значения намного выше, чем необходимо, система может резервировать чрезмерные ресурсы и влиять на другие сетевые службы. Кроме того, параметр max-ephones не должен превышать количество приобретенных лицензий на функции.
После этого телефоны начнут процесс регистрации. Проверить статус регистрации можно командой show ephone summary
Настройка Ephone и Ephone-DN
Для начала попробуем разобраться, что это такое и в чем их отличие. Ephone можно представить в качестве физического телефона с MAC адресом, а Ephone-DN в качестве телефонного номера, который мы связываем с телефонным аппаратом.
Создадим номер Ephone-DN с номером 101:
router#conf t
router(config)#ephone-dn 1 – создание номера
router(config-ephone-dn)#number 101 – указываем номер
router(config-ephone-dn)#description Alexey Dobronravov – описание в CME
router(config-ephone-dn)#name Alexey Dobronravov – описание на телефоне
Теперь создадим Ephone и свяжем его с реальным телефоном по MAC-адресу:
router#conf t
router(config)#ephone 1 – создание образа телефона
router(config-ephone)#mac-address 0014.1c48.acb1 – указываем MAC-адрес
router(config-ephone)#button 1:1 – привязываем номер к аппарату
Мы привязываем номер к телефону на его физические кнопки, которые обычно находятся возле экрана. На них как раз можно привязывать линии, и телефон может одновременно несколько номеров. Синтаксис команды через которую идет привязка телефона выглядит как button [физическая кнопка] : [ephone-dn] . Таким образом, в примере мы привязали первой кнопке на телефоне созданный нами номер ephone-dn 1.
Теперь можем подключать наш телефон к сети, он пройдет все шаги загрузки и зарегистрируется на нашем CME. Таким же образом настраиваем другие телефоны и номера, после чего мы сможем совершать звонки между телефонами. Проверить статус телефона можно командой show ephone.
Регистрация SIP телефона
Теперь настроим CME для работы с телефонами по протоколу SIP. Первым делом разрешим звонки между SIP телефонами:
router#conf t
router(config)#voice service voip
router(config-voice)#allow-connections sip to sip
Настраиваем период регистрации телефонов (число – это время в секундах, по умолчанию 3600):
router#conf t
router(config)#voice service voip
router(config-voice)#registrar server expires max 3600 min 3600
Создаем класс кодеков, в котором указываем кодеки, которые будут использованы:
router#conf t
router(config)#voice class codec 1
router(config-voice)#codec preference 1 g711alaw - кодек первого приоритета
router(config-voice)#codec preference 1 g711ulaw - кодек второго приоритета
router(config-voice)#codec preference 1 g729br8 - кодек третьего приоритета
Создаем DN:
router#conf t
router(config)#voice register dn 1 – создаем DN
router(config-voice-register-dn)#number 201 – указываем номер
Настраиваем телефон:
router#conf t
router(config)#voice register pool 1
router(config-voice-register-pool)#id mac 0014.1c48.acb2 – указываем MAC телефона
router(config-voice-register-pool)#number 1 dn 1 – привязываем номер к первой линии
router(config-voice-register-pool)#voice-class codec 1 – используем созданный нами набор кодеков
router(config-voice-register-pool)#username admin password pass – создаем аутентификационные данные
После этого подключаем SIP телефон к сети и заходим по его веб-интерфейс черз бразуер по IP-адресу, находим настройки первой линии, где указываем адрес сервера 192.168.1.1 и логин с паролем admin/password, которые мы создали.
Теперь таким образом можно регистрировать SIP телефоны на CME.