Vonage Client SDKへの移行
Nexmo Client SDKをお使いの場合、Vonage Client SDKに移行する際に考慮すべき変更点があります。
クライアントのインスタンス化
AndroidとiOSでは、SDK Clientはもはやシングルトンではありません。
// Nexmo SDK
let client = NXMClient.shared
// Vonage SDK
let client = VGVoiceClient()
セッション管理
以前は、AndroidとiOSのNexmo Client SDKでは、次のように呼び出していました。 login/createSession そして、リスナーを介してあなたの最初のセッションの作成に関する最新情報を受け取ります。
JavaScript Vonage Client SDKでは、アプリオブジェクトを受け取らなくなり、代わりにセッションIDを受け取ります。
Vonage Client SDKには、最初のセッション作成が成功したかどうかを知るためのコールバックがあります。再接続を含む更なるセッションの更新は、リスナー/デリゲートメソッドで利用可能です。
// NexmoSDK
client.login(withAuthToken: token)
class ExampleClientDelegate: NSObject, NXMClientDelegate {
func client(_ client: NXMClient, didChange status: NXMConnectionStatus, reason: NXMConnectionStatusReason) {
switch status {
case .connected:
case .disconnected:
case .connecting:
}
}
// Vonage SDK
client.createSession(token) { error, sessionId in
if (error != nil) {
// Handle error
} else {
// Session created 🎉
}
}
class ExampleClientDelegate: NSObject, VGClientDelegate {
func client(_ client: VGBaseClient, didReceiveSessionErrorWith reason: VGSessionErrorReason) {}
func clientWillReconnect(_ client: VGBaseClient) {}
func clientDidReconnect(_ client: VGBaseClient) {}
}
電話番号
Vonage Client SDKでは、サーバーコールが唯一のコールタイプです。 inApp コールタイプは廃止されました。これは、すべてのコールフローでNCCOウェブフック・サーバーが必須となったことを意味します。
サーバーコールを行うためのパラメータが変更され、以前のtoとcontextフィールドが1つのパラメータになりました。既存の NCCO ウェブフックとの後方互換性のため、次のように指定できます。 to をコンテキスト・オブジェクトの一部とすることで、前と同じようにウェブフックに転送されます。
そうでない場合は、コンテキストパラメータを使用して、カスタムデータを answer_url ウェブフック
// Nexmo SDK
client.serverCall(withCallee: "PHONE_NUMBER", customData: nil) { (error, call) in
// Handle error/call
}
// Vonage SDK
client.serverCall(["to":"PHONE_NUMBER"]) { (error, call) in
// Handle error/call
}
通話/チャット・アクション
また、Vonage Client SDKには、通話終了、通話ミュート、メッセージ送信などのアクションを実行するためのオブジェクト上のメソッドがなくなりました。これらのアクションはすべてクライアント上のメソッドとして利用できます。これらのアクションを実行するには、アクションを実行したいコールまたは会話IDを保存する必要があります。
例えば、通話をミュートする:
// Nexmo SDK
callMember.enableMute()
// Vonage SDK
client.mute(callId) { error in
if error != nil {
// Handle muting error
}
}
あるいはメッセージを送る:
// Nexmo SDK
conversation.sendMessage("Hello world!") { error in
...
}
// Vonage SDK
client.sendMessageTextEvent("CONV_ID", text: "Hello world!") { error, timestamp in
...
}