001package com.plivo.api.models.call;
002
003import com.plivo.api.models.base.BaseResource;
004import com.plivo.api.models.call.actions.CallDtmfCreator;
005import com.plivo.api.models.call.actions.CallPlayCreator;
006import com.plivo.api.models.call.actions.CallPlayDeleter;
007import com.plivo.api.models.call.actions.CallRecordCreator;
008import com.plivo.api.models.call.actions.CallRecordDeleter;
009import com.plivo.api.models.call.actions.CallSpeakCreator;
010import com.plivo.api.models.call.actions.CallSpeakDeleter;
011import java.util.List;
012
013// TODO Date
014public class Call extends BaseResource {
015
016  private String answerTime;
017  private Long billDuration;
018  private Long billedDuration;
019  private CallDirection callDirection;
020  private Long callDuration;
021  private String callState;
022  private String callUuid;
023  private String endTime;
024  private String fromNumber;
025  private String initiationTime;
026  private String parentCallUuid;
027  private String resourceUri;
028  private String toNumber;
029  private String totalAmount;
030  private String totalRate;
031  private String hangupSource;
032  private String hangupCauseName;
033  private Integer hangupCauseCode;
034
035  public static CallCreator creator(String from, List<String> to, String answerUrl) {
036    return new CallCreator(from, to, answerUrl);
037  }
038
039  public static CallDeleter deleter(String id) {
040    return new CallDeleter(id);
041  }
042
043  public static CallUpdater updater(String id) {
044    return new CallUpdater(id);
045  }
046
047  public static CallUpdater transferrer(String id) {
048    return new CallUpdater(id);
049  }
050
051  public static CallLister lister() {
052    return new CallLister();
053  }
054
055  public static CallRecordCreator recorder(String callUuid) {
056    return new CallRecordCreator(callUuid);
057  }
058
059  public static CallRecordDeleter recordStopper(String callUuid) {
060    return new CallRecordDeleter(callUuid);
061  }
062
063  public static CallPlayCreator player(String callUuid, List<String> urls) {
064    return new CallPlayCreator(callUuid, urls);
065  }
066
067  public static CallPlayDeleter playStopper(String callUuid) {
068    return new CallPlayDeleter(callUuid);
069  }
070
071  public static CallSpeakCreator speaker(String callUuid, String text) {
072    return new CallSpeakCreator(callUuid, text);
073  }
074
075  public static CallSpeakDeleter speakStopper(String callUuid) {
076    return new CallSpeakDeleter(callUuid);
077  }
078
079  public static CallDtmfCreator digitSender(String callUuid, String digits) {
080    return new CallDtmfCreator(callUuid, digits);
081  }
082
083  public static CallGetter getter(String id) {
084    return new CallGetter(id);
085  }
086
087  public String getAnswerTime() {
088    return answerTime;
089  }
090
091  public Long getBillDuration() {
092    return billDuration;
093  }
094
095  public Long getBilledDuration() {
096    return billedDuration;
097  }
098
099  public CallDirection getCallDirection() {
100    return callDirection;
101  }
102
103  public Long getCallDuration() {
104    return callDuration;
105  }
106
107  public String getcallState() {
108    return callState;
109  }
110
111  public String getCallUuid() {
112    return callUuid;
113  }
114
115  public String getEndTime() {
116    return endTime;
117  }
118
119  public String getFromNumber() {
120    return fromNumber;
121  }
122
123  public String getInitiationTime() {
124    return initiationTime;
125  }
126
127  public String getParentCallUuid() {
128    return parentCallUuid;
129  }
130
131  public String getResourceUri() {
132    return resourceUri;
133  }
134
135  public String getToNumber() {
136    return toNumber;
137  }
138
139  public String getTotalAmount() {
140    return totalAmount;
141  }
142
143  public String getTotalRate() {
144    return totalRate;
145  }
146
147  public String getHangupCauseName(){
148    return hangupCauseName;
149  }
150
151  public String getHangupSource(){
152    return hangupSource;
153  }
154
155  public Integer getHangupCauseCode(){
156    return hangupCauseCode;
157  }
158
159  public CallDeleter deleter() {
160    return Call.deleter(callUuid);
161  }
162
163  public CallUpdater updater() {
164    return Call.updater(callUuid);
165  }
166
167  public CallUpdater transferrer() {
168    return Call.updater(callUuid);
169  }
170
171  public CallRecordCreator recorder() {
172    return new CallRecordCreator(callUuid);
173  }
174
175  public CallRecordDeleter recordStopper() {
176    return new CallRecordDeleter(callUuid);
177  }
178
179  public CallPlayCreator player(List<String> urls) {
180    return new CallPlayCreator(callUuid, urls);
181  }
182
183  public CallPlayDeleter playStopper() {
184    return new CallPlayDeleter(callUuid);
185  }
186
187  public CallSpeakCreator speaker(String text) {
188    return new CallSpeakCreator(callUuid, text);
189  }
190
191  public RequestDeleter canceller() {
192    return Call.canceller(callUuid);
193  }
194
195  public static RequestDeleter canceller(String callUuid) {
196    return new RequestDeleter(callUuid);
197  }
198
199  public CallSpeakDeleter speakStopper() {
200    return new CallSpeakDeleter(callUuid);
201  }
202
203  public CallDtmfCreator digitSender(String digits) {
204    return new CallDtmfCreator(callUuid, digits);
205  }
206
207  @Override
208  public String getId() {
209    return getCallUuid();
210  }
211}