com.bandwidth.voice.bxml.verbs.StartRecording Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bandwidth-sdk Show documentation
Show all versions of bandwidth-sdk Show documentation
The official client SDK for Bandwidth's Voice, Messaging, MFA, and WebRTC APIs
package com.bandwidth.voice.bxml.verbs;
import lombok.Builder;
import java.net.URI;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
/**
* The StartRecording verb allows a segment of a call to be recorded while other verbs are executing.
*
* All audio on both sides of the call will be recorded until the call ends or the verb is used or the verb is used.
*/
@Builder
@XmlType(name = StartRecording.TYPE_NAME)
public class StartRecording implements Verb {
public static final String TYPE_NAME = "StartRecording";
/**
* (optional) A boolean value. If true, the recording will be submitted for transcription upon completion. Defaults to false.
*/
@XmlAttribute
private boolean transcribe;
/**
* (optional) URL to send the transcriptionAvailable event to.
*/
@XmlAttribute
private URI transcriptionAvailableUrl;
/**
* (optional) The HTTP method to use for the request to transcriptionAvailableUrl. GET or POST. Default Value is POST.
*/
@XmlAttribute
private Method transcriptionAvailableMethod;
/**
* (optional) URL to send the Record Complete event to once it has ended. Accepts BXML.
*/
@XmlAttribute
private URI recordingAvailableUrl;
/**
* (optional) The HTTP method to use for the request to recordingAvailableUrl. GET or POST. Default Value is POST.
*/
@XmlAttribute
private Method recordingAvailableMethod;
/**
* (optional) A custom string that will be sent with this and all future callbacks unless overwritten by a future tag attribute or cleared.
*
* May be cleared by setting tag=""
*
* Max length 256 characters.
*/
@XmlAttribute
private String tag;
/**
* (optional) The username to send in the HTTP request to recordCompleteUrl or recordingAvailableUrl. If specified, the URLs must be TLS-encrypted (i.e., https).
*/
@XmlAttribute
protected String username;
/**
* (optional) The password to send in the HTTP request to recordCompleteUrl or recordingAvailableUrl. If specified, the URLs must be TLS-encrypted (i.e., https).
*/
@XmlAttribute
protected String password;
/**
* (optional) A boolean value indicating whether or not the recording file should separate each side of the call into its own audio channel. Default value is false. true results in two channels.
*/
@XmlAttribute
protected boolean multiChannel;
/**
* (optional) The audio format that the recording will be saved as: mp3 or wav. Default value is wav.
*/
@XmlAttribute
protected String fileFormat;
public static class StartRecordingBuilder {
/**
* (required) URL to send the transcriptionAvailable event to.
*/
public StartRecordingBuilder transcriptionAvailableUrl(URI uri ){
this.transcriptionAvailableUrl = uri;
return this;
}
/**
* (required) URL to send the transcriptionAvailable event to.
*/
public StartRecordingBuilder transcriptionAvailableUrl(String uri){
return transcriptionAvailableUrl(URI.create(uri));
}
/**
* (optional) The HTTP method to use for the request to transcriptionAvailableUrl. GET or POST. Default Value is POST.
*/
public StartRecordingBuilder transcriptionAvailableMethod(Method method){
this.transcriptionAvailableMethod = method;
return this;
}
/**
* (optional) The HTTP method to use for the request to transcriptionAvailableUrl. GET or POST. Default Value is POST. Converts String to Method using Method.fromValue(method)
*/
public StartRecordingBuilder transcriptionAvailableMethod(String method){
return transcriptionAvailableMethod(Method.fromValue(method));
}
/**
* (required) URL to send the Recording Available event to once it has been processed. Does not accept BXML.
*/
public StartRecordingBuilder recordingAvailableUrl(URI uri ){
this.recordingAvailableUrl = uri;
return this;
}
/**
* (required) URL to send the Recording Available event to once it has been processed. Does not accept BXML.
*/
public StartRecordingBuilder recordingAvailableUrl(String uri){
return recordingAvailableUrl(URI.create(uri));
}
/**
* (optional) The HTTP method to use for the request to recordingAvailableUrl. GET or POST. Default Value is POST.
*/
public StartRecordingBuilder recordingAvailableMethod(Method method){
this.recordingAvailableMethod = method;
return this;
}
/**
* (optional) The HTTP method to use for the request to recordingAvailableUrl. GET or POST. Default Value is POST. Converts String to Method using Method.fromValue(method)
*/
public StartRecordingBuilder recordingAvailableMethod(String method){
return recordingAvailableMethod(Method.fromValue(method));
}
}
}