001package com.plivo.api.models.multipartycall; 002 003import com.plivo.api.exceptions.PlivoValidationException; 004import com.plivo.api.models.base.VoiceUpdater; 005import com.plivo.api.validators.OneOf; 006import com.plivo.api.validators.UrlValues; 007import com.plivo.api.validators.Validate; 008import retrofit2.Call; 009 010public class MultiPartyCallParticipantRecordingStart extends VoiceUpdater<MultiPartyCallRecordingStartResponse> { 011 012 @OneOf(message = "should be one of [mp3, wav]", options = {"mp3", "wav"}) 013 private String fileFormat = "mp3"; 014 @UrlValues 015 private String recordingCallbackUrl; 016 @OneOf(message = "should be one of [GET, POST]", options = {"GET", "POST"}) 017 private String recordingCallbackMethod = "POST"; 018 019 public MultiPartyCallParticipantRecordingStart(String mpcId, String secondaryId) { 020 super(mpcId, secondaryId); 021 } 022 023 public String fileFormat() { 024 return fileFormat; 025 } 026 027 public String recordingCallbackUrl() { 028 return recordingCallbackUrl; 029 } 030 031 public String recordingCallbackMethod() { 032 return recordingCallbackMethod; 033 } 034 035 public MultiPartyCallParticipantRecordingStart fileFormat(String fileFormat) { 036 this.fileFormat = fileFormat; 037 return this; 038 } 039 040 public MultiPartyCallParticipantRecordingStart recordingCallbackUrl(String recordingCallbackUrl) { 041 this.recordingCallbackUrl = recordingCallbackUrl; 042 return this; 043 } 044 045 public MultiPartyCallParticipantRecordingStart recordingCallbackMethod(String recordingCallbackMethod) { 046 this.recordingCallbackMethod = recordingCallbackMethod; 047 return this; 048 } 049 050 @Override 051 protected Call<MultiPartyCallRecordingStartResponse> obtainCall() throws PlivoValidationException { 052 MultiPartyCallUtils.validMultiPartyCallId(id); 053 Validate.check(this); 054 return client().getVoiceApiService().mpcParticipantStartRecording(client().getAuthId(), id, secondaryId, this); 055 } 056 057 @Override 058 protected Call<MultiPartyCallRecordingStartResponse> obtainFallback1Call() throws PlivoValidationException { 059 MultiPartyCallUtils.validMultiPartyCallId(id); 060 Validate.check(this); 061 return client().getVoiceFallback1Service().mpcParticipantStartRecording(client().getAuthId(), id, secondaryId, this); 062 } 063 064 @Override 065 protected Call<MultiPartyCallRecordingStartResponse> obtainFallback2Call() throws PlivoValidationException { 066 MultiPartyCallUtils.validMultiPartyCallId(id); 067 Validate.check(this); 068 return client().getVoiceFallback2Service().mpcParticipantStartRecording(client().getAuthId(), id, secondaryId, this); 069 } 070}