diff --git a/api_signaling.go b/api_signaling.go index edd1fd2..6cfdec5 100644 --- a/api_signaling.go +++ b/api_signaling.go @@ -793,7 +793,8 @@ func (m *InternalClientMessage) CheckValid() error { } type InternalServerDialoutRequest struct { - RoomId string `json:"roomid"` + RoomId string `json:"roomid"` + Backend string `json:"backend"` Request *BackendRoomDialoutRequest `json:"request"` } diff --git a/backend_server.go b/backend_server.go index 9b01387..3c8b0f0 100644 --- a/backend_server.go +++ b/backend_server.go @@ -698,6 +698,7 @@ func (b *BackendServer) startDialout(roomid string, backend *Backend, request *B Type: "dialout", Dialout: &InternalServerDialoutRequest{ RoomId: roomid, + Backend: backend.Url(), Request: request.Dialout, }, }, diff --git a/backend_server_test.go b/backend_server_test.go index a950b5c..d50f552 100644 --- a/backend_server_test.go +++ b/backend_server_test.go @@ -79,11 +79,13 @@ func CreateBackendServerForTestFromConfig(t *testing.T, config *goconf.ConfigFil if err != nil { t.Fatal(err) } - config.AddOption("backend", "allowed", u.Host) + backendId := "backend1" + config.AddOption("backend", "backends", backendId) + config.AddOption(backendId, "url", server.URL) if u.Scheme == "http" { config.AddOption("backend", "allowhttp", "true") } - config.AddOption("backend", "secret", string(testBackendSecret)) + config.AddOption(backendId, "secret", string(testBackendSecret)) config.AddOption("sessions", "hashkey", "12345678901234567890123456789012") config.AddOption("sessions", "blockkey", "09876543210987654321098765432109") config.AddOption("clients", "internalsecret", string(testInternalSecret)) @@ -1886,6 +1888,9 @@ func TestBackendServer_DialoutAccepted(t *testing.T) { if msg.Internal.Dialout.RoomId != roomId { t.Errorf("expected room id %s, got %+v", roomId, msg) } + if url := server.URL + "/"; msg.Internal.Dialout.Backend != url { + t.Errorf("expected backend %s, got %+v", url, msg) + } response := &ClientMessage{ Id: msg.Id, @@ -1990,6 +1995,9 @@ func TestBackendServer_DialoutRejected(t *testing.T) { if msg.Internal.Dialout.RoomId != roomId { t.Errorf("expected room id %s, got %+v", roomId, msg) } + if url := server.URL + "/"; msg.Internal.Dialout.Backend != url { + t.Errorf("expected backend %s, got %+v", url, msg) + } response := &ClientMessage{ Id: msg.Id,