Retrofit 2.0.2 carga de imágenes usando multiparte

Soy nuevo en RetrofitQuiero subir una sola imagen con diferentes parámetros como name, dob, mobile. No sé dónde me equivoco. Por favor, guíame. Yo sigo estoENLAZAR

Aqui esta mi codigo

interfaz

 @Multipart
    @POST("signup")
    Call<ResponseBody> getSignup(@Part("name") RequestBody name, @Part("email") RequestBody email, @Part("dob") RequestBody dob, @Part("phone") RequestBody phone, @Part("IMEI") RequestBody IMEI, @Part MultipartBody.Part file);

código de carga

 // create RequestBody instance from file
                RequestBody requestFile =
                        RequestBody.create(MediaType.parse("multipart/form-data"), file);

                // MultipartBody.Part is used to send also the actual file name
                MultipartBody.Part body =
                        MultipartBody.Part.createFormData("image", file.getName(), requestFile);

                RequestBody name =
                        RequestBody.create(
                                MediaType.parse("multipart/form-data"), et_name.getText().toString());

                RequestBody email =
                        RequestBody.create(
                                MediaType.parse("multipart/form-data"), et_email.getText().toString());

                RequestBody dob =
                        RequestBody.create(
                                MediaType.parse("multipart/form-data"), et_dob.getText().toString());

                RequestBody mobile =
                        RequestBody.create(
                                MediaType.parse("multipart/form-data"), et_mobile.getText().toString());


                RequestBody imei =
                        RequestBody.create(
                                MediaType.parse("multipart/form-data"), IMEI);

                Call<ResponseBody> responseBodyCall = apiInterface.getSignup(name, email, dob, mobile, imei, body);
                responseBodyCall.enqueue(new Callback<ResponseBody>() {
                    @Override
                    public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

                        String response_two = response.body().toString();

                        Log.i(TAG, "onResponse: " + response_two);
//                        startActivity(new Intent(this, OTPActivity.class));
                    }

                    @Override
                    public void onFailure(Call<ResponseBody> call, Throwable t) {
                        Log.e("Upload error:", t.getMessage());
                    }
                });

Respuestas a la pregunta(4)

Su respuesta a la pregunta