новости
статьи
.sysadmin

Trixbox, Asterisk и IP-телефония в домашней локальной сети

Толчком для написания этого материала стала статья в 12 номере «Сетевых решений» - «Простая система корпоративной VoIP-телефонии». Захотелось попробовать в своей локальной сети организовать нечто подобное. За неимением специальных телефонных аппаратов, заточенных под использование IP- телефонии, я обратил внимание на программные решения, использующие обыкновенные микрофон и колонки. Начитавшись по самое не хочу http://www.voip- info.org/wiki/, решил приступать к делу. Выбор остановился на Asterisk PBX (PBX, Private Branch Exchange, по-нашему - офисная АТС). Так как в используемом мной дистрибутиве Debian уже присутствовал пакет Asterisk, логично было бы начать именно с него. Но мы не ищем легких путей. После установки и настройки я случайно натолкнулся на проект Asterisk@home. Это любопытное решение, включает в себя собственно Asterisk и кучу дополнительного хозяйства и специально заточено для быстрого развертывания системы офисной телефонии. Имеется веб-интерфейс для быстрого и удобного редактирования конфигурационных файлов (коих кстати в Asterisk довольно много). На веб-странице проекта радостно сообщалось, что проект переименован и теперь доступен под именем Trixbox. По словам разработчиков, данное решение позволяет новичкам быстро организовать в офисе или дома систему IP-телефонии. Как простую, так и весьма сложную.

Заинтригованы? Вот и я купился на эти обещания и решил попробовать. Решение абсолютно бесплатное, на сайте www.trixbox.org доступен ISO с образом системы, единственная трудность – скачивание этого самого образа, так как размер его 533 Мб. Хорошие друзья помогли скачать образ. Кстати, спасибо им. Итак, образ записан на болванку. Посмотрим, можно ли верить разработчикам – они обещают рабочую систему менее чем через час! В этом месте хочу предостеречь читателей – данный образ форматирует весь жесткий диск компьютера без особых предупреждений. Так что ставить его надо с большой осторожностью. Смотрите, не потеряйте свои данные! Если нет возможности ставить на отдельный жесткий диск – лучше попробовать поставить просто пакет Asterisk на ваш рабочий Linux.

Свободное время у меня имеется. Свободный винчестер тоже. Попробуем? Итак засекаем время...

установка Trixbox

14:08. Диск в лотке, перезагружаем машину. В ответ на приглашение загрузчика нажимаем Enter. Далее выбираем используемую клавиатуру (я оставил us по умолчанию).

Загружается CentOS installer – anaconda. Автоматически распознаются периферийные устройства, мышь, клавиатура, монитор и др. Затем следует настроить временную зону. Я выбрал Europe/Minsk. Далее следует ввести пароль root. Здесь все на ваше усмотрение, свой пароль я не скажу :) До этого шага еще можно прервать установку, никаких изменений на диск еще не записывается. После ввода пароля жесткий диск автоматически форматируется!

14-12. Начинается установка пакетов. Ориентировочное время установки – около 9 минут. Устанавливается 368 пакетов. На диске они займут порядка 851 мегабайта.

14-21. Пакеты установились. Начинается этап postinstall и установка загрузчика grub.

Выброс компакт-диска и перезагрузка. На этапе конфигурирования сетевого интерфейса eth0 возникает значительная пауза. По всей видимости, это связано с тем, что в нашей сети нет DHCP-сервера. У вас все может происходить быстрее. Конфигурируются Apache, MySQL и другие сервисы. 14-27. Еще одна перезагрузка. Окончательная настройка системы.

14-30. Перезагрузка.

14-34. Теперь (если все в порядке) мы попадаем в login prompt. Логинимся в систему пользователем root и в случае неверных сетевых настроек (как было в моем случае) даем команду netconfig и настраиваем сеть. Вам понадобятся следующие полезные сведения: IP-адрес, netmask, default gateway, DNS.

14-37. Даем команду service network restart.

14-38. Теперь все! Установка заняла полчаса.

базовая настройка безопасности trixbox

На этом этапе можно смело снимать с нашего свежеиспеченного сервера клавиатуру, монитор, мышь. Они нам больше, надеюсь, не понадобятся. Теперь можно удаленно управлять нашим сервером по ssh. Для доступа по ssh я использую клиент putty. Пароль для доступа – тот, что вы указывали при установке Trixbox. Зайдем теперь на сервер при помощи ssh (конечно, никто вам не запрещает осуществлять вход и локально). Поменяем пароли, используемые по умолчанию, командами:

- passwd-maint – для смены пароля, используемого для обслуживания сервера через веб-интерфейс (этот пароль я рекомендовал бы сменить в первую очередь – по умолчанию пользователь maint, пароль password);

- passwd-amp – для смены пароля, используемого для обслуживания сервера через веб-интерфейс (пароль для пользователя wwwadmin). Разница между этими двумя пользователями (maint и wwwadmin) в том, что пользователь maint получает абсолютно полный доступ, а пользователь wwwadmin – ограниченный;

- passwd admin – для смены пароля пользователя, который может читать системную почту;

- passwd – собственно для смены пароля пользователя root (надеюсь, на этапе установки вы выбрали хороший пароль).

Можно также изменить следующие пароли:

- FOP (Flash Operator Panel) – для этого переходим в каталог /var/www/html/panel и редактируем файл op_server.cfg и меняем строку security code=passw0rd. Для навигации по файловой системе можно использовать как обычную для WINDOWS/LINUX команду cd, так и воспользоваться устанавливаемым в trixbox файловым менеджером mc (midnight commander).

- passwd-meetme – для изменения пароля meetme (обеспечивает проведение конференций);

- sugar crm. Я даже не знаю, как охарактеризовать это приложение, поскольку раньше с CRM-системами не сталкивался. Подробно останавливаться на нем не буду. По умолчанию имя пользователя и пароль admin, password;

- билинговая система. В настройки билинга можно попасть, введя в адресной строке браузера: server_ip/a2billing/. Имя пользователя и пароль по умолчанию root, myroot. Я не настраивал билинговую систему, поскольку не планировал развертывать сложную систему с билингом, а сделать как можно более простую АТС, но вы можете, конечно попробовать.

Войдя на сервер по протоколу ssh, можно также воспользоваться командой asterisk –r для входа в так называемый CLI (Command Line Interface) системы asterisk. Это очень удобно для отладки системы. В CLI доступно множество команд, список которых можно просмотреть, введя команду help. Короткую справку по командам можно получить, введя в CLI:

help <команда>

Также на сервер можно поставить пакет webmin и управлять им (сервером), не утруждая себя работой в командной строке

базовая настройка trixbox/asterisk и программных телефонов

Далее проведем подготовительную работу на компьютерах, которые планируется подключать к нашей телефонной системе. Клиентские машины могут работать как под управлением Linux, так и под Windows (а, впрочем, и MacOS тоже). Нам требуется запастись клиентским программным обеспечением – так называемыми softphones (программными телефонами). Долго же я бродил по всемирной паутине в поисках разных софтовых телефонов! Данные о них сведу в таблицу, чтобы вам было легче выбрать.


НаименованиеПлатформаРазмер инсталляционного файлаИнтефейс 1…5ОЗУ
SJPhoneWindows/Linux3.8 Mb417,4 Mb
ExpressTalkWindows439 Kb34,2 Mb
X-liteWindows/Linux6.2 Mb526,7 Mb
KphoneLinux?2
3CX Voip PhoneWindows1.2 Mb39,5 Mb
Firefly/CubixWindows4.6 Mb516,5 Mb


Сам я пользуюсь SJPhone (как под Windows, так и под Linux) а если располагать программы в порядке предпочтительности (по убыванию), то вышеназванные телефоны расположил бы так: SJphone, X-lite, Firefly/Cubix, 3CP Voip Phone, Express Talk, Kphone. Хотя если критичен размер программы и занимаемый объем ОЗУ, то тут безусловный лидер - Express Talk (хотя он и крайне нестабилен). Еще хотелось бы отметить очень неторопливую работу X-lite под Linux. Некоторые операторы IP-телефонии выкладывают на своих сайтах собственные программные разработки для звонков через Интернет, но, как правило, эти программы заточены под использование конкретного оператора IP-телефонии и настроить их работу совместно с trixbox не представляется возможным (хотя бывают исключения).

внешний вид программных телефонов



Рис. 1. Sjphone



Рис. 2. X-lite



Рис. 3. Cubix/Firefly



Рис. 4. 3CX Phone



Рис. 5. Express Talk

Итак будем считать, что программный телефон мы выбрали и скачали. Теперь остается его настроить. Для начала зайдем на наш свежеустановленный телефонный сервер через веб-интерфейс. Запускаем Opera/IE/FF/Mozilla/Или_что_там_у_вас_еще и в адресной строке набираем IP-адрес нашего сервера (надеюсь, вы еще его не забыли :). То, что вы увидете, жолжно быть похоже на рис. 6.



Рис. 6. Главная страница веб-администратора Trixbox.

Перейдем в раздел Free PBX (см. рис. 7). Да, кстати, повторюсь: имя пользователя и пароль по умолчанию – maint:password (не правда ли, очень хороший пароль? ;) Следуем далее в Tools|Module Admin. В этом разделе добавим все доступные модули (так сделал я, а вы можете добавить только то, что вам нужно).



Рис. 7. Free PBX administration.

Когда мы вносим какие либо изменения в конфигурацию сервера, в верхней части окна браузера появляется сообщение вызывающе красного цвета – на него следует кликнуть, чтобы изменения вступили в силу.
Далее следуем в раздел Setup и приступаем к самому интересному – к настройке так называемого номерного плана Asterisk. Все настройки можно также делать путем ручной правки конфигурационных файлов, которые расположены в каталоге /etc/asterisk на сервере, но при этом избежать ошибок будет трудновато.

Итак, мы находимся в разделе Setup. Выбрав слева раздел Extensions, мы попадаем на страницу Add Extension. В терминологии Asterisk extension - это и есть номер нашего телефона. Нас интересует соединение по протоколу SIP (Session Initation Protocol). Добавим для примера два номера - 201 и 202 - чтобы проверить связь. Для этого в поле extension number введем «201», в поле display name - “first phone”, а в поле secret – пароль, например, 201. Затем нажмем кнопку submit и добавим второй номер – 202. После нажатия Apply Settings все готово! Можно звонить. Надо только должным образом настроить используемые программные телефоны.

Рассмотрим подробнее настройки SJPhone и X-lite. В принципе, все софт-телефоны настраиваются однотипно. Для настройки нам следует знать только IP-адрес сервера и имя пользователя (его номер) и пароль. Полный адрес абонента в сети выглядит, например, так: 201@172.16.15.193,202@172.16.15.193 или 201@mydomain.com, 202@mydomain.com.

Аналогия с адресом электронной почты полная. IP-адрес сервера мы знаем, номер пользователя и пароль тоже. Приступим к настройке.

SJPhone: нажимаем правую кнопку на иконке SJPhone в трее и выбираем пункт Options.Нас интересует закладка Profiles. Создаем новый профиль, называем его по собственному усмотрению и указываем тип соединения “Calls trought SIP Proxy”, далее переходим на закладку SIP Proxy и в поле Proxy Domain указываем IP-адрес нашего сервера и порт 5060. Остальные настройки можно пока не трогать. После нажатия на кнопку OK следует ввести номер и пароль – вводим 201 и 201. После закрытия всех окон в главном окне SJphone видим примерно следующее: SIP: registered as: sip:201@172.16.15.193.

Все готово: первый телефон настроен!

X-lite: Здесь все еще проще - правый клик на рабочем окне программы X-lite, выбор пункта меню SIP account settings, затем кнопка Add. Вводим следующее:

Display Name – 202 (или что захотите).

User Name – 202.

Password – 202.

Autorization User Name – 202.

Domain – IP-адрес нашего сервера.

Затем применяем настройки и закрываем окно. В главном окне после небольшой паузы видим Ready: Your username is:202.

Вот и все! Пытаемся позвонить с первого телефона на второй, и если все нормально настроилось, общаемся на здоровье!

Остальные softphones настраиваются аналогично первым двум.

что еще интересного?

А интересного еще очень много! В разделе Setup (веб-интерфейс сервера) доступны следующие модули:

Модуль Administrators. При помощи этого модуля можно назначать пользователей, которым будет разрешен доступ к определенным или ко всем модулям настройки телефонного сервера.

Модуль Conferences. Настройка конференц-связи. В этом разделе настраиваются так называемые конференц-комнаты в которых могут общаться сразу несколько пользователей. Для примера настроим конференцию на номер 8888. Для этого жмем ссылку Add Conference и заполняем следующие поля формы: - conference name – имя конференции (вводим любое имя для идентификации);

- user PIN – пин-код, который будет запрашиваться перед входом в конференцию (можно оставить пустым);

- admin PIN – пин-код полязователя «администратор»;

- join message – сообщение, проигрываемое пользователям перед в входом в конференцию;

- leader wait (yes/no) – если yes, то система ожидает, пока в конференцию войдет пользователь с правами администратора, прежде чем можно начинать общение;

- quiet mode (yes/no) – если yes, то система не сигнализирует при входе-выходе пользователя в конференцию;

- user count (yes/no) – если yes, то система при входе пользователя в конференцию проговаривает число подключившихся пользователей; - user join/leave (yes/no) – если yes, то система попросит сказать ваше имя при входе в конференцию и будет проговаривать его тем, кто уже подключился к этой конференции;

- music on hold (yes/no) – если yes, то при входе в конференцию только одного пользователя ему будет проигран музыкальный файл до тех пор, пока к конференции не подключится кто-нибудь еще;

- allow menu (yes/no) – если yes, то абонент, который подключился к конференции, сможет воспользоваться меню, которое вызывается клавишей * для дополнительных функций конференции.

Модуль Digital Receptionist. Настройка автоответчика с возможностью создания голосовых меню. Это позволяет строить на базе Asterisk сложные автоматические справочные системы. Настроим, к примеру, автоответчик на прием входящих звонков. Для этого выберем пункт Add IVR:

- сhange name – имя нашего автоответчика. Введем test для примера.

- timeout – время в секундах, после которого будет выбран вариант ответа автоответчика по умолчанию;

- enable direct dial – опция, позволяющая абоненту сразу набрать необходимый ему номер, находясь в меню автоответчика;

- announcement – сообщение, которое будет проиграно при звонке на данный автоответчик.

По умолчанию в автоответчике активировано три пункта. Можно добавлять или удалять пункты кнопками Increase Options и Decrease Options. Допустим мы хотим, чтобы пользователь, дозвонившийся до автоответчика имел возможность выбора из двух вариантов:

1) позвонить пользователю 201;

2) позвонить пользователю 202.

А также хотим, чтобы по умолчанию (если пользователь не выбрал никакого пункта) звонок направлялся в конференцию 8888, а при неправильном вводе пользователь перенаправлялся опять на автоответчик. Для этого увеличим количество вариантов ответа кнопкой Increase Options до пяти. Настроим их:

1 – Core 201
2 – Core 202
t – Conferences 888
i – IVR test

Модуль Feature Codes. Настройка специальных кодов. Позволяет настроить специальные номера для таких возможностей, как перевод и ожидание звонка, имитирование входящего телефонного вызова или вызова факса, настройки функции «не беспокоить», а также коды для записи и прослушивания голосовых сообщений. Полный список кодов будет приведен ниже.

Модуль Follow Me. Этот модуль - аналог Ring Group для отдельных пользователей. Он позволяет перенаправлять звонки на другие номера. Настройка этого модуля практически идентична настройке модуля Ring groups (см. ниже).

Модуль General Settings. Отвечает за основные настройки телефонного сервера. Здесь настраивается префикс для прослушивания сообщений голосовой почты, региональные настройки (выставим на всякий случай Russia/Ex Soviet Union), настройки условий перехода в ящик для голосовых сообщений и др.

Модуль Inbound Routes. Настройка входящих соединений с других АТС. Я не настраивал этот раздел, поскольку не имею соответствующего оборудования. Модуль On Hold Music. Позволяет настроить музыку, которая слышна звонящему абоненту, когда звонок был поставлен на паузу (on hold). В базовую поставку Trixbox уже входит набор из нескольких мелодий, но, как я предполагаю, каждому захочется поставить что-нибудь свое – поддерживается удаленная закачка файлов mp3 и wav (жаль, поддержка ogg vorbis отсутствует).

Модуль Outbound Routes. Этот модуль отвечает за внешние соединения. Это уже очень интересно. Хочу сделать небольшое отступление. Пока ваш телефонный сервер настроен на локальную работу, ничего особо страшного нет. Но если мы захотим соединиться с внешним миром, тут нас подстерегает несколько скользких моментов, точнее один – насколько все это законно (на территории РБ). Мнения Интернет-сообщества разделяются: одни настаивают на том, что IP-телефония совершенно законна, пока пользователь не начнет предоставлять свои услуги другим за плату; другие придерживаются точки зрения, что поскольку нет соответствующих нормативных актов, то и пользоваться можно на всю катушку. Я решил не искушать судьбу, но все же попробовал узнать, как работают эти самые исходящие соединения. Для этого я просто поднял в сети второй сервер под управлением Debian Linux и настроил на нем Asterisk. После этого я настроил исходящее соединение, используя следующие параметры:

- route name – имя соединения (пусть будет TEST_OUT);

- route Password – пароль, который будет запрашиваться перед соедининием (укажу простой пароль - 1111). Поле можно оставить пустым, но рекомендуется все же обезопасить себя от нежелательных внешних (возможно платных) соединений;

- pin set – набор пин-кодов (я не использую эту опцию, поэтому пускай останется по умолчанию пустой);

- emergency dialing – следует отметить этот пункт, если с помощью этого соединения осуществляются звонки в службу помощи (например, 911). Я оставил этот пункт выключенным;

- dial patterns – в этом поле задаются маски набора номера. Можно использовать следующие значения:

X – любая цифра 0…9,

Z – любая цифра 1…9,

N – любая цифра 2…9,

[1237-9] – любая цифра в квадратных скобках. В данном примере – 1, 2, 3, 7, 8, 9,

* – любой символ или несколько символов,

| – отделяет префикс номера от собственно номера. Сам префикс передаваться не будет.

Например, 9|XXX совпадает, если пользователь набрал, например, 9765, но через шлюз передается только номер 765. В моем конкретном случае я решил, что приемлемым для теста значением Dial Patterns будет ХХХ. То есть все набранные трехзначные номера пойдут через это соединение. - trunk sequence – очень важный пункт. Здесь указывается, какое междугородное соединение будет обслуживать эти вызовы. Пока у нас нет настроенных соединений за исключением Zap/g0. Мне это не подходит, посему оставим пока этот пункт ненастроенным, а сохраним настройки и перейдем к настройке междугородних соединений, для чего переходим в модуль Trunks.

Модуль Trunks. В этом модуле можно добавить 5 видов междугородних соединений:

- Add ZAP Trunk;
- Add IAX2 Trunk;
- Add SIP Trunk;
- Add ENUM Trunk;
- Add Custom Trunk.

Нас в данный момент интересует SIP Trunk, так как звонки предполагается осуществлять через протокол SIP. Добавляем SIP trunk:

- outbound caller ID – здесь указываем caller id для звонков через это соединение;

- maximum channels – количество одновременных звонков через это междугороднее соединение. Я оставил это поле пустым (можно совершать сколько угодно одновременных вызовов);

- dial rules – как именно вызовы будут передаваться через это междугороднее соединение (имеется в виду, будет ли передаваться префикс междугородного набора). Здесь можно указывать те же маски, что и в Dial Patterns, а также знак +. Знак + означает, что номер будет предан с префиксом международного набора. Это поле (если не используется знак | или +) заполнять не надо;

- outbound dial prefix – оставляем это поле пустым по умолчанию;

- trunk name – обзываем созданное междугородное соединение каким-нибудь нехорошим именем (например, TRUNK01);

- peer detail – важное поле! Здесь следует заносить параметры VoIP-провайдера. Допустим, у вас есть аккаунт на каком-либо сервере VoIP (например, spinet.ru) Введя данные о нем в поле peer detail, вы заставите все международные вызовы идти через ваш spinet.ru-аккаунт. Как было уже сказано выше, рисковать я не буду, поэтому в качестве peer detail введу координаты… правильно, моего второго сервера под управлением Debian! Вот такой межгород... :)

Итак, peer details:

host=172.16.15.211
secret=600
type=friend
username=600


На сервере с IP-адресом 172.16.15.211 под управлением Debian я предварительно завел аккаунт с номером 600 и весьма сложным паролем - 600. - incoming settings – не трогаем (я оставил это поле пустым);

- register string – строка регистрации на сервере провайдера.

600:600@172.16.15.211

Сохраняем наше междугороднее соединение. Переходим обратно к модулю Outbound Routes. Выбираем TEST_OUT. И в выпадающем списке Trunk Service выбираем только что созданное нами соединение SIP/TRUNK01. Все.

Включаем два софт-телефона. Один регистрируем на сервере с Trixbox, а другой - на сервере 172.16.15.211 (на моем тестовом сервере я зарегистрировался под номером 601) Набираем на первом телефоне 601. Нас просят ввести пароль для доступа. Вводим пароль, который мы заносили в настройках Outbound Routes (в моем случае – 1111) и нажимаем решетку (#) – признак окончания ввода. И что слышим? Звонит второй телефон! Что и требовалось доказать.

Модуль PIN Sets. В этом модуле можно ввести наборы пин-кодов для доступа к таким услугам АТС, как междугородние соединения и др. Мне этот модуль пока не понадобился.

Модуль Paging and Intercom. Отвечает за включение и настройку услуги пейджинга. Эту функцию протестировать не удалось, поскольку она поддерживается аппаратами GXP-2000, Snom phones и некоторыми другими. Ничего этого под руками не было, так что извиняйте.

Queues (очереди). Очень интересный модуль. Вы наверняка звонили в службу поддержки своего телефонного оператора. Этот модуль позволит вам организовать такую систему (так называемый call-центр) на нашей IP АТС. Очереди позволяют обслуживать большое количество одновременных звонков. Когда пользователь звонит на определенный номер, его звонок ставится в паузу, ему проигрывается приветствие и сообщается, когда свободный оператор может принять его звонок. Давайте рассмотрим пример организации очереди.

Добавляем очередь – Add Queue.

- queue number - номер очереди. Телефонный номер, набрав который абонент попадает в очередь. Внесем в это поле, например, номер 999. Операторы могут присоединиться к обслуживанию входящих звонков, набрав 999*. Чтобы отказаться от обслуживания телефонных вызовов оператору следует набрать 999**.

- queue name – дадим понятное имя нашей очереди (например, mainoffice);

- queue password – необязательное поле. Пароль для входа операторов (в терминологии Trixbox – agents). Если пароль отсутствует, то любой пользователь, позвонив по номеру 999*, автоматически становится оператором;

- CID name prefix – необязательное поле. В этом поле можно указать, например: Call from queue. Это сообщение будет выведено на телефон оператора при звонке перед номером вызвавшего абонента;

- static agents – в этом поле вводятся номера операторов, которые по умолчанию всегда обслуживают очередь (им нет необходимости логиниться в систему, набирая 999*);

- agent announcement – выбор звукового файла, который будет проигран оператору перед соединением с клиентом;

- hold music category – категория музыкальных файлов. Эти файлы будут проиграны клиентам, которые дозвонились и стоят в очереди. Файлы и категории можно менять при помощи модуля On hold Music;

- max wait time – максимальное время, которое клиент может находиться в очереди. 0 – для бесконечного ожидания ответа оператора (по умолчанию); - max callers – максимальное количество клиентов, одновременно находящихся в очереди. По умолчанию 0 (не ограничено);

- join empty – этот параметр позволяет клиенту присоединиться к очереди даже в том случае, если очередь не обслуживается ни одним оператором; - leave when empty – этот параметр удаляет из очереди всех клиентов, если она не обслуживается ни одним из операторов;

- ring strategy – параметр позволяет управлять стратегией звонков. Доступны следующие опции:

1) ringall – звонок направляется всем операторам, пока один из них не ответит;

2) roundrobin – звонок направляется по очереди всем свободным операторам;

3) lastrecent – звонок направляется тому оператору, которому направлялось наименьшее количество вызовов в этой очереди;

4) fewestcalls – звонок направляется тому оператору, который ответил на наименьшее количество звонков;

5) random – тут все понятно: операторы вызываются в случайном порядке;

6) rrmemory – аналогично roundrobin, но запоминается номер последнего ответившего оператора и далее звонок поступает следующему свободному. - agent timeout – время в секундах, в течение которого будет делаться попытки дозвона свободному оператору;

- retry – время в секундах между повторными попытками дозвона до оператора;

- wrap-up-time – после успешного дозвона клиента до оператора АТС ожидает это время, прежде чем послать вызов следующего потенциального клиента оператору. По умолчанию – 0;

- call recordings – здесь опять все понятно: запись разговора. По умолчанию запись выключена. Можно выбрать формат записи разговора - wav49, wav или gsm;

- frequency – как часто пользователь будет оповещаться о своей текущей позиции в очереди и о предполагаемом времени ожидания в ней; - announce position – позволяет включить или выключить оповещение клиента о его текущей позиции в очереди;

- announce hold time – позволяет включить или выключить оповещение клиента о предполагаемом времени ожидания до ответа оператора. Время ожидания не проговаривается, если оно менее 1 минуты;

- voice menu – Эта опция служит для того, чтобы клиент мог воспользоваться голосовым меню после того, как ему сообщена его позиция в очереди (голосовые меню создаются в модуле Digital Receptionist);

- join announcement – сообщение, которое будет проиграно пользователю перед тем, как его звонок будет поставлен в очередь.

В пункте Fail over Destination можно задать номер абонента, конференцию, автоответчик и т. п., на которые будет переправлен звонок, если попытка дозвона окончилась неудачно по каким либо причинам.

После того, как очередь будет создана, можно попытаться протестировать ее, позвонив с какого либо телефона на номер 999. В моем случае все работало просто прекрасно.

Модуль Ring Groups: этот модуль отвечает за настройку групп. Можно объединить несколько номеров в один виртуальный номер, и звонить всем абонентам одновременно.

- group number – в этом поле задается номер для группового звонка;

- group name - понятное описание группы номеров (например, OFFICE 1);

- ring strategy – можно выбрать один из трех вариантов:

1) ringall – звонок будет осуществлен сразу по всем телефонным номерам;

2) hunt – будет произведена попытка дозвона в порядке очередности сначала по первому номеру, затем по второму и т. д.;

3) memoryhunt – сначала будет осуществлен звонок по первому в списке номеру, затем по первому и второму одновременно, потом по первому, второму и третьему номерам сразу и т.д.

- extensions list – в этом поле перечислены телефонные номера (по одному на каждую строку) по которым собственно и будет осуществляться дозвон. Для примера внесем в это поле – 201, 202, 203, 204 и 205;

- CID name prefix – необязательное поле. Предназначено для того, чтобы пользователи могли определить, что совершается групповой звонок; - ring time – какое время продолжать дозваниваться, прежде чем будет осуществлен переход к другому звонку или к звонку, назначенному по умолчанию (максимум 60 секунд);

- announcement – сообщение, которое будет проиграно человеку, который инициировал групповой звонок (можно выбрать заранее записанное сообщение); - destination if not answer – здесь указывается, куда переадресовать звонок, если ни один из звонящих не ответил в течение времени ring time. Можно указать один из существующих номеров (переключатель core), переадресовать звонок в конференцию (переключатель conference), перевести номер на автоответчик (переключатель IVR), направить звонок в другую группу (преключатель ring groups) или выполнить произвольное приложение (поле ввода Custom App).

Теперь, после внесения изменений в настройки групп и перезапуска Asterisk, можно проверить, как все функционирует, позвонив на групповой номер. В зависимости от выбранной стратегии будет совершен звонок на один или несколько телефонных номеров. Если звонок совершается больше чем на один номер, то при поднятии трубки одним абонентом дозвон остальным автоматически прервется.

Модуль System Recordings. Позволяет записать звуковой файл с телефона или загрузить файл в формате wav для дальнейшего использования. Для того, чтобы записать звуковой файл, следует ввести номер вашего аппарата (например, 201) и нажать Go. Затем следует позвонить с вышеуказанного телефонного номера на номер *77 и после сигнала записать сообщение. Далее нажать решетку или повесит трубку. Затем следует назвать ваш звуковой файл и нажать кнопку Save – как видите, ничего сложного. Сохраненная запись будет доступна для дальнейшего использования в различных модулях АТС.

Модуль Time Conditions. Этот модуль позволяет организовать различные действия в зависимости от текущего времени. Можно организовать работу АТС например так, чтобы все звонки в выходные дни перенаправлялись на какой-либо конкретный номер. Здесь вам представляется огромное поле для воплощения собственных фантазий. Дерзайте.

полезные инструменты

Раздел Tools. Здесь можно настроить автоматическое резервное копирование конфигурации сервера и основных настроек. Это полезный раздел – мало ли чего можно натворить, если начать пробовать менять подряд все настройки. А при наличии резервной копии... Ну, не мне вас убеждать.

Раздел Reports. В этом разделе формируются различные (месячный, дневной) отчеты о звонках, совершенных через наш сервер. Возможно также сохранение отчетов в формате pdf.

Раздел Panel. Перейдя в этот раздел, мы попадаем в так называемую FOP (Flash operator panel). Она служит для визуального контроля и управления нашей АТС. Правда для того, чтобы панель корректно функционировала, необходимо наличие в браузере свежей поддержки Macromedia Flash. Панель состоит из трех областей: Extensions, Queuses и Trunks. В каждой из них перечислены созданные нами на этапе настройки номера, очереди и междугородние соединения. Если перетащить значок телефона из одного номера на другой – будут инициировано соединение между двумя этими номерами, также можно управлять и внешними соединениями, операторами обслуживающими очереди и др. Причем все это визуально! Также на иконках соединений присутствует значок конверта, если абонент имеет непрочитанные голосовые сообщения.

Раздел Recordings. Перейдя в этот раздел и введя в поля login и password телефонный номер и пароль, можно попасть в так называемый ARI (Asterisk Recording Interface).

Voicemail – позволяет из веб интерфейса прослушивать и управлять поступившими голосовыми сообщениями;

Call monitor – раздел позволяет просмотреть все входящие/исходящие звонки совершенные данным номером.

Help – полезный раздел. В нем перечислены специальные коды для доступа к различным функциям АТС. Не все коды, перечисленные в таблице, заработали в моей версии Trixbox, поэтому привожу только работающие у меня лично.

*61 – прогноз погоды. Если есть охота, можно покопаться в скриптах и изменить прогноз по умолчанию на другой город. По умолчанию прогноз дается для г. Нью Йорк. Для его озвучивания используется tts (text to speech) движок festival, который тоже входит в стандартную поставку trixbox.

*62 – будильник. При звонке на этот номер вас попросят ввести время. В назначенное время на ваш телефонный номер будет произведен звонок. Довольно интересная функция.

*70 – включение услуги «ожидание звонка». Если вы разговариваете с кем-нибудь, то при включенной услуге позвонивший вам другой абонент вместо сигнала занято будет слышать длинные гудки, вам поступит уведомление, что есть еще один входящий звонок.

*71 - выключение услуги «ожидание звонка».

*72 – услуга перенаправления входящих вызовов на другой номер.

*73 – выключение услуги перенаправления вызовов.

*77 – запись голосовых приветствий.

*99 – прослушивание записанных голосовых приветствий.

*78 – включение услуги «не беспокоить».

*79 – выключение услуги «не беспокоить».

*90 – включение перенаправления вызова, если абонент занят.

*91 – выключение перенаправления вызова, если абонент занят.

*97 – вход в центр голосовых сообщений.

*98 – вход в центр голосовых сообщений. Дополнительно будет запрошен номер почтового ящика и пароль. Удобно для чтения голосовых сообщений с чужого телефона.

666 – звонок на этот номер позволяет протестировать факс-аппарат.

70 – парковка звонка. Если набрать этот номер, то звонок будет припаркован на свободный номер 71, 72, 73 и т.д. Если затем с другого телефонного аппарата набрать номер припаркованного звонка (например, 71), то можно перехватить звонок.

Раздел Settings. Этот раздел позволяет менять общие настройки для конкретного номера, основными из которых являются запись всех разговоров в файлы и пересылка полученных голосовых сообщений по почте.

В главном меню вашей АТС, в которое, напомню, можно попасть после ввода в строке браузера IP-адреса АТС и перехода по ссылке System Administration, находятся также пункты:

- config edit – пункт позволяет вручную отредактировать конфигурационные файлы Trixbox/Asterisk. Без должного понимания я бы не рекомендовал редактировать вручную файлы конфигурации. Собственно файлы можно редактировать и зайдя на сервер по ssh и запустив любой текстовый редактор;

- HUD manager – позволяет настроить совместную работу Trixbox и приложения HUD lite, которое предназначено для тех же целей, что и Flash Operator Panel. Для интереса я установил данное приложение, опробовал его в работе и пришел к выводу, что для моих целей лучше подходит Flash Operator Panel;

- endpoint manager – раздел предназначен для настройки оборудования Cisco. Такового я не имею, поэтому и сказать нечего;

- phpMyAdmin – собственно PHP-движок для доступа к базам данных MYSQL, используемым в работе дистрибутивом Trixbox. Комментарии излишни;

- system information – сводная информация о системе, как-то: ошибки, версия ОС, uptime, информация по сетевым интерфейсам, информация об оборудовании, использовании памяти и дискового пространства. Красиво и наглядно;

- system maint – раздел предназначен для перезагрузки и остановки телефонного сервера. Также можно посмотреть, работают или нет основные сервисы - Asterisk, cron, ssh и веб-сервер;

- SSH Terminal – основанный на java и поэтому по определению более медленный, чем, к примеру, putty.

Ну и в конце привожу таблицу кодеков и примерный объем трафика при пользовании ими.


КодекБитрейт, KbpsNominal Ethernet Bandwidth, KbpsПримерный трафик, Мб/час
G.7116487,239,24
G.729831,214,04
G.723.16,421,99,86
GSM13,228,712,92
iLBC15,230,8313,87
G.723.15,320,89,36
G.7263255,224,84
G.7262447,221,24
G.7281631,514,18


заключение

Надеюсь, данный материал был полезен читателям «Сетевых решений». Так как первым читалем моего материала была жена, то со страниц журнала выражаю благодарность ей и сыну за терпение, которое не изменяло им во время моей работы над этой статьей.

В работе над данным материалом мне очень помогли:

- http://www.aussievoip.com.au/wiki/ - отличный австралийский сайт о VoIP в целом и Trixbox в частности;

- http://www.voip-info.org/wiki/ - качественный сайт на тему VoIP.

P.S.: Хотелось бы еще добавить, что в последнее время появились GSM-смартфоны (в частности, NOKIA E-series), которые имеют встроенный SIP-клиент для IP-телефонии, работающий по Wi-Fi. Так что можно организовать на базе точки доступа вход для таких телефонов и звонить с сотового на софт- телефоны коллег. К сожалению, Wi-Fi и аппараты Nokia E-series мне в данный момент недоступны, так что протестировать такую связку не удалось. Но если ситуация изменится, это, возможно, будет темой моего следующего материала.

Если у вас возникли вопросы – напишите мне.



Кирилл Сутуло, sutulo@tut.by, ICQ 139790775
обсудить статью
© сетевые решения
.
.