Advertisement
idcooldi

Untitled

May 25th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5.  
  6. "github.com/ivahaev/amigo"
  7. )
  8.  
  9. func Hanguphandler(m map[string]string) {
  10. fmt.Printf("Hangup: %v\n\n", m)
  11. }
  12.  
  13. // Creating hanlder functions
  14. //func DeviceStateChangeHandler(m map[string]string) {
  15. //fmt.Printf("DeviceStateChange event received: %v\n\n", m)
  16. //}
  17.  
  18.  
  19. func DefaultHandler(m map[string]string) {
  20. fmt.Printf("Event received: %v\n\n\n", m)
  21. }
  22.  
  23. func main() {
  24. fmt.Println("Init Amigo")
  25.  
  26. settings := &amigo.Settings{Username: "admin", Password: "admin", Host: "127.0.0.1"}
  27. a := amigo.New(settings)
  28.  
  29. a.Connect()
  30.  
  31. // Listen for connection events
  32. a.On("connect", func(message string) {
  33. fmt.Println("Connected", message)
  34. })
  35. a.On("error", func(message string) {
  36. fmt.Println("Connection error:", message)
  37. })
  38.  
  39.  
  40. //Hangup
  41. a.RegisterHandler("Hangup", Hanguphandler)
  42.  
  43. // Registering handler function for event "DeviceStateChange"
  44. //a.RegisterHandler("DeviceStateChange", DeviceStateChangeHandler)
  45.  
  46. // Registering default handler function for all events.
  47. a.RegisterDefaultHandler(DefaultHandler)
  48.  
  49.  
  50.  
  51. // Optionally create channel to receiving all events
  52. // and set created channel to receive all events
  53. c := make(chan map[string]string, 100)
  54. a.SetEventChannel(c)
  55.  
  56. // Check if connected with Asterisk, will send Action "QueueSummary"
  57. if a.Connected() {
  58. result, err := a.Action(map[string]string{"Action": "QueueSummary", "ActionID": "Init"})
  59. // If not error, processing result. Response on Action will follow in defined events.
  60. // You need to catch them in event channel, DefaultHandler or specified HandlerFunction
  61. fmt.Println(result, err)
  62. }
  63.  
  64. ch := make(chan bool)
  65. <-ch
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement