diff options
Diffstat (limited to 'plugins/hfp.c')
-rw-r--r-- | plugins/hfp.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/plugins/hfp.c b/plugins/hfp.c index b1b87d3c..1ac9bb42 100644 --- a/plugins/hfp.c +++ b/plugins/hfp.c @@ -24,6 +24,7 @@ #endif #include <string.h> #include <stdlib.h> +#include <stdio.h> #include <errno.h> #include <unistd.h> #include <glib.h> @@ -210,6 +211,7 @@ static int service_level_connection(struct ofono_modem *modem, GIOChannel *io; GAtSyntax *syntax; GAtChat *chat; + char buf[64]; io = g_at_tty_open(tty, NULL); if (!io) { @@ -229,9 +231,9 @@ static int service_level_connection(struct ofono_modem *modem, if (getenv("OFONO_AT_DEBUG")) g_at_chat_set_debug(chat, hfp_debug, NULL); - /* 118 = 0x76, support multiparty calling, enhanced call status - * and enhanced call control */ - g_at_chat_send(chat, "AT+BRSF=118", brsf_prefix, + sprintf(buf, "AT+BRSF=%d", data->hf_features); + + g_at_chat_send(chat, buf, brsf_prefix, brsf_cb, modem, NULL); data->chat = chat; @@ -246,6 +248,12 @@ static int hfp_probe(struct ofono_modem *modem) if (!data) return -ENOMEM; + data->hf_features |= HF_FEATURE_3WAY; + data->hf_features |= HF_FEATURE_CLIP; + data->hf_features |= HF_FEATURE_REMOTE_VOLUME_CONTROL; + data->hf_features |= HF_FEATURE_ENHANCED_CALL_STATUS; + data->hf_features |= HF_FEATURE_ENHANCED_CALL_CONTROL; + ofono_modem_set_data(modem, data); return 0; |