<div dir="ltr"><div>Hi,</div><div><br></div><div>If you look into this:</div><div><br></div><div><a href="https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit">https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit</a></div><div><br></div><div>Full quote:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
After sending the initial push notification, don’t send additional push 
notifications to cancel the call or communicate new details to your app.
 Instead, communicate with the app directly over the network connection 
you established between it and your server. Using an existing network 
connection is generally faster than sending a push notification, and if 
network conditions are poor, APNs may be unable to deliver push 
notifications to the device anyway. <br></div></blockquote><div><br></div><div>So based on my interpretation of what is written above, it seems they do not prohibit, but rather recommend it because of "
Using an existing network 
connection is generally faster

". As far as we are discussing a case where there are no existing connections, I personally think this part of documentation is not relevant to that particular case.<br></div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Jurijs<br></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 10, 2021 at 6:36 PM Igor Olhovskiy <<a href="mailto:igorolhovskiy@gmail.com">igorolhovskiy@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p>Hi,</p>
    <p>But Apple prohibits to use 2nd push for call cancel. That's not
      my decision.</p>
    <p><a href="https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit" target="_blank">https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit</a><br>
    </p>
    <p>
      </p><blockquote type="cite">After sending the initial push
        notification, don’t send additional push notifications to cancel
        the call or communicate new details to your app. Instead,
        communicate with the app directly over the network connection
        you established between it and your server.</blockquote>
      <br>
    <p></p>
    <pre cols="72">Regards,
Igor</pre>
    <div>On 10.03.2021 15:18, Jurijs Ivolga
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div>Hi,</div>
        <div><br>
        </div>
        <div>My point is that you're referring to documentation where it
          is assumed that there is always connection between iOS app and
          Kamailio, but this might not be the case, like in the scenario
          that I described.</div>
        <div><br>
        </div>
        <div>I think somebody who put this documentation is not really
          aware of all use cases and for this case it is better to use
          push for cancelling a call, IMHO.<br>
        </div>
        <div><br>
        </div>
        <div>
          <div>
            <div dir="ltr">
              <div dir="ltr">Jurijs<br>
              </div>
            </div>
          </div>
          <br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Wed, Mar 10, 2021 at 4:15
          PM Igor Olhovskiy <<a href="mailto:igorolhovskiy@gmail.com" target="_blank">igorolhovskiy@gmail.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <p>Hi!<br>
            </p>
            <p>That is exactly my question. Now I have workaround for
              this
              (<a href="https://samael28.blogspot.com/2021/03/kamailio-and-delayed-cancel-on-ios.html" target="_blank">https://samael28.blogspot.com/2021/03/kamailio-and-delayed-cancel-on-ios.html</a>)
              but maybe there is more efficient way, like "storing" dead
              transactions.<br>
            </p>
            <pre cols="72">Regards,
Igor</pre>
            <div>On 10.03.2021 15:07, Jurijs Ivolga wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">
                <div>Hi,</div>
                <div><br>
                </div>
                <div>So if there is no connection between iOS app and
                  Kamailio, what should we do? Lets imagine scenario:
                  call arrives, app receives push notifications and then
                  call is cancelled, even before connection is
                  established.<br>
                </div>
                <div><br>
                </div>
                <div>
                  <div>
                    <div dir="ltr">
                      <div dir="ltr">Jurijs<br>
                      </div>
                    </div>
                  </div>
                  <br>
                </div>
              </div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr" class="gmail_attr">On Wed, Mar 10, 2021
                  at 4:04 PM Igor Olhovskiy <<a href="mailto:igorolhovskiy@gmail.com" target="_blank">igorolhovskiy@gmail.com</a>>
                  wrote:<br>
                </div>
                <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                  <div>
                    <p>Hello,<br>
                    </p>
                    <p>As I got, this is should be supported by app
                      itself, not iOS.</p>
                    <p>And Apple docs says explicitly:</p>
                    <p> </p>
                    <blockquote type="cite">After sending the initial
                      push notification, don’t send additional push
                      notifications to cancel the call or communicate
                      new details to your app. Instead, communicate with
                      the app directly over the network connection you
                      established between it and your server.</blockquote>
                    <br>
                    <pre cols="72">Regards,
Igor</pre>
                    <div>On 10.03.2021 13:52, Ilie Soltanici wrote:<br>
                    </div>
                    <blockquote type="cite">
                      <div dir="auto">Hello, </div>
                      <div dir="auto"><br>
                      </div>
                      <div dir="auto">On Cancel we are sending just
                        another Push Notification that indicates the
                        call is cancelled, and the calling screen
                        dissapear.</div>
                      <div dir="auto"><br>
                      </div>
                      <div dir="auto">Regards,</div>
                      <div><br>
                        <div class="gmail_quote">
                          <div dir="ltr" class="gmail_attr">On Wed 10
                            Mar 2021 at 12:28, Igor Olhovskiy <<a href="mailto:igorolhovskiy@gmail.com" target="_blank">igorolhovskiy@gmail.com</a>>
                            wrote:<br>
                          </div>
                          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello!<br>
                            <br>
                            Is there any way to "store" already finished
                            transactions in tsilo? Idea <br>
                            is to deliver, for example, canceled calls
                            to the phone, when call <br>
                            already was answered on other device, but
                            push notification arrive <br>
                            later? Major problem here, that there how
                            it's working on iOS.<br>
                            <br>
                            On iOS phone first show you calling screen,
                            than - app is waking and <br>
                            after app will register and receive invite
                            with tsilo, it updates <br>
                            calling screen with CallerID and other info.
                            But if call was canceled <br>
                            before, calling screen is shown, but app not
                            receiving INVITE, so, call <br>
                            screen is just there for some timeout (for
                            Linphone, for ex, it's 20 sec).<br>
                            <br>
                            Right now I've manage to do it via external
                            SIPP call, that emulates <br>
                            "fake missed call", but maybe there is other
                            way to "store" already dead <br>
                            transactions for some time?<br>
                            <br>
                            PS: Unfortunately, can't solve this on
                            mobile app level.<br>
                            <br>
                            -- <br>
                            Regards,<br>
                            Igor<br>
                            <br>
                            <br>
_______________________________________________<br>
                            Kamailio (SER) - Users Mailing List<br>
                            <a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
                            <a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
                          </blockquote>
                        </div>
                      </div>
                      <br>
                      <fieldset></fieldset>
                      <pre>_______________________________________________
Kamailio (SER) - Users Mailing List
<a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
                    </blockquote>
                  </div>
                  _______________________________________________<br>
                  Kamailio (SER) - Users Mailing List<br>
                  <a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
                  <a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
                </blockquote>
              </div>
              <br>
              <fieldset></fieldset>
              <pre>_______________________________________________
Kamailio (SER) - Users Mailing List
<a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
            </blockquote>
          </div>
          _______________________________________________<br>
          Kamailio (SER) - Users Mailing List<br>
          <a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
          <a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset></fieldset>
      <pre>_______________________________________________
Kamailio (SER) - Users Mailing List
<a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
    </blockquote>
  </div>

_______________________________________________<br>
Kamailio (SER) - Users Mailing List<br>
<a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
</blockquote></div>