001package com.plivo.api.models.multipartycall;
002
003import com.plivo.api.exceptions.PlivoValidationException;
004import com.plivo.api.exceptions.PlivoRestException;
005import com.plivo.api.models.base.BaseResource;
006import com.plivo.api.models.base.BaseResponse;
007
008import java.io.IOException;
009import java.util.List;
010
011public class MultiPartyCall extends BaseResource {
012  private String billedAmount;
013  private Long billedDuration;
014  private String creationTime;
015  private Long duration;
016  private String endTime;
017  private String friendlyName;
018  private String mpcUuid;
019  private String participants;
020  private String recording;
021  private String resourceUri;
022  private String startTime;
023  private String status;
024  private String stayAlone;
025  private String subAccount;
026  private String terminationCause;
027  private Long terminationCauseCode;
028
029  public static MultiPartyCallList lister() {
030    return new MultiPartyCallList();
031  }
032
033  public static MultiPartyCallGet getter(String mpcId) {
034    return new MultiPartyCallGet(mpcId);
035  }
036
037  public MultiPartyCall get() throws IOException, PlivoRestException, PlivoValidationException {
038    MultiPartyCallGet getter = MultiPartyCall.getter(getId());
039    return getter.get();
040  }
041
042  public static MultiPartyCallStart starter(String mpcId) {
043    return new MultiPartyCallStart(mpcId);
044  }
045
046  public BaseResponse start() throws IOException, PlivoRestException, PlivoValidationException {
047    MultiPartyCallStart start = MultiPartyCall.starter(getId());
048    return start.update();
049  }
050
051  public static MultiPartyCallStop stopper(String mpcId) {
052    return new MultiPartyCallStop(mpcId);
053  }
054
055  public void stop() throws IOException, PlivoRestException, PlivoValidationException {
056    MultiPartyCallStop stop = MultiPartyCall.stopper(getId());
057    stop.delete();
058  }
059
060  public static MultiPartyCallParticipantAdd addParticipant(String mpcId, String role, String from, List<String> to) throws PlivoValidationException {
061    return new MultiPartyCallParticipantAdd(mpcId, role, from, to);
062  }
063
064  public static MultiPartyCallParticipantAdd addParticipant(String mpcId, String role, String callUuid) {
065    return new MultiPartyCallParticipantAdd(mpcId, role, callUuid);
066  }
067
068  public MultiPartyCallParticipantAdd addParticipant(String role, String from, List<String> to) throws PlivoValidationException {
069    return new MultiPartyCallParticipantAdd(getId(), role, from, to);
070  }
071
072  public MultiPartyCallParticipantAdd addParticipant(String role, String callUuid) throws PlivoValidationException {
073    return new MultiPartyCallParticipantAdd(getId(), role, callUuid);
074  }
075
076  public static MultiPartyCallParticipantList participantList(String mpcId) {
077    return new MultiPartyCallParticipantList(mpcId);
078  }
079
080  public MultiPartyCallParticipantList participantList() throws PlivoValidationException {
081    return new MultiPartyCallParticipantList(getId());
082  }
083
084  public static MultiPartyCallRecordingStart recordStarter(String mpcId) {
085    return new MultiPartyCallRecordingStart(mpcId);
086  }
087
088  public MultiPartyCallRecordingStart recordStarter() throws PlivoValidationException {
089    return new MultiPartyCallRecordingStart(getId());
090  }
091
092  public static MultiPartyCallRecordingStop recordStopper(String mpcId) {
093    return new MultiPartyCallRecordingStop(mpcId);
094  }
095
096  public void recordStop() throws IOException, PlivoRestException, PlivoValidationException {
097    MultiPartyCallRecordingStop recordStopper = new MultiPartyCallRecordingStop(getId());
098    recordStopper.delete();
099  }
100
101  public static MultiPartyCallRecordingPause recordPause(String mpcId) {
102    return new MultiPartyCallRecordingPause(mpcId);
103  }
104
105  public BaseResponse recordPause() throws IOException, PlivoRestException, PlivoValidationException {
106    return new MultiPartyCallRecordingPause(getId()).update();
107  }
108
109  public static MultiPartyCallRecordingResume recordResume(String mpcId) {
110    return new MultiPartyCallRecordingResume(mpcId);
111  }
112
113  public BaseResponse recordResume() throws IOException, PlivoRestException, PlivoValidationException {
114    return new MultiPartyCallRecordingResume(getId()).update();
115  }
116
117  public static MultiPartyCallParticipantRecordingStart participantRecordStarter(String mpcId, String participantId) {
118    return new MultiPartyCallParticipantRecordingStart(mpcId, participantId);
119  }
120
121  public MultiPartyCallParticipantRecordingStart participantRecordStarter(String participantId) throws PlivoValidationException {
122    return new MultiPartyCallParticipantRecordingStart(getId(), participantId);
123  }
124
125  public static MultiPartyCallParticipantRecordingStop participantRecordStopper(String mpcId, String participantId) {
126    return new MultiPartyCallParticipantRecordingStop(mpcId, participantId);
127  }
128
129  public void participantRecordStop(String participantId) throws IOException, PlivoRestException, PlivoValidationException {
130    MultiPartyCallParticipantRecordingStop participantRecordStopper = new MultiPartyCallParticipantRecordingStop(getId(), participantId);
131    participantRecordStopper.delete();
132  }
133
134  public static MultiPartyCallParticipantRecordingPause participantRecordPause(String mpcId, String participantId) {
135    return new MultiPartyCallParticipantRecordingPause(mpcId, participantId);
136  }
137
138  public BaseResponse participantRecordPause(String participantId) throws IOException, PlivoRestException, PlivoValidationException {
139    return new MultiPartyCallParticipantRecordingPause(getId(), participantId).update();
140  }
141
142  public static MultiPartyCallParticipantRecordingResume participantRecordResume(String mpcId, String participantId) {
143    return new MultiPartyCallParticipantRecordingResume(mpcId, participantId);
144  }
145
146  public BaseResponse participantRecordResume(String participantId) throws IOException, PlivoRestException, PlivoValidationException {
147    return new MultiPartyCallParticipantRecordingPause(getId(), participantId).update();
148  }
149
150  public static MultiPartyCallParticipantGet participantGetter(String mpcId, String participantId) {
151    return new MultiPartyCallParticipantGet(mpcId, participantId);
152  }
153
154  public MultiPartyCallParticipant participantGet(String participantId) throws PlivoRestException, IOException, PlivoValidationException {
155    MultiPartyCallParticipantGet getter = new MultiPartyCallParticipantGet(getId(), participantId);
156    return getter.get();
157  }
158
159  public static MultiPartyCallParticipantUpdate participantUpdater(String mpcId, String participantId) {
160    return new MultiPartyCallParticipantUpdate(mpcId, participantId);
161  }
162
163  public MultiPartyCallParticipantUpdate participantUpdate(String participantId) throws PlivoValidationException {
164    return new MultiPartyCallParticipantUpdate(getId(), participantId);
165  }
166
167  public static MultiPartyCallParticipantKick participantKicker(String mpcId, String participantId) {
168    return new MultiPartyCallParticipantKick(mpcId, participantId);
169  }
170
171  public void participantKick(String participantId) throws PlivoRestException, IOException, PlivoValidationException {
172    MultiPartyCallParticipantKick kicker = new MultiPartyCallParticipantKick(getId(), participantId);
173    kicker.delete();
174  }
175
176  public static MultiPartyCallStartPlayAudio startPlayAudio(String mpcId, String participantId) {
177    return new MultiPartyCallStartPlayAudio(mpcId, participantId);
178  }
179
180  public static MultiPartyCallStopPlayAudio stopPlayAudio(String mpcId, String participantId) {
181    return new MultiPartyCallStopPlayAudio(mpcId,participantId);
182  }
183
184  public String getBilledAmount() {
185    return billedAmount;
186  }
187
188  public Long getBilledDuration() {
189    return billedDuration;
190  }
191
192  public String getCreationTime() {
193    return creationTime;
194  }
195
196  public Long getDuration() {
197    return duration;
198  }
199
200  public String getEndTime() {
201    return endTime;
202  }
203
204  public String getFriendlyName() {
205    return friendlyName;
206  }
207
208  public String getMpcUuid() {
209    return mpcUuid;
210  }
211
212  public String getParticipants() {
213    return participants;
214  }
215
216  public String getRecording() {
217    return recording;
218  }
219
220  public String getResourceUri() {
221    return resourceUri;
222  }
223
224  public String getStartTime() {
225    return startTime;
226  }
227
228  public String getStatus() {
229    return status;
230  }
231
232  public String getStayAlone() {
233    return stayAlone;
234  }
235
236  public String getSubAccount() {
237    return subAccount;
238  }
239
240  public String getTerminationCause() {
241    return terminationCause;
242  }
243
244  public Long getTerminationCauseCode() {
245    return terminationCauseCode;
246  }
247
248  @Override
249  public String getId() throws PlivoValidationException {
250    return MultiPartyCallUtils.mpcUuid(getMpcUuid());
251  }
252}