Python Gstreamer Webrtcbin does not rtsp video to javascript peer

Recently, I am working on streaming RTSP cameras to Javascript Webrtc peer to show the stream on the web.
The Project Will be run on local network.
I’ve tried to setup a connection similar to this gst-rtsp-webrtc github whic is based on centricular/gstwebrtc-demos

I am using django channels as signaling server and this is the scenario i do for this process:

  1. the javascript peer sends “new-peer” request to python gstreamer throgh websockets
  2. the gstreamer starts creating new offer and gathers ice candidates, ice candidates are saved in a list to be sent at next step
  3. the javascript peer receives the offer, then set remote description, creates the answer and sends it back, it also starts gathering ice candidates and sends it to gstreamer peer through websockets
  4. gstreamer receives the answer and set remote description
  5. the ice candidates are received and set, then the listed ice candidates are sent to javascript peer
  6. javascript peer set these ice candidates to peer connection

Both the Javascript and Gstreamer goes into Connected state(I am console logging and printing the states)

also the Gstreamer Pipeline starts Playing(this is the log from printing bus messages):

Pipeline state changed from null to ready.
MessageType Stream Status:  (type=<enum GST_STREAM_STATUS_TYPE_CREATE of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f275ac9a280 (GstQueue at 0x11e4640)>)
-------------------------------------------------------
MessageType Stream Status:  (type=<enum GST_STREAM_STATUS_TYPE_CREATE of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f275ac9ac00 (GstQueue at 0x11e4040)>)
-------------------------------------------------------
MessageType Progress:  (type=<enum GST_PROGRESS_TYPE_START of type Gst.ProgressType>, code='open', text='Opening Stream')
-------------------------------------------------------
Pipeline state changed from ready to paused.
-------------------------------------------------------
<flags GST_MESSAGE_NEW_CLOCK of type Gst.MessageType>
-------------------------------------------------------
MessageType Stream Status:  (type=<enum GST_STREAM_STATUS_TYPE_ENTER of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f275ac9d280 (GstQueue at 0x11e4640)>)
-------------------------------------------------------
MessageType Stream Status:  (type=<enum GST_STREAM_STATUS_TYPE_ENTER of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f275ac9d300 (GstQueue at 0x11e4040)>)
-------------------------------------------------------
MessageType Progress:  (type=<enum GST_PROGRESS_TYPE_START of type Gst.ProgressType>, code='request', text='Sending PLAY request')
Pipeline state changed from paused to playing.
-------------------------------------------------------
MessageType Progress:  (type=<enum GST_PROGRESS_TYPE_CONTINUE of type Gst.ProgressType>, code='connect', text='Connecting to rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1')
-------------------------------------------------------
MessageType Progress:  (type=<enum GST_PROGRESS_TYPE_CONTINUE of type Gst.ProgressType>, code='open', text='Retrieving server options')
-------------------------------------------------------
MessageType Progress:  (type=<enum GST_PROGRESS_TYPE_CONTINUE of type Gst.ProgressType>, code='open', text='Retrieving media info')
-------------------------------------------------------
MessageType Progress:  (type=<enum GST_PROGRESS_TYPE_CONTINUE of type Gst.ProgressType>, code='request', text='SETUP stream 0')
-------------------------------------------------------

The problem is that the javascript is just getting one track:


function addTrackToVideo(peer, cameraVideo){
    // var cameraStream = new MediaStream();
    // console.log('setting up the track listener');
    // cameraVideo.srcObject = cameraStream;
    peer.addEventListener('track', (event) => {
        console.log("Received Track...");

        // cameraStream.addTrack(event.track, cameraStream);
        if (cameraVideo.srcObject !== event.streams[0]) {
            console.log('Incoming stream', event.streams[0]);
            cameraVideo.srcObject = event.streams[0];
        }else {
            console.log('srcObjrct is the same');
        }
    })
}

this is the gstreamer pipe line:

PIPELINE_DESC = '''
webrtcbin name=sendrecv rtspsrc location={rtsp_src} name=demuxer demuxer. ! queue ! parsebin name=parsebin ! rtph264pay config-interval=-1 timestamp-offset=0 ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=98 ! queue ! sendrecv.
'''

i can also display the rstp stream using both the VLC and another gstreamer pipeline

how to check if the webrtcbin is not sending or javascript is not receiving?
what are your guesses about this problem?