diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/voicecall.c | 22 |
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); |