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 16:27] val [4.3 Определение mac адреса телефона, через который подключена рабочая станция] |
использование_телефонии_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 при телефонных вызовах | ||
- | <code> | ||
- | # vim mac_phone_secret_table.txt | ||
- | </code><code> | ||
- | BCC34221709A 401 tpassword401 | ||
- | BCC34221709B 402 tpassword402 | ||
- | BCC34221709C 403 tpassword403 | ||
- | </code> | ||
- | * Заполняем атрибуты Display Name, Telephone number | + | * Заполняем атрибуты Display Name, Telephone number, Address->Zip/Postsal code (пароль телефона) |
- | * [[Сервис Asterisk#Интеграция с Microsoft AD и LDAP]] | + | ==== Копирование всей, необходимой для телефонии информации из LDAP в текстовый файл ==== |
<code> | <code> | ||
- | # cat /root/create_login_phone_cid_name_table.sh | + | # cat /root/create_login_phone_table.sh |
</code><code> | </code><code> | ||
#!/bin/sh | #!/bin/sh | ||
Line 69: | Line 62: | ||
IFS=' ' | IFS=' ' | ||
- | ldapsearch -x -D "cn=Administrator,cn=Users,dc=corpX,dc=un" -w 'Pa$$w0rd' -h server.corp6.un -b "dc=corpX,dc=un" "(telephoneNumber=4*)" sAMAccountName cn telephoneNumber | perl -p00e 's/\r?\n //g'| | + | 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 | while read s | ||
do | do | ||
Line 75: | Line 68: | ||
read fn cn | read fn cn | ||
echo $fn | grep -q '::' && cn=`echo $cn | base64 -d` | echo $fn | grep -q '::' && cn=`echo $cn | base64 -d` | ||
+ | read fn pass | ||
read fn tn | read fn tn | ||
- | read fn login # need for universal workplace | + | read fn login |
- | echo $login $tn $cn | + | echo $login $tn $pass $cn |
done | done | ||
</code><code> | </code><code> | ||
- | # /root/create_login_phone_cid_name_table.sh > login_phone_cid_name_table.txt | + | # /root/create_login_phone_table.sh > /root/login_phone_table.txt |
- | # cat login_phone_cid_name_table.txt | + | # cat /root/login_phone_table.txt |
</code><code> | </code><code> | ||
- | user1 401 Ivan I. Ivanov | + | user1 401 tpassword401 Ivan I. Ivanov |
- | user2 402 Petr P. Petrov | + | user2 402 tpassword402 Petr P. Petrov |
- | user3 403 Sidor S. Sidorov | + | 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> | </code><code> | ||
- | # /root/create_phones_conf.sh < mac_phone_secret_table.txt > /etc/asterisk/phones.conf | + | #!/bin/sh |
- | # cat /etc/asterisk/phones.conf | + | 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> | </code><code> | ||
- | [401] | + | # /root/create_users_conf.sh < /root/login_phone_table.txt > /etc/asterisk/users.conf |
- | secret = tpassword401 | + | |
- | type=user | + | |
- | ... | + | |
- | </code><code> | + | |
- | # /root/create_users_conf.sh < login_phone_cid_name_table.txt > /etc/asterisk/users.conf | + | |
# cat /etc/asterisk/users.conf | # cat /etc/asterisk/users.conf | ||
Line 104: | Line 125: | ||
cid_number = 401 | cid_number = 401 | ||
fullname = Ivan I. Ivanov | fullname = Ivan I. Ivanov | ||
- | type=peer | + | secret = tpassword401 |
+ | type=friend | ||
+ | host=dynamic | ||
... | ... | ||
</code><code> | </code><code> | ||
Line 115: | Line 138: | ||
#include "/etc/asterisk/users.conf" | #include "/etc/asterisk/users.conf" | ||
- | #include "/etc/asterisk/phones.conf" | + | |
+ | [403] | ||
+ | secret=tpassword403 | ||
+ | type=friend | ||
+ | host=dynamic | ||
+ | </code><code> | ||
+ | # asterisk -x 'sip reload' | ||
+ | # asterisk -x 'sip show users' | ||
</code> | </code> | ||
===== 4. Настройка телефонного аппарата на номер использующего его сотрудника ===== | ===== 4. Настройка телефонного аппарата на номер использующего его сотрудника ===== | ||
Line 133: | 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 145: | 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 154: | Line 194: | ||
</code> | </code> | ||
- | ==== 4.2 Определение на какой рабочей станции зарегистрировался пользователь ==== | + | ==== 4.3 Определение на какой рабочей станции зарегистрировался пользователь ==== |
* [[Создание отказоустойчивых UNIX решений]] (Модуль 7.5, публичный каталог доступный на запись) | * [[Создание отказоустойчивых UNIX решений]] (Модуль 7.5, публичный каталог доступный на запись) | ||
Line 162: | 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 168: | Line 208: | ||
<code> | <code> | ||
- | switch(config)#ip rcmd rcp-enable | + | switch(config) |
- | switch(config)#ip rcmd rsh-enable | + | </code><code> |
- | switch(config)#no ip domain lookup | + | interface VLAN1 |
+ | ip address 192.168.6.3 255.255.255.0 | ||
+ | no shut | ||
+ | exit | ||
- | switch(config)#ip host gate 192.168.6.1 | + | ip rcmd rcp-enable |
- | switch(config)#ip rcmd remote-host root gate root enable | + | ip rcmd rsh-enable |
+ | no ip domain lookup | ||
+ | ip host gate 192.168.6.1 | ||
+ | ip rcmd remote-host root gate root enable | ||
- | gate# host CLIENT2 | + | 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 212: | 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 |