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}