использование_телефонии_asterisk_с_microsoft_ad

This is an old revision of the document!


Использование телефонии Asterisk на предприятии с инфраструктурой Microsoft Active Directory

Запись Техническое задание: Сделать рабочие места в офисе универсальными. Звонок на корпоративный номер сотрудника должен приходить на телефонный аппарат расположенный там, где в данный момент работает сотрудник. Пример: Необычный офис Philips – без определенного места работы ===== 1. Развертывание сети предприятия ===== Техническое задание: реализовать технологию единого входа для доступа к сервисам предприятия * В качестве LAN использовать VirtualBox Host-Only Ethernet Adapter * gate: Настройка стендов слушателей Локализация временной зоны * server: Linux FreeBSD Взаимодействие с Microsoft Windows (Модуль 8.2) * Сервис DHCP * clien2: Linux FreeBSD Взаимодействие с Microsoft Windows (Модуль 8.3) * Видеоурок: Авторизация доступа пользователей домена MS Active Directory в Internet с использованием proxy-сервера Squid ===== 2. Развертывание телефонии предприятия ===== Техническое задание: развернуть телефонию предприятия с номерным планом 4XX, привязанным к телефонным аппаратам ==== PBX ==== * Использование Asterisk в офисной телефонии (Модуль 2.2, 2.3, на системе gate) ==== 401, 402 ==== * FreeBSD, аудиодрайвер * hostname: phonen, ip: Динамическая настройка параметров * Проверка работоспособности звуковой карты * Установка * Использование asterisk в качестве телефона ==== 403 ==== * Linksys SPA-3102 ==== Звоним ==== <code> gate*CLI> channel originate SIP/403 extension 401 gate*CLI> channel originate SIP/403 extension 402 phone2*CLI> channel originate Console/dsp extension 403 </code> ===== 3. Интеграция телефонии с LDAP каталогом предприятия ===== Техническое задание: использовать LDAP каталог предприятия для установки текстового CallerID при телефонных вызовах * Заполняем атрибуты Display Name, Telephone number, Address→Zip/Postsal code (пароль телефона) ==== Копирование всей, необходимой для телефонии информации из LDAP в текстовый файл ==== <code> # cat /root/create_login_phone_table.sh </code><code> #!/bin/sh IFS=' ' ldapsearch -x -D “cn=Administrator,cn=Users,dc=corp6,dc=un” -w 'Pa$$w0rd' -h server.corp6.un -b “dc=corp6,dc=un” “(telephoneNumber=4*)” sAMAccountName cn telephoneNumber postalCode | perl -p00e 's/\r?\n g'| while read s do echo $s | grep -vq '^dn:' && continue read fn cn echo $fn | grep -q '::' && cn=`echo $cn | base64 -d` read fn pass read fn tn read fn login echo $login $tn $pass $cn done </code><code> # /root/create_login_phone_table.sh > /root/login_phone_table.txt # cat /root/login_phone_table.txt </code><code> user1 401 tpassword401 Ivan I. Ivanov user2 402 tpassword402 Petr P. Petrov user3 403 tpassword403 Sidor S. Sidorov user4 404 tpassword404 Vsily M. Koshkin user5 405 tpassword405 Федор И. Шаляпин </code> ==== Размещение адресной книги в формате HTML ==== * Администрирование сервисов UNIX (Веб сервер - Модуль 8.3) <code> # cat /root/login_phone_table.txt | awk 'BEGIN {print “<html><body><table>”} {print “<tr><td>” $4 “ ” $5 “ ” $6 “</td><td>” $2 “</td></tr>”} END {print “</table></body></html>”}' > /var/www/html/addrbook.html </code> ==== Создание файла для импорта адресной книги в формате телефонов Panasonic ==== * Базовая станция DECT KX-UDS124 <code> # cat /root/login_phone_table.txt | awk '{printf (“\t%s %s %s\t\t%s\t\t\t\t\t\n”,$4,$5,$6,$2)}' | unix2dos | iconv -f utf-8 -t utf-16 > phonebook.tsv </code> ==== Создание файла users.conf ==== <code> # cat /root/create_users_conf.sh </code><code> #!/bin/sh while read login cid_number secret fullname do echo “[$cid_number]” echo “cid_number = $cid_number” echo “fullname = $fullname” echo “secret = $secret” echo “type=friend” echo “host=dynamic” echo done </code><code> # /root/create_users_conf.sh < /root/login_phone_table.txt > /etc/asterisk/users.conf # cat /etc/asterisk/users.conf </code><code> [401] cid_number = 401 fullname = Ivan I. Ivanov secret = tpassword401 type=friend host=dynamic … </code><code> # cat /etc/asterisk/sip.conf </code><code> [general] transport=udp disallow=all allow=alaw #include “/etc/asterisk/users.conf” [403] secret=tpassword403 type=friend host=dynamic </code><code> # asterisk -x 'sip reload' # asterisk -x 'sip show users' </code> ===== 4. Настройка телефонного аппарата на номер использующего его сотрудника ===== Техническое задание: использовать событие входа сотрудника в домен для настройки телефонного аппарата на его номер ==== 4.1 Подготовка к демонстрации по вебинару ==== * Linux FreeBSD Взаимодействие с сетевым оборудованием Cisco (Модуль 1: Настройка коммутатора Cisco, подключенного к LAN) * Добавляем Asterisk телефон в GNS назначив ему 2 интерфейса и соответствующую картинку :) * Подключаем Asterisk к коммутатору и настраиваем Bridge Настройка сети в FreeBSD * Добавляем client2 в GNS и подключаем через Asterisk телефон к LAN ==== 4.2 Настройка Provisioning на Asterisk телефоне ==== * Asterisk. Телефонное оборудование и безопасность Модуль 2.7 <code> root@gate.corpX.un:~# cat /var/www/html/0800.2700.d8e8.cfg </code><code> [sipproxy] type=peer defaultuser=40N secret=tpassword40N host=gate.corpX.un insecure=invite callbackextension=sipproxy </code><code> [phone2:~] # cat /root/fetch_conf.sh </code><code> #!/bin/sh /usr/local/bin/curl -s http://gate.corp6.un/0800.2700.d8e8.cfg > /usr/local/etc/asterisk/users.conf /usr/local/sbin/asterisk -x 'sip reload' </code><code> [phone2:~] # crontab -l </code><code> * * * * * /root/fetch_conf.sh </code><code> [phoneN:~] # cat /usr/local/etc/asterisk/sip.conf </code><code> [general] … defaultexpiry=30 #include “/usr/local/etc/asterisk/users.conf” </code> ==== 4.3 Определение на какой рабочей станции зарегистрировался пользователь ==== * Создание отказоустойчивых UNIX решений (Модуль 7.5, публичный каталог доступный на запись) * Использование Logon скриптов <code> gate# tail -n /disk2/logon.txt </code> ==== 4.4 Определение mac адреса телефона, через который подключена рабочая станция ==== * Linux FreeBSD Взаимодействие с сетевым оборудованием Cisco (Модуль 3. Использование snmp для получения mac address table) * Linux FreeBSD Взаимодействие с сетевым оборудованием Cisco (Модуль 4. Настройка rcmd сервисов) <code> switch(config) </code><code> interface VLAN1 ip address 192.168.6.3 255.255.255.0 no shut exit ip rcmd rcp-enable ip rcmd rsh-enable no ip domain lookup ip host gate 192.168.6.1 ip rcmd remote-host root gate root enable mac-address-table aging-time 1000000 </code><code> gate# apt install rsh-client gate# host CLIENTN gate# arp -a gate# echo “192.168.6.3 switch” » /etc/hosts gate# rsh switch show mac-address-table </code> ==== 4.5 Собираем все вместе ==== * Видеоурок: Программирование на sh <code> gate# cat /root/create_phone_conf.sh </code><code> #!/bin/sh IFS=' ' while read login host other do ip=`host $host | cut -d' ' -f4` mac=`arp -a | grep $ip | cut -d' ' -f4` mac_format=`echo $mac | sed -E 's/(..):(..):(..):(..):(..):(..)/\1\2.\3\4.\5\6/'` phone_if=`rsh switch show mac-address-table | grep $mac_format | sed -E 's/.*(Fa.*)/\1/'` phone_mac=`rsh switch show mac-address-table | grep -v $mac_format | grep $phone_if | cut -f 1` str=`grep “^$login” /root/login_phone_table.txt` defaultuser=`echo $str | cut -d' ' -f2` secret=`echo $str | cut -d' ' -f3` fullname=`echo $str | cut -d' ' -f4,5,6` cat > /var/www/html/$phone_mac.cfg «END [sipproxy] fullname=$fullname type=peer defaultuser=$defaultuser secret=$secret host=gate.corp6.un insecure=invite callbackextension=sipproxy END done </code> * Видеоурок: Использование screen <code> gate# tail -n0 -f /disk2/logon.txt | /root/create_phone_conf.sh </code> * Звоним: <code> gate*CLI> channel originate SIP/403 extension 401 gate*CLI> channel originate SIP/403 extension 402 </code> ===== Итог ===== * Путеводитель по курсам Linux(Ubuntu)/FreeBSD

использование_телефонии_asterisk_с_microsoft_ad.1490944622.txt.gz · Last modified: 2017/03/31 10:17 by val