agi
agi copied to clipboard
Asterisk AGI library for Go (golang)
Asterisk AGI library for Go (golang)
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()
}
