1. Ensure You Are Running The Latest Asterisk
WebRTC fixes are continually put into Asterisk as it continues to evolve. If you are using an old version of Asterisk it is worth your time to try the latest version to ensure the problem you are experiencing has not already been fixed. This will also be required if you end up needing to file an Asterisk issue.
2. HTTPS Certificates
3. Check Your Websocket Connection
4. Check Your ICE Negotiation
ICE is the technology used by WebRTC to find a viable path for communication between two things. Without this succeeding you will encounter a session where media doesn’t work. Looking at the ICE negotiation can be done by using Wireshark to capture the traffic or by increasing the Asterisk debug level (core set debug 5 and setting debug to go to somewhere in logger.conf). In the case of Asterisk it will flat-out state that ICE negotiation failed. If this occurs you’ll want to check the addresses being attempted to see if you think it should succeed. You can also use a TURN server to provide a relay to give a better chance that media will flow.
5. Check Your DTLS Negotiation
DTLS provides the security for WebRTC. Once ICE is negotiated then DTLS negotiation occurs where certificates are exchanged and the result is used to encrypt the media. On the Asterisk console you will see a message that the negotiation failed. You can also use Wireshark to capture the traffic and see the DTLS negotiation occur. If this fails then your DTLS configuration in Asterisk may be incorrect.
7. Check Chrome webrtc-internals
8. Filing An Issue
If you still aren’t able to narrow things down and believe there is a bug in Asterisk itself you can file an issue on the Asterisk issue tracker. In doing so, though, you will be required to submit all the available information so we can figure out what is going on. The main information needed is as follows:
The Asterisk Console Output With Debug Enabled
A Wireshark Capture Of The Call
A Description Of The Scenario
A Description Of What Precisely Is Not Working In Your Scenario
The Version Of The Browsers Involved
The Version Of Asterisk In Use
Note that depending on your issue additional information may be requested.
I hope this helps to provide some guidance in figuring out what is going on when Asterisk and WebRTC goes wrong.