blob: 19e33175e39f5e7f4f2664a52ec873dc06f0c6ab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
/**
* This file is part of libsamsung-ipc.
*
* Copyright (C) 2010-2011 Joerie de Gram <j.de.gram@gmail.com>
*
* libsamsung-ipc is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* libsamsung-ipc is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef __CALL_H__
#define __CALL_H__
/* Message types */
#define IPC_CALL_OUTGOING 0x0201
#define IPC_CALL_INCOMING 0x0202
#define IPC_CALL_RELEASE 0x0203
#define IPC_CALL_ANSWER 0x0204
#define IPC_CALL_STATUS 0x0205
#define IPC_CALL_LIST 0x0206
#define IPC_CALL_BURST_DTMF 0x0207
#define IPC_CALL_CONT_DTMF 0x0208
#define IPC_CALL_WAITING 0x0209
#define IPC_CALL_LINE_ID 0x020A
/* Enum values */
#define IPC_CALL_TYPE_VOICE 0x01
#define IPC_CALL_TYPE_DATA 0x03
#define IPC_CALL_IDENTITY_DEFAULT 0x00
#define IPC_CALL_IDENTITY_HIDE 0x01
#define IPC_CALL_IDENTITY_SHOW 0x02
#define IPC_CALL_PREFIX_NONE 0x00
#define IPC_CALL_PREFIX_INTL 0x11
/* Only for ipc_call_status, NOT call_list */
#define IPC_CALL_STATE_DIALING 0x01
#define IPC_CALL_STATE_IGNORING_INCOMING_STATUS 0x02
#define IPC_CALL_STATE_CONNECTED 0x03
#define IPC_CALL_STATE_RELEASED 0x04
#define IPC_CALL_STATE_CONNECTING 0x05
#define IPC_CALL_TERM_MO 0x01
#define IPC_CALL_TERM_MT 0x02
struct ipc_message_info;
struct ipc_call_outgoing {
unsigned char type; // IPC_CALL_TYPE_...
unsigned char identity; // IPC_CALL_IDENTITY_...
unsigned char length;
unsigned char prefix; // IPC_CALL_PREFIX_...
unsigned char number[86];
} __attribute__((__packed__));
struct ipc_call_incoming {
unsigned char type; // IPC_CALL_TYPE_...
unsigned char id;
unsigned char line;
} __attribute__((__packed__));
struct ipc_call_list_entry {
unsigned char type; // IPC_CALL_TYPE_...
unsigned char idx;
unsigned char term; // IPC_CALL_TERM_...
unsigned char state;
unsigned char mpty;
unsigned char number_len;
unsigned char unk4;
} __attribute__((__packed__));
struct ipc_call_status {
unsigned char type;
unsigned char id;
unsigned char state;
unsigned char reason;
unsigned char end_cause;
} __attribute__((__packed__));
void ipc_call_outgoing_setup(struct ipc_call_outgoing *message, unsigned char type,
unsigned char identity, unsigned char prefix, char *number);
unsigned int ipc_call_list_response_get_num_entries(struct ipc_message_info *response);
struct ipc_call_list_entry* ipc_call_list_response_get_entry(struct ipc_message_info *response, unsigned int num);
char* ipc_call_list_response_get_entry_number(struct ipc_message_info *response, unsigned int num);
#endif
// vim:ts=4:sw=4:expandtab
|