📞 Diago — библиотека для создания VoIP-приложений на Go
Diago (сокращение от Dialog + Go) — это open-source библиотека для разработки VoIP-решений на языке Go.
VoIP (Voice over IP) — это технология, которая позволяет передавать голосовые вызовы через интернет или любую другую IP-сеть, вместо использования традиционной телефонной связи.
Она построена поверх оптимизированной библиотеки SIPgo и предназначена для быстрого и удобного создания тестируемых VoIP-приложений.
🔧 Основные возможности:
- SIP-сессии: Поддержка клиентских и серверных SIP-сессий, включая регистрацию и аутентификацию.
- Обработка медиа: Воспроизведение и запись аудио, поддержка DTMF, управление RTP/RTCP.
- Поддержка кодеков: Включая Opus, что делает библиотеку совместимой с современными стандартами аудио.
- Примеры использования: В репозитории представлены примеры, такие как эхо-тест и регистрация SIP-агента.
🚀 Быстрый старт:
Пример:
ua, _ := sipgo.NewUA()
dg := diago.NewDiago(ua)
dg.Serve(ctx, func(inDialog *diago.DialogServerSession) {
inDialog.Trying()
inDialog.Answer()
playfile, err := os.Open("demo-echotest.wav")
if err != nil {
fmt.Println("Failed to open file", err)
return
}
defer playfile.Close()
pb, _ := inDialog.PlaybackCreate()
if err := pb.Play(playfile, "audio/wav"); err != nil {
fmt.Println("Playing failed", err)
}
})
🧪 Дополнительные инструменты:
Gophone: CLI SIP-телефон, построенный на Diago, для тестирования и отладки VoIP-сервисов.
📚 Подробнее:
Репозиторий: github.com/emiago/diago
>>Click here to continue<<
