// Path: libs/voice/src/main/java/com/africastalking/voice/CallResponse.java
// public final class CallResponse {
//     public String status;
//     public String phoneNumber;
//     public String errorMessage;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/voice/src/main/java/com/africastalking/voice/QueuedCallsResponse.java
// public final class QueuedCallsResponse {
//     public String phoneNumber;
//     public String queueName;
//     public int numCalls;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }


import com.africastalking.voice.CallResponse;
import com.africastalking.voice.QueuedCallsResponse;
import retrofit2.Call;
import retrofit2.Response;
import java.io.IOException;
    }

    @Override
    protected boolean isInitialized() {
        return sInstance != null;
    }

    @Override
    protected void initService() {
        String baseUrl = "https://voice."+ (isSandbox ? Const.SANDBOX_DOMAIN : Const.PRODUCTION_DOMAIN) + "/";
        voice = mRetrofitBuilder
                .baseUrl(baseUrl)
                .build()
                .create(IVoice.class);
    }

    @Override
    protected void destroyService() {
        if (sInstance != null) {
            sInstance = null;
        }
    }

    /**
     * Initiate phone call
     * @param to Phone number to call
     * @param from Number from which to initiate the call
     * @return {@link com.africastalking.voice.CallResponse CallResponse}
     * @throws IOException
     */
// Path: libs/voice/src/main/java/com/africastalking/voice/CallResponse.java
// public final class CallResponse {
//     public String status;
//     public String phoneNumber;
//     public String errorMessage;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/voice/src/main/java/com/africastalking/voice/QueuedCallsResponse.java
// public final class QueuedCallsResponse {
//     public String phoneNumber;
//     public String queueName;
//     public int numCalls;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }


// Path: libs/voice/src/main/java/com/africastalking/VoiceService.java
import com.africastalking.voice.CallResponse;
import com.africastalking.voice.QueuedCallsResponse;
import retrofit2.Call;
import retrofit2.Response;
import java.io.IOException;

    }

    @Override
    protected boolean isInitialized() {
        return sInstance != null;
    }

    @Override
    protected void initService() {
        String baseUrl = "https://voice."+ (isSandbox ? Const.SANDBOX_DOMAIN : Const.PRODUCTION_DOMAIN) + "/";
        voice = mRetrofitBuilder
                .baseUrl(baseUrl)
                .build()
                .create(IVoice.class);
    }

    @Override
    protected void destroyService() {
        if (sInstance != null) {
            sInstance = null;
        }
    }

    /**
     * Initiate phone call
     * @param to Phone number to call
     * @param from Number from which to initiate the call
     * @return {@link com.africastalking.voice.CallResponse CallResponse}
     * @throws IOException
     */
    public CallResponse call(String to, String from) throws IOException {