Albeit it uses portaudio (python-soundevice) for the audio IO which is not written in python, and opus which isn't written in Python either. But all the glue and udp communication is pure python.
And P.S. - pulseaudio uses more CPU than my thingy.
Talking about production, I suspect the guys at OnBeep are making use of python a lot, just looking at their GitHub repo
(The python opus bindings are created by them)
I'm just tired of people underestimating the speed of python. Its often a matter of not using it correctly...
But other implementations might, such as PyPy. Cython almost certainly could, but it's a super-set of the Python language so maybe it shouldn't count.
I am thinking of
Second, the author says that he has implemented a SIP client in JS as well. But my experience with open-source JS SIP clients (WebRTC) has been that their performance is significantly worse than the free version of xlite. (Both SipML and JSSIP have more frequent packet drops on the same systems than xlite).
Are there better JS implementations that are at least as robust as xlite?
What kind of packet drops are you talking about? if this is about media/audio that's entirely on the webrtc browser engine which is C++. SIP signaling on the browser goes over websockets (https://tools.ietf.org/html/rfc7118), so I'd not expect any kind of 'packet drops' on signaling either.
In short, I doubt your problems were due to the SIP stack in JS.
The RTP streams, that you may want to handle in a lower level language since you're talking soft real time being a must.
The bulk of the protocol doesn't require XML at all actually, it's the SIP SIMPLE and presence extensions that do. But for the core SIP spec and your run of the mill VoIP call setup, no XML is needed.