sip.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package action
  2. import (
  3. "crm-api/internal/app/ami"
  4. "crm-api/internal/app/ami/model"
  5. "encoding/json"
  6. )
  7. func PJSIPShowEndpoints() (points []*model.EndpointList, err error) {
  8. var action = map[string]string{
  9. "Action": "PJSIPShowEndpoints",
  10. }
  11. _, events, err := ami.AminInstance.Send(action)
  12. if err != nil {
  13. return nil, err
  14. }
  15. points = make([]*model.EndpointList, 0)
  16. for _, event := range events {
  17. if event.Data["Event"] == "EndpointList" {
  18. data, _ := json.Marshal(event.Data)
  19. point := &model.EndpointList{}
  20. json.Unmarshal(data, point)
  21. points = append(points, point)
  22. }
  23. }
  24. return points, nil
  25. }
  26. func PJSIPShowContacts() (points []*model.ContactList, err error) {
  27. points = make([]*model.ContactList, 0)
  28. var action = map[string]string{
  29. "Action": "PJSIPShowContacts",
  30. }
  31. _, events, err := ami.AminInstance.Send(action)
  32. if err != nil {
  33. return points, err
  34. }
  35. for _, event := range events {
  36. if event.Data["Event"] == "ContactList" {
  37. data, _ := json.Marshal(event.Data)
  38. point := &model.ContactList{}
  39. json.Unmarshal(data, point)
  40. points = append(points, point)
  41. }
  42. }
  43. return points, nil
  44. }
  45. func SIPPeers() (points []*model.PeerEntry, err error) {
  46. var action = map[string]string{
  47. "Action": "SIPPeers",
  48. }
  49. _, events, err := ami.AminInstance.Send(action)
  50. if err != nil {
  51. return nil, err
  52. }
  53. points = make([]*model.PeerEntry, 0)
  54. for _, event := range events {
  55. if event.Data["Event"] == "PeerEntry" {
  56. data, _ := json.Marshal(event.Data)
  57. point := &model.PeerEntry{}
  58. json.Unmarshal(data, point)
  59. points = append(points, point)
  60. }
  61. }
  62. return points, nil
  63. }