Russian Qt Forum
Ноябрь 23, 2024, 07:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: VoIP  (Прочитано 7656 раз)
Nimbus
Гость
« : Октябрь 05, 2010, 13:56 »

Сопсна сабж. Имееются ли в библиотеке Qt 4.7 классы для работы с IP-телефонией? На сервере крутится Asterisk, интерфейс пока только через Free PBX флешовый кривой и с глюками. Необходимо сделать десктопное приложение - аналог флешового интерфейса. Что для этого требуется. Погуглив, нашёл это. Только вот где скачать данный сабж? Как собрать библиотеки под венду на MinGW. Сайт http://qtextended.org/ очень "информативный", конечно же. Или это уже не требуется в 4.7 и есть аналог?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #1 : Октябрь 05, 2010, 14:45 »

Почитав вот это http://www.voip-info.org/wiki/view/Asterisk+manager+API я писал свои классы для подключения, звонков и т.д. к сожалению поделится не могу проект коммерческий, но у меня отняло что то около дня на реализацию основного функционала, общаешься по TCP просто шлешь нужные заголовки и получаешь ответы я реализацию писал на boost::asio. Это на случай если на Qt ничего не найдешь Улыбающийся
Записан
Nimbus
Гость
« Ответ #2 : Октябрь 05, 2010, 17:56 »

Но ведь в ранних версиях Qt это было же реализовано. И классы эти в том мануале. Не могли же они просто так взять и убрать эту фичу?
Записан
ритт
Гость
« Ответ #3 : Октябрь 05, 2010, 20:07 »

Qt Extended != Qt
ищите исходники и пользуйте )
Записан
Nimbus
Гость
« Ответ #4 : Октябрь 06, 2010, 04:13 »

Ой, пардон, неправильно выразился. Qt Extended я и ищу, грубо говоря. Где его можно скачать?

http://qt.nokia.com/about/news/qt-software-discontinues-qt-extended/
Мды. Теперь в нынешнем 4.7 где это всё находится?
« Последнее редактирование: Октябрь 06, 2010, 06:21 от JC » Записан
crackedmind
Гость
« Ответ #5 : Октябрь 11, 2010, 08:06 »

А помойму нигде щас не находится. Возможно в будущем появится в пакете Qt Mobility.
Записан
crossly
Гость
« Ответ #6 : Октябрь 18, 2010, 12:57 »

Ой, пардон, неправильно выразился. Qt Extended я и ищу, грубо говоря. Где его можно скачать?

http://qt.nokia.com/about/news/qt-software-discontinues-qt-extended/
Мды. Теперь в нынешнем 4.7 где это всё находится?
http://qtmoko.org/
Записан
Nimbus
Гость
« Ответ #7 : Октябрь 26, 2010, 06:51 »

Эмммм... Может, кто-нибудь уже делал парсер логов астериска? Просто их валится огромное количество даже от внутреннего звонка. Какие события надо парсить? Или лучше спросить - существуют ли открытые исходники парсеров логов астериска?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #8 : Октябрь 26, 2010, 08:32 »

Я делал так, создавал два подключения, одно из них с "Events: off" и оно просто передает команды, а второе для чтения монитора(стало быть с Events: on), помимо этого создал два потока, один пишет данные в буффер из монитора, второй читает данные из буфера и удаляет, и реализовал два класса (странно как то всего по два  Непонимающий) один класс читает из самого буфера данные блоками прочитал и удалил блок, блок данных это с начала текста и до "\n\r" у меня это один блок, потом передаю его второму классу который парсит сам блок и может возвращать из него значения, по имени. Исходниками не поделюсь ибо проект коммерческий, но так вроде все хорошо расписал, я реализовал за пол дня, думаю тоже справишься Подмигивающий
Записан
Nimbus
Гость
« Ответ #9 : Октябрь 26, 2010, 09:56 »

Я делал так, создавал два подключения, одно из них с "Events: off" и оно просто передает команды, а второе для чтения монитора(стало быть с Events: on), помимо этого создал два потока, один пишет данные в буффер из монитора, второй читает данные из буфера и удаляет, и реализовал два класса (странно как то всего по два  Непонимающий) один класс читает из самого буфера данные блоками прочитал и удалил блок, блок данных это с начала текста и до "\n\r" у меня это один блок, потом передаю его второму классу который парсит сам блок и может возвращать из него значения, по имени. Исходниками не поделюсь ибо проект коммерческий, но так вроде все хорошо расписал, я реализовал за пол дня, думаю тоже справишься Подмигивающий
Спасибо за идею про два подключения - тоже надо бы так сделать. А другое всё как и у вас. Создал два класса, унаследованных от QThread - один читает из буфера данные и сигналит второму этими данными, который закидывает их в очередь обработки, затем в цикле обрабатывает, не забывая вызывать при каждом цикле qApp->processEvents(); и при каждом парсинге одного события (или респонза) генерит разные свои сигналы. Пока что, событий обрабатывается только три - Newchannel, NewCallerid и Dial. На них на каждое свой сигнал. И эти сигналы уже коннектятся основным потоком куда-либо.
У меня вопрос в другом - какие события можно пропускать? Мне главное просто отрисовывать состояние всех телефонов чисто визуально в GUI. Вытаскиваю список всех телефонов из мускульной базы. Что дальше делать? Описывать полностью все сущности в отдельных классах, чтобы что-то делать с событиями типа VarSet и Newexten, которых просто несметное множество валится? Или можно как-то схитрить и отлавливать только некоторые события, держа в памяти временные списки некоторых небольших сущностей? Прошу годных советов по этому поводу.
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #10 : Октябрь 26, 2010, 11:22 »

Мне главное просто отрисовывать состояние всех телефонов чисто визуально в GUI.

Если честно то как отловить состояние телефона не знаю, у меня была немного другая задача.

Или можно как-то схитрить и отлавливать только некоторые события, держа в памяти временные списки некоторых небольших сущностей?

У меня еще был класс фильтра, в который я заносил имена событий которые нужно отлавливать, и стало быть проверялось если событие есть в фильтре читаем его настройки если нет просто удаляем из очереди.

А что имеется ввиду под состоянием телефона? Просто подключен ли он к серверу, или нужно ловить куда он звонит и что вообще делает?
Записан
Nimbus
Гость
« Ответ #11 : Октябрь 26, 2010, 12:39 »


У меня еще был класс фильтра, в который я заносил имена событий которые нужно отлавливать, и стало быть проверялось если событие есть в фильтре читаем его настройки если нет просто удаляем из очереди.

А что имеется ввиду под состоянием телефона? Просто подключен ли он к серверу, или нужно ловить куда он звонит и что вообще делает?
Я описал нужные события в XML-нике. При загрузке закинул их в QMap с ключём именем события.

Ну да, именно. Как в Free PBX есть Flash Operator Panel. Как в ней всё.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 22.