HFP is updated by NO CARRIER response accordingly to HFP 1.5 p.68.
---
audio/headset.c | 17 ++++++++++-------
1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/audio/headset.c b/audio/headset.c
index c605e9d..2e4f6ca 100644
--- a/audio/headset.c
+++ b/audio/headset.c
@@ -687,14 +687,17 @@ static int telephony_generic_rsp(struct audio_device *device, cme_error_t err)
struct headset *hs = device->headset;
struct headset_slc *slc = hs->slc;
- if (err != CME_ERROR_NONE) {
- if (slc->cme_enabled)
- return headset_send(hs, "\r\n+CME ERROR: %d\r\n", err);
- else
- return headset_send(hs, "\r\nERROR\r\n");
- }
+ if ((err != CME_ERROR_NONE) && slc->cme_enabled)
+ return headset_send(hs, "\r\n+CME ERROR: %d\r\n", err);
- return headset_send(hs, "\r\nOK\r\n");
+ switch (err) {
+ case CME_ERROR_NONE:
+ return headset_send(hs, "\r\nOK\r\n");
+ case CME_ERROR_NO_NETWORK_SERVICE:
+ return headset_send(hs, "\r\nNO CARRIER\r\n");
+ default:
+ return headset_send(hs, "\r\nERROR\r\n");
+ }
}
int telephony_event_reporting_rsp(void *telephony_device, cme_error_t err)
--
1.7.1
Hi Dmitriy,
On Mon, Apr 18, 2011, Dmitriy Paliy wrote:
> HFP is updated by NO CARRIER response accordingly to HFP 1.5 p.68.
> ---
> audio/headset.c | 17 ++++++++++-------
> 1 files changed, 10 insertions(+), 7 deletions(-)
Both patches have been pushed upstream after I fixed your author email
(please fix your git config) and a minor coding style issue in the
second patch.
Johan
---
audio/telephony-maemo6.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/audio/telephony-maemo6.c b/audio/telephony-maemo6.c
index be2fb87..b32e8ad 100644
--- a/audio/telephony-maemo6.c
+++ b/audio/telephony-maemo6.c
@@ -630,9 +630,14 @@ static void create_call_reply(DBusPendingCall *call, void *user_data)
if (dbus_set_error_from_message(&err, reply)) {
error("csd replied with an error: %s, %s",
err.name, err.message);
- dbus_error_free(&err);
- telephony_dial_number_rsp(telephony_device,
+ if (g_strcmp0(err.name,
+ "com.nokia.csd.Call.Error.CSInactive") == 0)
+ telephony_dial_number_rsp(telephony_device,
+ CME_ERROR_NO_NETWORK_SERVICE);
+ else
+ telephony_dial_number_rsp(telephony_device,
CME_ERROR_AG_FAILURE);
+ dbus_error_free(&err);
} else
telephony_dial_number_rsp(telephony_device, CME_ERROR_NONE);
--
1.7.1