5

私はSIPおよびVoIPベースのiOSアプリケーションを開発しており、アプリケーションがバックグラウンドでも継続的に実行されている必要があります。pjsiplibを使用しています。

iOSアプリケーションをbacgroundで実行するには、これが必要です。

  • Info.plistのUIBackgroundModesキーをvoip値で設定します

  • 接続を維持するためにsetKeepAliveTimeout:handler:に渡したハンドラーを作成しました

ただし、アプリケーションがバックグラウンドで実行されている場合、UDPポートを常に開いたまま、UDPパケットを(RTP / RTCP)経由で受信できるようにしたいと思います。

私はすでに投稿を通過しました:

しかし、アプリがバックグラウンドまたはフォアグラウンドにある場合でも、UDPパケットを継続的に取得できるかどうかは明確にわかりません。

iOSクライアントアプリにデータが届く場合、アプリはユーザーに通知できるようにする必要があります。

提案をお願いします。

4

2 に答える 2

0

バックグラウンドで VoIP アプリを実行し、サーバーに登録するには、iOS で TCP を使用する必要があります。何かが起こったときに、ローカル通知を起動できます。

于 2015-10-03T16:28:55.367 に答える
-1

アプリがバックグラウンドで実行されているときにローカル通知を設定し、通知を通じて着信呼び出しのユーザーを示すことができると思います。ユーザーがアプリケーションに入ると、着信を表示できます。

以下のリンクで、 バックグラウンド実行とマルチタスクを確認し、ローカル通知の配信をスケジュールすることも確認してください

IE では、Info.plist で UIBackgroundModes キーを設定しているため、アプリは長時間実行されるタスクをサポートします。そのため、applicationDidEnterBackground メソッドに、呼び出しがあったときに UILocalNotification を作成するメソッドを追加します。UILocalNotifications は、アラート メッセージと選択したトーンでユーザーに通知します。したがって、ユーザーが通知を受けてユーザーがアプリに入ると、アプリがフォアグラウンドになり、そこで通話を受信するためのメソッドを追加できます。

LocalNotification のアラート本文で、発信者の情報をユーザーに送信できます。

編集: このリンクポール・リヒターの答えをチェックしてください。

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. 

使用しているライブラリとは完全には関係ありませんが、彼はそのプロセスについて適切な説明をしてくれました。

お役に立てれば。

于 2012-12-17T08:52:11.273 に答える