====== Организация IP телефонии на UNIX Asterisk ====== ===== Модуль 1. Начальная настройка стенда ===== ==== IP ==== [[настройка_стендов_слушателей#Настройка виртуальных систем Unix]] ==== DNS ==== [[Финальная настройка DNS сервера]] ==== DHCP ==== [[Сервис DHCP]] ==== WinXP ==== LAN0 - DHCP ===== Модуль 2. Теоретические основы телефонии ===== ==== История и физические основы аналоговой телефонии ==== * История развития ([[http://ru.wikipedia.org/wiki/Телефон]]) * Физические основы аналоговой передачи голоса ([[http://ru.wikipedia.org/wiki/Психоакустика]]) * Сигнализация в аналоговой телефонии ([[http://ru.wikipedia.org/wiki/Контроль_посылки_вызова]]) ==== Технологии цифровой телефонии ==== * Физические основы цифровой передачи голоса (Теорема Котельникова, Найквиста, Шеннона, [[http://ru.wikipedia.org/wiki/PCM]], [[http://ru.wikipedia.org/wiki/DS0]]) * Цифровые ATC и "последняя миля" ([[http://ru.wikipedia.org/wiki/Последняя_миля]], [[http://ru.wikipedia.org/wiki/Автоматическая_телефонная_станция]]) * Цифровые пользовательские каналы ISDN ([[http://ru.wikipedia.org/wiki/ISDN]]) * Универсальная сеть передачи данных ATM (http://ru.wikipedia.org/wiki/ATM]]) ==== Технологии VoIP телефонии ==== * Физические основы передачи голосового трафика в IP сетях ([[http://ru.wikipedia.org/wiki/VoIP]]) * Кодеки G.711, G.726, G.729, GSM-FR ([[http://ru.wikipedia.org/wiki/G.711]]) * Протоколы сигнализации VoIP SIP, H.323, IAX( [[http://ru.wikipedia.org/wiki/SIP]]) * VoIP операторы связи (Skype, Sipnet) ==== Законопроекты ==== [[http://www.komitet5.km.duma.gov.ru/site.xp/051055055.html]] ===== Модуль 3. Настройка внутренней sip телефонии ===== * Установка Asterisk, Настройка SIP каналов ([[Сервис Asterisk]]) * Подключение к SIP каналам soft телефонов([[X-Lite]], [[ZoIPer]]) * [[сервис_asterisk#Настройка простого диалплана]] * Использование SRV записей для поиска Proxy SIP ([[Сервис DNS]]) ===== Модуль 4. Подключение к Asterisk SIP VoIP оборудования ===== ==== Подготовка SIP каналов ==== server# cat sip.conf ... [103] type=friend secret=tpassword103 ; callerid=Sidorov Sidor Sidorovitch <103> host=dynamic [104] type=friend secret=tpassword104 ; callerid=Koshkin Vasiliy Myrkovitch <104> host=dynamic ==== Подготовка оборудования ==== * Linksys SPA-3102 [[Linksys SPA-3102#Восстановление фабричных настроек]] * SIP Phone Panasonic KX-UT1XX [[SIP Phone Panasonic KX-UT1XX#Восстановление фабричных настроек]] * Cisco 7912 [[Cisco 7912#Восстановление фабричных настроек]] ==== Использование Web интерфейса для настройки оборудования ==== * SIP Phone Panasonic KX-UT1XX [[SIP Phone Panasonic KX-UT1XX#Включение WEB интерфейса]] * Linksys SPA-3102 [[Linksys SPA-3102#Включение WEB интерфейса на WAN интерфейсе]] ==== Использование Provisioning для настройки оборудования ==== * [[Сервис DHCP]] * [[Сервис ТFTP]] * Cisco 7912 [[Cisco 7912#Использование Provisioning для подключения к SIP каналу]] * [[Сервис HTTP#Установка и запуск сервера Apache]] * SIP Phone Panasonic KX-UT1XX [[SIP Phone Panasonic KX-UT1XX#Использование Provisioning для подключения к SIP каналу]] * Linksys SPA-3102 [[Linksys SPA-3102#Использование Provisioning]] ===== Модуль 5. Организация телефонии между офисами предприятия ===== * Настройка звонков в между офисом X и Y ([[сервис_asterisk#Подключение Asterisk к Asterisk по протоколу IAX]]) ===== Модуль 6. Подключение Asterisk к телефонной сети ===== ==== Использование VoIP провайдеров для исходящих звонков в телефонную сеть ==== * [[Материалы по VoIP#Настройка Asterisk для связи с VoIP провайдерами]] === Настройки системы слушателя === server# cat sip.conf ... [voip1_00000X] type=peer secret=spasswordX defaultuser=00000X host=isp.un fromdomain=isp.un fromuser=00000X server# cat extensions.conf ... exten => _8XXXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN}) === Настройки системы преподавателя === root@asterisk.isp.un:~# cat sip.conf ... [000001] type=user secret=spassword1 host=dynamic context=voip ... [000006] type=user secret=spassword6 host=dynamic context=voip root@asterisk.isp.un:~# cat /etc/asterisk/extensions.conf ... [voip] exten => _8XXXXXXXXXX,1,SIP/sipnet/${EXTEN}) ==== Использование VoIP провайдеров для получения входящих звонков из телефонной сети ==== === Настройки системы слушателя === server# cat sip.conf [general] ... register => 00000X:spasswordX@isp.un/voip1_00000X ... [voip1_00000X] type=friend insecure=invite ... server# cat extensions.conf ... exten => voip1_00000X,1,Dial(SIP/101&SIP/102&SIP/103&SIP/104) === Настройки системы преподавателя === server# cat sip.conf ... [000001] type=friend ... [000006] type=friend ... server# cat extensions.conf ... [office] ... exten => _80X,1,Dial(SIP/00000${EXTEN:2}) exten => sipnet,1,Dial(SIP/000001&SIP/000002&SIP/000003&SIP/000004&SIP/000005&SIP/000006) ... ==== Использование аналоговых телефонных линий для связи с телефонной сетью ==== [[http://ru.wikipedia.org/wiki/Эрланг]] === Настройка SIP канала === server# cat sip.conf ... [co1] ; lynksys 3102 fxo type=friend secret=cpassword1 host=dynamic === Настройка диалплана для звонков в и/или из PSTN === server# cat extensions.conf ... exten => _8XXXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN}) exten => _8XXXXXXXXXX,n,Dial(SIP/co1/${EXTEN:10}) ... exten => co1,1,Dial(SIP/101&SIP/102&SIP/103&SIP/104) === Настройка PSTN Line, VoIP шлюза и параметров линии === [[Linksys SPA-3102#Настройка PSTN Line]] === Настройки системы преподавателя === asterisk.isp.un# cat extensions.conf [office] .. exten => _70X,1,Dial(SIP/co1/${EXTEN:2}) ... [voip] ;exten => _8XXXXXXXXXX,1,Dial(SIP/co1/${EXTEN:10}) ;exten => _8XXXXXXXXXX,1,SIP/sipnet/${EXTEN}) ===== Модуль 7. Безопасность Asterisk ===== ==== Подключение к Asterisk Inernet пользователей ==== * Для подключения используется канал 102 * Для экономии трафика используем кодек с меньшей полосой (не забыть указать в клиенте) server# cat sip.conf ... [102] ... disallow=all allow=gsm ... ==== Управление контекстами ==== server# cat sip.conf [general] ... context=from-office ... [102] ... context=from-internet ... [co1] ... context=incoming ... [voip1_00000X] ... context=incoming ... server# cat iax.conf ... [corpY] ... type=user ... context=from-corp ... server# cat extensions.conf ... [from-office] include => to-office include => to-corp include => to-pstn [from-internet] include => to-office include => to-corp [from-corp] include => to-office [to-office] exten => 301 ... exten => _1XX,1,Dial(SIP/${EXTEN}) [to-corp] exten => _0Y1XX,1,Set(CALLERID(num)=0X${CALLERID(num)}) exten => _0Y1XX,n,Dial(IAX2/corpY/${EXTEN:2}) [to-pstn] exten => _8XXXXXXXXXX,1,Dial(SIP/voip1/${EXTEN}) exten => _8XXXXXXXXXX,n,Dial(SIP/co1/${EXTEN:10}) [incoming] exten => co1,1,Dial(SIP/101&SIP/102&SIP/103&SIP/104) exten => voip1_00000X,1,Dial(SIP/101&SIP/102&SIP/103&SIP/104) ===== Модуль 8. Прохождение голосового трафика через препятствия (Firewall/NAT) ===== ==== Сценарий: SIP клиент за NAT, SIP сервер в публичной сети ==== === Подготовка стенда стенда ==== * Отключаем маршруты в сети слушателей * Настраиваем NAT ([[Сервис NAT#Трансляция на основе адреса отправителя]]) === Настройка SIP Proxy (Asterisk преподавателя) === server# cat sip.conf ... [000001] ... nat=yes qualify=yes canreinvite=no ... [000006] ... nat=yes qualify=yes canreinvite=no ... === Настройка SIP Client (Asterisk системы студента) === server# cat sip.conf [general] ... localnet=192.168.X.0/255.255.255.0 externip=172.16.1.X defaultexpiry=60 ... [voip1_000001] ... canreinvite=no ... ==== Сценарий: Asterisk сервер за NAT ==== * Настраиваем DNS View ([[Финальная настройка DNS сервера]]) * [[Сервис NAT#Трансляция портов сервисов]] === Подключение SIP клиентов === server# cat sip.conf ... [102] ... nat=yes canreinvite=no qualify=yes ... === Подключение Asterisk к Asterisk === * Достаточно перезапустить сервисы Asterisk для вступления в силу новых параметров DNS ===== Модуль 9. Настройка сервисов корпоративной телефонии ===== [[Сервис Asterisk#Детализация разговоров]] [[Сервис Asterisk#Настройка дополнительных видов обслуживания]] ===== Модуль 10. Организация Call центра ===== [[Сервис Asterisk#Организация Call центра]] ====== Подготовка класса ====== ===== Список оборудования ===== - Отвертка крестовая - 1шт - Лестница стремянка - 1шт - Windows XP с драйверами аудио, видео, rtl8139, плюс все остальное - 13шт - Удлинители электрические - 4шт - Телефонные аппараты аналоговые - 6шт - Телефон Cisco 7912 - 1шт - Телефон Panasonic KX-UT1XX - 6шт - Голосовые шлюзы Linksys 3102 - 7шт - Гарнитуры проводные - 6шт - Коммутатор Cisco Catalyst 2950 - 1шт - Офисная АТС - 1шт - Сетевые карты - 6шт - Планшет - 1шт - Микрофон - 1шт - Колонки - 1шт ===== Процедура подготовки ===== ==== 3 часа, за 2-3 дня до начала занятий ==== - Настроить Cisco Catalyst 2950 (telnet, portfast) - Заменить коммутатор класса на Cisco Catalyst 2950 - Установить коммутатор HP ProCurve, соединить транком с cisco - Переписать розетки - Отключить лишние кабели от рабочих станций и коммутатора - Протестировать сеть - Переключить кабели рабочих станций на резервные порты - Протестировать сеть - Голосовые шлюзы Linksys 3102 - сбросить, включить web на wan, настроить bridge ==== Письмо инженерам ==== Здравствуйте. Для проведения занятий по курсу "Астериск" в понедельник 5-го марта РАНО утром в аудитории №9 понадобится: Рабочие станции (те что у стен обязательно c PCI разъемом) разлитые из образа, который я сделал 18.06.12 в количестве равном кол-ву слушателей, плюс преподская плюс две запасные. Рабочие станции должны стоять по парно, 4 в ряд. Еще понадобится: * Отвертка крестовая - 1шт * Лестница стремянка - 1шт * Патч корды: 6 для дополнительного подключения рабочих станций, 6 коротких, для подключения кросс панели * Удлинители электрические - 3шт * Гарнитуры проводные - 6шт * Микрофон - 1шт * Колонки - 1шт ==== 3 часа утром, в 1-й день перед началом занятий ==== - Установить вторые сетевые карты - Установить офисную АТС - Установить Голосовые шлюзы Linksys 3102 на столах с Windows системами - Установить аналоговые телефоны и проверить работу офисной АТС - Подключить проводные гарнитуры к Windows системам и проверить их исправность ==== 2 часа утром, во 2-й день перед началом занятий ==== - Установить сип телефоны - Сбросит настройки сип телефонов - Проверить работу с сипнет провайдером ==== Каждое утро/вечер ==== !---------------------------------------------- interface FastEthernet0/8 switchport access vlan 101 ! interface FastEthernet0/3 switchport access vlan 101 ! interface FastEthernet0/6 switchport access vlan 102 ! interface FastEthernet0/7 switchport access vlan 102 ! interface FastEthernet0/10 switchport access vlan 103 ! interface FastEthernet0/11 switchport access vlan 103 ! interface FastEthernet0/14 switchport access vlan 104 ! interface FastEthernet0/15 switchport access vlan 104 ! interface FastEthernet0/18 switchport access vlan 105 ! interface FastEthernet0/19 switchport access vlan 105 ! interface FastEthernet0/20 switchport trunk encapsulation dot1q switchport mode trunk ! interface FastEthernet0/22 switchport access vlan 106 ! interface FastEthernet0/23 switchport access vlan 106 !---------------------------------------------- interface FastEthernet0/8 switchport access vlan 1 ! interface FastEthernet0/3 switchport access vlan 1 ! interface FastEthernet0/6 switchport access vlan 1 ! interface FastEthernet0/7 switchport access vlan 1 ! interface FastEthernet0/10 switchport access vlan 1 ! interface FastEthernet0/11 switchport access vlan 1 ! interface FastEthernet0/14 switchport access vlan 1 ! interface FastEthernet0/15 switchport access vlan 1 ! interface FastEthernet0/18 switchport access vlan 1 ! interface FastEthernet0/19 switchport access vlan 1 ! interface FastEthernet0/22 switchport access vlan 1 ! interface FastEthernet0/23 switchport access vlan 1 !----------------------------------------------