Hi,

experimenting with the Firefox<-->Asterisk interoperability, I noticed that 
Firefox replies with 401 error messages to connectivity checks generated by 
Asterisk when a call has been negotiated. Apparently this is caused by the fact 
that, when this happens (Asterisk has already accepted the call and so 
everything is fine on its side), Firefox is still only aware of his own ICE 
credentials and, until it gets the peer ones from the negotiation and handles 
them in the code, it obviously fails to verify the checks and refuses them.

Anyhow, this is causing a problem in Asterisk, which makes use of PJNATH to 
implement ICE. The problem basically is that, as soon as PJNATH gets a 401 
error back, it gives up on that candidate pair, which eventually leads to a 
failure in the call. I guess this also applies to other "legacy" applications 
as well, basing on that or other available ICE libraries. This doesn't happen 
in Chrome, which simply ignores connectivity checks until it has all the 
picture, and only then starts responding.

I managed to get this to work by "hacking" PJNATH in order to have it be more 
tolerant, and basically retry until it eventually gets a successful response 
back. Anyway, I'm not sure who's at fault here. What is the right behaviour 
with connectivity checks? Could you consider a similar behaviour as the one 
Chrome follows, or is the current behaviour there for a reason?

Thanks,
Lorenzo
_______________________________________________
dev-media mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-media

Reply via email to