2 Replies
      Latest reply: Oct 13, 2016 1:58 AM by eskimo RSS
      ls10 Level 1 Level 1 (0 points)

        Hi,

         

        My colleagues have developed a web-based (RTC) VoIP app and I am now going to develop the iOS counterpart. However, after browsing the forums, I have found several limiting factors with the iOS:

         

        Are there any other limitations that I should be aware of? What are the recommended protocols for developing a VoIP app for iOS?


        Thanks!

        • Re: What protocols are supported for VoIP?
          Beast Level 3 Level 3 (125 points)

          There are quite a number of other limitations.  You will want to take a look at CallKit and how it will have to replace much of the SIP stack functionality.

          • Re: What protocols are supported for VoIP?
            eskimo Apple Staff Apple Staff (7,005 points)

            There’s three parts to this:

            • ring indication

            • OS integration

            • VoIP transport


            Ring indication is how your VoIP app learns about new incoming phone calls while its suspended in the background.  We strongly recommend that you use PushKit for this.  For more information about PushKit, see:

            Older versions of iOS supported a different ring indication strategy that’s been deprecated in favour of PushKit.  PushKit has been available since iOS 8.1 (it was present but not functional in 8.0) so there’s no reason for new apps to use the legacy VoIP architecture.


            OS integration is all about how to make your VoIP app look like a peer of the built-in Phone app.  Starting with iOS 10 there’s an excellent solution for this, CallKit.  For details, see:


            VoIP transport is all about how your app actually transfers voice data on the wire.  iOS does not have specific APIs for this.  You’ll have to write (or acquire) the code to do this, building on top of our standard networking APIs (typically BSD Sockets).  And, as you noted, this will have to be compatible with IPv4-only, IPv6-only and dual stack networks.

            The only specific infrastructure we provide for VoIP relates to network quality of service (QoS).  Network traffic that carries voice data (which has low bandwidth but strict latency constraints) should be marked as such.  To learn more about how to do this, watch WWDC 2016 Session 714 Networking for the Modern Internet.

            Share and Enjoy

            Quinn “The Eskimo!”
            Apple Developer Relations, Developer Technical Support, Core OS/Hardware
            let myEmail = "eskimo" + "1" + "@apple.com"