     }
     
     func sendConnectMessage(error: Error?) {
-        Logger.debug(type: .peerChannel, message: "try creating offer SDP")
-        NativePeerChannelFactory.default
-            .createClientOfferSDP(configuration: webRTCConfiguration,
-                                  constraints: webRTCConfiguration.constraints)
+        switch configuration.role {
+        case .publisher, .group:
+            Logger.debug(type: .peerChannel, message: "try creating offer SDP")
+            NativePeerChannelFactory.default
+                    .createClientOfferSDP(configuration: webRTCConfiguration,
+                    constraints: webRTCConfiguration.constraints)
             { sdp, sdpError in
                 if let error = sdpError {
                     Logger.debug(type: .peerChannel,

                                 message: "did create offer SDP")
                }
                self.sendConnectMessage(with: sdp, error: error)
        }
    }
    

        }
        
        lock.lock()
        var initsPublisher = false
        switch configuration.role {
        case .publisher, .publisher:
            initsPublisher = true
        default:
            break
        }
        createAnswer(initsPublisher: initsPublisher,
                offer: offer.sdp,
                constraints: webRTCConfiguration.nativeConstraints)
        { sdp, error in
