playback.go 699 B

1234567891011121314151617181920212223242526272829303132
  1. package action
  2. import (
  3. "errors"
  4. "fmt"
  5. "pbx-api-gin/internal/app/ami"
  6. "strings"
  7. )
  8. func Playback(filename string, count int, exten string, timelen int, delay int) (err error) {
  9. Para := fmt.Sprintf("count=%d,timelen=%d,filename=%s,delay=%d", count, timelen, strings.Replace(filename, ".wav", "", -1), delay)
  10. Chan := fmt.Sprintf("Local/%s", exten)
  11. action := map[string]string{
  12. "Action": "Originate",
  13. "Channel": Chan,
  14. "Exten": exten,
  15. "Context": "broadcast-playfile",
  16. "Priority": "1",
  17. "Variable": Para,
  18. }
  19. res, _, err := ami.AminInstance.Send(action)
  20. if err != nil {
  21. return err
  22. }
  23. if res["Response"] != "Success" {
  24. return errors.New(res["Message"])
  25. }
  26. return nil
  27. }