sip.go 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package isapi
  2. import (
  3. "encoding/xml"
  4. )
  5. type SIPServerList struct {
  6. SIPServer []struct {
  7. ID string `xml:"id" yaml:"ID"`
  8. LocalPort string `xml:"localPort" yaml:"localPort"`
  9. StreamID string `xml:"streamID" yaml:"streamID"`
  10. Standard struct {
  11. RegisterStatus string `xml:"registerStatus" yaml:"registerStatus"`
  12. Enabled string `xml:"enabled" yaml:"enabled"`
  13. Registrar string `xml:"registrar" yaml:"registrar"`
  14. RegistrarPort string `xml:"registrarPort" yaml:"registrarPort"`
  15. Proxy string `xml:"proxy" yaml:"proxy"`
  16. ProxyPort string `xml:"proxyPort" yaml:"proxyPort"`
  17. DisplayName string `xml:"displayName" yaml:"displayName"`
  18. UserName string `xml:"userName" yaml:"userName"`
  19. AuthID string `xml:"authID" yaml:"authID"`
  20. Password string `xml:"password" yaml:"password"`
  21. Expires string `xml:"expires" yaml:"expires"`
  22. } `xml:"Standard" yaml:"Standard"`
  23. GB28181 struct {
  24. RegisterStatus string `xml:"registerStatus" yaml:"registerStatus"`
  25. Enabled string `xml:"enabled" yaml:"enabled"`
  26. Registrar string `xml:"registrar" yaml:"registrar"`
  27. RegistrarPort string `xml:"registrarPort" yaml:"registrarPort"`
  28. ServerId string `xml:"serverId" yaml:"serverId"`
  29. ServerDomain string `xml:"serverDomain" yaml:"serverDomain"`
  30. UserName string `xml:"userName" yaml:"userName"`
  31. AuthID string `xml:"authID" yaml:"authID"`
  32. Expires string `xml:"expires" yaml:"expires"`
  33. Password string `xml:"password" yaml:"password"`
  34. LiveTime string `xml:"liveTime" yaml:"liveTime"`
  35. HeartbeatTime string `xml:"heartbeatTime" yaml:"heartbeatTime"`
  36. HeartbeatCount string `xml:"heartbeatCount" yaml:"heartbeatCount"`
  37. TransportType string `xml:"transportType" yaml:"transportType"`
  38. RegisterInterval string `xml:"registerInterval" yaml:"registerInterval"`
  39. ProtocolVersion string `xml:"protocolVersion" yaml:"protocolVersion"`
  40. PlatformNo string `xml:"platformNo" yaml:"platformNo"`
  41. LocalPort string `xml:"localPort" yaml:"localPort"`
  42. UnidirectionEnabled string `xml:"unidirectionEnabled" yaml:"unidirectionEnabled"`
  43. VoiceBroadcastEnabled string `xml:"voiceBroadcastEnabled" yaml:"voiceBroadcastEnabled"`
  44. } `xml:"GB28181" yaml:"GB28181"`
  45. } `xml:"SIPServer"`
  46. }
  47. func (c *Client) PutSip(data []byte) (resp ResponseStatus, err error) {
  48. bytes, err := c.CommonPut(data, "/ISAPI/System/Network/SIP")
  49. if err != nil {
  50. return
  51. }
  52. err = xml.Unmarshal(bytes, &resp)
  53. return
  54. }
  55. func (c *Client) PutSipInfo(data []byte) (resp ResponseStatus, err error) {
  56. bytes, err := c.CommonPut(data, "/ISAPI/System/Network/SIP/1/SIPInfo")
  57. if err != nil {
  58. return
  59. }
  60. err = xml.Unmarshal(bytes, &resp)
  61. return
  62. }
  63. type SIPInfo struct {
  64. VideoID string `xml:"videoID"`
  65. AlarmInList []string `xml:"AlarmInList"`
  66. VideoInputList []struct {
  67. VideoInput struct {
  68. ID string `xml:"id"`
  69. VideoInputID string `xml:"videoInputID"`
  70. } `xml:"VideoInput"`
  71. } `xml:"VideoInputList"`
  72. AudioOutputList []struct {
  73. AudioOutput struct {
  74. ID string `xml:"id"`
  75. AudioOutputID string `xml:"audioOutputID"`
  76. } `xml:"AudioOutput"`
  77. } `xml:"AudioOutputList"`
  78. }