Comments (16)
Why PushKit for WEBRTC_AUDIO_CANCEL?
from ios-app.
Why PushKit for WEBRTC_AUDIO_CANCEL?
Stop receiver from ringing after the caller choose to cancel
from ios-app.
After the receiver received OFFER PushKit, they should have connected to WebSocket. So any further notifications should use the WebSocket connection. If in rare condition, the WebSocket connection is lost during ringing, we should always have a timeout to dismiss the ringing interface.
from ios-app.
Ideally all our operations are done after WebSocket connected, so I don't think SDP is needed in the notification payload.
from ios-app.
Does MessageCategoryKrakenInvite need pushkit?
from ios-app.
Does MessageCategoryKrakenInvite need pushkit?
YES.
from ios-app.
According to console log:
Apps receving VoIP pushes must post an incoming call (via CallKit or IncomingCallNotifications) in the same run loop as pushRegistry:didReceiveIncomingPushWithPayload:forType:[withCompletionHandler:] without delay.
Exchanging WebRTC descriptions through WebSocket connection seems to be incapable of satisfying PushKit restrictions in iOS 13. To report a new incoming call and implement functionality in system calling interface (e.g. decline by callee), the offer message's id, caller's user_id and caller's fullname, at least these 3 values must be provided in the push payload. Furthermore, it would be easier for front-end developing if full BlazeMessageData along with caller's User structure could be provided in the payload.
from ios-app.
When user accepts or declines the call, should the app need to connect the WebSocket and send blaze message?
from ios-app.
When user accepts or declines the call, should the app need to connect the WebSocket and send blaze message?
Yes, it can be performed with VoIP background mode.
from ios-app.
I think I get it, whenever connect the WebSocket, the app need to wait all the pending messages until the OFFER message to get the SDP info, until then the app can't send any messages to answer the call.
If the SDP info included in the PushKit payload, then the app would be able to send ANSWER or DECLINE message as soon as WebSocket connected, no need to wait all pending messages to get the SDP.
from ios-app.
The main point of new VoIP restriction is reporting incoming call to CallKit when PushKit notification is received, with no delay. That requires some key information(two ids and a name) to be provided in the payload.
As long as the restriction is satisfied, app won't be complaining about it, the underlying data exchange can be performed by any means. A full BlazeMessageData is only for easier implementation.
from ios-app.
Maybe it won't help a lot for speeding up the WebRTC connection just with the SDP in payload. Because after callee ANSWER with the SDP, it still needs to wait all pending messages to receive further ICE messages to establish the connection. Then it's better to not including those messages in PushKit payload.
That said, we should include the full caller view in PushKit payload, and I think the message id is already included?
Otherwise, if it was possible to speed up the PeerConnection establishment, without waiting pending messages, we could include SDP in Pushkit payload.
from ios-app.
If you didn’t put caller information in your notification’s payload, call the reportCall(with:updated:) method of your app's provider object to update the calling interface. You can call that method at any time to update calls. For example, call it after your app fetches updated caller information from your VoIP server.
https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit
from ios-app.
It's OK to include caller's information to present the CallKit UI instantly for better user experience.
The question is whether to include SDP, would it help with faster PeerConnection.
from ios-app.
If you didn’t put caller information in your notification’s payload, call the reportCall(with:updated:) method of your app's provider object to update the calling interface. You can call that method at any time to update calls. For example, call it after your app fetches updated caller information from your VoIP server.
It's OK to update username after, but the call's UUID and caller's user_id is required for unique constraint of a call.
from ios-app.
from ios-app.
Related Issues (20)
- Fix some sentences in Links APP
- Support iOS 13 multi select gesture in conversation
- Lottie Animation not showing on WP (Elementor)
- Time format in profile is different between iOS and Android
- Expire credentials after an iTunes or iCloud migration to a new device HOT 1
- Image carousal stuck HOT 1
- Prevent screen dim when viewing an animated image HOT 1
- Adapt to iOS 14 features HOT 1
- Notification badge HOT 1
- iOS can't display raw transactions
- 哪个版本 可以再 iOS11版本系统上安装运行呀 最新mixin版本只能在iOS12或以上安装运行吗??? HOT 1
- How to contribute code? HOT 1
- invalidRequestData HOT 1
- Wallet "Send" flow dead-ends in "Insufficient transaction fee" HOT 1
- can not find Mixin-Keys and GoogleService-Info plist files error when build the proejct HOT 3
- Git tag new & old releases HOT 1
- Project can be build successfully, but cannot be run on the simulator. HOT 1
- cannot be found 'Mixin-keys.plist' HOT 1
- invalidRequestData(field: Optional("hcaptcha")))
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ios-app.