问题
I want to build an iPhone app which has the option to make calls over SIP (VoIP) but at this moment I have no idea how to start.
Does anyone have some information about this topic, or maybe a demo project which I can use to implement the SIP functionality?
Thanks in advance!
回答1:
You have a long and interesting road ahead of you. : - ).
You will need to choose a SIP Library to build your application on top of. There are many open source SIP Stacks, and some of them even have xCode projects for Mac OS and iOS. You might want to look at ReSIPRocate, PJSip, Sofia SIP, or oSIP/exoSIP.
You need to build logic around that sip stack which will allow you to manage sip conversations, and handle all of the possible call scenarios that you want to support, set up and manage the audio channels for those calls, etc. Some of the SIP Stacks above have more of this functionality than others. There are also many companies which sell iOS toolkits built on top of these open source SIP Stacks to make your job easier.
You need to integrate that SIP Stack with iOS. This means connecting your iOS app to your (likely) C-Based SIP Stack and managing it. Apple has a very brief set of suggestions for developing a VoIP app in their 'Advanced App Tricks' iOS Developer Documentation (Advanced App Tricks) which provides suggestions about backgrounding and Audio Channels.
Testing with a SIP Server and other sip clients. Create an Asterisk/Freeswitch box and register SIP Clients to it, including your iOS Sip Client and other Desktop based SIP Phones (XLite is a good one to use). Try out all the call scenarios you want to support.
As far as demos, there is an open source iPhone app called siphone based on PJSIP, that has it's source freely downloadable: http://code.google.com/p/siphon/
I would also look at some of the many SIP-based Apps currently in the App store. These include Bria, Acrobits, Fring, Truphone, iSIP etc.
回答2:
I know it's a bit late, but for future reference; An alternative SIP-stack which we had good experience with is the Linphone project.
As with some of the stacks that was mentioned earlier, this stack is very well suited if you plan to code for other OS (e.g Android) as well.
回答3:
check this below link. You will get source code from there and can biuld for both device and simulator.
https://github.com/radif/SIPHON-SIP-Client-that-actually-compiles
来源:https://stackoverflow.com/questions/11451076/implementing-the-sip-functionality-in-ios5