001package com.plivo.api.models.call.actions; 002 003import com.plivo.api.PlivoClient; 004import com.plivo.api.exceptions.PlivoRestException; 005import com.plivo.api.models.base.VoiceCreator; 006 007import java.io.IOException; 008 009public class CallStreamCreator extends VoiceCreator<CallStreamCreateResponse> { 010 011 private final String id; 012 private String serviceUrl; 013 private Boolean bidirectional; 014 private String audioTrack; 015 private Integer streamTimeout; 016 private String statusCallbackUrl; 017 private String statusCallbackMethod; 018 private String contentType; 019 private String extraHeaders; 020 021 public CallStreamCreator(String id, String serviceUrl) { 022 this.id = id; 023 this.serviceUrl = serviceUrl; 024 } 025 026 @Override 027 protected retrofit2.Call<CallStreamCreateResponse> obtainCall() { 028 return client().getVoiceApiService().callStreamCreate(client().getAuthId(), id, this); 029 } 030 031 @Override 032 protected retrofit2.Call<CallStreamCreateResponse> obtainFallback1Call() { 033 return client().getVoiceFallback1Service().callStreamCreate(client().getAuthId(), id, this); 034 } 035 036 @Override 037 protected retrofit2.Call<CallStreamCreateResponse> obtainFallback2Call() { 038 return client().getVoiceFallback2Service().callStreamCreate(client().getAuthId(), id, this); 039 } 040 041 public CallStreamCreateResponse stream() throws IOException, PlivoRestException { 042 return create(); 043 } 044 045 @Override 046 public CallStreamCreator client(final PlivoClient plivoClient) { 047 this.plivoClient = plivoClient; 048 return this; 049 } 050 051 public CallStreamCreator serviceUrl(final String serviceUrl) { 052 this.serviceUrl = serviceUrl; 053 return this; 054 } 055 056 public CallStreamCreator bidirectional(final Boolean bidirectional) { 057 this.bidirectional = bidirectional; 058 return this; 059 } 060 public CallStreamCreator audioTrack(final String audioTrack) { 061 this.audioTrack = audioTrack; 062 return this; 063 } 064 public CallStreamCreator streamTimeout(final Integer streamTimeout) { 065 this.streamTimeout = streamTimeout; 066 return this; 067 } 068 public CallStreamCreator statusCallbackUrl(final String statusCallbackUrl) { 069 this.statusCallbackUrl = statusCallbackUrl; 070 return this; 071 } 072 public CallStreamCreator statusCallbackMethod(final String statusCallbackMethod) { 073 this.statusCallbackMethod = statusCallbackMethod; 074 return this; 075 } 076 077 public CallStreamCreator contentType(final String contentType) { 078 this.contentType = contentType; 079 return this; 080 } 081 082 public CallStreamCreator extraHeaders(final String extraHeaders) { 083 this.extraHeaders = extraHeaders; 084 return this; 085 } 086 087 public String serviceUrl() { 088 return this.serviceUrl; 089 } 090 091 public Boolean bidirectional() { 092 return this.bidirectional; 093 } 094 095 public String audioTrack() { 096 return this.audioTrack; 097 } 098 099 public Integer streamTimeout() { 100 return this.streamTimeout; 101 } 102 103 public String statusCallbackUrl() { 104 return this.statusCallbackUrl; 105 } 106 107 public String statusCallbackMethod() { 108 return this.statusCallbackMethod; 109 } 110 111 public String contentType() { 112 return this.contentType; 113 } 114 115 public String extraHeaders() { 116 return this.extraHeaders; 117 } 118}