Commit Graph

65 Commits (9075a12ac6a3f24ece5c2bc97ff327fc822c88a5)

Author SHA1 Message Date
Matthew Chen 9075a12ac6 PeerConnectionClient thread safety. 7 years ago
Matthew Chen c2f1a12d9f PeerConnectionClient thread safety. 7 years ago
Matthew Chen 88c2ff26e7 PeerConnectionClient thread safety. 7 years ago
Matthew Chen e63a7f8fb0 PeerConnectionClient thread safety. 7 years ago
Matthew Chen c3e8fde24c PeerConnectionClient thread safety. 7 years ago
Matthew Chen 1a0347b782 PeerConnectionClient thread safety. 7 years ago
Matthew Chen 729769afa7 PeerConnectionClient thread safety. 7 years ago
Matthew Chen a4a5e99534 PeerConnectionClient thread safety. 7 years ago
Matthew Chen 3967a5ab05 Call lifecycle edge cases. 7 years ago
Matthew Chen 157f7617ca Respond to CR. 7 years ago
Matthew Chen 3d5cbb73fb Rework cleanup of peer connection client delegates. 7 years ago
Matthew Chen 28063574d3 Fix call hangup crashes. 7 years ago
Michael Kirk e5b535ccf1 Implement camera direction toggle
// FREEBIE
7 years ago
Michael Kirk 0f46834e8d Show "Reconnecting..." on call screen
// FREEBIE
7 years ago
Matthew Chen 6caa5b87b6 Add more asserts around thread in SAE. 7 years ago
Michael Kirk 5f305f844f Send ICE updates immediately after sending CallOffer for faster call
connection.

For legacy reasons, the call sender used to wait until after receiving
the call answer before sending the ICE updates. The primary motivation
was that if the receiving user hadn't accepted a new identity change,
rather than just seeing one "Tap to Accept New Safety Number" messages
for a call, they'd see one for the call offer and then a dozen more as
ICE updates trickled in.

We changed that behavior long ago, and effectively all clients will
avoid that case, while sending ICE updates immediately will allow calls
to connect without having to wait for an additional serialized round
trip between the caller and call recipient.

// FREEBIE
7 years ago
Matthew Chen b4e8df79da Migrate environment to SignalMessaging. 8 years ago
Matthew Chen 8cc33b3de1 Refine loading view of share extension. 8 years ago
Michael Kirk a11d83187b WIP: Framework-friendly - compiles but crashes on launch
// FREEBIE
8 years ago
Michael Kirk 86c1a3d08a CR: use weak capture
// FREEBIE
8 years ago
Michael Kirk 81f097c1f5 Don't drop critical data messages
Assigning dataChannel sometimes happens after iceConnect.

Fixes symptom where Alice calls Bob.
Bob answers and sees the call UI as normal
but Alice sees call as continuing to ring

// FREEBIE
8 years ago
Michael Kirk 2e75e9df55 Don't ignore critical errors
// FREEBIE
8 years ago
Michael Kirk c7642cc628 Fix volume burst when call connects
By centralizing AudioSession management onto the AudioService, we can
avoid enabling the RTCAudioSession while we're mid-ring.

Also allows us to centralize and remove redundant audio session logic.

// FREEBIE
8 years ago
Matthew Chen e8daf9a8d3 Fix assert when missing camera permission during calls.
// FREEBIE
8 years ago
Matthew Chen 465711c2cb Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Matthew Chen 863fd27abe Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d639d6557e Add owsFail free function for swift.
// FREEBIE
8 years ago
Michael Kirk f681712ea0 Code Cleanup
- make some logging clearer
- remove noisy unhelpful logging
- clearer method names

// FREEBIE
8 years ago
Matthew Chen f5f506d06f Investigate “call stuck on connecting” issue.
// FREEBIE
8 years ago
Matthew Chen dcdfcb0a6f Insist upon an "ordered" TCP data channel for delivery reliability.
// FREEBIE
8 years ago
Michael Kirk 0c8da2865e Fix search/replace
// FREEBIE
8 years ago
Michael Kirk eb0399f040 Fix "Call failed" due to deadlock when immediately terminating call
It's not clear why we were ever dispatching `sync` here.

Before this:

Place a call
See "connecting..."
Hang up
UI hangs for ~5 seconds
See "call failed" on CallKit screen
Press "cancel" on CallKit screen
returned to responsive app.

// FREEBIE
8 years ago
Michael Kirk e3eca4db7b stop videoCapture until video track is enabled to save some battery
Instruments showed a reduction from ~65% -> ~45% while on audio only
call on iPhone5c.

// FREEBIE
8 years ago
Michael Kirk 4b8a5f8ccb TURN-only option, and for unknown caller
Now, by default, we only use TURN for incoming calls from unknown
contacts. We will potentially directly connect for outgoing calls and
for incoming calls from known contacts.

Optionally, the user can disable direct connection altogether, at the
cost of some call quality.

// FREEBIE
8 years ago
Michael Kirk 2f6bf0e551 Code cleanup per CR
// FREEBIE
8 years ago
Matthew Chen 217866c588 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 228b0e7dc6 Synchronize access to remoteVideoTrack.
// FREEBIE
8 years ago
Matthew Chen ca76ec6f36 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 6f3a45ff8c Avoid crashes when deallocating remote video tracks.
// FREEBIE
8 years ago
Matthew Chen d9bcd563b1 Avoid possible deadlock in PeerConnectionClient.
// FREEBIE
8 years ago
Matthew Chen 98caeb6a03 Be even more cautious when tearing down a PeerConnectionClient.
// FREEBIE
8 years ago
Matthew Chen 36356fbff6 Avoid crashes when closing peer connection client.
// FREEBIE
8 years ago
Matthew Chen dacb2840f2 Avoid crashes when closing peer connection client.
// FREEBIE
8 years ago
Matthew Chen 535770a92e Avoid crashes when closing peer connection client.
// FREEBIE
8 years ago
Matthew Chen 4dec1e2ded Avoid crashes when closing peer connection client.
// FREEBIE
8 years ago
Matthew Chen b415b6142f Respond to CR, mainly by fixing broken tests.
// FREEBIE
8 years ago
Matthew Chen 49bb3d942d Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen d294557bdd Rework concurrency in the signaling logic.
// FREEBIE
8 years ago
Matthew Chen dd374afdaa Rework concurrency in the signaling logic.
// FREEBIE
8 years ago
Matthew Chen af289145b5 Rework concurrency in the signaling logic.
// FREEBIE
8 years ago