`doError()` is an older function which I will replace with `errorMsg()` everywhere in the code. My fault.

The `doError()`/`errorMsg()` calls are for debugging purposes (but are marked as errors to distinguish them from inoffensive info messages). They should never happen in reality, but are useful for a developer to see where something is wrong (see them as trace points, just like `debugMsg()` and `debugOjb()` calls). See my comment above.

The user of a WebRTC conversation is already aware of errors by providing a `onError()` callback, which receives an error code so that a custom message may be formatted.