Skip to content

CyCoreSystems/agi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

37c0775 · Feb 14, 2020

History

36 Commits
Jul 6, 2018
Jul 6, 2018
Feb 14, 2020
Feb 14, 2020
Nov 20, 2016
Jul 7, 2018
Feb 14, 2020
Feb 14, 2020
Feb 14, 2020
Feb 14, 2020
Jul 26, 2018
Nov 20, 2016

Repository files navigation

Asterisk AGI library for Go (golang)

Build Status

This is an Asterisk AGI interface library which may be used for both classical AGI, with a standalone executable, or FastAGI, with a TCP server.

package main

import "github.com/CyCoreSystems/agi"

func main() {
   a := agi.NewStdio()

   a.Answer()
   err := a.Set("MYVAR", "foo")
   if err != nil {
      panic("failed to set variable MYVAR")
   }
   a.Hangup()
}

Standalone AGI executable

Use agi.NewStdio() to get an AGI reference when running a standalone executable.

For a TCP server, register a HandlerFunc to a TCP port:

package main

import "github.com/CyCoreSystems/agi"

func main() {
   agi.Listen(":8080", handler)
}

func handler(a *agi.AGI) {
   defer a.Close()

   a.Answer()
   err := a.Set("MYVAR", "foo")
   if err != nil {
      panic("failed to set variable MYVAR")
   }
   a.Hangup()
}