У меня есть парк компьютеров Ubuntu Kiosk, которые будут развернуты в дикой природе. Их будут использовать представители общественности.
Я хочу добавить кнопку «нажмите для получения помощи» в приложение, чтобы, если люди застрянут, они могли поговорить с реальным человеком. Аппаратное обеспечение киоска будет иметь динамики и микрофон. Я бы хотел, чтобы процесс был таким:
- Они нажимают кнопку
- Что-то в центре звенит
- Сотрудник службы поддержки «принимает» звонок
- Они разговаривают, и в конце концов один из них вешает трубку.
В качестве альтернативы, если сотрудники службы поддержки активно обнаруживают проблему в киоске, я бы хотел, чтобы они могли начать звонок без какого-либо взаимодействия с пользователем.
Мне также нужен вспомогательный персонал, чтобы иметь возможность идентифицироватькоторыйкиоск звонит.
Несколько проблем возникают из-за желания сделать что-то подобное. Мне нужно программное обеспечение для обработки вызовов, и мне нужен способ, которым мое приложение могло бы начинать (и заканчивать) вызов.
Такие вещи, как TeamSpeak и Mumble, кажутся плохо подходящими для этого, потому что я не хочу, чтобы все киоски общались друг с другом, так же как я не хочу, чтобы голос персонала поддержки транслировался из каждого киоска одновременно! Думаю, мне нужен только локальный Skype, но что-то, что я могу активно контролировать на стороне клиента.
Есть идеи?
решение1
Промышленным стандартом для VOIP является сервер Asterisk. Внутри него вы настраиваете, какие протоколы телефонии поддерживаются, кому разрешено звонить и кому маршрутизировать звонки.
В качестве клиента можно использовать какой-нибудь командный софтфон. Интегрировать его в проект будет легко с помощью скриптов оболочки.
Или вы можете взять библиотеку VOIP, которая поддерживает SIP, H323 или любой другой протокол и интегрировать ее прямо в приложение. Если это веб-приложение - протокол WebRTC сейчас появляется.
Для начала установите какой-нибудь SIP-телефон с GUI из репозитория Ubuntu, настройте Asterisk и несколько аккаунтов на разных машинах. Позвоните на номер одного аккаунта с другого.