+ Fix keepalive timer event leak due to the race between stopping timer and
the async'ed timeout handler
+ SipSessionImpl: set state before handling an event to ensure we get correct
state when some error occurs during handling the event.
+ Fix potential NPE in SipManager.ListenerRelay.getUri().
Change-Id: I021ee34f83059fd4fbb64b30bea427a5462aa51b
Merge commit 'df31e03c47cd4caf45d8a58cf1fe5893da48ec6c'
* commit 'df31e03c47cd4caf45d8a58cf1fe5893da48ec6c':
RTP: Delay the initialization of AudioTrack and AudioRecord.
Merge commit '0d44776016cecf1c7c826c4784f8f867a56235f0'
* commit '0d44776016cecf1c7c826c4784f8f867a56235f0':
SIP: Feedback any provisional responses in addition to RING
The only exception is TRYING.
Also remove an unused import in SipSessionGroup.
http://b/issue?id=3021865
Change-Id: I160982b0c4b417362f1fb961217db90c3a585ce5
and fix how SipErrorCode.SERVER_ERROR is determinted from server response, not
from local exceptions.
http://b/issue?id=3041332
Change-Id: Idce67e29858d5c7573b98b7fa1fac074913d71d6
and add new CROSS_DOMAIN_AUTHENTICATION error code and OUT_OF_NETWORK
DisconnectCause.
http://b/issue?id=3020185
Change-Id: Icc0a341599d5a72b7cb2d43675fbddc516544978
Merge commit '4a04a3129bd30a996dd302b982aeca8f228f57e8'
* commit '4a04a3129bd30a996dd302b982aeca8f228f57e8':
Fix the unhold issue especially if one is behind NAT.
+ replace SipAudioCall and its Listener interfaces with real implementations,
+ remove SipAudioCallImpl.java, most of it is has become part of SipAudioCall,
+ add SipSession and its Listener classes to wrap ISipSession and ISipSessionListener,
+ move SipSessionState to SipSession.State,
+ make SipManager keep context and remove the context argument from many methods of its,
+ rename SipManager.getInstance() to newInstance(),
+ rename constant names for action strings and extra keys to follow conventions,
+ set thread names for debugging purpose.
Change-Id: Ie1790dc0e8f49c06c7fc80d33fec0f673a9c3044
also fix delivering bad news before closing a SipAudioCallImpl object so that
apps can get the current audio-call object state before it's closed:
http://b/issue?id=3009262
Change-Id: I94c19dae8b4f252de869e614ec462b19b4ff2077
+ add timer parameter to ISipSession.make/changeCall(),
+ add timer paramter to SipAudioCall.make/answer/hold/continueCall()'s,
+ add timer parameter to SipManager.makeAudioCall(),
+ modify implementation in SipSessionGroup, SipAudioCallImpl accordingly,
+ make SipPhone to use it with 8-second timeout.
http://b/issue?id=2994748
Change-Id: I661a887e5810087ddc5e2318335e2fa427f80ec6
+ add DATA_CONNECTION_LOST to SipErrorCode
+ convert it to Connection.DisconnectCause.LOST_SIGNAL in SipPhone
http://b/issue?id=2992548
Change-Id: Ie8983c1b81077b21f46304cf60b8e61df1ffd241
This change simply reduces the receive timeout of DeviceSocket. It works
because AudioRecord will block us till there is enough data, which makes
AudioSocket overlap AudioRecord.
Change-Id: I4700224fb407e148ef359a9d99279e10240128d0