All greetings, there is a problem with the use of sipjs, if you call the phone for a long time with the help of a sipjs, then the voice does not appear right away, but with a delay of 10 seconds, stun to turn off the ice switch on.Used Asterisk 11,13,14
Trickle ICE, likely.
How can I use a media proxy?
I’ve faced the same problem trying to connect SIP.js and asterisk.
All my agents and asterisk are located on the same network so I disabled stun servers at all by specifying
stunServers:  in SIPjs UA config. I’ve dug into SDP generated by browser and looks like there are no external IPS at all.
I performed outcoming call from browser to my mobile and if I pick up the phone quite fast I can hear voice immediately. But if I wait some time (about 10-20 seconds) before I pick up the phone voice appears with delay (about 10-15 seconds).
I sniff incoming traffic on local machine and figure out that asterisk starts sending voice traffic immediately after phone pick up, but browser do not play that sound. After some time (10-20 secs) asterisk sends DTLS ‘Client Hello’ message, browser responds with ‘Server Hello’ and sound starts playing.
I can reproduce this problem in FF for Mac, Chrome for Windows, FF for windows.
If I using Chrome for mac, voice appears immediately. Looks like Chrome for mac trying to send voice packets and initiate DTLS handshake right after INVITE.