diff --git a/README.md b/README.md
index 6128666..e76a097 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,7 @@ P.S. Возможно понадобится **Python 3.5** и выше из-з
## Содержание
* [Установка](./docs/install.md)
+* [Сервисы и API](.docs/services.md)
* [Разработка расширений](./docs/dev.md)
* [Сбор информации трафика по netflow](./docs/netflow.md)
* [Работа с представлениями](./docs/views.md)
diff --git a/abonapp/templates/abonapp/editAbon.html b/abonapp/templates/abonapp/editAbon.html
index 7041082..1524d4c 100644
--- a/abonapp/templates/abonapp/editAbon.html
+++ b/abonapp/templates/abonapp/editAbon.html
@@ -112,7 +112,13 @@
{% if perms.abonapp.change_abon %}
-
{% trans 'Select the device' %}
+
+ {% if device %}
+ {% trans 'Device' %}
+ {% else %}
+ {% trans 'Select the device' %}
+ {% endif %}
+
diff --git a/docs/services.md b/docs/services.md
new file mode 100644
index 0000000..880958e
--- /dev/null
+++ b/docs/services.md
@@ -0,0 +1,65 @@
+## Сервисы
+— это скрипты которые, зачастую, оформлены в юниты systemd.
+Сейчас есть такие сервисы:
+* [dhcp_lever](#markdown-header-dhcp_lever)
+* [dialing](#markdown-header-dialing)
+* [telebot](#markdown-header-telebot)
+* [monitoring_agent](#markdown-header-monitoring_agent)
+* [periodic](#markdown-header-periodic)
+
+
+### dhcp_lever
+Этот скрипт не очень похож на сервис, т.к. выполняется при каждом запросе от DHCP сервера.
+Работа DHCP организована так:
+- Запрос приходит от абонента с опцией-82, далее с помощью dhcp-relay направляется на dhcp сервер где
+и находится этот скрипт
+- ISC-DHCP-server выполняет этот скрипт, передавая параметры в таком порядке: действие, ip адрес для
+абонента, мак адрес абонента, мак адрес свича через которые получен запрос, порт свича с которого пришёл запрос.
+- Биллинг оповещается через *http get* запрос о событии в dhcp сервере
+- По мак адресу свича и его порту ищется абонент.
+- Если он найден то проверяется установлен-ли флаг "Динамические настройки по dhcp" в блоке "Устройство"
+на странице абонента.
+- Если флаг динамических настроек есть то проверяется совпадает ли новый ip с dhcp сервера с тем что есть у
+абонента, и если он совпадает то ничего не происходит. В противном случае обновляем информацию об абоненте на
+сервере доступа к сети (NAS - Network Access Server).
+
+Беспокоится о том что не будет обновлена другая информация не нужно, об этом позаботится [periodic](#periodic).
+А если вам нужно немедленно обновить абонента без ожидания то просто нажмите на кномку *Сохранить* на странице абонента.
+
+
+### dialing
+Этот сервис общается с автоматической телефонной станцией на основе [Asterisk](https://www.asterisk.org/).
+Слушает в ожидании событий и отправляет комманды в asterisk. Пока умеет только смс, слушает входящие и отправляет те
+что были созданы из web интерфейса.
+
+**Настройка** — В самом скрипте нужно указать параметры досупа к asterisk, секретное слово, и адрес web сервера
+биллинга. Секретное слово *API_AUTH_SECRET* должно совпадать с тем что в настройках биллинга. Но аккуратно, если
+кто-то узнает это секретное слово то безопасность будет под угрозой, ведь зло настроенный человек или бот сможет
+выполнять удалённо комманды через api. Правда это если он находится в доверенной подсети, хотя адрес отправителя,
+как известно, можно подменить. Так что поставьте на этот скрипт ограниченные для чтения права.
+
+
+### telebot
+Этот сервис разговаривает с вами когда вы пишете в Telegram канал биллинга.
+
+**Настройка** — В настройках биллинга укажите *telegram bot token* в директиве *TELEGRAM_BOT_TOKEN*.
+Это вся настройка. Теперь запустите его с помощью юнита *djing_telebot.service*, предварительно скопировав
+его в папку с юнитами systemd.
+
+
+### monitoring_agent
+Это тоже не совсем сервис, как и [dhcp_lever](#dhcp_lever) он связывает систему мониторинга с биллингом. Сейчас работает
+с Nagios, но изменить его для любой другой системы мониторинга совсем не сложно, достаточно подправить параметры
+приходящиие от этой системы.
+Каждый раз когда в биллинге происходит событие, Nagios дёргает этот скрипт и он даёт знать биллингу какое устройство
+не в сети или появилось после сбоя. Дальше биллинг на основе этого посылает оповещения ответственным за участок на
+котором находится оборудование и выставляет статусы на карте и в списке устройств.
+
+**Настройка** — Для работы этому скрипту так же надо передать секретное слово биллинга, так что тоже рекомендую
+ограничить права на чтение. Кроме этого надо указать адрес web сервера биллинга.
+
+
+### periodic
+Периодически запускается чтоб проверить совпадает-ли информация в биллинге с тем что находится в NAS.
+Завершает закончившие действовать услуги, проводит периодические платежи.
+Просто укажите в cron или *systemd.timer* этот скрипт на периодичность, например, в пол часа.
diff --git a/docs/views.md b/docs/views.md
index 2c3c13e..8f4cffe 100644
--- a/docs/views.md
+++ b/docs/views.md
@@ -4,7 +4,7 @@
нет в поставке Django. Они связаны с особенностями реализации системы.
* [Пагинатор](#markdown-header-пагинатор)
-* [Сортировка по полям объектов из списка](markdown-header-сортировка-по-полям-объектов-из-списка)
+* [Сортировка по полям объектов из списка](#markdown-header-сортировка-по-полям-объектов-из-списка)
### Пагинатор
diff --git a/cron.py b/periodic.py
similarity index 100%
rename from cron.py
rename to periodic.py
diff --git a/systemd_units/djing.service b/systemd_units/djing.service
index 15216ee..974cef8 100644
--- a/systemd_units/djing.service
+++ b/systemd_units/djing.service
@@ -3,7 +3,7 @@ Description=A job for djing
[Service]
Type=simple
-ExecStart=/usr/bin/python3 cron.py
+ExecStart=/usr/bin/python3 periodic.py
WorkingDirectory=/srv/http/djing
User=http
Group=http