2012-10-31 17 views
5

Sto sviluppando applicazioni iOS basate su SIP e VoIP e il requisito è che l'applicazione debba essere continuamente in esecuzione anche in background anche. Sto usando lib di pjsip.iOS: Ricevi supporto in background

So che per eseguire l'applicazione iOS in bacground, abbiamo bisogno di questa chiave

  • Set UIBackgroundModes in Info.plist con valore voip

  • Creato un gestore che ho passato a setKeepAliveTimeout: gestore : per mantenere la connessione attiva

Ma voglio solo che se la mia applicazione è in esecuzione in background può Ricevo pacchetti UDP su (RTP/RTCP), mentre mantengo la porta UDP sempre aperta.

ho già passato attraverso i post:

Ma, non ho ottenere chiara idea che possiamo ottenere pacchetto UDP continuamente anche la l'app è in background o in primo piano.

In modo che se ci sono dati che arrivano all'app client iOS, l'app dovrebbe essere in grado di avvisare l'utente.

Si prega di dare suggerimenti.

+2

Ciao lione, perfavore http://stackoverflow.com/questions/6601536/ios-voip-socket-will-not-run-in-background?rq=1 anche questo post può essere utile per te. – User97693321

+0

Intendi. Hai bisogno di un modo per mantenere l'app in esecuzione in background in modo che quando c'è una chiamata ti indica ?? –

+0

btw ... Quale versione di pjsip usi? usi anche zrtp? –

risposta

-1

Penso che sia possibile impostare le notifiche locali quando l'app è in esecuzione in background e indicare l'utente di una chiamata in arrivo tramite la notifica. Quando l'utente accede all'applicazione, è possibile visualizzare la chiamata in arrivo.

Nel link sottostante, controllare Background Execution and Multitasking and also Scheduling the Delivery of Local Notifications

IE da quando è stata impostata la chiave UIBackgroundModes nella tua Info.plist, la vostra applicazione supporta attività in esecuzione lunghi. Quindi nel metodo applicationDidEnterBackground aggiungi un metodo che crea una UILocalNotification quando c'è una chiamata. UILocalNotifications notifica all'utente un messaggio di avviso e un tono a tua scelta. Quindi, una volta che l'utente viene avvisato e l'utente accede all'app, l'app verrà visualizzata in primo piano in cui è possibile aggiungere il metodo per ricevere la chiamata.

Nel corpo di avviso di LocalNotification è possibile inviare all'utente le informazioni sul chiamante.

EDIT:Check out the answer of Paul Richter in this link, dove dice

VOIP mode gives you the ability to have code running to notify you of a call coming in 
but you're not going to be able to record audio from the background. If you look at how 
Voip apps work, when a call comes in a Local Notification is sent informing the user 
that a call is coming in. The User then must accept the call which will bring the 
application to the foreground at which point from the audio side of things you can 
activate your session and proceed with the phone call. 

Anche se non completamente della biblioteca che si sta utilizzando, ha dato una spiegazione decente del processo.

Spero che questo aiuti.

0

Per eseguire l'app VoIP in background e registrarsi su un server, è necessario utilizzare TCP su iOS. Quando succede qualcosa puoi licenziare la notifica locale.

Problemi correlati