Ticket #2008 (closed defect: fixed)
iOS specific issue: Error 488 when answering call after app goes background
|Reported by:||nanang||Owned by:||bennylp|
|Backport to 1.x milestone:||Backported:||no|
- Call from device A to device B.
- When device B starts ringing, wait until display goes off so the running application is switched to background after a while.
- Then unlock device B and try answering the call. Error 488 is returned on device B, call fails.
17:01:43.099 utsx0x128ac32e .....STUN client transaction created 17:01:43.099 utsx0x128ac32e .....STUN sending message (transmit count=1) 17:01:43.099 udprel0x12804f ......socket send(): Destination address required 17:01:43.099 utsx0x128ac32e ......STUN error sending message: Destination address required 17:01:43.099 stun_session.c .....tdata 0x128ac30a8 destroy request, force=0, tsx=0x128ac32ec 17:01:43.099 utsx0x128ac32e .....STUN transaction 0x128ac32ec schedule destroy 17:01:43.099 udprel0x12804f .....Error sending STUN request: Destination address required 17:01:43.099 icetp00 ....Destroying ICE session 0x1281b1828 17:01:43.099 stuse0x1281320 ....STUN session 0x128132428 destroy request, ref_cnt=25 17:01:43.099 stuse0x1280c50 ....STUN session 0x1280c5428 destroy request, ref_cnt=24 17:01:43.099 icetp00 ....ICE restart failed (status=120039)! 17:01:43.099 pjsua_media.c ....pjmedia_transport_media_start() failed for call_id 2 media 0: Destination address required
TURN socket (UDP) is somehow in a bad state after a while of ringing in the background mode (see also #1107 and #1225). Unfortunately TURN socket uses only pj_activesock_send() which is not equipped with UDP socket replacement procedure (while pj_activesock_sendto() is). In this case, the attempt of sending with the bad state UDP socket fails with EDESTADDRREQ. After testing using pj_activesock_sendto(), the issue seems to disappear.
Thanks Dusan Klinec for the report, the analysis and the patch (and sorry, somehow we missed the bug report). Thanks Ryan Callens for re-reporting and pointing this out.