summaryrefslogtreecommitdiffstats
path: root/include/ss.h
blob: a2075a0d9395a68888805cfc035823da83e6485b (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
/*
 * DECT Supplementary Services (SS)
 *
 * Copyright (c) 2009-2010 Patrick McHardy <kaber@trash.net>
 */

#ifndef _LIBDECT_SS_H
#define _LIBDECT_SS_H

/**
 * Call Independant Supplementary Services messages types
 */
enum dect_ciss_msg_types {
	DECT_CISS_RELEASE_COM		= 0x5a,
	DECT_CISS_FACILITY		= 0x62,
	DECT_CISS_REGISTER		= 0x64,
};

struct dect_ciss_release_com_msg {
	struct dect_msg_common			common;
	struct dect_ie_release_reason		*release_reason;
	struct dect_ie_list			facility;
	struct dect_ie_display			*display;
	struct dect_ie_keypad			*keypad;
	struct dect_ie_feature_activate		*feature_activate;
	struct dect_ie_feature_indicate		*feature_indicate;
	struct dect_ie_escape_to_proprietary	*escape_to_proprietary;
};

struct dect_ciss_facility_msg {
	struct dect_msg_common			common;
	struct dect_ie_list			facility;
	struct dect_ie_display			*display;
	struct dect_ie_keypad			*keypad;
	struct dect_ie_feature_activate		*feature_activate;
	struct dect_ie_feature_indicate		*feature_indicate;
	struct dect_ie_list			iwu_to_iwu;
	struct dect_ie_escape_to_proprietary	*escape_to_proprietary;
	struct dect_ie_time_date		*time_date;
	struct dect_ie_events_notification	*events_notification;
	struct dect_ie_call_information		*call_information;
};

struct dect_ciss_register_msg {
	struct dect_msg_common			common;
	struct dect_ie_portable_identity	*portable_identity;
	struct dect_ie_list			facility;
	struct dect_ie_display			*display;
	struct dect_ie_keypad			*keypad;
	struct dect_ie_feature_activate		*feature_activate;
	struct dect_ie_feature_indicate		*feature_indicate;
	struct dect_ie_escape_to_proprietary	*escape_to_proprietary;
};

/**
 * struct dect_ss_endpoint - Supplementary Services Endpoint
 *
 * @ipui:		PT's IPUI
 * @transaction:	LCE link transaction
 * @priv:		libdect user private storage
 */
struct dect_ss_endpoint {
	struct dect_ipui			ipui;
	struct dect_transaction			transaction;
	uint8_t					priv[] __aligned(__alignof__(uint64_t));
};

extern void dect_clss_rcv(struct dect_handle *dh, struct dect_msg_buf *mb);

/**
 * Call Related Supplementary Services messages types
 */
enum dect_crss_msg_types {
	CRSS_HOLD		= 0x24,
	CRSS_HOLD_ACK		= 0x28,
	CRSS_HOLD_REJECT	= 0x30,
	CRSS_RETRIEVE		= 0x31,
	CRSS_RETRIEVE_ACK	= 0x33,
	CRSS_RETRIEVE_REJECT	= 0x37,
	CRSS_FACILITY		= 0x62,
};

extern const struct dect_nwk_protocol dect_ciss_protocol;

#endif /* _LIBDECT_SS_H */