This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
использование_телефонии_asterisk_с_microsoft_ad [2017/03/29 11:34] val [402] |
использование_телефонии_asterisk_с_microsoft_ad [2017/03/31 10:17] val |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Использование телефонии Asterisk на предприятии с инфраструктурой Microsoft Active Directory ====== | ====== Использование телефонии Asterisk на предприятии с инфраструктурой Microsoft Active Directory ====== | ||
+ | |||
+ | **[[https://youtu.be/uqTXbQBfcQc|Запись]]** | ||
**Техническое задание**: Сделать рабочие места в офисе универсальными. Звонок на корпоративный номер сотрудника должен приходить на телефонный аппарат расположенный там, где в данный момент работает сотрудник. Пример: [[http://www.fresher.ru/2011/12/25/neobychnyj-ofis-philips-bez-opredelennogo-mesta-raboty/|Необычный офис Philips – без определенного места работы]] | **Техническое задание**: Сделать рабочие места в офисе универсальными. Звонок на корпоративный номер сотрудника должен приходить на телефонный аппарат расположенный там, где в данный момент работает сотрудник. Пример: [[http://www.fresher.ru/2011/12/25/neobychnyj-ofis-philips-bez-opredelennogo-mesta-raboty/|Необычный офис Philips – без определенного места работы]] | ||
+ | |||
===== 1. Развертывание сети предприятия ===== | ===== 1. Развертывание сети предприятия ===== | ||
Line 22: | Line 25: | ||
* [[Использование Asterisk в офисной телефонии]] (Модуль 2.2, 2.3, на системе gate) | * [[Использование Asterisk в офисной телефонии]] (Модуль 2.2, 2.3, на системе gate) | ||
- | ==== 401 ==== | + | ==== 401, 402 ==== |
- | + | ||
- | * [[ZoIPer]] | + | |
- | + | ||
- | ==== 402 ==== | + | |
* FreeBSD, аудиодрайвер | * FreeBSD, аудиодрайвер | ||
- | * hostname: phone2, ip: [[Настройка сети в FreeBSD#Динамическая настройка параметров]] | + | * hostname: phonen, ip: [[Настройка сети в FreeBSD#Динамическая настройка параметров]] |
* [[Подключение звуковой карты#Проверка работоспособности звуковой карты]] | * [[Подключение звуковой карты#Проверка работоспособности звуковой карты]] | ||
* [[Сервис Asterisk#Установка]] | * [[Сервис Asterisk#Установка]] | ||
Line 47: | Line 46: | ||
phone2*CLI> channel originate Console/dsp extension 403 | phone2*CLI> channel originate Console/dsp extension 403 | ||
</code> | </code> | ||
+ | |||
===== 3. Интеграция телефонии с LDAP каталогом предприятия ===== | ===== 3. Интеграция телефонии с LDAP каталогом предприятия ===== | ||
- | **Техническое задание**: использовать LDAP каталог предприятия в качестве адресной книги и CallerID при телефонных вызовах | + | **Техническое задание**: использовать LDAP каталог предприятия для установки текстового CallerID при телефонных вызовах |
- | * [[Администрирование сервисов UNIX]] (Веб сервер - Модуль 8.3) | ||
* Заполняем атрибуты Display Name, Telephone number, Address->Zip/Postsal code (пароль телефона) | * Заполняем атрибуты Display Name, Telephone number, Address->Zip/Postsal code (пароль телефона) | ||
- | * [[Сервис Asterisk#Интеграция с Microsoft AD и LDAP]] | + | ==== Копирование всей, необходимой для телефонии информации из 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. Настройка телефонного аппарата на номер использующего его сотрудника ===== | ||
Line 71: | Line 163: | ||
<code> | <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 | [phone2:~] # cat /root/fetch_conf.sh | ||
</code><code> | </code><code> | ||
#!/bin/sh | #!/bin/sh | ||
- | /usr/local/bin/curl -s http://gate.corpX.un/0800.27NN.NNNN.cfg > /usr/local/etc/asterisk/users.conf | + | /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' | /usr/local/sbin/asterisk -x 'sip reload' | ||
Line 83: | Line 185: | ||
* * * * * /root/fetch_conf.sh | * * * * * /root/fetch_conf.sh | ||
</code><code> | </code><code> | ||
- | [phone2:~] # cat /usr/local/etc/asterisk/sip.conf | + | [phoneN:~] # cat /usr/local/etc/asterisk/sip.conf |
</code><code> | </code><code> | ||
[general] | [general] | ||
Line 92: | Line 194: | ||
</code> | </code> | ||
- | ==== 4.2 Определение на какой рабочей станции зарегистрировался пользователь ==== | + | ==== 4.3 Определение на какой рабочей станции зарегистрировался пользователь ==== |
* [[Создание отказоустойчивых UNIX решений]] (Модуль 7.5, публичный каталог доступный на запись) | * [[Создание отказоустойчивых UNIX решений]] (Модуль 7.5, публичный каталог доступный на запись) | ||
Line 100: | Line 202: | ||
gate# tail -n /disk2/logon.txt | gate# tail -n /disk2/logon.txt | ||
</code> | </code> | ||
- | ==== 4.3 Определение mac адреса телефона, через который подключена рабочая станция ==== | + | ==== 4.4 Определение mac адреса телефона, через который подключена рабочая станция ==== |
* [[Linux FreeBSD Взаимодействие с сетевым оборудованием Cisco]] (Модуль 3. Использование snmp для получения mac address table) | * [[Linux FreeBSD Взаимодействие с сетевым оборудованием Cisco]] (Модуль 3. Использование snmp для получения mac address table) | ||
Line 106: | Line 208: | ||
<code> | <code> | ||
- | gate# host CLIENT2 | + | 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# arp -a | ||
+ | |||
+ | gate# echo "192.168.6.3 switch" >> /etc/hosts | ||
gate# rsh switch show mac-address-table | gate# rsh switch show mac-address-table | ||
</code> | </code> | ||
- | ==== 4.4 Собираем все вместе ==== | + | ==== 4.5 Собираем все вместе ==== |
* [[https://youtu.be/GxVmukxVUo0|Видеоурок: Программирование на sh]] | * [[https://youtu.be/GxVmukxVUo0|Видеоурок: Программирование на sh]] | ||
Line 142: | Line 264: | ||
defaultuser=$defaultuser | defaultuser=$defaultuser | ||
secret=$secret | secret=$secret | ||
- | host=gate.corp13.un | + | host=gate.corp6.un |
insecure=invite | insecure=invite | ||
callbackextension=sipproxy | callbackextension=sipproxy |