ServePort int `yaml:"servePort"`
MaxFileSize int64 `yaml:"maxFileSize"`
Stream struct {
- TurnServerAddr string `yaml:"turnServerAddr"`
+ TurnServerAddr []struct {
+ Addr string `yaml:"addr"`
+ Id string `yaml:"id"`
+ Pw string `yaml:"pw"`
+ } `yaml:"turnServerAddr"`
RtcpPLIInterval int `yaml:"rtcpPLIInterval"`
UploadDest string `yaml:"uploadDest"`
ExtAllowList []string `yaml:"extAllowList"`
pkgstream.EXTERNAL_URL = CONF.ExternalUrl
- pkgstream.TURN_SERVER_ADDR = CONF.Stream.TurnServerAddr
+ for i := 0; i < len(CONF.Stream.TurnServerAddr); i++ {
+
+ tmp := struct {
+ Addr string `json:"addr"`
+ Id string `json:"id"`
+ Pw string `json:"pw"`
+ }{
+ Addr: CONF.Stream.TurnServerAddr[i].Addr,
+ Id: CONF.Stream.TurnServerAddr[i].Id,
+ Pw: CONF.Stream.TurnServerAddr[i].Pw,
+ }
+
+ pkgstream.TURN_SERVER_ADDR = append(pkgstream.TURN_SERVER_ADDR, tmp)
+ }
+
pkgstream.RTCP_PLI_INTERVAL = time.Second * time.Duration(CONF.Stream.RtcpPLIInterval)
pkgstream.UPLOAD_DEST = CONF.Stream.UploadDest
pkgstream.EXTENSION_ALLOWLIST = CONF.Stream.ExtAllowList
var RTCP_PLI_INTERVAL time.Duration
-var TURN_SERVER_ADDR string
+var TURN_SERVER_ADDR []struct {
+ Addr string `json:"addr"`
+ Id string `json:"id"`
+ Pw string `json:"pw"`
+}
func recieveTrack(peerConnection *webrtc.PeerConnection,
peerConnectionMap map[string]*webrtc.TrackLocalStaticRTP,
func GetCCTVTurnServeAddr(c *gin.Context) {
- c.JSON(http.StatusOK, SERVER_RE{Status: "success", Reply: TURN_SERVER_ADDR})
+ data_b, err := json.Marshal(TURN_SERVER_ADDR)
+
+ if err != nil {
+
+ c.JSON(http.StatusOK, SERVER_RE{Status: "failed", Reply: "error"})
+ }
+
+ c.JSON(http.StatusOK, SERVER_RE{Status: "success", Reply: string(data_b)})
}
peerConnection, err := webrtcv4.NewPeerConnection(webrtcv4.Configuration{
ICEServers: []webrtcv4.ICEServer{
{
- URLs: []string{TURN_SERVER_ADDR},
+ URLs: []string{TURN_SERVER_ADDR[0].Addr},
},
},
})
return
}
- TURN_SERVER_ADDRESS = result.data.reply
+ let addrs = JSON.parse(result.data.reply)
+
+ TURN_SERVER_ADDRESS = addrs[0].addr
pc = new RTCPeerConnection({
iceServers: [
{
- urls: TURN_SERVER_ADDRESS
+ urls: TURN_SERVER_ADDRESS,
+ username: addrs[0].id,
+ credential: addrs[0].pw
}
]
})