         }
         
         lock.lock()
-        createAnswer(initsPublisher: true,
+        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

    }
    
    func sendConnectMessage(error: Error?) {
        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)
            }
        default:
            self.sendConnectMessage(with: nil, error: error)
        }
    }
    
