mirror of git://git.sysmocom.de/ofono
voicecall: api for set/clear alpha and icon id
This commit is contained in:
parent
73b711551c
commit
14b003c7d9
|
@ -266,6 +266,12 @@ int __ofono_voicecall_dial(struct ofono_voicecall *vc,
|
||||||
ofono_voicecall_dial_cb_t cb, void *user_data);
|
ofono_voicecall_dial_cb_t cb, void *user_data);
|
||||||
void __ofono_voicecall_dial_cancel(struct ofono_voicecall *vc);
|
void __ofono_voicecall_dial_cancel(struct ofono_voicecall *vc);
|
||||||
|
|
||||||
|
void __ofono_voicecall_set_alpha_and_icon_id(struct ofono_voicecall *vc,
|
||||||
|
const char *addr, int addr_type,
|
||||||
|
const char *message,
|
||||||
|
unsigned char icon_id);
|
||||||
|
void __ofono_voicecall_clear_alpha_and_icon_id(struct ofono_voicecall *vc);
|
||||||
|
|
||||||
int __ofono_voicecall_tone_send(struct ofono_voicecall *vc,
|
int __ofono_voicecall_tone_send(struct ofono_voicecall *vc,
|
||||||
const char *tone_str,
|
const char *tone_str,
|
||||||
ofono_voicecall_tone_cb_t cb, void *user_data);
|
ofono_voicecall_tone_cb_t cb, void *user_data);
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
#define MAX_VOICE_CALLS 16
|
#define MAX_VOICE_CALLS 16
|
||||||
|
|
||||||
#define VOICECALL_FLAG_SIM_ECC_READY 0x1
|
#define VOICECALL_FLAG_SIM_ECC_READY 0x1
|
||||||
|
#define VOICECALL_FLAG_STK_MODEM_CALLSETUP 0x2
|
||||||
|
|
||||||
#define SETTINGS_STORE "voicecall"
|
#define SETTINGS_STORE "voicecall"
|
||||||
#define SETTINGS_GROUP "Settings"
|
#define SETTINGS_GROUP "Settings"
|
||||||
|
@ -2223,6 +2224,39 @@ void ofono_voicecall_notify(struct ofono_voicecall *vc,
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (vc->flags & VOICECALL_FLAG_STK_MODEM_CALLSETUP) {
|
||||||
|
struct dial_request *req = vc->dial_req;
|
||||||
|
const char *number = phone_number_to_string(&req->ph);
|
||||||
|
|
||||||
|
if (!strcmp(number, "112")) {
|
||||||
|
struct ofono_modem *modem =
|
||||||
|
__ofono_atom_get_modem(vc->atom);
|
||||||
|
|
||||||
|
__ofono_modem_inc_emergency_mode(modem);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (v->call->clip_validity == CLIP_VALIDITY_NOT_AVAILABLE) {
|
||||||
|
v->call->phone_number.type = req->ph.type;
|
||||||
|
strncpy(v->call->phone_number.number, req->ph.number,
|
||||||
|
20);
|
||||||
|
v->call->clip_validity = CLIP_VALIDITY_VALID;
|
||||||
|
}
|
||||||
|
|
||||||
|
v->message = req->message;
|
||||||
|
v->icon_id = req->icon_id;
|
||||||
|
|
||||||
|
req->message = NULL;
|
||||||
|
req->call = v;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TS 102 223 Section 6.4.13: The terminal shall not store
|
||||||
|
* in the UICC the call set-up details (called party number
|
||||||
|
* and associated parameters)
|
||||||
|
*/
|
||||||
|
v->untracked = TRUE;
|
||||||
|
vc->flags &= ~VOICECALL_FLAG_STK_MODEM_CALLSETUP;
|
||||||
|
}
|
||||||
|
|
||||||
v->detect_time = time(NULL);
|
v->detect_time = time(NULL);
|
||||||
|
|
||||||
if (!voicecall_dbus_register(v)) {
|
if (!voicecall_dbus_register(v)) {
|
||||||
|
@ -3682,6 +3716,37 @@ void __ofono_voicecall_tone_cancel(struct ofono_voicecall *vc, int id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __ofono_voicecall_set_alpha_and_icon_id(struct ofono_voicecall *vc,
|
||||||
|
const char *addr, int addr_type,
|
||||||
|
const char *message,
|
||||||
|
unsigned char icon_id)
|
||||||
|
{
|
||||||
|
struct dial_request *req;
|
||||||
|
|
||||||
|
req = g_new0(struct dial_request, 1);
|
||||||
|
|
||||||
|
req->message = g_strdup(message);
|
||||||
|
req->icon_id = icon_id;
|
||||||
|
|
||||||
|
req->ph.type = addr_type;
|
||||||
|
strncpy(req->ph.number, addr, 20);
|
||||||
|
|
||||||
|
vc->dial_req = req;
|
||||||
|
|
||||||
|
vc->flags |= VOICECALL_FLAG_STK_MODEM_CALLSETUP;
|
||||||
|
}
|
||||||
|
|
||||||
|
void __ofono_voicecall_clear_alpha_and_icon_id(struct ofono_voicecall *vc)
|
||||||
|
{
|
||||||
|
g_free(vc->dial_req->message);
|
||||||
|
vc->dial_req->message = NULL;
|
||||||
|
|
||||||
|
g_free(vc->dial_req);
|
||||||
|
vc->dial_req = NULL;
|
||||||
|
|
||||||
|
vc->flags &= ~VOICECALL_FLAG_STK_MODEM_CALLSETUP;
|
||||||
|
}
|
||||||
|
|
||||||
static void ssn_mt_forwarded_notify(struct ofono_voicecall *vc,
|
static void ssn_mt_forwarded_notify(struct ofono_voicecall *vc,
|
||||||
unsigned int id, int code,
|
unsigned int id, int code,
|
||||||
const struct ofono_phone_number *ph)
|
const struct ofono_phone_number *ph)
|
||||||
|
|
Loading…
Reference in New Issue