This is an old revision of the document!
Техническое задание: Сделать рабочие места в офисе универсальными. Звонок на корпоративный номер сотрудника должен приходить на телефонный аппарат расположенный там, где в данный момент работает сотрудник. Пример: Необычный офис Philips – без определенного места работы
Техническое задание: реализовать технологию единого входа для доступа к сервисам предприятия
Техническое задание: развернуть телефонию предприятия с номерным планом 4XX, привязанным к телефонным аппаратам
gate*CLI> channel originate SIP/403 extension 401 gate*CLI> channel originate SIP/403 extension 402 phone2*CLI> channel originate Console/dsp extension 403
Техническое задание: использовать 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"
Техническое задание: использовать событие входа сотрудника в домен для настройки телефонного аппарата на его номер
[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"
gate# tail -n /disk2/logon.txt
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
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