Docs

Welcome to diago documentation!.

What is Diago for?

If you are familiar with terms Calling, Bridging, Conferencing, IVR, Recording, Transcribing, Voicemail … that is all about.

Developing this kind of services can be challenging when it needs more behavior, monitoring, integrations etc…

Diago with GO offers faster way of developing and testing communication services, but with keeping care on still providing low latency.

More on Why Diago

Core (Roadmap):

WIP = Work in progress (Expect soon to be part of lib)

  • Full dialog control and High Level API
  • alaw,ulaw codecs (opus as third is planned as well)
  • Audio package for streaming: WAV reader/writer, PCM transcoding to alaw/ulaw
  • Playbacks as buffers,files(wav),url
  • Playback URL streaming
  • Playback with control mute/unmute
  • Audio Reader/Writer stream exposed for manual processing like sending to third party
  • DTMF with RTP
  • Handling Reinvites with media updates
  • Bridging as proxy media for 2 parties B2BUA
  • Handling transfers (Refers) (WIP)
  • Conferencing audio
  • DTMF with SIP INFO (Needed more in case webrtc)
  • Writing Unit Test on Server with SIP and Media Recorder (WIP)
  • RTP symetric
  • SRTP for more critical services
  • And plenty more …

Diago extra modules

Some of modules are not yet considered to be part of lib and they are developed/consulted for private projects. To mention few:

  • Recording
  • Webrtc(pion) stack over diago’s media stack
  • Complex modules etc…

If you have interest or need solutions that are currently missing in library please contact me on mail

Why Diago?

Development of VOIP services can be slow or it was full workarrounds. Diago try to offer more modern Stack and put you closer to protocol,network,media but offering High level and low level API calls.

Diago is built with GO language and we are keeping well optimized sip and media stack to have performance and low GC latency. Major win is Go offers fast development speed and memory safety, but also tooling to tweak best performance.

In case you wondering is Go right language, there are already good benchmark results with just sipgo proxysip benchmarks.

NEXT: -> Guides