HFP spec only covers ATD behaviour for vocecalls.
If a string starts with '8' or '#' this is a USSD code
Reject a request like that.
---
 drivers/hfpmodem/voicecall.c | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/drivers/hfpmodem/voicecall.c b/drivers/hfpmodem/voicecall.c
index 
f1e9096940328f05415cf5a6f3bed9ceaf447fe3..1b34f76646fc78b835960959b047e4a2d3a739fd
 100644
--- a/drivers/hfpmodem/voicecall.c
+++ b/drivers/hfpmodem/voicecall.c
@@ -695,6 +695,40 @@ error:
        CALLBACK_WITH_FAILURE(cb, data);
 }
 
+static ofono_bool_t hfp_valid_number_format(const char *number)
+{
+       int len = strlen(number);
+       int begin = 0;
+       int i;
+
+       if (!len)
+               return FALSE;
+
+       if (number[0] == '+')
+               begin = 1;
+
+       if (number[0] == '*' || number[0] == '#')
+               return FALSE;
+
+       if (begin == len)
+               return FALSE;
+
+       if ((len - begin) > OFONO_MAX_PHONE_NUMBER_LENGTH)
+               return FALSE;
+
+       for (i = begin; i < len; i++) {
+               if (number[i] >= '0' && number[i] <= '9')
+                       continue;
+
+               if (number[i] == '*' || number[i] == '#')
+                       continue;
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
 static void no_carrier_notify(GAtResult *result, gpointer user_data)
 {
        DBG("");
@@ -1252,7 +1286,8 @@ static struct ofono_voicecall_driver driver = {
        .transfer               = hfp_transfer,
        .deflect                = NULL,
        .swap_without_accept    = NULL,
-       .send_tones             = hfp_send_dtmf
+       .send_tones             = hfp_send_dtmf,
+       .validate_dial = hfp_valid_number_format
 };
 
 void hfp_voicecall_init(void)
-- 
1.7.11.7

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Prof. Dr. Hermann Eul
Chairperson of the Supervisory Board: Tiffany Doon Silva
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono

Reply via email to