Asterisk за неделю
4го числа, месяца апреля, года Водяного Дракона было решено: - срочно поднять Asterisk. В статье некоторые заметки как это было сделано. Естественно работает далеко не всё, да и неделей дело не ограничилось, но ...Что мы имеем:
Приличную "железяку" на XEON с установленной в неё платой Digium 1TE121PF.
Плата Wildcard TE121 - это высокопроизводительная экономичная плата с цифровым интерфейсом, которая позволяет создавать целостную сеть, объединяющую традиционные телефонные системы с бурно развивающейся технологией Voice over IP (VoIP). Работая в связке с Asterisk®, TE121 может быть использован для внедрения широкого спектра сервисов PBX и IVR в сеть, в том числе голосовую почту, конференц-связь, трехстороннюю конференцию и VoIP шлюзы. Wildcard TE121 - это однопортовая плата с возможностью выбора интерфейсов: T1 (24-канала), E1 (32-канала) или J1 (24 канала). Благодаря поддержке PCIe x1, TE420 можно установить в любой из доступных PCIe v1.0 совместимых слотов: x1, x4, x8, и x16 не задумываясь над вопросами выбора напряжения или размера линии. Плата Digium TE121 поддерживает передачу, как голоса, так и данных по одному интерфейсу. Например, плата может выделять 12 каналов под голосовой трафик, предназначенный специально для Asterisk Open Source PBX, и 12 каналов для данных, используемых операционной системой Linux, что избавляет от необходимости во внешнем маршрутизаторе. TЕ121Р поддерживает стандартные семейства протоколов телефонии, включая RBS и PRI, и протоколы PPP, Cisco HDLC, Frame Relay для передачи данных. Плата поддерживает все известные европейские стандарты сигнализации. Используя плату TE121 c ПО Asterisk®, в стандартной конфигурации ПК и ОС Linux®, вы можете нарастить мощность своей PBX до возможностей современных телефонных компаний благодаря поддержке передачи, как голоса, так и данных.Плату сразу приобрели с модулем эхо-подавления. Внимание: переключатель T1-E1 расположен под модулем эхо-подавления. Рекомендуется сразу выставить джампер в нужное положение до запуска сервера. Памяти на сервере 4Г. То есть, для нормального функционирования IP АТС Asterisk, вполне достаточно. В наличии уже есть офисная АТС Samsung 7400 Почти 200 подключений аналоговых телефонов более 20 городских линий по PRI заведенных на Samsung
Дорожная карта
* Установить ОС* Настроить ОС
* Установить libpri
* Установить DAHDI
* Установить Asterisk из исходных кодов
* Настроить простой звонок с SIP на SIP клиент
* Настроить звонок с SIP клиента на телефон подключенный к АТС Samsung 7400 и обратно
* Настроить звонок c SIP клиента на городской, мобильный и пр.
Установка ОС Debian
Здесь пока не описана.И не будет написана, поскольку это отдельная очень большая тема.
Настройка ОС
Asterisk изначально установлен из репозитария готовыми пакетами. А для использования всех функций необходимых нам придется делать сборку самим. Поэтому, удаляем все установленные пакеты Asterisk и модули которые с ним шли. Настраиваем сеть и доступ в Интернет !!! Компиляция ядра. Какое текущее ядро установлено ? Текущая версия ОС Debian 6.0.4. Набираем в терминале
uname -r
2.6.32-5-amd64
http://www.kernel.org/ Текущая стабильная версия stable: 3.3.1 2012-04-02 По идее, с верси ядра 2.6 поддержка asterisk уже включена.
Проверяем установлены ли пакеты если нет устанавливаем:
apt-get install linux-source-2.6.18
apt-get install build-essential
apt-get install kernel-package
apt-get install libncurses5-dev
apt-get install fakeroot
apt-get install pkg-config
apt-get install linux-headers-`uname -r`
apt-get install gcc
apt-get install bison
apt-get install openssl
apt-get install libcurl4-openssl-dev
apt-get install libglobus-openssl-dev
apt-get install libssl-dev
apt-get install libnewt-dev
apt-get install unixodbc
apt-get install unixodbc-dev
apt-get install libltdl7-dev
Установка платы: наберите lspci -n под root получите нечто такое
0000:01:00.0 0200: ISDN controller: Unknown device d161:
где d161 код vendor ID Diginum, для модели TE121 код будет 8000
очень желательно скачать инструкцию по плате с сайта Diginum и внимательно её изучить
Установка libpri
Скачайте последнюю версию libpri. Замените x.x на версию libpri в командной строке ниже. libpri доступна для скачивания по адресу: http://downloads.digium.com/pub/telephony/libpri скачиваем командой:
# wget http://downloads.digium.com/pub/telephony/libpri/libpri-1.4-current.tar.gz
Распакуйте скачанный файл, скомпилируйте его содержимое, и установите библиотеку. Замените XX и XXX на текущую версию libpri, в командной строке приведенной ниже.
# tar -zxvf libpri-X.X-current.tar.gz
# cd libpri-X.X.X/
# make
# make install
Примечание: Существует не совместимость между разными версиями libpri и Asterisk. Версия libpri 1.4 будет работать с веткой Asterisk 1.6.
С установкой libpri проблем небыло.
Установка DAHDI
Скачайте последнюю версию драйверов DAHDI с инструментами. DAHDI доступно для скачивания по ссылке: http://downloads.digium.com/pub/telephony/dahdi-linux-complete *у вас в системе обязательно должны стоять заголовки и исходники ядра!
# wget http://downloads.digium.com/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
Распакуйте скачанный файл, скомпилируйте его содержимое, и установите драйверы и утилиты. Замените X.X.X на текущую версию DAHDI в команд-ной строке приведенной ниже.
# tar -zxvf dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-X.X.X+X.X.X
# make
# make install
# make config
Примечание: Выполнение ‘make config’ установит скрипты и symlinks которые позволят вам запускать и останавливать DAHDI как service.
Программы DAHDI
dahdi_cfg — проверяет файл конфигурации на ошибки
dahdi_cfg — configures DAHDI kernel modules from /etc/dahdi/system.conf
dahdi_genconf — (ОПАСНО) Generate configuration for Dahdi channels. Перезатрет файлы конфигурации.
dahdi_diag — Dump DAHDI channel parameters
dahdi_test — Test if the DAHDI timer provides timely response
dahdi_hardware — выводит информацию об оборудовании
dahdi_monitor — checks the Rx/Tx levels of a DAHDI channels
dahdi_monitor 01 -v — мониторит состояние канала
dahdi_maint — Sets Dahdi spans into maintenance mode, e.g.: loopback
dahdi_scan — Просмотр конфигурации оборудования
cat /proc/interrupts
service dahdi restart
service dahdi reload
asterisk*CLI> dahdi show status
asterisk*CLI> dahdi show channels
Установка Asterisk из исходников
Если вы хотите использовать Asterisk с вашим новым оборудованием, следуйте приведенным ниже инструкциям. 1. Загрузите последнюю версию Asterisk. Замените версию Asterisk для x.x в команде ниже. Asterisk доступен для загрузки на сайте: http://downloads.digium.com/pub/telephony/asterisk Текущая версия 10.3.0
# wget http://downloads.digium.com/pub/telephony/asterisk/asterisk-X.X-current.tar.gz
в случае с 10 веткой использовался один Х
Распакуйте скачанный файл, скомпилируйте его содержимое, и установите приложение. Замените X.X и X.X.X на версию Asterisk в командной строке.
# tar -zxvf asterisk-X.X-current.tar.gz
# cd asterisk-X.X.X/
# make clean
# ./configure
# make menuselect
# make
# make install
# make samples
В ходе конфигурирования пришлось установить
apt-get install libncurses5-dev
apt-get install libxml++2.6-2
apt-get install libxml++2.6-dev
для ogg — пока нет
apt-get install libogg0 libogg-dev libvorbis0 libvorbisenc2 libvorbis-dev
в menuselect меню XXX означает, что зависимости не были выполнены или существует конфликт
База данных ?
apt-get install sqlite3
apt-get install libsqlite3-dev
service asterisk start
service asterisk restart
service asterisk stop
asterisk*CLI>core show codecs — показывает зарегистрированные в системе кодаки
asterisk*CLI> sip show peers — показывает пиры
asterisk*CLI> sip show users — показывает пользователей
/usr/sbin/asterisk -rx "reload" - выполнить перезагрузку Астериска не заходя в консоль
/usr/sbin/asterisk -rx "database show"
/usr/sbin/asterisk -r — Войти в консоль Астериска
pri intense debug span 1 — включить отладочную информацию
pri set debug 0 span 1 - отключить
WEB интерфейс
После непродолжительных консультаций было принято решения WEB не ставить. Производить настройку системы из консоли. Не будет лишней нагрузки. Не будет вмешательство в конфиги. И главное мы сами будем понимать что мы делаем.Перехват звонков!
В группе звонок перехватывается *8[трубка] Гпуппы определяються параметрами pickupgroup callgroup в файле /etc/asterisk/sip.conf грубый пример
[user1]
callgroup=1
pickupgroup=2
[user2]
callgroup=2
pickupgroup=1
[user3]
callgroup=3
pickupgroup=1,2
user1 может перехватить звонок, идущий на user2
user2 -- // -- user1
user3 -- // -- user1 и user2