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.BaseResponse; 006import com.plivo.api.models.base.SecondaryResource; 007 008import java.io.IOException; 009 010public class MultiPartyCallParticipant extends SecondaryResource { 011 012 private String billedAmount; 013 private Long billedDuration; 014 private String callUuid; 015 private Boolean coachMode; 016 private Long duration; 017 private Boolean endMpcOnExit; 018 private String exitCause; 019 private String exitTime; 020 private Boolean hold; 021 private String joinTime; 022 private String memberId; 023 private String memberAddress; 024 private String mpcUuid; 025 private Boolean mute; 026 private String resourceUri; 027 private String role; 028 private Boolean startMpcOnEnter; 029 030 public static MultiPartyCallParticipantGet getter(String mpcId, String participantId) { 031 return new MultiPartyCallParticipantGet(mpcId, participantId); 032 } 033 034 public MultiPartyCallParticipant get() throws IOException, PlivoRestException, PlivoValidationException { 035 MultiPartyCallParticipantGet getter = new MultiPartyCallParticipantGet(getId(), getSecondaryId()); 036 return getter.get(); 037 } 038 039 public static MultiPartyCallParticipantUpdate updater(String mpcId, String participantId) { 040 return new MultiPartyCallParticipantUpdate(mpcId, participantId); 041 } 042 043 public MultiPartyCallParticipantUpdate update() throws PlivoValidationException { 044 return new MultiPartyCallParticipantUpdate(getId(), getSecondaryId()); 045 } 046 047 public static MultiPartyCallParticipantKick kicker(String mpcId, String participantId) { 048 return new MultiPartyCallParticipantKick(mpcId, participantId); 049 } 050 051 public void kick() throws PlivoRestException, IOException, PlivoValidationException { 052 MultiPartyCallParticipantKick kicker = new MultiPartyCallParticipantKick(getId(), getSecondaryId()); 053 kicker.delete(); 054 } 055 056 public static MultiPartyCallParticipantRecordingStart recordStarter(String mpcId, String participantId) { 057 return new MultiPartyCallParticipantRecordingStart(mpcId, participantId); 058 } 059 060 public MultiPartyCallParticipantRecordingStart recordStarter(String participantId) throws PlivoValidationException { 061 return new MultiPartyCallParticipantRecordingStart(getId(), getSecondaryId()); 062 } 063 064 public static MultiPartyCallParticipantRecordingStop recordStopper(String mpcId, String participantId) { 065 return new MultiPartyCallParticipantRecordingStop(mpcId, participantId); 066 } 067 068 public void recordStop(String participantId) throws IOException, PlivoRestException, PlivoValidationException { 069 MultiPartyCallParticipantRecordingStop recordStopper = new MultiPartyCallParticipantRecordingStop(getId(), getSecondaryId()); 070 recordStopper.delete(); 071 } 072 073 public static MultiPartyCallParticipantRecordingPause recordPause(String mpcId, String participantId) { 074 return new MultiPartyCallParticipantRecordingPause(mpcId, participantId); 075 } 076 077 public BaseResponse recordPause(String participantId) throws IOException, PlivoRestException, PlivoValidationException { 078 return new MultiPartyCallParticipantRecordingPause(getId(), getSecondaryId()).update(); 079 } 080 081 public static MultiPartyCallParticipantRecordingResume recordResume(String mpcId, String participantId) { 082 return new MultiPartyCallParticipantRecordingResume(mpcId, participantId); 083 } 084 085 public BaseResponse recordResume(String participantId) throws IOException, PlivoRestException, PlivoValidationException { 086 return new MultiPartyCallParticipantRecordingPause(getId(), getSecondaryId()).update(); 087 } 088 089 public String getBilledAmount() { 090 return billedAmount; 091 } 092 093 public Long getBilledDuration() { 094 return billedDuration; 095 } 096 097 public String getCallUuid() { 098 return callUuid; 099 } 100 101 public Boolean getCoachMode() { 102 return coachMode; 103 } 104 105 public Long getDuration() { 106 return duration; 107 } 108 109 public Boolean getEndMpcOnExit() { 110 return endMpcOnExit; 111 } 112 113 public String getExitCause() { 114 return exitCause; 115 } 116 117 public String getExitTime() { 118 return exitTime; 119 } 120 121 public Boolean getHold() { 122 return hold; 123 } 124 125 public String getJoinTime() { 126 return joinTime; 127 } 128 129 public String getMemberId() { 130 return memberId; 131 } 132 public String getmemberAddress() { return memberAddress; } 133 134 public String getMpcUuid() { 135 return mpcUuid; 136 } 137 138 public Boolean getMute() { 139 return mute; 140 } 141 142 public String getResourceUri() { 143 return resourceUri; 144 } 145 146 public String getRole() { 147 return role; 148 } 149 150 public Boolean getStartMpcOnEnter() { 151 return startMpcOnEnter; 152 } 153 154 @Override 155 public String getSecondaryId() { 156 return getMemberId(); 157 } 158 159 @Override 160 public String getId() throws PlivoValidationException { 161 return MultiPartyCallUtils.mpcUuid(getMpcUuid()); 162 } 163}