001package com.plivo.api.models.multipartycall;
002
003import com.plivo.api.exceptions.PlivoValidationException;
004import com.plivo.api.models.base.BaseResponse;
005import com.plivo.api.models.base.VoiceUpdater;
006import retrofit2.Call;
007
008import java.util.Collections;
009
010public class MultiPartyCallStart extends VoiceUpdater<BaseResponse> {
011
012  public MultiPartyCallStart(String mpcId) {
013    super(mpcId);
014  }
015
016  @Override
017  protected Call<BaseResponse> obtainCall() throws PlivoValidationException {
018    MultiPartyCallUtils.validMultiPartyCallId(id);
019    return client().getVoiceApiService().mpcStart(client().getAuthId(), id, Collections.singletonMap("status", "active"));
020  }
021
022  @Override
023  protected Call<BaseResponse> obtainFallback1Call() throws PlivoValidationException {
024    MultiPartyCallUtils.validMultiPartyCallId(id);
025    return client().getVoiceFallback1Service().mpcStart(client().getAuthId(), id, Collections.singletonMap("status", "active"));
026  }
027
028  @Override
029  protected Call<BaseResponse> obtainFallback2Call() throws PlivoValidationException {
030    MultiPartyCallUtils.validMultiPartyCallId(id);
031    return client().getVoiceFallback2Service().mpcStart(client().getAuthId(), id, Collections.singletonMap("status", "active"));
032  }
033}