Let's say your create an RtpListener without and RtpReceivers attached. Then an RTP packet arrives with muxid header extension assigned to header extension id of 3.
How is the listener supposed to fire an onunhandledrtp event and give the application developer the muxid value if the listener is unaware that header extension 3 means muxid?
Further, if two RtpReceivers get attached to the same RtpListener but one RtpReceiver uses header extension 3 for muxid and header extension 4 for custom-ext but second RtpReciever uses header extension 4 for muxid and header extension 3 for custom-ext and an RTP packet arrives. How does the RtpListener disambiguate between header extension 3 or 4 meaning muxid?
Finally, if two RtpReceiver are created. Once is created with muxid header extension set to 3, attached to the listener, then stopped. The second is created with muxid header extension set to 4, attached to the listener, then stopped. An new SSRC with RTP packet arrives with header extension 3 or 4. Do both header extension value 3, or 4, imply this value must be a muxid?
See response from Bernard Aboba here:
At the November 20 ORTC CG meeting, the question was raised about alternative resolutions, such as:
rtpunhandled event prior to calling receive()
If an RtpListener is constructed prior to calling receiver.receive(parameters), RTP header extensions cannot be interpreted. This prevents the rtpunhandled event from providing the MID or RID.
Fix for Issue #243
Proposed fix is to leave the header extension attributes unset if they can't be interpreted.