- •Основы технологий ip телефонии
- •7.91501, 8.915.01 – “Компьютерные системы и сети”
- •7.91502, 8.91502 - “Системное программирование”
- •Введение
- •Лабораторная работа №1 Пользовательское оборудование ip-телефонии. Настройка и использование
- •Задание на лабораторную работу
- •Краткие теоретические сведения
- •Введение в ip-телефонию
- •Принципы пакетной передачи речи
- •Сигнальные протоколы ip-телефонии
- •Виды соединений в сети ip-телефонии
- •Современные требования к ip-телефонии
- •Основные преимущества ip-телефонии
- •Порядок выполнения работы
- •Работа с ata.
- •Работа с ip-телефоном
- •Регистрация
- •Тестирование и демонстрация работы
- •Краткие теоретические сведения
- •Модули каналов
- •Модули форматов данных
- •Модули кодеров/декодеров
- •Дополнительные модули
- •Модули ресурсов
- •Модули функций плана набора
- •Модули приложений плана набора
- •Встроенные приложения плана набора
- •Порядок выполнения работы
- •Содержимое отчета
- •Контрольные вопросы
- •Лабораторная работа №3 Изучение протоколов ip телефонии
- •Задание на лабораторную работу
- •Краткие теоретические сведения
- •Сообщения протокола sip
- •Адресация
- •Запросы
- •Дополнительные типы запросов
- •Ответы на запросы
- •Порядок выполнения работы
- •Содержимое отчета
- •Контрольные вопросы
- •Команда Background()
- •Команда Playtones()
- •Порядок выполнения работы
- •Содержимое отчета
- •Контрольные вопросы
- •Лабораторная работа №5 Тестирование кодеков.
- •Задание на лабораторную работу
- •Краткие теоретические сведения
- •Кодирование речевой информации
- •Декодирование речевой информации
- •Механизмы оптимизации задержек в сети
- •Порядок выполнения работы
- •Содержимое отчета
- •Контрольные вопросы
- •Рекомендованная литература
Модули приложений плана набора
app_adsiprog.so– ADSI
app_amd.so– Answering Machine Detection
app_authenticate.so– Authentication
app_cdr.so– CDR
app_chanisavail.so– доступность канала
app_channelredirect.so– перенаправление канала
app_chanspy.so– подслушивание каналов
app_controlplayback.so– воспроизведение
app_db.so– доступ к БД
app_dial.so– вызов
app_dictate.so– Virtual Dictation Machine
app_directed_pickup.so– Directed Call Pickup
app_directory.so– Extension Directory
app_disa.so– Direct Inward System Access
app_dumpchan.so– дамп канала
app_echo.so– генерация эхо
app_exec.so– запуск приложений
app_externalivr.so– внешняя IVR
app_forkcdr.so– ветвление CDR
app_getcpeid.so– получение ADSI CPE ID
app_hasnewvoicemail.so– голосовая почта
app_image.so– передача изображений
app_lookupblacklist.so– черные списки
app_lookupcidname.so– обзор CallerID в БД
app_macro.so– Макро
app_meetme.so– конференции MeetMe
app_milliwatt.so– генерация тонов
app_mp3.so– воспроизведение MP3
app_parkandannounce.so– парковка и оповещение
app_playback.so– воспроизведение
app_random.so– случайные переходы
app_readfile.so– чтение переменных из файла
app_realtime.so- работа с RealTime хранилищем
app_record.so– запись в файл
app_sayunixtime.so– воспроизведение времени
app_senddtmf.so– отправка DTMF
app_sendtext.so– отправка текста
app_setcallerid.so– установка CallerID
app_setcdruserfield.so– установка CDR user field
app_settransfercapability.so– установка возможностей ISDN передачи
app_sms.so– обработчик SMS/PSTN
app_softhangup.so– обрыв вызовов
app_speech_utils.so– приложения Speech
app_stack.so– процедуры работы со стеком
app_system.so– вызов приложения UNIX
app_talkdetect.so– обнаружение разговора
app_transfer.so– перевод вызова
app_verbose.so– вывод в CLI
app_voicemail.so– голосовая почта (Comedian Mail)
app_waitforsilence.so– ожидание тишины
app_while.so– цикл while
app_zapbarge.so– прослушивание Zap канала
app_zapscan.so– прослушивание Zap канала
Встроенные приложения плана набора
AbsoluteTimeout – автоматический обрыв вызова
Answer – ответ на вызов
BackGround – воспроизведение с ожиданием
Busy – отбой вызова
Congestion – отбой вызова
DigitTimeout – установка времени ожидания DTMF цифры
Goto – переход
GotoIf – условный переход
GotoIfTime – переход с учетом времени
ExecIfTime – запус приложения с учетом времени
Hangup – обрыв вызова
NoOp – пустое приложение (операция)
Progress – индикация прогресса
ResetCDR – сброс CDR
ResponseTimeout – ограничение времени вызова
Ringing – индикация вызова
SayNumber – произнесение числа
SayDigits – произнесение цифры
SayAlpha – произнесение буквы
SayPhonetic – произнесение слога
SetAccount – установка значения accoutncode
SetAMAFlags – установка значения AMA
SetGlobalVar – установка глобальной переменной
SetLanguage – установка языка
Set – установка значения переменной
SetVar – установка значения переменной
ImportVar – импортирование переменных с других каналов
Wait – ожидание (бездействие)
WaitExten – ожидание набора с переходом
Порядок выполнения работы
Установить сервер asterisk
В среде linux kubuntu/ubuntu
# apt-get install asterisk |
В среде fedora
# yum install asterisk |
В ОС FreeBSD
# cd /usr/ports/net/asterisk16 # make && make install |
После установки в линукс системах он запускается автоматически, в ОС FreeBSD нужно добавить соответствующую переменную в rc.conf.
Находим папку asterisk, в которой находятся файлы конфигурации *.conf.
В конец файла sip.conf дописываем описание клиентов, которые будут работать с Asterisk, данные записанные в этот файл будут использованы для подключения к серверу. Для простоты рекомендуется использовать числовые логины, для удобства звонков с аналоговых телефонов. Добавленный текст для одного из аккаунтов приведён ниже.
[111] type=friend username=111 secret=qwerty1 nat=no ; Этот телефон не находиться за роутером с NAT host=dynamic; IP адрес динамический canreinvite=no ; qualify=200 ; Рассматриваем пир как нерабочий, ; если отклик от него приходит дольше, чем 200ms ;defaultip=192.168. ; можно прописать статический IP disallow=all ; запрещаем все кодеки allow=ulaw ; разрешаем G711 u-закон кодек allow=alaw ; разрешаем G711 a-закон кодек allow=g723 ;разрешаем G723 кодек regext=111 ; под каким номером регистрировать |
Добавьте аналогичные строки еще для 2-х аккаунтов, в качестве номеров используйте свои логины на сервере KID.
В файле extensions.conf прописываем extensions телефонов (телефонные номера) в самое начало секции [demo]. Для этого в этот файл дописываем следующие строки.
[demo] exten => 111, 1, Dial(SIP/222,10,t) exten => login1, 1, Dial(SIP/login1,10,t) exten => login2, 1, Dial(SIP/login2,10,t) |
Перезапускаем сервер командой
в linux
# /etc/init.d/asterisk restart |
В ОС FreeBSD
# /usr/local/etc/rc.d/asterisk.sh restart |
для применения всех изменений.
Настраиваем IP телефоны UA Cisco Linksys или Polycom для подключения к серверу Asterisk. Этапы настройки описаны в лабораторной работе №1. Поля, необходимые для заполнения для UA Cisco Linksys выделены на рисунке 2.1
Рисунок 2.1 – Конфигурирование UA Cisco Linksys
Провести настройку одного из программных телефонов (например, twinkle, ekiga).
В качестве IP Proxy используйте IP вашего ПК с установленным сервером Asterisk, логины и пароли акккунтов, которые вы занесли в sip.conf и extensions.conf!
Заходим на управляющую серверную консоль Asteriska
#asterisk –r |
и проверяем созданных пользователей, а также их состояние командами
#sip show users #sip show peers |
Результат проверки приведён на рисунке 2.2
Рисунок 2.2 – Проверка пользователей и их состояния
Отразить в отчете полученную картину с вашими описаниями всех полей.
После проверки состояния совершаем звонки между UAs. Если голос при разговоре отсутствует, меняем кодеки до получения удовлетворительного результата.
Провести дерегистрацию UA, путем выключения питания телефонов.
Проверить отсутствие регистрации в серверной консоли asterisk, зафиксировать в отчете.
Включите логирование по IP адресу
sip set debug ip ВАШ_IP_UA
|
Провести регистрацию UA.
Проанализируйте и зафиксируйте в отчете вывод консоли при повторной регистрации и проведении вызовов абонентов.
Повысите уровень вывода отладочной информации, используйте команды
sip set debug on set verbose set debug |
проанализируйте и зафиксируйте в отчете вывод консоли.
Изучите возможности клиентской консоли asterisk, используя команду
help |
Задания для самостоятельного выполнения
Установить конференц-связь. Использовать файлы extensions.conf и meetme.conf
Соединить между собой 2 сервера asterisk. Использовать файл iax.conf
Позвонить на номер 600, разобраться в функциональности и найти настройки.