As I see it, your simplest option is to open a peer connection with a data channel initially. If two peers want to use audio/video mediastreams at a later point, shut down the peer connection and open another peer connection that supports data channels and mediastreams.
If you were restricting yourself to Chrome, you could add media streams to a peer connection after it had already been established, removing the need to shutdown an earlier peer connection that only supported data channels. But, last I heard, that doesn't work with Firefox.
Easyrtc only supports a single peer connection between two peers. At the time it was written, getting two peers to communicate was a feat, nobody was thinking about multiple connections between two peers.