Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "github.com/ivahaev/amigo"
- )
- func Hanguphandler(m map[string]string) {
- fmt.Printf("Hangup: %v\n\n", m)
- }
- // Creating hanlder functions
- //func DeviceStateChangeHandler(m map[string]string) {
- //fmt.Printf("DeviceStateChange event received: %v\n\n", m)
- //}
- func DefaultHandler(m map[string]string) {
- fmt.Printf("Event received: %v\n\n\n", m)
- }
- func main() {
- fmt.Println("Init Amigo")
- settings := &amigo.Settings{Username: "admin", Password: "admin", Host: "127.0.0.1"}
- a := amigo.New(settings)
- a.Connect()
- // Listen for connection events
- a.On("connect", func(message string) {
- fmt.Println("Connected", message)
- })
- a.On("error", func(message string) {
- fmt.Println("Connection error:", message)
- })
- //Hangup
- a.RegisterHandler("Hangup", Hanguphandler)
- // Registering handler function for event "DeviceStateChange"
- //a.RegisterHandler("DeviceStateChange", DeviceStateChangeHandler)
- // Registering default handler function for all events.
- a.RegisterDefaultHandler(DefaultHandler)
- // Optionally create channel to receiving all events
- // and set created channel to receive all events
- c := make(chan map[string]string, 100)
- a.SetEventChannel(c)
- // Check if connected with Asterisk, will send Action "QueueSummary"
- if a.Connected() {
- result, err := a.Action(map[string]string{"Action": "QueueSummary", "ActionID": "Init"})
- // If not error, processing result. Response on Action will follow in defined events.
- // You need to catch them in event channel, DefaultHandler or specified HandlerFunction
- fmt.Println(result, err)
- }
- ch := make(chan bool)
- <-ch
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement