diff --git a/audio/Android.mk b/audio/Android.mk
index 8b30613..87266f3 100644
--- a/audio/Android.mk
+++ b/audio/Android.mk
@@ -23,7 +23,8 @@
 LOCAL_SRC_FILES := \
 	audio_hw.c \
 	compress_offload.c \
-	ril_interface.c
+	ril_interface.c \
+	voice.c
 
 # TODO: remove resampler if possible when AudioFlinger supports downsampling from 48 to 8
 LOCAL_SHARED_LIBRARIES := \
diff --git a/audio/audio_hw.c b/audio/audio_hw.c
index 59cc0f4..97acd48 100644
--- a/audio/audio_hw.c
+++ b/audio/audio_hw.c
@@ -48,6 +48,7 @@
 #include <audio_effects/effect_ns.h>
 #include "audio_hw.h"
 #include "compress_offload.h"
+#include "voice.h"
 
 #include "sound/compress_params.h"
 
@@ -4184,10 +4185,12 @@
 static int adev_close(hw_device_t *device)
 {
     struct audio_device *adev = (struct audio_device *)device;
+    voice_session_deinit(adev->voice.session);
     audio_device_ref_count--;
     free(adev->snd_dev_ref_cnt);
     free_mixer_list(adev);
     free(device);
+
     return 0;
 }
 
@@ -4318,6 +4321,16 @@
         }
     }
 
+    adev->voice.session = voice_session_init();
+    if (adev->voice.session == NULL) {
+        ALOGE("%s: Failed to initialize voice session data", __func__);
+
+        free(adev->snd_dev_ref_cnt);
+        free(adev);
+
+        *device = NULL;
+        return -EINVAL;
+    }
 
     *device = &adev->device.common;
 
diff --git a/audio/audio_hw.h b/audio/audio_hw.h
index ab50ef7..96635ec 100644
--- a/audio/audio_hw.h
+++ b/audio/audio_hw.h
@@ -373,6 +373,7 @@
     bool  in_call;
     float volume;
     bool  bluetooth_nrec;
+    void  *session;
 };
 
 struct audio_device {
diff --git a/audio/voice.c b/audio/voice.c
new file mode 100644
index 0000000..57fcc60
--- /dev/null
+++ b/audio/voice.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2017 Christopher N. Hesse <raymanfx@gmail.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "audio_hw_voice"
+#define LOG_NDEBUG 0
+/*#define VERY_VERY_VERBOSE_LOGGING*/
+#ifdef VERY_VERY_VERBOSE_LOGGING
+#define ALOGVV ALOGV
+#else
+#define ALOGVV(a...) do { } while(0)
+#endif
+
+#include <stdlib.h>
+#include <pthread.h>
+
+#include "audio_hw.h"
+#include "voice.h"
+
+struct voice_session *voice_session_init(void)
+{
+    struct voice_session *session;
+    int ret;
+
+    session = calloc(1, sizeof(struct voice_session));
+    if (session == NULL) {
+        return NULL;
+    }
+
+    /* Do this as the last step so we do not have to close it on error */
+    ret = ril_open(&session->ril);
+    if (ret != 0) {
+        free(session);
+        return NULL;
+    }
+
+    return session;
+}
+
+void voice_session_deinit(struct voice_session *session)
+{
+    ril_close(&session->ril);
+    free(session);
+}
diff --git a/audio/voice.h b/audio/voice.h
new file mode 100644
index 0000000..40bd1b1
--- /dev/null
+++ b/audio/voice.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 Christopher N. Hesse <raymanfx@gmail.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef VOICE_CALL_H
+#define VOICE_CALL_H
+
+#include "ril_interface.h"
+
+struct voice_session {
+    struct ril_handle ril;
+
+    struct pcm *pcm_voice_rx;
+    struct pcm *pcm_voice_tx;
+
+    bool wb_amr;
+    bool two_mic_control;
+    bool two_mic_disabled;
+
+    /* from uc_info */
+    audio_devices_t out_device;
+};
+
+struct voice_session *voice_session_init(void);
+void voice_session_deinit(struct voice_session *s);
+
+#endif /* VOICE_CALL_H */
