<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi!</p>
    <p>But there would be a connection after app will wake up. <br>
    </p>
    <p>Wake up -> REGISTER -> Connection.</p>
    <p>And after this it's about a time to send to app any info on
      canceled or already answered calls.<br>
    </p>
    <pre class="moz-signature" cols="72">Regards,
Igor</pre>
    <div class="moz-cite-prefix">On 10.03.2021 18:18, Jurijs Ivolga
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAOrA2UZG4yQtykOrY1Wh9r_mjTYei7n+qoOtN0aD9OhaxiNVGg@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <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"
            moz-do-not-send="true">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"
            moz-do-not-send="true">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" moz-do-not-send="true">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>
            <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" moz-do-not-send="true">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" moz-do-not-send="true">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" moz-do-not-send="true">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"
                                      moz-do-not-send="true">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"
                                      moz-do-not-send="true">sr-users@lists.kamailio.org</a><br>
                                    <a
                                      href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users"
                                      rel="noreferrer" target="_blank"
                                      moz-do-not-send="true">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" moz-do-not-send="true">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank" moz-do-not-send="true">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" moz-do-not-send="true">sr-users@lists.kamailio.org</a><br>
                          <a
                            href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true">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" moz-do-not-send="true">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank" moz-do-not-send="true">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" moz-do-not-send="true">sr-users@lists.kamailio.org</a><br>
                  <a
                    href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users"
                    rel="noreferrer" target="_blank"
                    moz-do-not-send="true">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" moz-do-not-send="true">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank" moz-do-not-send="true">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"
            moz-do-not-send="true">sr-users@lists.kamailio.org</a><br>
          <a
            href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Kamailio (SER) - Users Mailing List
<a class="moz-txt-link-abbreviated" href="mailto:sr-users@lists.kamailio.org">sr-users@lists.kamailio.org</a>
<a class="moz-txt-link-freetext" href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
    </blockquote>
  </body>
</html>