Commit graph

137 commits

Author SHA1 Message Date
Matthew Chen 9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -04:00
Michael Kirk 0c8da2865e Fix search/replace
// FREEBIE
2017-03-23 20:52:42 -04:00
Matthew Chen e724acc978 Respond to CR.
// FREEBIE
2017-03-22 17:02:42 -04:00
Matthew Chen c6a280e005 Only initiate WebRTC calls, not RedPhone calls.
// FREEBIE
2017-03-22 17:02:42 -04:00
Matthew Chen 814c6d2505 Only initiate WebRTC calls, not RedPhone calls.
// FREEBIE
2017-03-22 17:02:42 -04:00
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
2017-03-22 10:48:37 -04:00
Michael Kirk aa268e36c2 This constructor can return nil
seeing frequent crash in the wild on this line, maybe this is why?

// FREEBIE
2017-03-14 18:59:48 -04:00
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
2017-03-06 12:48:47 -05:00
Matthew Chen c1aea91d1b Fix build break.
// FREEBIE
2017-02-27 14:46:19 -05:00
Michael Kirk b5403175f1 Call sounds - connecting, outgoing ring, busy sound.
Also add vibration for remote hangup so you're not talking to dead air.

// FREEBIE
2017-02-27 11:21:51 -05:00
Matthew Chen a20a21867e Respond to CR.
// FREEBIE
2017-02-24 23:02:17 -05:00
Matthew Chen c35c118dcd Respond to CR.
// FREEBIE
2017-02-24 23:02:17 -05:00
Matthew Chen 01d2582074 Add and honor the “CallKit Privacy” setting.
// FREEBIE
2017-02-24 23:01:09 -05:00
Matthew Chen f5004b27ab Add and honor the “CallKit Privacy” setting.
// FREEBIE
2017-02-24 23:01:09 -05:00
Matthew Chen 065d383c15 Add and honor the “CallKit Privacy” setting.
// FREEBIE
2017-02-24 23:01:09 -05:00
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
2017-02-24 11:21:52 -08:00
Matthew Chen f4453eb995 Enable WebRTC-based audio and video calls by default.
// FREEBIE
2017-02-21 11:10:57 -05:00
Matthew Chen dea37b422b Respond to CR.
// FREEBIE
2017-02-08 16:47:09 -05:00
Matthew Chen 06a775b41a Improve the call status messages in conversation view.
// FREEBIE
2017-02-08 16:47:09 -05:00
Michael Kirk 3ab65a2c88 Prevent CallKit timeout when placing outgoing call
More fallout from the outbound call timeout which was causing all
CallKit calls not promptly answered to show "Call Failed"

Inserting the timeout exacerbated an existing issue: We can't wait for
long before choosing to fulfill/fail an action without CallKit falling
over and assuming the call failed.

We don't actually need to consider the case where we "fail to initiate"
the outgoing call. Instead we say it started "successfully, and if there
is an error, the existing promise error handling will fail the call at
that time.

// FREEBIE
2017-02-08 16:25:27 -05:00
Michael Kirk 6cdf13ea5f Only time out the intended call
previously a followup call could get clobbered by the previous calls
timeout

// FREEBIE
2017-02-08 14:59:18 -05:00
Michael Kirk c087c56b0c Fix call timeout
- Previously only incoming calls had their timeout promise fulfilled
- Previously we'd stop the timeout once ringing started, but we
should continue the timeout clock until the users are speaking.

// FREEBIE
2017-02-08 14:25:05 -05:00
Michael Kirk 2f6bf0e551 Code cleanup per CR
// FREEBIE
2017-02-08 10:33:43 -05:00
Michael Kirk 108720c2e7 End outgoing call with "No Answer" after 2 minutes
// FREEBIE
2017-02-08 10:33:43 -05:00
Matthew Chen 734dec12e9 Respond to CR.
// FREEBIE
2017-02-07 17:33:13 -05:00
Matthew Chen c43063e1d6 Add “interstitial call view” that is shown during lengthy “webrtc supported” check.
// FREEBIE
2017-02-07 17:17:06 -05:00
Matthew Chen ce9d9befb3 Prevent device lock during calls.
// FREEBIE
2017-02-07 16:00:17 -05:00
Michael Kirk b8711f9abc contact can be nil for outgoing redphone call
Now that it's easier to start a thread with a non-contact recipient this
is more relevant.

// FREEBIE
2017-02-06 15:46:53 -05:00
Matthew Chen 217866c588 Respond to CR.
// FREEBIE
2017-02-06 12:05:25 -05:00
Matthew Chen 228b0e7dc6 Synchronize access to remoteVideoTrack.
// FREEBIE
2017-02-06 11:18:30 -05:00
Matthew Chen ca76ec6f36 Respond to CR.
// FREEBIE
2017-02-06 09:39:14 -05:00
Matthew Chen 6f3a45ff8c Avoid crashes when deallocating remote video tracks.
// FREEBIE
2017-02-06 09:33:47 -05:00
Matthew Chen 4ae786d0a2 Ignore CallService events related to obsolete calls.
// FREEBIE
2017-02-06 09:33:47 -05:00
Matthew Chen d9bcd563b1 Avoid possible deadlock in PeerConnectionClient.
// FREEBIE
2017-02-06 09:33:47 -05:00
Matthew Chen 8f6483e9b4 Fix bug in the busy logic.
// FREEBIE
2017-02-03 16:47:34 -05:00
Matthew Chen 17fe3f66c0 Ensure audio service observation of call is always correctly wired up.
// FREEBIE
2017-02-03 15:47:33 -05:00
Michael Kirk 90388ebd63 Coordinate "busy" state across redphone and webrtc
Previously a redphone call didn't know when the user was busy due to
webrtc and vice versa

// FREEBIE
2017-02-03 14:10:06 -05:00
Matthew Chen 05f123c5eb Fix ongoing call check in OutboundCallInitiator.
// FREEBIE
2017-02-03 12:04:21 -05:00
Matthew Chen d7e434eb03 Modify OutboundCallInitiator to abort if there is an ongoing RedPhone or WebRTC call.
// FREEBIE
2017-02-03 11:37:57 -05:00
Matthew Chen 581ba937f4 Respond to CR.
// FREEBIE
2017-02-03 11:31:31 -05:00
Matthew Chen 52ba5c1325 Don’t assert when two devices call each other simultaneously.
// FREEBIE
2017-02-03 11:30:47 -05:00
Matthew Chen 6e390d40b7 Respond to CR.
// FREEBIE
2017-02-03 11:29:47 -05:00
Matthew Chen 732144c9ed Respond to CR.
// FREEBIE
2017-02-03 11:29:47 -05:00
Matthew Chen 98caeb6a03 Be even more cautious when tearing down a PeerConnectionClient.
// FREEBIE
2017-02-03 11:29:47 -05:00
Michael Kirk a328759f0d Don't crash when incoming call on NonCallKit iOS10
Previous logic assumed "VoiceChat" mode, but when the ringer goes off,
we set "SoloAmbient" which is incompatible with that mode, causing
assertion failure.

// FREEBIE
2017-02-03 10:24:16 -05:00
Michael Kirk 43e7defa28 Stop any lingering audio session if provider resets.
I've never actually seen this happen, but I think it makes sense.

// FREEBIE
2017-02-03 10:23:19 -05:00
Michael Kirk 2a9aa4c852 users can opt out of CallKit
// FREEBIE
2017-02-02 19:09:37 -05:00
Matthew Chen 5687925513 Prevent simultaneous incoming and outgoing calls from leaving CallService in a bad state.
// FREEBIE
2017-02-02 18:22:32 -05:00
Matthew Chen 0893930485 Handle “busy signal” appropriately.
// FREEBIE
2017-02-02 18:19:38 -05:00
Michael Kirk b6f098bfa7 Log when receiving unknown call datachannel message
// FREEBIE
2017-02-02 15:51:07 -05:00