-
Notifications
You must be signed in to change notification settings - Fork 69
IOS 13 voIP restriction #197
Comments
@mudassirzulfiqar Did you get VoIP push notification in background? I couldn't.. When app in foreground |
@Invisible66 Right after posting this, I also find this weird thing that |
@mudassirzulfiqar Same behavior for me here, for some reasons I do receive calls in foreground and |
Interesting post from Apple staff about that : https://forums.developer.apple.com/thread/117939 |
I have figured out the issue, as it is stated in the official forums by Apple that not calling completion will result ban your application after 3 to 5 attempts I guess. So I think when the app get banned in 2 to 3 attempts then it stops receiving voip. Use case: |
I didn't understand anything from this post.. |
Perfect. Thank you, you save my day :) |
@Invisible66 that sounds good indeed, but what if the account is not registered to SIP ? |
so, we have to end call using |
Im also stuck on achieving this behaviour, in our application, we always push new account information in payload to register the sip calls, and obviously for this we have to call so many library methods. So Im currently unable to call this completion() closure. I checked multiple apps like Slack, Skype, Messenger. They all are using old way to initiating the sip calls using notification technique. Only WhatsApp is managing this callkit thing, but I also faced some issues on receiving whatsapp call from my friend. (Did some testing.) |
This problem is relevant to me. Any suggestions on how to resolve this issue? |
I am looking for any solution.. If you find something, can you share it with us please? :) |
We have reverted back to old implementation, which is clicking the notification and opening the app. |
We post call to Callkit in This is a bad solution, but it's better than clicking notification and opening the app. |
My question is how can you post a call without even registering the sip account, and without even receiving the call? What information do you send in the voip? |
I did as described on this page. |
I tested to reinstall the app, but I still cannot get any response from the "didReceiveRemoteNotification" method and this drives me crazy. I even tried to restart the device but it does not work. Is there anyone who have the same issue and know how to solve it? |
Can you explain this solution please ? |
I hope, you can understand my bad English :) |
Hi All, and it tears down the dummy CallKit UI, but it show very bad behaviour of the UI, as WhatsApp and other apps don't show this behaviour. Any suggestion how to resolve this issue. Thanks, |
@Muhammad-AhmadRafique Please read below links for solutions: https://forums.developer.apple.com/thread/117939 |
@mudassirzulfiqar thanks for the reply. How can I handle both of the screens simultaneously, I have also read the above thread, Thanks again for your help. Regards, |
@Muhammad-AhmadRafique This library totally supports this new ios 13 voip limitation.
below is the code you are looking for: |
@mudassirzulfiqar Thanks again for your help. or otherwise, it will work fine , I have to only change in voip push method, which you suggested earlier ? Regards, |
I did not understand the question, but let me tell you the flow
This is described above in the link as well. I did not understand this
|
ok, let me tell you the flow of my app, maybe you understand in a better way and guide me what I am doing wrong. In my app, I am doing following steps, and it was working fine unless iOS 13:- The following steps were working fine, till iOS 12. But for iOS 13, what limitations I am facing right now:- So in other user iPhone device, 1 or more Call UIs open already due to voip pushes and now actual call UI opens , so there are multiple UIs are open in other user's device. Thats why I am asking you what am I doing wrong. ? please guide me. Now I am asking you following question ?
I am stucked at this, please help me. Once again thank you so much for your cooperation and help. Kind Regards, |
Your first four steps which you described does not seem to me the proper implementation, The voip notifications were meant to be for Incoming Calls only. Because of this abusive behaviour which you also described that it pings the device after some interval, Apple now forcefully want you to show the UI. It is not only you who suffered from all these thing, many big voip applications had forcefully changed their backend implementation along with the front-end If you read the some other third party voip call providers for example Twilio. You will find out that they also had to adopt the new ios 13 behaviour and their sample ios application for voip does the same flow which Im describing to you. About your second four steps, you have to change the whole implementation to adopt this ios 13 thing. Im not very expert in backend but still I see that your approach for pinging a device is not correct. Which makes you open multiple UI, its totally not a valid approach. No one does that. There is no need to keep checking the device by sending voip notifications, I think you can play with asterisk and query the connection from backend for receiving client rather then the client applications. You should not care about is the device connected or not it the backend thing. How can one person be offline?, if logically the client device is offline then dont send voip. And with this new implementation the ios code has to show the UI, so there is no case when the person is offline.
|
Thanks for the response, You asked when an iPhone device is offline to asterisk. ?
For this :-
For this:- |
Why do you care if the asterisk server shows device offline?
As far as I know you can see the asterisk statuses in the backend.
Dont go for multiple solutions, always send the voip, again you have to write a long method with lots of
While checking all these statuses, show a call kit UI. |
just connect the call. How to connect the call ? This is the point, where I am stuck. |
Actual calling happens only when other user make a call through asterisk. What are you suggesting is that, I don't understand this point. |
|
@mudassirzulfiqar let me tell you something.
(stuck on it)
Because, When first user call the following function, then actual call comes to 2nd user. and first user only call this method, when rest api response comes to the first user. self.callManager?.startCall(toNumber: self.callingId, for: self.account!, completion: { (call, error) in |
Without calling startCall:ToNumber function, how actual call comes to 2nd user ? Because, when voip push received, 2nd user registers to SIP client, and update its callManager with the parameters received from voip push and call reportIncomingCall method, and a CallKit UI opens. Then first user call this method startCall:ToNumber, and actual call comes to 2nd user, Once again, thanks for your help. |
@mudassirzulfiqar kindly make a proper video on it , as it is very important issue rightnow |
@aabiawan Hi , What exactly you need to know ? |
Hi, i have implemented agora for calling but thing is when app is in kill
stat its not awakening, do i need any api for triggering notifications to
other device ?
I am using pushkit btw
…On Tue, 9 Mar 2021 at 1:21 AM, Mudassir Zulfiqar ***@***.***> wrote:
@mudassirzulfiqar <https://github.com/mudassirzulfiqar> kindly make a
proper video on it , as it is very important issue rightnow
@aabiawan <https://github.com/aabiawan> Hi , What exactly you need to
know ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#197 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALSQVHHZ7MF3U5FMDJFIGC3TCUWS5ANCNFSM4I2Y3ZHQ>
.
|
@aabiawan You need to study Apple VOIP notification |
just need to know do i need any api for triggering notifications?
…On Tue, Mar 9, 2021 at 2:58 AM Mudassir Zulfiqar ***@***.***> wrote:
@aabiawan <https://github.com/aabiawan> You need to study Apple VOIP
notification
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#197 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALSQVHCYYDYVJVULIDOUFJDTCVCADANCNFSM4I2Y3ZHQ>
.
|
@aabiawan There are different ways to implement both incoming calls and dialling.
Official Running application using this framework : https://github.com/VoIPGRID/vialer-ios This is the middleware repo which handles this voip thingy. |
Because of new ios 13 voip restrictions
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void)
completion
should be called with in the same loop for- (void)reportIncomingCall:(VSLCall *)call
.Any idea how this new restriction will be implemented with this library.
The text was updated successfully, but these errors were encountered: