playback.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package action
  2. import (
  3. "errors"
  4. "fmt"
  5. alstatus "pbx-api-gin/internal/app/stc/sendstatus"
  6. "pbx-api-gin/pkg/lfshook"
  7. "strings"
  8. )
  9. func PlaybackPacu(filename string, count int, delay int, PaType string) (err error) {
  10. Para := fmt.Sprintf("count=%d,filename=%s,delay=%d,priority=%s", count, strings.Replace(strings.Replace(filename, ".mp3", "", -1), ".wav", "", -1), delay, PaType)
  11. Chan := ""
  12. switch PaType {
  13. case "DSN": //开关门提示
  14. Chan = "Local/0503" //spa-rule
  15. case "STNA": //自动报站
  16. Chan = "Local/0505" //spc-rule
  17. case "STNS": //手动报站
  18. Chan = "Local/0504" //dc-rule
  19. case "SVM": //服务消息
  20. Chan = "Local/0502" //emg-rule
  21. }
  22. action := map[string]string{
  23. "Action": "Originate",
  24. "Channel": Chan,
  25. "Exten": "000",
  26. "CallerID": PaType,
  27. "Context": "broadcast-playfile",
  28. "Priority": "1",
  29. "Variable": Para,
  30. }
  31. lfshook.NewLogger().Logger.Infof("PlaybackPacu action : %+v", action)
  32. res, _, err := AminInstance.Send(action)
  33. if err != nil {
  34. return err
  35. }
  36. if res["Response"] != "Success" {
  37. alstatus.PaStatus("", PaType, "fail")
  38. return errors.New(res["Message"])
  39. }
  40. return nil
  41. }