agi-handler.go 653 B

123456789101112131415161718192021222324252627282930313233
  1. package agiServer
  2. import (
  3. "fmt"
  4. "os"
  5. "pbx-api-gin/internal/app/ami/action"
  6. "pbx-api-gin/pkg/lfshook"
  7. "github.com/CyCoreSystems/agi"
  8. )
  9. func StartAGI(serviceAddress, serviceAGIPort string) {
  10. server := fmt.Sprintf("%s:%s", serviceAddress, serviceAGIPort)
  11. err := agi.Listen(server, agiHandler)
  12. if err != nil {
  13. lfshook.NewLogger().Errorf("agi server listen error %+v", err)
  14. os.Exit(1)
  15. }
  16. }
  17. func agiHandler(a *agi.AGI) {
  18. defer a.Close()
  19. taskName, ok := a.Variables["agi_arg_1"]
  20. if !ok {
  21. lfshook.NewLogger().Errorln("Not found Action agi_arg_1", taskName)
  22. return
  23. }
  24. //time.Sleep(10 * time.Second)
  25. action.WaitTaskCreate(taskName)
  26. }