Интерфейс системы мониторинга IP-конференций на базе Cisco Call Manager
Структура сети IP телефонии в информационно-вычислительном центре. Основные системные возможности и пользовательские функции Cisco Сall Manager. Анализ конференций различных типов. Разработка программного обеспечения системы мониторинга IP-конференции.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 20.05.2013 |
Размер файла | 3,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
. (2)
После подстановки значений в формулу (2) получим:
По статистике расходы на комплектующие изделия () для ремонта ПК составляют 10% от стоимости ПК за срок его эксплуатации.
После подстановки известных значений в формулу (3) получим:
На ремонт 50 компьютеров требуется один инженер-системотехник. Его среднемесячная заработная плата. Тогда в пересчете на один компьютер его заработная плата составит
. (4)
При ЗП, равной 20000 руб. в месяц, в расчете на один компьютер за период разработки ПО, равный четырем месяцам, заработная плата ремонтника составит:
Амортизационные отчисления на ПК с учетом всего срока его эксплуатации (3 года) равны:
Подставив значения в формулу (5) получим:
При разработке программной системы срок морального устаревания ПО принимается равным 3 года. Таким образом, амортизация ПО за срок разработки программной системы составляет:
Подставив значения в формулу (6) получим:
Используемое ПО:
операционная система Windows 7 pro (7000 руб.);
средство автоматизированного тестирования TestComplete 9 (64760 руб.);
Дополнительные расходы (уборка помещения, охрана, аренда, коммунальные услуги) оценить трудно, поэтому они принимаются равными заработной плате инженера-системотехника за весь срок разработки программной системы.
.
Суммарные эксплуатационные расходы на один ПК составят:
, (9)
После подстановки известных значений в формулу (9) получим:
уб.
Результаты расчетов сведены в табл. 5.2
Таблица 2 - Эксплуатационные расходы на ПК
Статьи расхода |
Затраты (руб.) |
|
Расходы на электроэнергию |
564,28 |
|
Стоимость расходных материалов |
333,3 |
|
Расходы на комплектующие изделия |
333,3 |
|
Расходы на ремонт |
1600 |
|
Амортизация ПК |
3000 |
|
Амортизация ПО |
65838 |
|
Дополнительные расходы |
1600 |
|
Итого эксплуатационные расходы на ПК |
73713,2 |
Себестоимость создания среды определяется как сумма статей таблицы 5.1. Полученная величина рассматривается как необходимые инвестиции в создание данного проекта.
5.2 Чистый дисконтированный доход
Соизмерение затрат, результатов и эффектов в течение расчетного периода осуществляется с помощью метода дисконтирования. Дисконтирование основано на прогнозе будущих затрат и результатов, на использовании процентной ставки или нормы дисконта Е.
Чистый дисконтированный доход (ЧДД) рассчитывается как разность накопленного дисконтированного дохода от реализации проекта и дисконтированных единовременных затрат на внедрение инновации. ЧДД определенного периода рассчитывается по формуле:
где T - расчетный период;
Rt - результат в t-ом году; Зt - затраты, текущие издержки и инвестиции в t-й год; E - норма дисконта;
- коэффициент дисконтирования.
Для расчета нормы дисконта Е воспользуемся формулой:
E = a + b + c, (11)
где a -доходность альтернативных вложений;
b -уровень премии за риск; c -уровень инфляции.
В данном проекте, в качестве альтернативных вложений средств, необходимых для реализации данного проекта, взят средний банковский депозитный процент - 11% годовых в рублях.
Премия за риск рассчитывается, исходя из среднего класса инновации, определяемого на основании морфологической таблицы 1.3, по формуле (12):
, (12)
где - средний класс инновации;
ki - класс сложности инновации по i-му классификационному признаку;
n - количество классификационных признаков.
Таким образом, исходя из таблицы 5.3:
.
По данным агентства РБК, уровень годовой инфляции рубля в 2011 г., составил 6.1 %. Поэтому для дальнейших расчетов значение уровня инфляции (c) примем равным 6.1 %.
Таблица 3 - Классификация нововведений и инновационных процессов по группам риска
Признаки разделения на группы |
Значения признаков, определяющих группу риска |
Класс по признаку |
|
Тип новатора (сфера создания новшества) |
Образовательные учреждения |
7 |
|
Уровень инноватора |
Подразделение вуза |
7 |
|
Масштаб распространения нововведения |
Единичная реализация |
5 |
|
Длительность инновационного процесса |
Долгосрочные (более 3 лет) |
8 |
|
Сумма строк: |
27 |
В соответствии с табл. 5.4. параметр при расчете коэффициента дисконтирования будет составлять 20%.
Таблица 4 - Соотношение среднего класса инновации и средней премии за риск, устанавливаемой для инновации данного класса.
Средний класс инновации |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
Премия за риск, % |
0 |
0,5 |
1 |
2 |
5 |
10 |
20 |
50 |
Таким образом, значение нормы дисконта для расчета экономической эффективности данного проекта:
Чтобы определить дисконтированный доход данного проекта, необходимо рассчитать эксплуатационные расходы по каждому периоду.
Расходы на электроэнергию определяются мощностью одного ПК, на котором будет реализовываться проект - 0,3кв/ч, стоимостью 1кВт/ч электроэнергии и временем использования (24 часов в сутки, 356 дней в году) сервера составят:
Амортизационный период ПК в настоящее время равен сроку морального старения вычислительной техники и составляет 3 года. Следовательно, амортизация оборудования составит:
.
Заработная плата двух тестировщиков составляет 50000 руб. в месяц. С учетом ЕСН эта сумма составляет 65000 руб. в месяц. За год эта сумма составляет 780000 руб.
Дополнительные расходы - прочие расходы, обеспечивающие хозяйствующую деятельность, то есть коммунальные услуги, арендные платежи, уборка помещения, охрана, связь и т.п. Для данного проекта примем их равными 20% от общей суммы, расходов указанных выше. Следовательно, за год данная сумма расходов составит: 159606 руб.
Таким образом, эксплуатационные расходы равны:
Доходы (Д) можно рассмотреть в качестве заработной платы тестировщиков, которых можно сократить при внедрении автоматизированного тестирования. Учитывая увеличение скорости тестирования, в небольшом проекте количество тестировщиков с пяти до одного. Таким образом доход за год составит:
.
Кроме того, доход можно представить, как убытки, которые не произошли, благодаря своевременному и качественному тестированию. Однако, такие убытки численно оценить очень сложно. Он может варьироваться от затрат на проведение дополнительного тестирования, до полного закрытия проекта.
Капиталовложения состоят: из себестоимости разрабатываемого проекта и стоимости одного ПК.
Результаты расчетов сведены в табл. 5.5.
Таблица 5 - Расчет дисконтированного дохода
2012 |
2013 |
2014 |
2015 |
2016 |
||
Капиталовложения |
250713 |
0 |
0 |
0 |
0 |
|
Эксплуатационные расходы |
957633 |
957633 |
957633 |
957633 |
957633 |
|
Доходы |
1170000 |
1170000 |
1170000 |
1170000 |
1170000 |
|
Прибыль |
-38346 |
212367 |
212367 |
212367 |
212367 |
|
Коэффициент дисконтирования |
1 |
0,72 |
0,51 |
0,37 |
0,26 |
|
ДД |
-38346 |
148657 |
106184 |
78576 |
55216 |
|
ДД с нарастающим итогом |
-38346 |
110311 |
216495 |
295071 |
350284 |
По результатам произведенных расчетов видно, что с самого начала значение показателя «дисконтированный доход» (ДД) является положительным, что свидетельствует об экономической выгодности (эффективности) данного проекта. Чем больше ДД, тем эффективнее проект.
Рисунок 5.1 - Дисконтированный доход с нарастающим итогом
5.3 Доходы и рентабельность
Индекс доходности - это отношение суммарного дисконтированного дохода к суммарным дисконтированным затратам:
, (14)
где - доходы i-го периода реализации проекта;
- затраты i-го периода реализации проекта;
E - норма дисконта;
n - количество периодов реализации проекта.
По формуле (14) получим:
1,12.
В данном случае индекс доходности больше 1, следовательно, данный проект экономически эффективен.
Среднегодовая рентабельность проекта является разновидностью индекса доходности, соотнесенного со сроком реализации проекта. Этот показатель указывает, какой доход приносит вложенная в проект единица инвестиций:
(14)
где ИД - индекс доходности;
n - количество периодов реализации проекта.
Таким образом по формуле (14):
Критерием экономической эффективности инновационного проекта является его положительная рентабельность.
5.4 Заключение по разделу
Данный проект является экономически эффективным. Является выгодным в плане затрат на тестирование ПО. Он окупается в течении второго года его реализации и имеет индекс доходности 1,12.
6. ОХРАНА ТРУДА
В разделе охраны труда необходимо произвести оценку напряженности трудового процесса сменного работника, главными задачами которой являются:
· слежение за мониторингом группы серверов
· исправление незначительных неисправностей в работе серверов
· сообщение о неисправностях в работе серверов администраторам и начальнику смены
Необходимо произвести оценку всех показателей до использования проектируемой ИС и с её использованием. Все изменения необходимо прокомментировать и подтвердить расчетами. В конце раздела пишется заключение по оценке напряженности, а также приводятся рекомендации по компенсации изменений в сторону ухудшения, если таковые имеют место.
6.1 Общая оценка напряженности трудового процесса
Независимо от профессиональной принадлежности (профессии) учитываются все 23 показателя, перечисленные в табл. 18 (Приложение Х). Не допускается выборочный учет каких-либо отдельно взятых показателей для общей оценки напряженности труда.
По каждому из 23 показателей в отдельности определяется свой класс условий труда. В том случае, если по характеру или особенностям профессиональной деятельности какой-либо показатель не представлен (например, отсутствует работа с экраном видеотерминала или оптическими приборами), то по данному показателю ставится 1 класс (оптимальный) - напряженность труда легкой степени.
При окончательной оценке напряженности труда.
«Оптимальный» (1 класс) устанавливается в случаях, когда 17 и более показателей имеют оценку 1 класса, а остальные относятся ко 2 классу. При этом отсутствуют показатели, относящиеся к 3 (вредному) классу.
«Допустимый» (2 класс) устанавливается в следующих случаях:
когда 6 и более показателей отнесены ко 2 классу, а остальные - к 1 классу;
когда от 1 до 5 показателей отнесены к 3.1 и/или 3.2 степеням вредности, а остальные показатели имеют оценку 1-го и/или 2-го классов.
«Вредный» (3) класс устанавливается в случаях, когда 6 или более показателей отнесены к третьему классу (обязательное условие).
При соблюдении этого условия труд напряженный 1-й степени (3.1):
· когда 6 показателей имеют оценку только класса 3.1, а оставшиеся показатели относятся к 1 и/или 2 классам;
· когда от 3 до 5 показателей относятся к классу 3.1, а от 1 до 3 показателей отнесены к классу 3.2.
Труд напряженный 2-й степени (3.2):
· когда 6 показателей отнесены к классу 3.2;
· когда более 6 показателей отнесены классу 3.1;
· когда от 1 до 5 показателей отнесены к классу 3.1, а от 4 до 5 показателей - к классу 3.2;
· когда 6 показателей отнесены к классу 3.1 и имеются от 1 до 5 показателей класса 3.2.
В тех случаях, когда более 6 показателей имеют оценку 3.2, напряженность трудового процесса оценивается на одну степень выше - класс 3.3.
[Руководство Р 2.2.2006-05 «Руководство по гигиенической оценке факторов рабочей среды и трудового процесса. Критерии и классификация условий труда» (утв. Главным государственным санитарным врачом России 29.07.05]
6.2 Протокол оценки условий труда по показателям напряженности трудового процесса
Ф.,И.,О.________________Сорокина Е.С.______пол _______ж_______
Профессия:__________________ программист____________________
Предприятие:________________СПБ ИВЦ ОктЖД________________
Краткое описание выполняемой работы:______ Обеспечение контроля за работой серверов отдела СС, производство работ в соответствии с инструкцией____________________________________________________
Таблица 6- Протокол оценки условий труда
Показатели |
Класс условий труда |
||||
1 |
2 |
3.1 |
3.2 |
||
1. Интеллектуальные нагрузки |
|||||
1.1 Содержание работы |
+ |
||||
1.2 Восприятие сигналов и их оценка |
+ |
||||
1.3 Распределение функции по степени сложности задания |
+ |
||||
1.4 Характер выполняемой работы |
+ |
||||
2. Сенсорные нагрузки |
|||||
2.1 Длительность сосредоточенного наблюдения |
+ |
||||
2.2 Плотность сигналов за 1 час работы |
+ |
||||
2.3 Число объектов одновременного наблюдения |
+ |
||||
2.4 Размер объекта различения при длительности сосредоточенного внимания |
+ |
||||
2.5 Работа с оптическими приборами при длительности сосредоточенного наблюдения |
+ |
||||
2.6 Наблюдение за экраном видеотерминала |
+ |
||||
2.7 Нагрузка на слуховой анализатор |
+ |
||||
2.8 Нагрузка на голосовой аппарат |
+ |
||||
3. Эмоциональные нагрузки |
|||||
3.1 Степень ответственности за результат собственной деятельности. Значимость ошибки |
+ |
||||
3.2 Степень риска для собственной жизни |
+ |
||||
3.3 Ответственность за безопасность других лиц |
+ |
||||
3.4 Количество конфликтных производственных ситуаций за смену |
+ |
||||
4. Монотонность нагрузок |
|||||
4.1 Число элементов, необходимых для реализации простого задания или многократно повторяющихся операций |
+ |
||||
4.2 Продолжительность выполнения простых заданий или повторяющихся операций |
+ |
||||
4.3 Время активных действий |
+ |
||||
4.4 Монотонность производственной обстановки |
+ |
||||
5. Режим работы |
|||||
5.1 Фактическая продолжительность рабочего дня |
+ |
||||
5.2 Сменность работы |
+ |
||||
5.3 Наличие регламентированных перерывов и их продолжительность |
+ |
||||
Количество показателей в каждом классе |
10 |
8 |
2 |
3 |
|
Общая оценка напряженности труда |
+ |
Примечание: «Допустимый» (2) класс устанавливается в следующих случаях:
· когда 6 и более показателей отнесены ко 2 классу, а остальные - к 1 классу;
· когда от 1 до 5 показателей отнесены к 3.1 и/или 3.2 степеням вредности, а остальные имеют оценку 1-го и/или 2-го классов.
6.3 Оценка изменений напряженности труда, с использованием проектируемой ИС
Таблица 7 - Изменения напряженности труда
Показатели |
Класс условий труда |
||||
1 |
2 |
3.1 |
3.2 |
||
2. Сенсорные нагрузки |
|||||
2.7 Нагрузка на слуховой анализатор |
+ |
||||
4.1 Число элементов, необходимых для реализации простого задания или многократно повторяющихся операций |
+ |
||||
Количество показателей в каждом классе |
11 |
7 |
1 |
4 |
|
Общая оценка напряженности труда |
+ |
6.3.1 Изменения, связанные с сенсорными нагрузками
2.7 - «Нагрузка на слуховой анализатор» указывает на степень зашумленности и разборчивости звуковых сигналов - речи.
Например: без использования ИС, нельзя было определить, кто находится в голосовой конференции по IP-телефонии и приходилось по голосу определять, кто присутствует, а кто отсутствует.
После внедрения ИС, задача определения состава конференции будет сводиться к одному действию по нажатию нескольких кнопок: система сама будет формировать список участников конференции и корректировать изменения в нем при подключении/отключении участников. Таким образом, задача будет соответствовать 1-му классу труда.
6.3.2 Изменения, связанные с монотонностью нагрузок
4.1 и 4.2. «Число элементов (приемов), необходимых для реализации простого задания или многократно повторяющихся операций» и «Продолжительность (в сек.) выполнения простых производственных заданий или повторяющихся операций» - чем меньше число выполняемых приемов и чем короче время, тем, соответственно, выше монотонность нагрузок. Необходимым условием для отнесения операций и действий к монотонным является не только их частая повторяемость и малое количество приемов, что может наблюдаться и при других работах, но и их однообразие и, самое главное, их низкая информационная содержательность, когда действия и операции производятся автоматически и практически не требуют пристального внимания, переработки информации и принятия решений, т.е. практически не задействуют «интеллектуальные» функции.
Например: для активации мониторинга конференции, необходимо создать конференцию, для чего требуется пройти аутентификацию - ввести имя и пароль на что потребуется 10-30 сек, выбрать нужную конференцию и нажать кнопку «начать» на что потребуется 5-10сеу, суммарно будет потрачено 15-40 сек, что соответствует по продолжительности выполнения простой операции 1-му классу труда.
Работа с системой будет выполнена в 3 действия, что соответствует 3.2 классу труда.
При использовании ИС формирование списка участников конференции будет осуществляться автоматически с периодом в 1 сек, что соответствует классу труда 3.2.
6.4 Вывод и рекомендации
Таким образом, общее количество показателей класса 2 снижается на 1 пункт, который переходит в 1-й класс труда, общее количество показателей класса 3.1 снижается на 1 пункт, который переходит в класс 3.2, следовательно, общее количество показателей труда станет следующим:
1 класс - 11
2 класс - 7
3.1 класс - 1
3.2 класс - 4
Оцениваем класс условий труда по новым показателям: «Допустимый» (2 класс) устанавливается в следующих случаях:
- когда 6 и более показателей отнесены ко 2 классу, а остальные - к 1 классу;
- когда от 1 до 5 показателей отнесены к 3.1 и/или 3.2 степеням вредности, а остальные показатели имеют оценку 1-го и/или 2-го классов.
Изменения с использованием ИС снижают сенсорную нагрузку на слуховой анализатор, так как оператору системы больше не нужно слушать и разбирать голоса звонящих - система предоставляет ему список участников конференции в текстово-графическом виде. В тоже время использование ИС увеличивает монотонность нагрузок в части «Число элементов, необходимое для реализации простого задания», из-за снижения числа элементов (приемов), необходимых для реализации простого задания.
Для предупреждения преждевременной утомляемости пользователей ПЭВМ рекомендуется организовывать рабочую смену путем чередования работ с использованием ПЭВМ и без него. При возникновении у работающих с ПЭВМ зрительного дискомфорта и других неблагоприятных субъективных ощущений, несмотря на соблюдение санитарно-гигиенических и эргономических требований, рекомендуется применять индивидуальный подход с ограничением времени работы с ПЭВМ.
Рекомендуется организация перерывов на 10 - 15 мин. через каждые 45 - 60 мин. работы. Во время регламентированных перерывов с целью снижения нервно-эмоционального напряжения, утомления зрительного анализатора, устранения влияния гиподинамии и гипокинезии, предотвращения развития позотонического утомления целесообразно выполнять комплексы упражнений:
Комплексы упражнений физкультурных минуток (Приложение 9 к СанПиН 2.2.2/2.4.1340-03);
Комплексы упражнений физкультурных пауз (Приложение 10 к СанПиН 2.2.2/2.4.1340-03).
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1. URL: http://www.cisco.com/web/RU/solutions/iptelephony.
2. Cisco Unified Communications Manager Administration Guide (Release 6.0) 2007 Cisco Systems, Inc. - 846., распространяется вместе с сервером Cisco Call Manager.
3. Cisco Unified Communications Manager JTAPI Developers Guide 6.0
4. 2002-2007 Cisco Systems, Inc. - 644c., распространяется вместе с сервером Cisco Call Manager.
5. Техническая документация JTAIP v3.0, распространяется вместе с библиотекой JTAPI.
6. Информационный ресурс cisco.com.
7. URL: www.cisco.com/web/RU/products/voice_comparison.html.
8. URL: http://www.cisco.com/web/RU/vendors/cisco/products/CUCM6.doc.
9. URL: http://ru.wikipedia.org/wiki/H.323.
10. URL: http://ru.wikipedia.org/wiki/MGCP.
11. URL: http://ru.wikipedia.org/wiki/RTP.
12. URL: http://ru.wikipedia.org/wiki/SCCP.
13. URL: http://ru.wikipedia.org/wiki/CTI.
14. URL: http://www.cisco.com/web/RU/vendors/cisco/products/CUCM6.doc.
15. URL: http://ru.wikipedia.org/wiki/SIP.
ПРИЛОЖЕНИЕ 1
Код приложения (часть)
MakeCall.java
import conferense.*
import conferense.center.*
import java.util.*;
import javax.telephony.*;
import javax.telephony.events.*;
public class makecall extends TraceWindow implements ProviderObserver {
Vectoractors = new Vector();
ConditionconditionInService = new Condition();
Providerprovider ;
public makecall(String[] args) {
super("makecall" + ": " + new CiscoJtapiVersion());
try {
centr.strlog("Initializing Jtapi");
int curArg = 0;
String providerName = args[curArg++];
String login = args[curArg++];
String passwd = args[curArg++];
int actionDelayMillis = Integer.parseInt(args[curArg++]);
String src = null;
String dest = null;
JtapiPeer peer = JtapiPeerFactory.getJtapiPeer(null);
if (curArg < args.length) {
String providerString = providerName + ";login=" + login + ";passwd=" + passwd;
centr.strlog("Opening " + providerString + "...\n");
provider = peer.getProvider(providerString);
provider.addObserver(this);
conditionInService.waitTrue();
centr.strlog("Constructing actors");
for (; curArg < args.length; curArg++) {
if (src == null) {
src = args[curArg];
} else {
dest = args[curArg];
ReCall ReCall = new ReCall(provider.getAddress(src), dest, this, actionDelayMillis);
actors.addElement(ReCall);
actors.addElement(
new Receiver(provider.getAddress(dest), this, actionDelayMillis, ReCall));
src = null;
dest = null;
}
}
if (src != null) {
centr.strlog("Skipping last originating address \"" + src + "\"; no destination specified");
}
}
Enumeration e = actors.elements();
while (e.hasMoreElements()) {
Actor actor = (Actor) e.nextElement();
actor.initialize();
}
Enumeration en = actors.elements();
while (en.hasMoreElements()) {
Actor actor = (Actor) en.nextElement();
actor.start();
}
} catch (Exception e) {
centr.strlog("Caught exception " + e);
}
}
public void dispose() {
centr.strlog("Stopping actors");
Enumeration e = actors.elements();
while (e.hasMoreElements()) {
Actor actor = (Actor) e.nextElement();
actor.dispose();
}
}
public static void main(String[] args) {
if (args.length < 6) {
centr.strlog("Usage: makecall <server> <login> <password> <delay> <origin> <destination> ...");
System.exit(1);
}
new makecall(args);
}
public void providerChangedEvent(ProvEv[] eventList) {
if (eventList != null) {
for (int i = 0; i < eventList.length; i++) {
if (eventList[i] instanceof ProvInServiceEv) {
conditionInService.set();
}
}
}
}
}
ReCall.java
import conferense.*
import conferense.center.*
import javax.telephony.*;
import javax.telephony.events.*;
import javax.telephony.callcontrol.*;
import javax.telephony.callcontrol.events.*;
public class ReCall extends Actor {
AddresssrcAddress ;
StringdestAddress ;
intiteration ;
StopSignalstopSignal ;
booleanready = false;
intreceiverState = Actor.ACTOR_OUT_OF_SERVICE;
boolean callInIdle = true;
public ReCall(Address srcAddress, String destAddress, Trace trace, int actionDelayMillis) {
super(trace, srcAddress, actionDelayMillis);// observe srcAddress
this.srcAddress = srcAddress;
this.destAddress = destAddress;
this.iteration = 0;
}
protected final void metaEvent(CallEv[] eventList) {
for (int i = 0; i < eventList.length; i++) {
try {
CallEv curEv = eventList[i];
if (curEv instanceof CallCtlTermConnTalkingEv) {
TerminalConnection tc = ((CallCtlTermConnTalkingEv) curEv).getTerminalConnection();
Connection conn = tc.getConnection();
if (conn.getAddress().getName().equals(destAddress)) {
delay("disconnecting");
bufCentr.strlog("Disconnecting Connection " + conn);
conn.disconnect();
}
} else if (curEv instanceof CallCtlConnDisconnectedEv) {
Connection conn = ((CallCtlConnDisconnectedEv) curEv).getConnection();
if (conn.getAddress().equals(srcAddress)) {
stopSignal.canStop();
setCallProgressState(true);
}
}
} catch (Exception e) {
centr.strlog("Caught exception " + e);
} finally {
flush();
}
}
}
protected void makecall()
throws ResourceUnavailableException, InvalidStateException,
PrivilegeViolationException, MethodNotSupportedException,
InvalidPartyException, InvalidArgumentException {
centr.strlog("Making call #" + ++iteration + " from " + srcAddress + " to " + destAddress + " " + Thread.currentThread().getName());
Call call = srcAddress.getProvider().createCall();
call.connect(srcAddress.getTerminals()[0], srcAddress, destAddress);
setCallProgressState(false);
centr.strlog("Done making call");
}
protected final void onStart() {
stopSignal = new StopSignal();
new ActionThread().start();
}
protected final void fireStateChanged() {
checkReadyState();
}
protected final void onStop() {
stopSignal.stop();
Connection[] connections = srcAddress.getConnections();
try {
if (connections != null) {
for (int i = 0; i < connections.length; i++) {
connections[i].disconnect();
}
}
} catch (Exception e) {
centr.strlog(" Caught Exception " + e);
}
}
public int getReceiverState() {
return receiverState;
}
public void setReceiverState(int state) {
if (receiverState != state) {
receiverState = state;
checkReadyState();
}
}
public synchronized void checkReadyState() {
if (receiverState == Actor.ACTOR_IN_SERVICE && state == Actor.ACTOR_IN_SERVICE) {
ready = true;
} else {
ready = false;
}
notifyAll();
}
public synchronized void setCallProgressState(boolean isCallInIdle) {
callInIdle = isCallInIdle;
notifyAll();
}
public synchronized void doAction() {
if (!ready || !callInIdle) {
try {
wait();
} catch (Exception e) {
centr.strlog(" Caught Exception from wait state" + e);
}
} else {
if (actionDelayMillis != 0) {
centr.strlog("Pausing " + actionDelayMillis + " milliseconds before making call ");
flush();
try {
wait(actionDelayMillis);
} catch (Exception ex) {
}
}
if (ready && callInIdle) {
try {
makecall();
} catch (Exception e) {
centr.strlog(" Caught Exception in MakeCall " + e + " Thread =" + Thread.currentThread().getName());
}
}
}
}
class ActionThread extends Thread {
ActionThread() {
super("ActionThread");
}
public void run() {
while (true) {
doAction();
}
}
}
}
Receiver.java
import conferense.*
import conferense.center.*
import javax.telephony.*;
import javax.telephony.events.*;
import javax.telephony.callcontrol.*;
import javax.telephony.callcontrol.events.*;
public class Receiver extends Actor {
Addressaddress ;
StopSignalstopSignal ;
ReCallReCall ;
public Receiver(Address address, Trace trace, int actionDelayMillis, ReCall ReCall) {
super(trace, address, actionDelayMillis);
this.address = address;
this.ReCall = ReCall;
}
protected final void metaEvent(CallEv[] eventList) {
for (int i = 0; i < eventList.length; i++) {
TerminalConnection tc = null;
try {
CallEv curEv = eventList[i];
if (curEv instanceof CallCtlTermConnRingingEv) {
tc = ((CallCtlTermConnRingingEv) curEv).getTerminalConnection();
delay("answering");
bufCentr.strlog("Answering TerminalConnection " + tc);
tc.answer();
stopSignal.canStop();
}
} catch (Exception e) {
bufCentr.strlog("Caught exception " + e);
bufCentr.strlog("tc = " + tc);
} finally {
flush();
}
}
}
protected final void onStart() {
stopSignal = new StopSignal();
}
protected final void onStop() {
stopSignal.stop();
Connection[] connections = address.getConnections();
try {
if (connections != null) {
for (int i = 0; i < connections.length; i++) {
connections[i].disconnect();
}
}
} catch (Exception e) {
centr.strlog(" Caught Exception " + e);
}
}
protected final void fireStateChanged() {
ReCall.setReceiverState(state);
}
}
StopSignal.java
import conferense.*
import conferense.center.*
import javax.telephony.*;
import javax.telephony.events.*;
import javax.telephony.callcontrol.*;
import javax.telephony.callcontrol.events.*;
class StopSignal {
boolean stopping = false;
boolean stopped = false;
synchronized boolean isStopped() {
return stopped;
}
synchronized boolean isStopping() {
return stopping;
}
synchronized void stop() {
if (!stopped) {
stopping = true;
try {
wait();
} catch (InterruptedException e) {
}
}
}
synchronized void canStop() {
if (stopping = true) {
stopping = false;
stopped = true;
notify();
}
}ПРИЛОЖЕНИЕ 2
Размещено на Allbest.ru
Подобные документы
Основные понятия IP телефонии и виды строения сетей IP телефонии. Голосовые шлюзы Cisco Systems для IP-телефонии. IP IVR как средство автоматического ответа на вызовы. Преимущества построения распределенного Контакт Центра, архитектура его построения.
дипломная работа [3,0 M], добавлен 21.04.2016Интерфейс системы онлайн-мониторинга стационарного аппарата. Интерфейс автоматизированного рабочего места мониторинга АПБ Московского метрополитена. Архитектура системы ProView, основные сферы применения. Структура графического интерфейса пользователя.
курсовая работа [1,8 M], добавлен 21.03.2016Декомпозиция функциональной структуры. Коммуникационное оборудование территориально-распределенной сети компании. Межсетевой экран локальной сети главного офиса. Интегрированная платформа для обработки голосовых вызовов на базе маршрутизаторов Cisco ISR.
дипломная работа [3,2 M], добавлен 28.06.2011Изучение создания сетей следующего поколения с помощью Cisco Packet Tracer. Проектирование услуги IP-телефонии с помощью Cisco Packet Tracer. Получение адресов и настройка CIPC на устройствах. Организация телефонного соединения схожих устройств.
лабораторная работа [2,1 M], добавлен 21.02.2022История образования ТОО "ABC Design". Разработка программного и информационного обеспечения компьютерных сетей, автоматизированных систем вычислительных комплексов и сервисов. Работа с CRM системой Task Manager и с панелью управления сайтов JOOMLA.
отчет по практике [727,4 K], добавлен 13.07.2017Разработка АИС мониторинга качественного состава ППС на примере филиала ГОУ ВПО "МГУТУ" г. Вязьме Смоленской области. Общая характеристика филиала и его деятельности. Анализ информационной системы отдела кадров. Интерфейс программного обеспечения АИС.
дипломная работа [5,9 M], добавлен 05.02.2013Правила назначения IP адресов. Создание логической топологии. Использование программного обеспечения Cisco Packet Tracer. Настройка сетевого оборудования с использованием графического интерфейса и интерфейс командной строки. Маркировка компонентов сети.
курсовая работа [2,9 M], добавлен 10.01.2016Разработка операторского интерфейса системы мониторинга и управления объекта, обладающего инерционными свойствами. Создание программного обеспечения для отображения данных системы в среде программирования ST. Моделирование имитаторов объекта управления.
курсовая работа [3,1 M], добавлен 14.02.2016FAR Manager - файловый менеджер с поддержкой самых разнообразных расширений и функций - бесплатная альтернатива программе Total Commander. Способы запуска FAR-manager. Работа с папками. Физическое и логическое понятие папки. Форма хранения информации.
реферат [77,9 K], добавлен 01.05.2010Разработка программного обеспечения, которое позволяет посетителям и работникам организации при помощи портативного устройства или стационарного компьютера подключаться к сети Internet по средствам WEB интерфейса. Основные пользовательские требования.
дипломная работа [1,6 M], добавлен 04.04.2014