See also Farstream/ApiProblems

I've also listed the missing requirements for Voice over LTE (VoLTE) and rtcweb.

Voice over LTE (VoLTE) has extra requirements. WebRTc

RTP plugin

  • Add an "extra-send-codecs" property to ?FsSession and add it to the "farsight-send-codec-changed" message
  • RTP/RTCP multiplexing/demultiplexing (to send both on the same UDP port)
  • Comfort noise (write Free software VAD and CN generator)
  • Add REDundant audio data (RFC 2198)
  • Support multiple stun servers in the rawudp plugin and possibly also libnice
  • Document
    • That you have to be playing for most stuff to happen (like getting stun replies)
  • Re-write codec discovery
    • Make it possible to use the missing-element message to ask the user to install extra codecs, so keep list of pay/depay without enc/dec
    • Make it possible to specify input/output caps so we can send pre-encoded data, etc
    • Make the codec cleaner and hopefully remove the h263/amr hacks
  • SRTP support is in gst-plugins-bad using libsrtp. The Farstream API and integration needs to be done

Tests to write

  • Two sessions in the same conference
  • Packets with invalid payload types
  • Setting invalid payload types as local or remote codecs (in the 35-96 range).
  • Errors:
    • New stream with invalid participant (invalid... from another type or from
      • another conf?)
  • Change codec ids while its running...
  • New codec with the same PT while its running
  • H263-1998 (use h263 or h263+ encoder depending on the properties)
  • 3 way negotiation
    • success
    • failed
  • Test codec cache:
    • empty
    • save
    • load
  • Test non-rtcp case (drop rtcp, filter candidate, provide wrong candidate?)
    • Test lack of rtcp with more than one participant (it should fail)
  • Change the udp port of a stream while it's running (rawudp transmitter, multicast transmitter?)
  • Generate DTMF
    • Sound (write dtmf detector?)
  • Receive DTMF
    • Events (without dtmf detector? only check if ?GstMessages are received maybe?)
  • Changing a running pipeline
    • Add a session to a running pipeline
    • Destroy a session in a running pipeline
    • Re-add a destroying session in a running pipline
  • Write automated tests for the live adder
  • Set to playing more than once?

Other plugins

Port msnav, yahoowebcam to the new api

Generic GStreamer RTP enhancements

  • Make reverse propagation of SDP optional parameters to the encoders
    • Speex
    • H263
    • H264