summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorPekka Pessi <Pekka.Pessi@nokia.com>2008-11-05 11:08:32 +0200
committerJohan Hedberg <johan.hedberg@nokia.com>2008-12-08 16:10:57 +0200
commit8ea2f0d99a3a02b416512576efe90ef2bab00901 (patch)
treefa4f074e75b67e3518385192faf60c26081b3115 /audio
parent2150eb91a7ccc476e3caa07da4d79ad1a5ed4c71 (diff)
support *31# and #31# prefixes
Diffstat (limited to 'audio')
-rw-r--r--audio/telephony-maemo.c20
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);