Интерфейс системы мониторинга 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

  • История образования ТОО "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.2016

  • Cisco Packet Tracer как сетевая программа моделирования, преимущества и недостатки, режимы и функциональные особенности. Установка программного обеспечения. Расширение сети посредством ввода дополнительного коммутатора. Создание второй локальной сети.

    отчет по практике [4,1 M], добавлен 12.05.2013

  • Разработка программного обеспечения, которое позволяет посетителям и работникам организации при помощи портативного устройства или стационарного компьютера подключаться к сети Internet по средствам WEB интерфейса. Основные пользовательские требования.

    дипломная работа [1,6 M], добавлен 04.04.2014

  • FAR Manager - файловый менеджер с поддержкой самых разнообразных расширений и функций - бесплатная альтернатива программе Total Commander. Способы запуска FAR-manager. Работа с папками. Физическое и логическое понятие папки. Форма хранения информации.

    реферат [77,9 K], добавлен 01.05.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.