summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/voicecall.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/voicecall.c b/src/voicecall.c
index 3fe590d4..432c7394 100644
--- a/src/voicecall.c
+++ b/src/voicecall.c
@@ -2803,9 +2803,19 @@ static void emulator_chld_cb(struct ofono_emulator *em,
emulator_generic_cb, em);
return;
default:
- goto fail;
+ break;
}
- break;
+
+ if (chld >= 10 && chld <= 17) {
+ if (vc->driver->release_specific == NULL)
+ goto fail;
+
+ vc->driver->release_specific(vc, chld - 10,
+ emulator_generic_cb, em);
+ return;
+ }
+
+ goto fail;
case OFONO_EMULATOR_REQUEST_TYPE_SUPPORT:
memcpy(buf, "+CHLD=", 6);
@@ -2842,6 +2852,14 @@ static void emulator_chld_cb(struct ofono_emulator *em,
*info++ = '4';
}
+ if (vc->driver->release_specific) {
+ if (info - buf > 6)
+ *info++ = ',';
+
+ *info++ = '1';
+ *info++ = 'X';
+ }
+
*info++ = '\0';
ofono_emulator_send_info(em, buf, TRUE);