Возможности:
- WebRTC для аудиообмена
- WebSocket для контроля состояния (от mqtt отказался, как менее универсального)
Конечный автомат состояний устройства:
(Сброс звонившем, как пример перехода обратно)
______________________
| |
____\|/_______ _____|________
| | | |
| Ожидание | | |
| вызова |------>| Вызов |_____
| (НАЧАЛО) | | | |
|______________| |______________| |
/|\ |
|___________ |
| |
______|_______ _____\|/______
| | | |
| Положить | | Поднять |
| трубку |<------| трубку |
| | | |
|______________| |______________|
/|\ |
| |
______|_______ _____\|/______
| | | |
| Закрыть | | Открыть |
| дверь |<------| дверь |
| | | |
|______________| |______________|
GOOS=linux GOARCH=mipsle go build