https://d226lax1qjow5r.cloudfront.net/blog/blogposts/reconnecting-calls-on-android-and-ios/reconnecting-calls.jpg

AndroidとiOSでの通話の再接続

最終更新日 January 8, 2024

所要時間:1 分

Vonage Client SDKを使用すると、Vonage APIによってバックアップされた音声およびメッセージング通信機能を備えたiOS、Android、およびWeb用のアプリケーションを構築できます。 Conversation API(カンバセーション API.

このようなアプリを構築する場合、接続性の変化がアプリのエクスペリエンスにどのような影響を与えるかを考慮することが不可欠である。典型的なシナリオは、携帯電話接続で、自宅に到着し、WiFiに接続するというものですが、デバイスが接続を切り替える際に問題が発生する可能性があります。この投稿では、AndroidとiOS用のVonage Client SDKを使用する際に、このような問題を軽減する方法について説明します。

通話の自動再接続

Client SDKは、インターネット接続に変更があった場合、自動的にコールの再接続を試みます。Client SDKはまた、Androidではリスナーを、iOSではデリゲート関数を提供し、接続性の変化を監視する。呼は最初に再接続状態に遷移し、再接続状態または切断状態に遷移する。SDKが接続の変化を経験しているときに監視することで、アプリのUIを更新してユーザーにフィードバックを与えることができます。

州の再接続

Client SDKが再接続を試みているときです。

client.setOnCallMediaReconnectingListener { 
    // Handle reconnecting state
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaReconnectingForCall callId: VGCallId) {
    // Handle reconnecting state
}

再接続状態

これは、Client SDK が正常に再接続された場合です。

client.setOnCallMediaReconnectionListener { 
    // Handle reconnection
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaReconnectionForCall callId: VGCallId) {
    // Handle reconnection
}

切断

これは、Client SDKがコールの再接続に失敗した場合です。

client.setOnCallMediaDisconnectListener { callId, reason ->  
    // Handle disconnection
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaDisconnectForCall callId: VGCallId, reason: VGCallDisconnectReason) {
    // Handle disconnection   
}

通話の回復とデバイスの移動

クライアントSDKには、アプリが停止した場合に通話を回復したり、デバイス間で通話を移動したりできる柔軟性もあります。この reconnectCall関数はコールIDを受け取り、SDKを既存のコールに再接続しようとします:

client.reconnectCall("existingCallID") {
    error, call ->
    when {
        error != null -> {
             // Handle call reconnection error
        }
        else -> {
            // Handle reconnected call
        }
    }
}
client.reconnectCall("existingCallID") { error in
    if error != nil {
        // handle error
        return
    }
    // handle call
}

通話を回復するには、進行中の通話IDを何らかのローカルストレージに保存し、アプリを再開したときに再接続を試みることができる。2つのデバイス間で通話を移動しようとしている場合は、通話IDを新しいデバイスに送信し、そこから再接続することができます。新しいデバイスで reconnectCallを新しいデバイスで使用すると、通話に参加し、古いデバイスの接続を閉じます。 reconnectCallはJavaScript Client SDKでも利用できます。

次はどうする?

をお読みください。 ガイドをご覧ください。Client SDKの詳細については、以下をご覧ください。 developer.vonage.comをご覧ください。.

シェア:

https://a.storyblok.com/f/270183/400x400/19c02db2d3/abdul-ajetunmobi.png
Abdul AjetunmobiVonage 元チームメンバー

アブドゥルはVonageのデベロッパー・アドボケイト。iOSエンジニアとして消費者向け製品に携わった経歴を持つ。余暇には、サイクリング、音楽鑑賞、技術者としての道を歩み始めたばかりの人々の指導を楽しんでいる。