Техническое задание: Сделать рабочие места в офисе универсальными. Звонок на корпоративный номер сотрудника должен приходить на телефонный аппарат расположенный там, где в данный момент работает сотрудник. Пример: Необычный офис 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 при телефонных вызовах
# cat /root/create_login_phone_table.sh
#!/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
# /root/create_login_phone_table.sh > /root/login_phone_table.txt # cat /root/login_phone_table.txt
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 Федор И. Шаляпин
# 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
# 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
# cat /root/create_users_conf.sh
#!/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
# /root/create_users_conf.sh < /root/login_phone_table.txt > /etc/asterisk/users.conf # cat /etc/asterisk/users.conf
[401] cid_number = 401 fullname = Ivan I. Ivanov secret = tpassword401 type=friend host=dynamic ...
# cat /etc/asterisk/sip.conf
[general] transport=udp disallow=all allow=alaw #include "/etc/asterisk/users.conf" [403] secret=tpassword403 type=friend host=dynamic
# asterisk -x 'sip reload' # asterisk -x 'sip show users'
Техническое задание: использовать событие входа сотрудника в домен для настройки телефонного аппарата на его номер
root@gate.corpX.un:~# cat /var/www/html/0800.2700.d8e8.cfg
[sipproxy] type=peer defaultuser=40N secret=tpassword40N host=gate.corpX.un insecure=invite callbackextension=sipproxy
[phone2:~] # cat /root/fetch_conf.sh
#!/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'
[phone2:~] # crontab -l
* * * * * /root/fetch_conf.sh
[phoneN:~] # 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)
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
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
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.corp6.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