lib/opentok/client.rb in opentok-4.5.1 vs lib/opentok/client.rb in opentok-4.6.0

- old
+ new

@@ -296,9 +296,38 @@ end rescue StandardError => e raise OpenTokError, "Failed to connect to OpenTok. Response code: #{e.message}" end + def connect_websocket(session_id, token, websocket_uri, opts) + opts.extend(HashExtensions) + body = { "sessionId" => session_id, + "token" => token, + "websocket" => { "uri" => websocket_uri }.merge(opts.camelize_keys!) + } + + response = self.class.post("/v2/project/#{@api_key}/connect", { + :body => body.to_json, + :headers => generate_headers("Content-Type" => "application/json") + }) + case response.code + when 200 + response + when 400 + raise ArgumentError, "One of the properties is invalid." + when 403 + raise OpenTokAuthenticationError, "You are not authorized to start the call, check your authentication information." + when 409 + raise OpenTokWebSocketError, "Conflict. Only routed sessions are allowed to initiate Connect Calls." + when 500 + raise OpenTokError, "OpenTok server error." + else + raise OpenTokWebSocketError, "The WebSocket could not be connected" + end + rescue StandardError => e + raise OpenTokError, "Failed to connect to OpenTok. Response code: #{e.message}" + end + def dial(session_id, token, sip_uri, opts) opts.extend(HashExtensions) body = { "sessionId" => session_id, "token" => token, "sip" => { "uri" => sip_uri }.merge(opts.camelize_keys!)