diff options
author | Pekka Pessi <Pekka.Pessi@nokia.com> | 2008-11-05 11:08:32 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2008-12-08 16:10:57 +0200 |
commit | 8ea2f0d99a3a02b416512576efe90ef2bab00901 (patch) | |
tree | fa4f074e75b67e3518385192faf60c26081b3115 /audio | |
parent | 2150eb91a7ccc476e3caa07da4d79ad1a5ed4c71 (diff) |
support *31# and #31# prefixes
Diffstat (limited to 'audio')
-rw-r--r-- | audio/telephony-maemo.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/audio/telephony-maemo.c b/audio/telephony-maemo.c index ddc5a461..48d39b05 100644 --- a/audio/telephony-maemo.c +++ b/audio/telephony-maemo.c @@ -113,6 +113,10 @@ enum network_alpha_tag_name_type { #define CSD_CALL_DIRECTION_OUTGOING 1 #define CSD_CALL_DIRECTION_INCOMING 2 +#define CALL_FLAG_NONE 0 +#define CALL_FLAG_PRESENTATION_ALLOWED 0x01 +#define CALL_FLAG_PRESENTATION_RESTRICTED 0x02 + struct csd_call { char *object_path; int status; @@ -460,12 +464,22 @@ void telephony_answer_call_req(void *telephony_device) void telephony_dial_number_req(void *telephony_device, const char *number) { + uint32_t flags; DBusMessage *msg; debug("telephony-maemo: dial request to %s", number); + if (strncmp(number, "*31#", 4) == 0) { + number += 4; + flags = CALL_FLAG_PRESENTATION_ALLOWED; + } else if (strncmp(number, "#31#", 4) == 0) { + number += 4; + flags = CALL_FLAG_PRESENTATION_RESTRICTED; + } else + flags = CALL_FLAG_NONE; + msg = dbus_message_new_method_call(CSD_CALL_BUS_NAME, CSD_CALL_PATH, - CSD_CALL_INTERFACE, "Create"); + CSD_CALL_INTERFACE, "CreateWith"); if (!msg) { error("Unable to allocate new D-Bus message"); telephony_dial_number_rsp(telephony_device, @@ -473,7 +487,9 @@ void telephony_dial_number_req(void *telephony_device, const char *number) return; } - dbus_message_append_args(msg, DBUS_TYPE_STRING, &number); + dbus_message_append_args(msg, DBUS_TYPE_STRING, &number, + DBUS_TYPE_UINT32, &flags, + DBUS_TYPE_INVALID); g_dbus_send_message(connection, msg); |