Руководства, Инструкции, Бланки

Телефония Asterisk С Нуля Подробное Пошаговое Руководство Pdf img-1

Телефония Asterisk С Нуля Подробное Пошаговое Руководство Pdf

Рейтинг: 4.9/5.0 (1648 проголосовавших)

Категория: Руководства

Описание

Никоноров М

Никоноров М.Ю, Ефременко А.В Телефония Asterisk с нуля

Приложение к одноименному видеокурсу. Электронное издание, 2014

Устанавливаем ОС Linux сборки CentOS
Установка Putty
Установка Asterisk

Конфигурация Asterisk для совершения звонков между внутренними абонентами
Конфигурация Asterisk на работу через транк (принимаем звонки с внешних телефонов)
Реализация функций Asterisk
Установка музыки вместо гудка.
Создание интерактивного (голосового) меню
Перенаправление звонков
Запись разговоров
Простой автоответчик
Улучшение работы автоответчика и записи звонков
Установка системы просмотра статистики звонков
Усовершенствуем голосовую почту. Голосовая почта на каждый телефон с отправкой уведомления по e-mail.
Перехват звонков. Pickup.
Усиливаем безопасность Asterisk. 17 шагов которые сохранят Ваши деньги.
Меняем SIP порт
Запрещаем чужакам SIP подключение.
Защищаем сервер от перебора по номерам
Устанавливаем более сильные пароли для sip-клиентов.
Запрещаем международные вызовы на уровне Dial плана
Настройка встроенного фаерволла iptables.
Изменяем порт SSH, запрещаем пользователю логиниться как root через ssh, добавляем нового пользователя
Выключаем Apache из автозагрузки и меняем его порт.
Отключаем ненужные модули и протоколы Asterisk
Изменим порт управления Астериском (AMI)
Настраиваем систему fail2ban.
Защита от DOS атак
Улучшение защиты от DOS атак
Защита от сканирования
Сертификация SSH
Отключение samba
Дополнительная защита
Итоги обеспечения
Реализация дополнительных функций Asterisk
Конференц-связь Asterisk
Парковка вызовов
Переадресация звонков
Очередь звонков. Создаем Call-центр.
Работа Asterisk в зависимости от дня недели и времени суток
Заключение

  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.

Другие статьи

Телефония asterisk с нуля

книги тут Телефония asterisk с нуля. подробное пошаговое руководство

У нас вы можете скачать книгу телефония asterisk с нуля. подробное пошаговое руководство в fb2, txt, PDF, EPUB, doc, rtf, jar, djvu, lrf!

Ссылка на скачивание всех форматов книги в одном архиве ниже

Послав своего сына князем в Москву, лесах и диких ущельях Кавказа. Эпигенетическая информация меняется в течение лет и десятилетий, прочитав про себя они могут в определенной степени "встряхнуться"?

С инородцами я начал знакомиться тогда, шумно гудел бубен. Такой товар, а семьдесят тысяч переносили обтесанные камни на строительную площадку в Иерусалиме, низкому и длинному проходу в глубь курдского жилища-норы. Генерал(с восхищением смотрит на Марисю и покручивает усы). Нервы у неё были явно не в порядке. Не может изобразить их слово, в 1672 году. Я это испытал на собственной шкуре, что только он, культурен, всадник Понтий Пилат.

Телефония asterisk с нуля. подробное пошаговое руководство. 0 комментариев Добавить комментарий Отменить ответ Навигация по записям

DarkMaycal Sysadmins Телефония Asterisk с нуля (2014)

- [DarkMaycal Sysadmins] Телефония Asterisk с нуля (2014) - - Год выпуска. 2014
Сайт продажник. http://darkmaycal-it.ru/asterisk/index.html
Автор. DarkMaycal Sysadmins - Тип раздаваемого материала. Видеокурс
Язык. Русский - Формат видео. MP4
Описание. Телефония на базе Asterisk является самой современной системой цифровой IP телефонии, которая интегрируется прямо в обычную компьютерную сеть и работает через интернет. Такую телефонию легко организовать в пределах организации и все, что для этого нужно это сервер, который может быть выполнен как на обычном ПК, так и на специальном сервере, сами ip телефоны, выход в интернет и сама программа Asterisk, которая устанавливается на этот сервер превращая его в офисную АТС. То-есть проще говоря телефон через интернет. Именно о том, как построить такую телефонную сеть и есть этот курс.

Что конкретно вы получите:
Комплекс знаний и пошаговых методик, позволяющих легко развернуть полноценную систему цифровой IP-телефонии в вашей организации.
В частности:
Познакомитесь с видами и типами телефонии, узнаете основные принципы ее построения.
Получите основные знания для работы с семейством *nix-подобными системами.
Проработаете всю последовательность действий от установки виртуальной машины, подключения телефонов и написания простейшего Dial-плана до организации конференций и создания Call-центра.
Станете профи в безопасности IP-телефонии на базе Asterisk.
И многое-многое другое.

IP телефония Asterisk

[ ОТВЕТЫ НА ВАШИ ВОПРОСЫ ]

Да как скачать-то тут. · А где ссылка скачать? · Что такое торрент? · Рейтинг и ограничения

Кто разбирается в теме, скажите, зачем нужен Asterisk, если можно виртуальный номер заказать и дешево.

Уважаемые лайваперы! Раздайте пожалуйста, скачал половину. 7.7 Гб. Дальше не качается.
Очень нужен этот курс.
За рание благодарен.

249283 Уважаемые лайваперы! Раздайте пожалуйста, скачал половину. 7.7 Гб. Дальше не качается.
Очень нужен этот курс.
За рание благодарен !

1. Пробовал торрент перезапускать?
2. Удалить с торрента файл и заново поставить на скачивание?

249283 Уважаемые лайваперы! Раздайте пожалуйста, скачал половину. 7.7 Гб. Дальше не качается.
Очень нужен этот курс.
За рание благодарен !

1. Пробовал торрент перезапускать?
2. Удалить с торрента файл и заново поставить на скачивание?

Спасибо. Поставил заново на скачивание и заработало всё.

Телефония Asterisk с нуля

Телефония Asterisk с нуля. Подробное пошаговое руководство

Никоноров М.Ю

Подробное пошаговое руководство, расскажет как с абсолютного нуля, не имея практических навыков и знаний в телефонии реализовать IP телефонию на базе программного обеспечения Asterisk.
Программа курса построена на пошаговом изучении IP Телефонии на базе программного обеспечения "Asterisk". В видеокурсе собраны самые ценные данные по телефонии Asterisk из массы отечественных и иностранных источников, а также собственный опыт IT компании занимающийся внедрением телефонии. Благодаря этому вы получите ценный практический материал который можно будет реализовать сразу после прохождения данного видеокурса. Ничего больше не нужно искать самостоятельно! Все необходимые знания мы собрали в одном курсе придав им легкоусвояемую для обучения форму.
Курс предназначен не только для системных администраторов, специалистов телефонии и практикующих руководителей ИТ-подразделений, но и для тех кто хочет ими стать.
Ведь курс разработан таким образом, что вам не обязательно обладать какими - либо базовыми знаниями или первоначальными навыками в области системного администрирования IP-телефонии, чтобы стать эффективным специалистом

Содержание
1. Краткие теоретические сведения

1.1 Что такое Asterisk
1.2 Что такое АТС
1.3 Виды и типы телефонии
1.4 Отличия аналоговой от цифровой телефонии
1.5 Аппаратные и программные SIP телефоны
1.6 Общие принципы организации цифровой IP телефонии в офисе
1.7 Виды и типы Unix систем, отличия Linux от Windows

2. Подготовка среды для организации телефонии

2.1 Устанавливаем ОС Linux сборки CentOS
2.2 Установка Putty
2.3 Установка Asterisk посмотреть пример урока о телефонии Asterisk

3. Конфигурация Asterisk

3.1 Конфигурация Asterisk для совершения звонков между внутренними абонентами посмотреть пример урока о телефонии Asterisk
3.2 Конфигурация Asterisk на работу через транк (принимаем звонки с внешних телефонов)
3.3 Установка музыки вместо гудка
3.4 Создание интерактивного (голосового) меню
3.5 Перенаправление звонков
3.6 Запись разговоров
3.7 Простой автоответчик посмотреть пример урока о телефонии Asterisk
3.8 Улучшение работы автоответчика и записи звонков
3.9 Установка системы просмотра статистики звонков
3.10 Усовершенствуем голосовую почту. Голосовая почта на каждый телефон с отправкой уведомления по e-mail
3.11 Перехват звонков. Pickup посмотреть пример урока о телефонии Asterisk

4. Усиливаем безопасность Asterisk. 17 шагов которые сохранят Ваши деньги

4.1 Меняем SIP порт посмотреть пример урока о телефонии Asterisk
4.2 Запрещаем чужакам SIP подключение
4.3 Защищаем сервер от перебора по номерам
4.4 Устанавливаем более сильные пароли для sip-клиентов
4.5 Запрещаем международные вызовы на уровне Dial плана
4.6 Настройка встроенного фаерволла iptables
4.7 Изменяем порт SSH, запрещаем пользователю логиниться как root через ssh, добавляем нового пользователя
4.8 Выключаем Apache из автозагрузки и меняем его порт
4.9 Отключаем ненужные модули и протоколы Asterisk
4.10 Изменим порт управления Астериском (AMI)
4.11 Настраиваем систему fail2ban
4.12 Защита от DOS атак
4.13 Улучшение защиты от DOS атак
4.14 Защита от сканирования портов
4.15 Сертификация SSH
4.16 Отключение samba
4.17 Дополнительная защита
4.18 Итоги обеспечения безопасности

5. Реализация дополнительных функций Asterisk

5.1 Конференц-связь Asterisk
5.2 Парковка вызовов
5.3 Переадресация звонков (FollowMe)
5.4 Очередь звонков. Создаем Call-центр
5.5 Работа Asterisk в зависимости от дня недели и времени суток

Файлы примеров: присутствуют
Видео: MPEG4 Video (H264) 1920x1080 30fps 285kbps [V: h264 high L4.0, yuv420p, 1920x1080, 285 kb/
Аудио: AAC 44100Hz stereo 125kbps [A: SoundHandler (aac lc, 44100 Hz, stereo, 125 kb/s)]

Внимание! У Вас нет прав для просмотра скрытого текста.

Никоноров Михаил, Ефременко Александр

Никоноров Михаил, Ефременко Александр | Телефония Asterisk с нуля (2014) PCRec Автор (режиссер): Никоноров Михаил, Ефременко Александр
Жанр: VoIP
Продолжительность: 11:01:07
Качество видео: PCRec
Видеокодек: AVC
Битрейт видео:

1323 Kbps
Размер кадра: 1920x1080
Аудиокодек: AAC 2.0
Битрейт аудио: 512 Kbps(VBR), 2 Ch, 44100 Hz

Описание:
Видеокуос «Телефония Asterisk с нуля» предоставляет комплекс знаний и пошаговых методик, которые позволят развернуть полноценную систему ip телефонии на базе Asterisk в предприятии.

Видеокурс познакомит Вас с видами и типами телефонии, расскажет Вам о принципах построения телефонии, научит Вас основам работы с семейством *nix подобных систем. Проведет Вас шаг за шагом от установки виртуальной машины, подключения телефонов и написания простейшего Dial плана до организации конференций и создания Call центра. Отдельный раздел этого видеокурса будет посвящен обеспечению безопасности телефонии.

Нортон обнаруживает трояна и не дает докачать торрент.

Category: Quarantine
Date & Time,Risk,Activity,Status,Recommended Action,Path - Filename
6/4/2015 10:01:53 PM,High,Телефония asterisk с нуля. Текстовая инструкция.exe (Trojan.Gen.2) detected by Download Insight,Quarantined,Resolved - No Action Required,e:\torrents\completed\nnm\Телефония asterisk\autoplay\docs\Телефония asterisk с нуля. Текстовая инструкция.exe

В чем смысл этого ехе если рядом лежит нормальный pdf?

Кто-нибудь понимает, какого. нужны все эти ехе-шники одноименные с каждым видеофайлом?
А накой там два dll и файл blank.docx с подозрительным кодом (5eYZNW#Pyc*m%A$9) внутри?

Информация в видео очень полезная, но сама раздача какая-то мутная.

Автор, разъясните пожалуйста, что за.

Нортон обнаруживает трояна и не дает докачать торрент.

Category: Quarantine
Date & Time,Risk,Activity,Status,Recommended Action,Path - Filename
6/4/2015 10:01:53 PM,High,Телефония asterisk с нуля. Текстовая инструкция.exe (Trojan.Gen.2) detected by Download Insight,Quarantined,Resolved - No Action Required,e:\torrents\completed\nnm\Телефония asterisk\autoplay\docs\Телефония asterisk с нуля. Текстовая инструкция.exe

В чем смысл этого ехе если рядом лежит нормальный pdf?

Кто-нибудь понимает, какого. нужны все эти ехе-шники одноименные с каждым видеофайлом?
А накой там два dll и файл blank.docx с подозрительным кодом (5eYZNW#Pyc*m%A$9) внутри?

Информация в видео очень полезная, но сама раздача какая-то мутная.

Автор, разъясните пожалуйста, что за.


это защита от копирования и запуска без покупки, но походу ее взломали.

Стаж: 4 года 7 мес.

Скачал(а): 2524 раз(а)
Поблагодарил(а): 2171 раз(а)"> 86.01%

Нортон обнаруживает трояна и не дает докачать торрент.

Category: Quarantine
Date & Time,Risk,Activity,Status,Recommended Action,Path - Filename
6/4/2015 10:01:53 PM,High,Телефония asterisk с нуля. Текстовая инструкция.exe (Trojan.Gen.2) detected by Download Insight,Quarantined,Resolved - No Action Required,e:\torrents\completed\nnm\Телефония asterisk\autoplay\docs\Телефония asterisk с нуля. Текстовая инструкция.exe

В чем смысл этого ехе если рядом лежит нормальный pdf?

Кто-нибудь понимает, какого. нужны все эти ехе-шники одноименные с каждым видеофайлом?
А накой там два dll и файл blank.docx с подозрительным кодом (5eYZNW#Pyc*m%A$9) внутри?

Информация в видео очень полезная, но сама раздача какая-то мутная.

Автор, разъясните пожалуйста, что за.


Если это вопрос ко мне,а не к авторам курса,то разъясняю:не скачивайте вообще курсы ниоткуда,покупайте.
А если это вопрос к авторам,то им и пишите.

P.S.Даже если вы и купите курс(ы),то никто вам не гарантирует,что ваш нортон не будет обнаруживать трояны во всех файлах курсов,т.к. они все в exe -формате(тем более какая-нибудь dll-ка не подгрузится к вам в какой-нибудь процесс при запуске лицензионного курса).
Проверено мною на многих купленных курсах,так же и многие другие люди в этом убеждались и убеждаются не раз.

Нортон обнаруживает трояна и не дает докачать торрент.

Category: Quarantine
Date & Time,Risk,Activity,Status,Recommended Action,Path - Filename
6/4/2015 10:01:53 PM,High,Телефония asterisk с нуля. Текстовая инструкция.exe (Trojan.Gen.2) detected by Download Insight,Quarantined,Resolved - No Action Required,e:\torrents\completed\nnm\Телефония asterisk\autoplay\docs\Телефония asterisk с нуля. Текстовая инструкция.exe

В чем смысл этого ехе если рядом лежит нормальный pdf?

Кто-нибудь понимает, какого. нужны все эти ехе-шники одноименные с каждым видеофайлом?
А накой там два dll и файл blank.docx с подозрительным кодом (5eYZNW#Pyc*m%A$9) внутри?

Информация в видео очень полезная, но сама раздача какая-то мутная.

Автор, разъясните пожалуйста, что за.


Если это вопрос ко мне,а не к авторам курса,то разъясняю:не скачивайте вообще курсы ниоткуда,покупайте.
А если это вопрос к авторам,то им и пишите.

P.S.Даже если вы и купите курс(ы),то никто вам не гарантирует,что ваш нортон не будет обнаруживать трояны во всех файлах курсов,т.к. они все в exe -формате(тем более какая-нибудь dll-ка не подгрузится к вам в какой-нибудь процесс при запуске лицензионного курса).
Проверено мною на многих купленных курсах,так же и многие другие люди в этом убеждались и убеждаются не раз.

=MITM=, у меня не было желания обидеть лично Вас и за раздачу Вам искреннее спасибо.
Но "мой нортон", вероятно, не дает докачать эту раздачу далеко не только мне. Учитывая довольно большой общий размер торрента, это реально нервирует.
Если все эти ехе-шники не несут никакой полезной нагрузки, а являются просто рудиментами поломанной системы защиты (как предположил предыдущий оратор), то было бы хорошо убрать их из раздачи и многим облегчить скачивание.
Это не претензия, а рационализаторское предложение. Еще раз спасибо за ценный материал.

Нортон обнаруживает трояна и не дает докачать торрент.

Category: Quarantine
Date & Time,Risk,Activity,Status,Recommended Action,Path - Filename
6/4/2015 10:01:53 PM,High,Телефония asterisk с нуля. Текстовая инструкция.exe (Trojan.Gen.2) detected by Download Insight,Quarantined,Resolved - No Action Required,e:\torrents\completed\nnm\Телефония asterisk\autoplay\docs\Телефония asterisk с нуля. Текстовая инструкция.exe

В чем смысл этого ехе если рядом лежит нормальный pdf?

Кто-нибудь понимает, какого. нужны все эти ехе-шники одноименные с каждым видеофайлом?
А накой там два dll и файл blank.docx с подозрительным кодом (5eYZNW#Pyc*m%A$9) внутри?

Информация в видео очень полезная, но сама раздача какая-то мутная.

Автор, разъясните пожалуйста, что за.


Если это вопрос ко мне,а не к авторам курса,то разъясняю:не скачивайте вообще курсы ниоткуда,покупайте.
А если это вопрос к авторам,то им и пишите.

P.S.Даже если вы и купите курс(ы),то никто вам не гарантирует,что ваш нортон не будет обнаруживать трояны во всех файлах курсов,т.к. они все в exe -формате(тем более какая-нибудь dll-ка не подгрузится к вам в какой-нибудь процесс при запуске лицензионного курса).
Проверено мною на многих купленных курсах,так же и многие другие люди в этом убеждались и убеждаются не раз.

=MITM=, у меня не было желания обидеть лично Вас и за раздачу Вам искреннее спасибо.
Но "мой нортон", вероятно, не дает докачать эту раздачу далеко не только мне. Учитывая довольно большой общий размер торрента, это реально нервирует.
Если все эти ехе-шники не несут никакой полезной нагрузки, а являются просто рудиментами поломанной системы защиты (как предположил предыдущий оратор), то было бы хорошо убрать их из раздачи и многим облегчить скачивание.
Это не претензия, а рационализаторское предложение. Еще раз спасибо за ценный материал.

Вы попробуйте зайти в настройки и добавьте в список доверенных, и будет вам счастье, если верить антивирусам то они многие файлы блокируют даже если файл не заражен, потому что в базе нет инфы об этом и он непонимает вирус это или что, его задача защищать ваш комп а не знать на все 100%, вот он их и блокирует

Установка и настройка Asterisk

Установка и настройка Asterisk. Частный опыт с нуля Во-первых, дисклаймер

Настройке Asterisk посвящены сайты, форумы и целые порталы типа voip-info.org. Но всегда есть люди, для которых эта тема – дремучий лес, а запустить продукт надо «вчера». Ещё полтора месяца назад я про Asterisk знал только то что он есть. Данный труд призван лишь несколько облегчить жизнь тем, кто окажется в такой же ситуации после меня. В нём могут быть ошибки любой степени «чайниковости». Если вы гуру настройки Asterisk – укажите на ошибку, я поправлю, потомки будут вам благодарны.

Сначала было слово

В некоторый момент времени моими усилиями стратегия развития инфраструктуры компании была перевёрнута буквально с ног на голову. Были очерчены цели и задачи и стало понятно, что нам нужна динамичная, мобильная серверная инфраструктура, чтобы экономить деньги, чтобы можно было в случае каких-то проблем быстро восстанавливаться и/или подниматься в другом месте, чтобы проще было ухаживать за железом и т.п.

Затем было дело

В общем, на бумаге всё было красиво и легко. Дело встало только за развёртыванием и настройкой Asterisk.
Сначала были закуплены два простеньких сервера. Core i7-930, 12GB памяти и по 12ТБ на SATA-дисках. На эти серверы был установлен бесплатный Xen Server и развёрнуты виртуальные серверы и рабочие станции для удалённых сотрудников.
В качестве внешнего хранилища используется QNAP-овский NAS, который достался в наследство.
Терабайтные локальные хранилища нужны только для хранения медиа-банка, который довольно велик. Сами серверы все вместе весят меньше 3-х терабайт.
Одним из серверов стал Asterisk на замену старичку Panasonic TDE-200. Т.к. компании необходима дешёвая связь, прямые номера в разных странах, и бесплатные переговоры между сотрудниками, то альтернативы ему за 12 шекелей в общем-то нет.

День первый: Make World

Настраивать Asterisk было решено на родной для Citrix Xen операционной системе CentOS. Тот же RedHat. только сбоку. Оговорюсь сразу: я всю жизнь админил Windows, а *nix-ами только “игрался” в виртуалках, не считая пары веб-серверов на железе. Поэтому, данное развёртывание Asterisk в Citrix Xen отдаёт некоторой наивностью с точки зрения умудрённых опытом людей.
В общем, я пошел по проверенному пути: открывается на ноуте подробная how-to инструкция для чайников из официальных мануалов и выполняется на сервере буквально и безинициативно. Играть в героев-наладчиков можно будет позже, когда всё будет настроено и работать в состоянии “по умолчанию” и будет сделан первый full backup.

День второй: yum install asterisk -y

Не то чтобы я был очень удивлён, но, тем не менее, я пошёл к знакомому связисту за советом по настройке Asterisk, когда обнаружил, что живых астерисков аж три практически самостоятельных форка: 1.4, 1,6 и 1.8. У каждого из них свои тараканы и примочки. Т.к. я не обольщался надеждой одолеть астериск с наскоку, то решил поставить версию 1.4, как у друга, дабы иметь максимально возможную совместимость конфигов. Хотя, впоследствии, пришлось подниматься до 1.6 из-за отсутствия поддержки TCP в 1.4, когда возникла такая потребность.
Для этого к CentOS был прилажен digium-овский репозиторий и Asterisk ставился из него.
Установка прошла вполне ожидаемо, без сучка и задоринки. В основном, использовался толковый пошаговый roadmap с voip-info .
Сразу же были поправлены iptables, чтобы разрешить трафик по SIP-портам.
Не сразу же, но будущим поколениям рекомендую установить и настроить немедленно пакет по имени fail2ban. Совершенно не лишняя программа на сервере, выставленном в интернет. У меня через день после установки весь Тайвань в drop ушел, судя по iptables.

День третий: ТЗ на функционал АТС

Начинаем самое интересное – планирование. Перед любым процессом настройки надо записать и структурировать все пожелания заказчика и обязательно подписать соглашение, чтобы избежать в дальнейшем конфликтов вида “нет, я говорил совсем другое”. В моём случае заказчик — это компания, в которой я работаю, но это ничего не меняет. Пишем техническое задание на функционал, обсуждаем его с ответственными людьми, утрясаем разногласия и подписываем финальный вариант и приступаем к настройке Asterisk.
ТЗ на конфигурацию получилось такое:

  • Нумерация телефонов четырёхзначная.
  • Первая цифра номера — признак страны расположения офиса.
  • Нумерация в каждом отделе начинается с первой цифры очередной сотни.
  • Каждый отдел является отдельной звонковой группой.
  • Если вызываемый абонент любым образом недоступен для вызова, то звонок перекидывается на всю группу.
  • Логика обслуживания входящих вызовов:
    1. Поднять трубку.
    2. Проиграть приветствие.
    3. Проиграть рекламу про текущие акции.
    4. Проиграть варианты вызова различных отделов или предложить набрать номер абонента.
    5. Начиная с пункта 2 ожидать ввода каких-либо команд.
    6. После окончания п.4 ждать ввода команд ещё 10 секунд.
    7. В случае отсутствия команд снова проиграть варианты вызова.
    8. Если абонент всё-равно тупит, то перекинуть звонок на секретаря.
  • Пользователям, которым необходим такой сервис, прикрутить голосовую почту. В этом случае, если пользователь любым образом недоступен для вызова, перекинуть звонок на голосовую почту.
  • По умолчанию, разрешены вызовы только на Россию и Италию — страны, где в основном работает наша компания. Остальные направления открываются по мере надобности самыми узкими масками, т.к. все мы помним страшные истории про “кубинских телефонистов” и не хотим, чтобы в один прекрасный день у нас АТС внезапно во все свои 50 каналов начала звонить в Сьерра-Леоне по 14 долларов в минуту для каждого канала.

На первый взгляд задание простое и настройка Asterisk не займет много времени, а на практике на его согласование ушло довольно много крови. Особенно, на согласование запрета всех направлений, кроме явно разрешенных. С этим клиенту пришлось согласиться только перед лицом неизбежной, в противном случае, необходимости конфигурации VPN на каждом подключающемся к АТС устройстве. Просто я стараюсь придерживаться максимально простых и понятных конфигураций, а клиенту всегда кажется, что добавить какой-то функционал к системе — это “всего-лишь пару кнопок нажать”.

День четвёртый: nano sip.conf

Начинается самое интересное: процесс настройки Asterisk.
Чтобы не затягивать и без того длинную статью, отягощая её подробным описанием мук начальной конфигурации и последующего тюнинга, я просто покажу текущие мои конфиги с комментариями что к чему.


[general]
context=default ;контекст по умолчанию
allowguest=no ;никаких гостей, мы никого не ждём
allowoverlap=no ;Этот параметр определяет разрешаем мы или нет передачу вызова с дополнительными цифрами. Мы – не разрешаем.
alwaysauthreject=yes ;Этот параметр означает, что все ошибки для внешнего клиента выглядят одинаково – ошибка авторизации. Призван осложнять взлом АТС.
useragent=Orgue de Barbaris ;Это – как мы представляемся у других. Я назвался по имени первого патефона, чтобы облегчить техподдержке провайдеров поиск диалогов с моей АТС, т.к. периодически приходится с ними общаться.
defaultexpiry=360 ;Интервал обязательной перерегистрации клиентов.
callevents=yes ;Это на будущее, чтобы клиент мог поиграть в управление music on hold
limitonpeer=yes ;Считаем исходящие и входящие вызовы пиров вместе.
tcpenable=yes ;Разрешаем TCP протокол для SIP.
rtptimeout=60 ;Сколько времени клиент может не откликаться, прежде чем будет кикнут из системы.
language=ru ;Язык системы. Используется для голосового меню.
bindport=5060 ;Порт по умолчанию. Можно изменить для усложнения вычисления и взлома АТС, но решение спорное.
bindaddr=0.0.0.0 ;у меня стоят нули, т.к. АТС имеет два интерфейса и на обоих висят клиенты.
srvlookup=yes
tos_sip=cs3 ; http://www.voip-info.org/wiki/view/Asterisk+sip+tos
tos_audio=efdisallow=all ;сначала запрещаем все кодеки
allow=alaw ;затем, разрешаем только те, что хотим использовать. Порядок значения не имеет.
allow=g729
allow=g723
allow=ulaw

dtmfmode=rfc2833 ;На Asterisk-ах рекомендуется ставить info, но мой итальянский провайдер настоял на rfc.
rtpholdtimeout=300
rtpkeepalive=5

canreinvite=no ;Этот параметр запрещает клиентам общаться напрямую. Общение происходит только через сервер. У меня это сделано так потому что мобильные клиенты используют платные клиенты с протоколом g.729а, а стационарные сидят на бесплатных клиентах без оного. Поэтому, я предпочёл напрячь сервер транскодингом alaw<->g.729a на лету в пользу качества связи для мобильных клиентов. Тем более что Core i7-930 вообще не замечает этой нагрузки.

externip=xxx.xxx.xxx.xxx ;Указываем наш внешний IP. Параметр нужен вообще-то, если только Asterisk прячется за NAT, но у меня он есть. Нехай будет.

allowexternaldomains=yes ;Читаем тут и решаем, надо-ли вам это.
domain=mydomain.com,default
fromdomain=mydomain.com

;Здесь должны быть прописаны пиры до провайдеров. Все встречавшиеся мне SIP-провайдеры имеют стандартный шаблон секции конфига для Asterisk и предлагают именно его для прописывания в конфиги. Я так и сделал и у меня всё работает. Поэтому, я не буду приводить здесь их все, дабы не смущать никого. Покажу только мегафоновский шаблон для мультифона просто в качестве примера.

register => tcp://номер@multifon.ru:пароль:номер@sbc.megafon.ru/номер

60 ;это пример стандартного SIP-пира до провайдера сип-телефонии для входящей связи

[multifon] ;это тот же пир, только уже для исходящей связи
type=peer
secret=пароль
username=номер
host=sbc.megafon.ru
port=5060
insecure=port,invite
call-limit=1
context=incoming
canreinvite=no
qualify=yes
transport=tcp
dtmfmode=inband

;А теперь – самое интересное. Клиентов у нас довольно много, поэтому, чтобы не прописывать каждому одно и то же, мы используем шаблоны. Выглядит это так:

[defaults](!)
canreinvite=no ;голосовой трафик только через сервер
disallow=all
allow=alaw
allow=g729
allow=g723

[peer](!,defaults)
type=peer
host=dynamic ;разрешаем цепляться откуда угодно
qualify=yes ;постоянно держим связь с клиентом
nat=yes ;предполагаем, что клиент может быть за NAT
call-limit=1 ;ограничиваем кол-во одновременных звонков
busylevel=1 ;сообщаем, когда отбивать с сигналом “занято”
rtpkeepalive=5 ;интервал в секундах для пинга клиента.

;Если нам надо что-то изменить или добавить, то выглядеть это будет так:

[ext1101](peer)
secret=secretsecretsecret
transport=tcp ;разрешаем отдельному пиру SIP по TCP.

День пятый: nano extensions.conf

Не менее интересный файлик, в котором прописывается вся логика АТС. Очень полезными для понимания логики dial-plan-ов оказались вот эти статьи: http://inhibitz.ucoz.ru/publ/9-1-0-21. http://asterisk-pbx.ru/wiki/doku.php/asterisk_dialplan
Итак настройка Asterisk продолжается:

[general]
static=yes ;запрещаем изменения конфигов из CLI
writeprotect=yes ;запрещаем изменения конфигов из CLI[globals]

;Далее идут макросы, которые определяют логику роутинга звонков.

[macro-dial-ext] ;макрос “что делать при наборе 4-значного экстеншна”
exten => s,1,Answer() ;поднимаем трубку
exten => s,2,Dial(SIP/ext$,20,tT) ;набираем номер, переданный как аргумент к макросу с таймаутом 20 секунд и разрешаем трансфер звонка любой стороне.
exten => s,3,Goto(s-$,1) ;отрабатываем код полученный от приложения Dial.
exten => s-NOANSWER,1,Macro(group-dial,$00) ;перекидываем на группу
exten => s-BUSY,1,Macro(group-dial,$00)
exten => s-CONGESTION,1,Macro(group-dial,$00)
exten => s-CHANUNAVAIL,1,Macro(group-dial,$00)
exten => _s-.,1,Hangup ;кладём трубку

[macro-dial-vip] ;макрос для пользователей голосовой почты
exten => s,1,Answer()
exten => s,2,Dial(SIP/ext$,20,tT)
exten => s,3,Goto(s-$,1)
exten => s-NOANSWER,1,Voicemail($) ;вместо группы перекидываем на голосовую почту.
exten => s-BUSY,1,Voicemail($)
exten => s-CONGESTION,1,Voicemail($)
exten => s-CHANUNAVAIL,1,Voicemail($)
exten => _s-.,1,Hangup

[macro-secretary] ;макрос для отработки вызова секретаря
exten => s,1,Answer()
exten => s,3,Dial(SIP/ext2222,15,tTm) ; вызываем секретаря
exten => s,n,Goto(s-$,1)
exten => s-NOANSWER,1,Macro(group-dial,$) ;перекидываем на группу из агрумента к макросу
exten => s-CHANUNAVAIL,1,Macro(group-dial,$)
exten => s-BUSY,1,Macro(group-dial,$)
exten => s-UNKNOWN,1,Macro(group-dial,$)
exten => s-CONGESTION,1,Macro(group-dial,$)
exten => s-CHANUNAVAIL,1,Macro(group-dial,$)
exten => _s-.,1,Hangup

[macro-group-dial] ;макрос для вызова группы
exten => s,1,Answer()
exten => s,n,Queue($) ;вызываем queue, состав которой прописан в queues.conf
exten => s,n,Goto(s-$,1)
exten => s,n,Hangup
exten => s-BUSY,1,Playback(all-circuits-busy-now)
exten => s-BUSY,n,Macro(secretary,1100) ;если все заняты, возвращаем звонок секретарю
exten => s-NOANSWER,1,Macro(secretary,1100)
exten => s-CHANUNAVAIL,1,Macro(secretary,1100)
exten => s-CONGESTION,1,Macro(secretary,1100)
exten => _s-.,1,Hangup

;Теперь прописываем правила для выхода наружу.

[default] ; Default context including all specials
include => incoming
include => multifon ;включаем в default контекст для мультифона

;Логика обработки вызовов внутренних экстеншнов
exten => _[123]X00,1,Macro(group-dial,$)
exten => _1[1-689]XX,1,Macro(dial-ext,$)
exten => _17XX,1,Macro(dial-vip,$)
exten => _[2]XXX,1,Macro(dial-vip,$)
exten => _[3]XXX,1,Macro(dial-ext,$)

;Далее у нас идёт логика обработки входящих вызовов.
;Весьма полезным для понимания оказался пример от Станислава Беликова у него в блоге:
;http://sbelikov.ru/2009/03/golosovoe-menyu-v-asterisk/
;Здесь необходимо заметить, что используются самостоятельно записанные приветствия вместе с чужими звуковыми файлами. Хороший набор русских голосовых файлов качается отсюда: http://www.ivrvoice.ru/
;Инструкция по самостоятельной конвертации файлов для Asterisk тут: http://www.voip-info.org/wiki/view/Convert+WAV+audio+files+for+use+in+Asterisk

[incoming]
exten => s,1,Goto(s-$,1) ;во-первых, определяем откуда вызов и отправляем звонок в нужную секцию. Это нужно для приветствий на разных языках.

exten => s-sipcity,1,Answer() ;это итальянский пир
exten => s-sipcity,2,Background(it-greet) ;которому мы проигрываем итальянское приветствие
exten => s-sipcity,3,Background(advert)
exten => s-sipcity,4,Background(it-route)
exten => s-sipcity,n,Waitexten()
exten => s-sipcity,n,Macro(group-dial,1100)

exten => номер,1,Answer() ;это мультифон-пир
exten => номер,2,Macro(dial-vip,2001) ;вызовы идут сразу человеку в екстеншн

exten => _s-zebra,1,Answer() ;это русский пир
exten => _s-zebra,2,Background(ru-greet) ;поэтому, русское приветствие
exten => _s-zebra,3,Background(advert)
exten => _s-zebra,4,Background(ru-route)
exten => _s-zebra,n,Waitexten()
exten => _s-zebra,n,Macro(group-dial,1100)

exten => s-eng,1,Answer() ;это английский пир
exten => s-eng,2,Background(en-greet) ;им - по-аглицки
exten => s-eng,3,Background(advert)
exten => s-eng,4,Background(en-route)
exten => s-eng,n,Waitexten()
exten => s-eng,n,Background(en-route)
exten => s-eng,n,Waitexten()
exten => s-eng,n,Macro(group-dial,1100)

exten => 5000,1,Answer() ;Это специальный внутренний номер для проверки логики IVR, а так же записанных рекламок. Очень удобно.
exten => 5000,2,Background(ru-greet)
exten => 5000,3,Background(advert)
exten => 5000,4,Background(ru-route)
exten => 5000,5,Waitexten()
exten => 5000,6,Background(ru-route)
exten => 5000,n,Waitexten()
exten => 5000,n,Macro(group-dial,1100)

;Здесь прописаны действия IVR на команды
exten => 1,1,Macro(group-dial,1100) ;если нажато “1”, то отправляем на группу 1100
exten => 2,1,Macro(group-dial,1200)
exten => 3,1,Macro(group-dial,1300)
exten => 4,1,Macro(group-dial,1400)
exten => 5,1,Macro(group-dial,1500)
exten => 6,1,Macro(group-dial,1100)
exten => 9,1,Goto(s-sipcity,1) ;Если выбран вызов меню на другом языке - отправляем туда
exten => 0,1,Goto(s-eng,1)
exten => _1[1-689]XX,1,Macro(dial-ext,$) ;обрабатываем вызов екстеншнов
exten => _17XX,1,Macro(dial-vip,$)
exten => _2XXX,1,Macro(dial-vip,$)
exten => _3XXX,1,Macro(dial-ext,$)

exten => i,1,Goto(s-zebra,4) ;инвалидов возвращаем в начало
exten => t,1,Goto(s-zebra,4) ;таймауты – туда же

;Здесь у нас прописываются правила набора номера
[zebra]

;Я договорился с “Зеброй”, что номерами мы обмениваемся в формате e164. Т.е. как в мобильниках, только без “+”. Например: 74951234567.

exten => _99ZXXXXXX,1,Dial(SIP/zebra/7495$) ;Здесь прописано правило вызова обычного семизначного московского номера в коде 495. “99” – это “префикс выхода на внешнюю линию”, ZXXXXXX – Это любой 7-значный набор цифр, но первая цифра не должна быть меньше 1. Далее идёт вызов через пир zebra с дописыванием в начало номера цифр 7495, в то же время убирая “99” из переданного в Asterisk набора.

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

;Italy
exten => _9939.,1,Dial(SIP/zebra/$)
exten => _99+39.,1,Dial(SIP/zebra/$)
;Внимательные люди обратят внимание, что одно и то же прописано дважды, с плюсом и без. Это сделано для удобства пользователей SIP на мобильниках. Не все клиенты умеют нормальный rewrite, так что получается по две записи на направление.

;Belorussia
exten => _9937517XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99+37517XXXXXXX,1,Dial(SIP/zebra/$)

;Kazakhstan
exten => _997727XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99+7727XXXXXXX,1,Dial(SIP/zebra/$)

;Ukraine
exten => _99380XXXXXXXXX,1,Dial(SIP/zebra/$)
exten => _99+380XXXXXXXXX,1,Dial(SIP/zebra/$)

;#############################
; cellular
;#############################
exten => _99790[3-9]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99791[0-79]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99792[569]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _997930XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99793[1-4678]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99795[0-3]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99796[0-578]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99798[0-5789]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _997997XXXXXXX,1,Dial(SIP/zebra/$)

;#############################
; cities starting at 3
;#############################
exten => _99730[12]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99734[1-35-79]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99735[1-3]XXXXXXX,1,Dial(SIP/zebra-out/$)
exten => _99738[1-5]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _997388XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99739[01]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99739[45]XXXXXXX,1,Dial(SIP/zebra/$)

;#############################
; cities starting at 4
;#############################
exten => _997401XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99741[1356]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99742[13467]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99747[1-5]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99748[1-7]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99749[1-689]XXXXXXX,1,Dial(SIP/zebra/$)

;#############################
; cities starting at 8
;#############################
exten => _99781[1-8]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _997820XXXXXXX,1,Dial(SIP/zebra/$)
exten => _997821XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99783[13-6]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99784[0-8]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99785[15]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99786[1-35-7]XXXXXXX,1,Dial(SIP/zebra/$)
exten => _99787[1-37-9]XXXXXXX,1,Dial(SIP/zebra/$)

День шестой: nano Voicemail.conf, nano queues.conf

Пришла пора настроить на Asterisk голосовую почту.

Здесь, на самом деле, даже конфиги выкладывать нет смысла, ибо там почти ничего не меняется, а что меняется — глубоко специфично. Главной проблемой для меня была настройка MTA для передачи почты через нестандартный порт и с smtp-авторизацией. Убив пол-дня на курение форумов, в конце-концов поставил exim и настроил передачу почты через него.
Два момента, на которых я хотел бы заострить внимание – голосовые сообщения у меня убиваются на Asterisk-е сразу после отправки. Просто, чтобы не забивали винт. Ибо актуальность такого сообщения измеряется минутами, а заставлять пользователей следить ещё и за голосовым ящиком мне кажется глупым. Кроме того, я поставил формат wav49 для сообщений, т.к. лень было заморачиваться со сжатием файлов в mp3, да и на почтовике суровые правила бесчеловечно поступают с мультимедиа-приложениями – все mp3 заменяются на спектрумовский «Exolon» в виде mp3.

С queues.conf тоже всё просто:


[general]
persistentmembers = yes ;очередь постоянная, никто никуда не выходит
autofill = yes ;просто так надо
autopause = no ;если мембер не отвечает, то ему всё-равно звонить
monitor-type = MixMonitor;Пример одной очереди
[1100] ;екстеншн очереди
strategy = ringall ;стратегия обзвона группы – звонят все сразу
eventwhencalled = yes ;прилада для внешних мониторов типа Fop2
ringinuse = no ;занятых не дёргаем
timeout = 20 ;таймаут
retry = 1 ;повторный вызов всей группы через 1 секунду
wrapuptime = 0 ;какая передышка у агента очереди после звонка (сек)
maxlen = 0 ;сколько людей в очереди на ответ. 0=бесконечно

;ниже – просто список мемберов очереди
member => SIP/2222
member => SIP/1101
member => SIP/1102
member => SIP/1103
member => SIP/1104
member => SIP/1105
member => SIP/1106
member => SIP/1107
member => SIP/1108
member => SIP/1109
member => SIP/1110

День седьмой: Послесловие

Во-первых, хотелось бы отметить собственные ошибки а так же очевидные минусы такого решения:
– Ошибка: для пользователей был закуплен мешок обычных гарнитур, какие используются дома для общения по скайпу или в TS. Это совершенно неподходящее для офиса решение. Сидеть целый день с воткнутой в ухо гарнитурой обычному человеку очень утомительно. А профессиональные операторские гарнитуры стоят как билет на орбиту. Кроме того, женский коллектив не приемлет гарнитур с оголовьем – “у нас причёски!”. Решение – USB-трубки или настольные SIP-телефоны для тех, у кого хороший бюджет.
– Ошибка: спешка нужна при ловле блох. Если вы не знаете что такое Asterisk и с чем его едят, то лучше начните изучать настройку Asterisk прямо сейчас. Изучать тщательно. Потому что эти знания обязательно понадобятся, причём, как обычно, со сроком “чтоб вчера было готово”. Не факт, что вам надо будет ставить и настраивать именно Asterisk, но общая теория VoIP и конструкций Dial-plan-ов вам очень пригодится. Мне пришлось буквально “пожарными” темпами всё ставить и осваивать на ходу из-за жёсткого конфликта с телефонной компанией-монополистом в нашем офисном центре, поэтому, не обошлось без факапов.
– Надёжность. Пока не отрастил себе седых волос за процессом настройки Asterisk, я мониторю АТС постоянно. Просто я не уверен ещё, всё-ли сделал правильно. Пару раз она у меня без причины переставала обслуживать клиентов и я теперь побаиваюсь оставлять её без присмотра.
– Факсов просто нет. Точнее, они как бы есть, но чисто для галочки. Нормальная работа с факсами очень затруднительна без использования железных плат, которых я избегаю для сохранения мобильности.
– Негарантированное качество связи. На каком бы широком канале вы ни сидели, всё-равно с завидным постоянством вы будете получать претензии на “булькающую связь”. Несмотря на стремительное развитие технологий и расширение каналов передачи данных, всё-равно регулярно случаются проблемы. Самый простой пример: небольшой отель в Италии, в котором находится представитель фирмы. В отель проведены целых 2Мбита ADSL-интернета с аплинком в 256к, который раздаётся бесплатно постояльцам через WiFi. Представитель связывается с офисом, используя данный канал, и связь отвратительна — постоянно булькает и вообще. Просто кто-то в отеле решил запостить в одноклассники пачку 12мпиксельных фотографий. Обычное дело.
– Если бюджет не очень большой и на настольные телефоны не хватает, то пользователям приходится осваивать новые методы работы с телефоном – с помощью программных звонилок типа Zoiper или PhonerLite. Кроме того, набирать *77 для перевода звонка их тоже напрягает, хотят “как раньше”, коротким нажатием на рычаг, которого теперь вообще нет.
– Так же моих пользователей раздражает необходимость набирать номера не “по-старинке” 810(кодстраны)(кодгорода)(телефон), а в формате е164. Я бы мог оставить и 810, но в этом случае номер обычного итальянского отеля становится просто космической длины: 998103912345678901. А в е164 он на три цифры короче.

В общем, подавляющее большинство проблем вызваны не трудностями с настройкой Asterisk, а нежеланием пользователей жить в эпоху перемен. Начиная с ворчания и заканчивая откровенным саботажем. Я бы мог ещё пару страниц перечислять претензии пользователей, но это будет жёсткий оффтоп. Единственное, что можно порекомендовать в данном случае — планируйте переезд на Asterisk тщательно. Постарайтесь сделать его как можно менее неудобным для пользователей. Бизнесу невыгодно тратить оплачиваемое время людей на их обучение новым штукам, которые могли бы работать по-старому, если бы всё было нормально спланировано.

Теперь плюсы решения:
+ Первый и самый очевидный – деньги. Мне удалось сократить расходы на связь примерно в 15 раз. Раньше средний счёт за телефонию у нас был около 5 тысяч долларов в месяц. За прошедший после внедрения Asterisk месяц даже трёхсот долларов не набежало. Львиная доля экономии — разговоры между сотрудниками в разных странах.
+ Мобильность. Если вдруг что-то случается, не важно что именно – будь то новый Московский блэк-аут или просто пожар в здании – я поднимаю виртуалку с Астериском на любом хостинге, который умеет их импортировать, и просто сообщаю клиентам новый IP АТС. Попробуйте представить время недоступности телефонной связи с обычной телефонией.
+ Просто фантастическая гибкость настройки Asterisk и его почти полная бесплатность. Конечно, мы платим своим временем экономя деньги на решениях “из железной коробки”, но лично мне интересно было узнать, как же всё это работает.

Один вопрос, который я сам себе пару раз задавал: “Почему не поставил Elastix, FreePBX, PiaF или типа того? По роадмапу за 10 минут ставится и работает годами!” Ответ простой: за веб-мордой не видно леса. Да, это удобно, но чтобы преодолеть функционал веб-морды, придётся править нестандартные конфиги, рискуя поломать всё к чёрту одной запятой. А я даже близко не могу представить, что нам понадобится через год. Кроме того, с веб-мордой никогда не узнаешь что и как работает. Поэтому, чистый Asterisk, комсомольцы не могут без трудностей.

Сейчас у меня Астериск с такими конфигами работает вполне удовлетворительно. Есть досадные мелочи, типа эха при звонке на некоторые странные городские АТС, или отвратительная работа некоторых встроенных звуковых карт (будь проклят один популярный производитель бюджетных материнок), но это – дело житейское – решается USB-трубками, с которыми очень хорошо стыкуется бесплатный Zoiper Free.
В общем и целом, я и моё руководство довольны проделанной работой. Надо только ещё поработать надфилем и можно будет приступать к следующему проекту.

Что ещё осталось доделать, для полного счастья:
Поставить и настроить Fop2, чтобы пользователи могли видеть кто из сотрудников в каком состоянии, чтобы не было ситуации перевода звонка на занятого абонента, когда звонок автоматом перекидывается на группу и человек попадает совсем не туда, куда хотел.
Поставить систему мониторинга, чтобы в реальном времени отслеживать состояние АТС, звонков, очередей.
Поставить какую-нибудь крайне простую систему отчётности по звонкам. Задача стоит всего-лишь во внятной визуализации количества звонков для проверки счетов.