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

This is an old revision of the document!


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

Техническое задание: Сделать рабочие места в офисе универсальными. Звонок на корпоративный номер сотрудника должен приходить на телефонный аппарат расположенный там, где в данный момент работает сотрудник. Пример: Необычный офис Philips – без определенного места работы

1. Развертывание сети предприятия

Техническое задание: реализовать технологию единого входа для доступа к сервисам предприятия

2. Развертывание телефонии предприятия

Техническое задание: развернуть телефонию предприятия с номерным планом 4XX, привязанным к телефонным аппаратам

PBX

401, 402

403

Звоним

gate*CLI> channel originate SIP/403 extension 401

gate*CLI> channel originate SIP/403 extension 402

phone2*CLI> channel originate Console/dsp extension 403

3. Интеграция телефонии с LDAP каталогом предприятия

Техническое задание: использовать LDAP каталог предприятия для установки текстового CallerID при телефонных вызовах

# vim mac_phone_secret_table.txt
BCC34221709A 401 tpassword401
BCC34221709B 402 tpassword402
BCC34221709C 403 tpassword403
# cat /root/create_login_phone_cid_name_table.sh
#!/bin/sh

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'|
while read s
do
        echo $s | grep -vq '^dn:' && continue
        read fn cn
        echo $fn | grep -q '::' && cn=`echo $cn | base64 -d`
        read fn tn
        read fn login # need for universal workplace
        echo $login $tn $cn
done
# /root/create_login_phone_cid_name_table.sh > login_phone_cid_name_table.txt

# cat login_phone_cid_name_table.txt
user1 401 Ivan I. Ivanov
user2 402 Petr P. Petrov
user3 403 Sidor S. Sidorov
# /root/create_phones_conf.sh < mac_phone_secret_table.txt > /etc/asterisk/phones.conf

# cat /etc/asterisk/phones.conf
[401]
secret = tpassword401
type=user
...
# /root/create_users_conf.sh < login_phone_cid_name_table.txt > /etc/asterisk/users.conf

# cat /etc/asterisk/users.conf
[401]
cid_number = 401
fullname = Ivan I. Ivanov
type=peer
...
# cat /etc/asterisk/sip.conf
[general]
transport=udp
disallow=all
allow=alaw

#include "/etc/asterisk/users.conf"
#include "/etc/asterisk/phones.conf"

4. Настройка телефонного аппарата на номер использующего его сотрудника

Техническое задание: использовать событие входа сотрудника в домен для настройки телефонного аппарата на его номер

4.1 Подготовка к демонстрации по вебинару

4.2 Настройка Provisioning на Asterisk телефоне

[phone2:~] # cat /root/fetch_conf.sh
#!/bin/sh

/usr/local/bin/curl -s http://gate.corpX.un/0800.27NN.NNNN.cfg > /usr/local/etc/asterisk/users.conf

/usr/local/sbin/asterisk -x 'sip reload'
[phone2:~] # crontab -l
* * * * * /root/fetch_conf.sh
[phone2:~] # cat /usr/local/etc/asterisk/sip.conf
[general]
...
defaultexpiry=30

#include "/usr/local/etc/asterisk/users.conf"

4.2 Определение на какой рабочей станции зарегистрировался пользователь

gate# tail -n /disk2/logon.txt

4.3 Определение mac адреса телефона, через который подключена рабочая станция

switch(config)#ip rcmd rcp-enable
switch(config)#ip rcmd rsh-enable
switch(config)#no ip domain lookup

switch(config)#ip host gate 192.168.6.1
switch(config)#ip rcmd remote-host root gate root enable


gate# host CLIENT2

gate# arp -a

gate# rsh switch show mac-address-table

4.4 Собираем все вместе

gate# cat /root/create_phone_conf.sh
#!/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.corp13.un
insecure=invite
callbackextension=sipproxy
END

done
gate# tail -n0 -f /disk2/logon.txt | /root/create_phone_conf.sh
  • Звоним:
gate*CLI> channel originate SIP/403 extension 401

gate*CLI> channel originate SIP/403 extension 402

Итог

использование_телефонии_asterisk_с_microsoft_ad.1490873580.txt.gz · Last modified: 2017/03/30 14:33 by val