アプリがバックグラウンドにある間、「生きている」ソケットを持つためのすべての要件があると思います。つまり、次のようになります。
- 私のアプリケーションには、バックグラウンド モードとして voip と audio があります。
- 「バックグラウンドで実行」プロパティを有効にしてCFReadStreamsを使用することになっているSIPライブラリとしてPJSIPを使用しています
- アプリは TCP を使用して SIP サーバーとの接続を確立しています。
アプリケーションがバックグラウンドに送信されると、一定期間ごとに「keepAlive」メッセージを送信するバックグラウンド ハンドラーが追加されます。
そのキープアライブは機能しているようです。サーバーのログを確認すると、アプリケーションがフォアグラウンドでなくてもメッセージがどのように到着するかがわかります。
問題 (および質問) は、アプリケーションがバックグラウンドにある間、電話を受けないことです。
ソケットは生きているようで、フォアグラウンドでアプリを起動していない状態で携帯電話に電話をかけても何も起こりませんが、自分でアプリを起動すると、通話は自動的に検出されます。
ありがとう :)