Thu, 15 Jan 2015 15:59:08 +0100
Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef _CC_CONSTANTS_H_
6 #define _CC_CONSTANTS_H_
7 #include "cc_types.h"
9 #define PC_HANDLE_SIZE 17 /* 8 random bytes in hex plus null */
11 /**
12 * Max call servers
13 */
14 #define MAX_CALL_SERVERS 4
16 /**
17 * Define notification priority
18 */
19 #define CC_DEF_NOTIFY_PRI 20
20 #define CC_HR_NOTIFY_PRI 1
22 #define CC_ALL_LINES 255
23 #define SID_LINE_SHIFT 16
24 #define CC_NO_CALL_ID (0)
25 #define CC_NO_LINE (0)
26 #define CC_NO_CALL_INSTANCE (0)
28 #define CC_MAX_LEN_REQ_SUPP_PARAM_CISCO_SISTAG 64
30 /**
31 * Attrib bit in video available direction byte to indicate if the video is over CAST
32 */
33 #define CC_ATTRIB_CAST 0x8
35 /**
36 * Define the line id. The value 0 (CC_NO_LINE) means not set, it will be set by pSipcc system.
37 */
38 typedef unsigned short cc_lineid_t;
40 /**
41 * Define the call id. The value 0 (CC_NO_CALL_ID) means not set, it will be set by pSipcc system.
42 */
43 typedef unsigned short cc_callid_t;
45 typedef unsigned short cc_streamid_t;
46 typedef unsigned short cc_mcapid_t;
47 typedef unsigned short cc_groupid_t;
48 typedef unsigned short cc_level_t;
50 /**
51 * Define the call instance id
52 */
54 typedef unsigned short cc_call_instance_t;
56 /**
57 * Define string char
58 */
59 typedef const char *cc_string_t;
61 /**
62 * Define an empty call handle
63 */
64 #define CC_EMPTY_CALL_HANDLE (0)
66 /**
67 * This will be returned by pSipcc system, a user/application should use the following two methods to get the selected or
68 * assinged line id and call id.
69 * When a user or an application doesn't select a line (user passes 0 to pSipcc),, the pSipcc will assign it with the first available
70 * line to it based on the maximum call per line that is configured.
71 */
72 typedef unsigned int cc_call_handle_t;
73 #define CC_SID_TYPE_SHIFT 28
74 #define CC_SID_LINE_SHIFT 16
75 #define CC_SESSIONTYPE_CALLCONTROL 1
76 #define GET_LINE_ID(call_handle) (cc_lineid_t)((call_handle & 0xFFF0000) >> CC_SID_LINE_SHIFT )
77 #define GET_CALL_ID(call_handle) (cc_callid_t)(call_handle & 0xFFFF)
78 #define CREATE_CALL_HANDLE(line, callid) (cc_call_handle_t)(((line & 0xFFF) << CC_SID_LINE_SHIFT) + (callid & 0xFFFF))
79 #define CREATE_CALL_HANDLE_FROM_SESSION_ID(session_id) (session_id & 0xFFFFFFF)
80 #define CREATE_SESSION_ID_FROM_CALL_HANDLE(call_handle) ((CC_SESSIONTYPE_CALLCONTROL << CC_SID_TYPE_SHIFT) + call_handle)
82 /**
83 * Define return codes
84 */
85 typedef enum {
86 CC_FAILURE = -1,
87 CC_SUCCESS
88 } cc_return_t;
90 /**
91 * Define valid number digits for SendDigit method
92 */
93 typedef enum {
94 KEY_1 = '1',
95 KEY_2 = '2',
96 KEY_3 = '3',
97 KEY_4 = '4',
98 KEY_5 = '5',
99 KEY_6 = '6',
100 KEY_7 = '7',
101 KEY_8 = '8',
102 KEY_9 = '9',
103 KEY_0 = '0',
104 KEY_STAR = '*',
105 KEY_POUND = '#',
106 KEY_A = 'A',
107 KEY_B = 'B',
108 KEY_C = 'C',
109 KEY_D = 'D',
110 KEY_PLUS = '+'
111 } cc_digit_t;
114 /**
115 * Defines cucm mode of the call manager to which device is connected.
116 */
117 typedef enum {
118 CC_MODE_INVALID = -1,
119 CC_MODE_CCM,
120 CC_MODE_NONCCM
121 } cc_cucm_mode_t;
123 // Line feature
124 typedef enum {
125 CC_LINE_FEATURE_NONE = 0,
126 CC_LINE_FEATURE_REDIAL = 1,
127 CC_LINE_FEATURE_SPEEDDIAL = 2,
128 CC_LINE_FEATURE_DN = 9,
129 CC_LINE_FEATURE_SERVICE = 20,
130 CC_LINE_FEATURE_SPEEDDIALBLF = 21,
131 CC_LINE_FEATURE_MALICIOUSCALLID = 27,
132 CC_LINE_FEATURE_CALLPICKUP = 127,
133 CC_LINE_FEATURE_GROUPCALLPICKUP = 128,
134 CC_LINE_FEATURE_QUALREPORTTOOL = 133,
135 CC_LINE_FEATURE_OTHERPICKUP = 135,
136 CC_LINE_FEATURE_ALLCALLS = 140,
137 CC_LINE_FEATURE_ANSWEROLDEST = 141,
138 CC_LINE_FEATURE_SERVICES = 192,
139 CC_LINE_FEATURE_BLF = 255
140 } cc_line_feature_t;
142 /**
143 * Define feature option mask
144 */
145 typedef enum {
146 CC_FEATUREOPTIONMASK_NONE,
147 CC_FEATUREOPTIONMASK_BLF_PICKUP
148 } cc_feature_option_mask_t;
150 /**
151 * Defines cucm secure levels
152 */
153 typedef enum {
154 CC_CUCM_NONSECURE,
155 CC_CUCM_AUTHENTICATED,
156 CC_CUCM_ENCRYPTED,
157 CC_CUCM_NOT_IN_CTL
158 } cc_cucm_sec_level_t;
160 /**
161 * Defines cc events causing registration state change
162 */
163 typedef enum {
164 CC_CAUSE_NONE,
165 CC_CAUSE_FAILOVER,
166 CC_CAUSE_FALLBACK,
167 CC_CAUSE_REG_ALL_FAILED,
168 CC_CAUSE_SHUTDOWN,
169 CC_CAUSE_UNREG_ALL,
170 CC_CAUSE_LOGOUT_RESET
171 } cc_service_cause_t;
173 /**
174 * Defines cc service state
175 */
176 typedef enum {
177 CC_STATE_IDLE = 0,
178 CC_STATE_INS,
179 CC_STATE_OOS,
180 CC_STATE_PRO_BASE
181 } cc_service_state_t;
183 /**
184 * Define cucm connection status.
185 */
186 typedef enum {
187 CC_CCM_STATUS_NONE = 0,
188 CC_CCM_STATUS_STANDBY,
189 CC_CCM_STATUS_ACTIVE
190 } cc_ccm_status_t;
192 /**
193 * Define line registration state
194 */
195 typedef enum {
196 CC_UNREGISTERED,
197 CC_REGISTERED
198 }cc_line_reg_state_t;
200 /**
201 * Defines pSipcc shutdown reason code
202 */
203 typedef enum {
204 CC_SHUTDOWN_NORMAL,
205 CC_SHUTDOWN_UNSPECIFIED,
206 CC_SHUTDOWN_VERMISMATCH
207 } cc_shutdown_reason_t;
209 /**
210 * Defines kpml value
211 */
212 typedef enum {
213 CC_KPML_NONE = 0x0,
214 CC_KPML_SIGNAL_ONLY = 0x1,
215 CC_KPML_DTMF_ONLY = 0x2,
216 CC_KPML_BOTH = 0x3
217 } cc_kpml_config_t;
219 /**
220 * Defines whether to upgrade now or later to recently download firmware image
221 */
222 typedef enum {
223 CC_UPGRADE_NONE = 0,
224 CC_UPGRADE_NOW,
225 CC_UPGRADE_LATER
226 } cc_upgrade_t;
228 /* Media flow direction */
229 typedef enum {
230 CC_SDP_DIRECTION_INACTIVE,
231 CC_SDP_DIRECTION_SENDONLY,
232 CC_SDP_DIRECTION_RECVONLY,
233 CC_SDP_DIRECTION_SENDRECV,
234 CC_SDP_MAX_QOS_DIRECTIONS
235 } cc_sdp_direction_t;
237 /**
238 * Defines BLF state
239 */
240 typedef enum {
241 CC_SIP_BLF_UNKNOWN,
242 CC_SIP_BLF_IDLE,
243 CC_SIP_BLF_INUSE,
244 CC_SIP_BLF_EXPIRED,
245 CC_SIP_BLF_REJECTED,
246 CC_SIP_BLF_ALERTING
247 } cc_blf_state_t;
249 /**
250 * Defines BLF feature mask
251 */
252 typedef enum {
253 CC_BLF_FEATURE_MASK_NONE = 0,
254 CC_BLF_FEATURE_MASK_PICKUP
255 } cc_blf_feature_mask_t;
257 /**
258 * Defines call state
259 */
260 typedef enum {
261 OFFHOOK,
262 ONHOOK,
263 RINGOUT,
264 RINGIN,
265 PROCEED,
266 CONNECTED,
267 HOLD,
268 REMHOLD,
269 RESUME,
270 BUSY,
271 REORDER,
272 CONFERENCE,
273 DIALING,
274 REMINUSE,
275 HOLDREVERT,
276 WHISPER,
277 PRESERVATION,
278 WAITINGFORDIGITS = 21,
279 CREATEOFFERSUCCESS,
280 CREATEANSWERSUCCESS,
281 CREATEOFFERERROR,
282 CREATEANSWERERROR,
283 SETLOCALDESCSUCCESS,
284 SETREMOTEDESCSUCCESS,
285 UPDATELOCALDESC,
286 UPDATEREMOTEDESC,
287 SETLOCALDESCERROR,
288 SETREMOTEDESCERROR,
289 REMOTESTREAMADD,
290 ADDICECANDIDATE,
291 ADDICECANDIDATEERROR,
292 FOUNDICECANDIDATE,
293 FOUNDICECANDIDATEERROR,
294 MAX_CALL_STATES
295 } cc_call_state_t;
297 /**
298 * Defines call attribute
299 */
300 typedef enum {
301 CC_ATTR_NOT_DEFINED = -1,
302 CC_ATTR_NORMAL,
303 CC_ATTR_XFR_CONSULT,
304 CC_ATTR_CONF_CONSULT,
305 CC_ATTR_BARGING,
306 CC_ATTR_RIUHELD_LOCKED,
307 CC_ATTR_LOCAL_CONF_CONSULT,
308 CC_ATTR_LOCAL_XFER_CONSULT,
309 CC_ATTR_CFWDALL,
310 CC_ATTR_GRP_CALL_PICKUP,
311 CC_ATTR_CFWD_ALL,
312 CC_ATTR_MAX
313 } cc_call_attr_t;
315 /**
316 * Defines the hold reason
317 */
318 typedef enum {
319 CC_HOLD_REASON_NONE,
320 CC_HOLD_REASON_XFER,
321 CC_HOLD_REASON_CONF,
322 CC_HOLD_REASON_SWAP,
323 CC_HOLD_REASON_INTERNAL
324 } cc_hold_reason_t;
326 /**
327 * Defines call type
328 */
329 typedef enum {
330 CC_CALL_TYPE_NONE,
331 CC_CALL_TYPE_INCOMING,
332 CC_CALL_TYPE_OUTGOING,
333 CC_CALL_TYPE_FORWARDED
334 } cc_call_type_t;
336 /**
337 * Defines call security
338 */
339 typedef enum {
340 CC_SECURITY_NONE,
341 CC_SECURITY_UNKNOWN,
342 CC_SECURITY_AUTHENTICATED,
343 CC_SECURITY_NOT_AUTHENTICATED,
344 CC_SECURITY_ENCRYPTED
345 } cc_call_security_t;
347 /**
348 * Defines call policy
349 */
350 typedef enum {
351 /* Call Policy */
352 CC_POLICY_NONE,
353 CC_POLICY_UNKNOWN,
354 CC_POLICY_CHAPERONE
355 } cc_call_policy_t;
357 /**
358 * Defines Log disposition
359 */
360 typedef enum {
361 CC_LOGD_MISSED,
362 CC_LOGD_RCVD,
363 CC_LOGD_SENT,
364 CC_LOGD_UNKNWN,
365 CC_LOGD_DELETE
366 } cc_log_disposition_t;
368 /**
369 * Defines call priority
370 */
371 typedef enum{
372 CC_PRIORITY_NORMAL,
373 CC_PRIORITY_URGENT
374 } cc_call_priority_t;
376 /**
377 * Defines call selection
378 */
379 typedef enum {
380 CC_CALL_SELECT_NONE,
381 CC_CALL_SELECT_LOCKED,
382 CC_CALL_SELECT_UNLOCKED,
383 CC_CALL_SELECT_REMOTE_LOCKED
384 } cc_call_selection_t;
386 /**
387 * Defines service control request
388 */
389 typedef enum {
390 CC_DEVICE_RESET = 1,
391 CC_DEVICE_RESTART,
392 CC_DEVICE_ICMP_UNREACHABLE = 5
393 } cc_srv_ctrl_req_t;
395 /**
396 * Defines service control command
397 */
398 typedef enum {
399 CC_ACTION_RESET = 1,
400 CC_ACTION_RESTART
401 } cc_srv_ctrl_cmd_t;
403 /**
404 * Defines messaging type
405 */
406 typedef enum {
407 CC_VOICE_MESSAGE = 1,
408 CC_TEXT_MESSAGE
409 } cc_message_type_t;
411 /**
412 * Defines handset lamp state
413 */
414 typedef enum {
415 CC_LAMP_NONE = 0,
416 CC_LAMP_ON,
417 CC_LAMP_BLINK,
418 CC_LAMP_FRESH
419 } cc_lamp_state_t;
421 /**
422 * defines call cause
423 * Important: when update this enum, please update the cc_cause_name accordingly.
424 */
425 typedef enum {
426 CC_CAUSE_MIN = -1,
427 CC_CAUSE_BASE = -1,
428 CC_CAUSE_OK,
429 CC_CAUSE_ERROR,
430 CC_CAUSE_UNASSIGNED_NUM,
431 CC_CAUSE_NO_RESOURCE,
432 CC_CAUSE_NO_ROUTE,
433 CC_CAUSE_NORMAL,
434 CC_CAUSE_BUSY,
435 CC_CAUSE_NO_USER_RESP,
436 CC_CAUSE_NO_USER_ANS,
437 CC_CAUSE_REJECT,
438 CC_CAUSE_INVALID_NUMBER,
439 CC_CAUSE_FACILITY_REJECTED,
440 CC_CAUSE_CALL_ID_IN_USE,
441 CC_CAUSE_XFER_LOCAL,
442 CC_CAUSE_XFER_REMOTE,
443 CC_CAUSE_XFER_BY_REMOTE,
444 CC_CAUSE_XFER_CNF,
445 CC_CAUSE_CONGESTION,
446 CC_CAUSE_ANONYMOUS,
447 CC_CAUSE_REDIRECT,
448 CC_CAUSE_PAYLOAD_MISMATCH,
449 CC_CAUSE_CONF,
450 CC_CAUSE_REPLACE,
451 CC_CAUSE_NO_REPLACE_CALL,
452 CC_CAUSE_NO_RESUME,
453 CC_CAUSE_NO_MEDIA,
454 CC_CAUSE_REQUEST_PENDING,
455 CC_CAUSE_INVALID_PARTICIPANT,
456 CC_CAUSE_NO_CNF_BRIDE,
457 CC_MAXIMUM_PARTICIPANT,
458 CC_KEY_NOT_ACTIVE,
459 CC_TEMP_NOT_AVAILABLE,
460 CC_CAUSE_REMOTE_SERVER_ERROR,
461 CC_CAUSE_BARGE,
462 CC_CAUSE_CBARGE,
463 CC_CAUSE_NOT_FOUND,
464 CC_CAUSE_SECURITY_FAILURE,
465 CC_CAUSE_MONITOR,
466 CC_CAUSE_UI_STATE_BUSY,
467 CC_SIP_CAUSE_ANSWERED_ELSEWHERE,
468 CC_CAUSE_RETRIEVED,
469 CC_CAUSE_FORWARDED,
470 CC_CAUSE_ABANDONED,
471 CC_CAUSE_XFER_LOCAL_WITH_DIALSTRING,
472 CC_CAUSE_BW_OK,
473 CC_CAUSE_XFER_COMPLETE,
474 CC_CAUSE_RESP_TIMEOUT,
475 CC_CAUSE_SERV_ERR_UNAVAIL,
476 CC_CAUSE_REMOTE_DISCONN_REQ_PLAYTONE,
477 CC_CAUSE_OUT_OF_MEM,
478 CC_CAUSE_VALUE_NOT_FOUND,
479 CC_CAUSE_BAD_ICE_ATTRIBUTE,
480 CC_CAUSE_DTLS_ATTRIBUTE_ERROR,
481 CC_CAUSE_DTLS_DIGEST_ALGORITHM_EMPTY,
482 CC_CAUSE_DTLS_DIGEST_ALGORITHM_TOO_LONG,
483 CC_CAUSE_DTLS_DIGEST_EMPTY,
484 CC_CAUSE_DTLS_DIGEST_TOO_LONG,
485 CC_CAUSE_DTLS_FINGERPRINT_PARSE_ERROR,
486 CC_CAUSE_DTLS_FINGERPRINT_TOO_LONG,
487 CC_CAUSE_INVALID_SDP_POINTER,
488 CC_CAUSE_NO_AUDIO,
489 CC_CAUSE_NO_DTLS_FINGERPRINT,
490 CC_CAUSE_MISSING_ICE_ATTRIBUTES,
491 CC_CAUSE_NO_MEDIA_CAPABILITY,
492 CC_CAUSE_NO_M_LINE,
493 CC_CAUSE_NO_PEERCONNECTION,
494 CC_CAUSE_NO_SDP,
495 CC_CAUSE_NULL_POINTER,
496 CC_CAUSE_SDP_CREATE_FAILED,
497 CC_CAUSE_SDP_ENCODE_FAILED,
498 CC_CAUSE_SDP_PARSE_FAILED,
499 CC_CAUSE_SETTING_ICE_SESSION_PARAMETERS_FAILED,
500 CC_CAUSE_MAX
501 } cc_cause_t;
503 /**
504 * defines subscription event type
505 */
506 typedef enum {
507 CC_SUBSCRIPTIONS_DIALOG_EXT = 2,
508 CC_SUBSCRIPTIONS_KPML_EXT = 4,
509 CC_SUBSCRIPTIONS_PRESENCE_EXT = 5,
510 CC_SUBSCRIPTIONS_REMOTECC_EXT = 6,
511 CC_SUBSCRIPTIONS_REMOTECC_OPTIONSIND_EXT = 7,
512 CC_SUBSCRIPTIONS_CONFIGAPP_EXT = 8,
513 CC_SUBSCRIPTIONS_MEDIA_INFO_EXT = 10
514 } cc_subscriptions_ext_t;
516 typedef enum {
517 APPLY_DYNAMICALLY=0,
518 RESTART_NEEDED,
519 APPLY_CONFIG_NONE
520 } cc_apply_config_result_t;
523 /**
524 * defines ID of cucm
525 */
527 typedef enum {
528 PRIMARY_CCM = 0,
529 SECONDARY_CCM,
530 TERTIARY_CCM,
531 MAX_CCM,
532 UNUSED_PARAM
533 } CCM_ID;
535 typedef enum {
536 CC_SIS_B2B_CONF = 0,
537 CC_SIS_SWAP,
538 CC_SIS_CFWD_ANY_LINE
539 } cc_sis_feature_id_e;
541 /**
542 * enum for conference participant status
543 */
545 typedef enum {
546 CCAPI_CONFPARTICIPANT_UNKNOWN,
547 CCAPI_CONFPARTICIPANT_DIALING_OUT,
548 CCAPI_CONFPARTICIPANT_ALERTING,
549 CCAPI_CONFPARTICIPANT_CONNECTED,
550 CCAPI_CONFPARTICIPANT_ON_HOLD,
551 CCAPI_CONFPARTICIPANT_DISCONNECTED
552 } cc_conf_participant_status_t;
555 typedef enum {
556 JSEP_NO_ACTION = -1,
557 JSEP_OFFER,
558 JSEP_ANSWER,
559 JSEP_PRANSWER
560 } cc_jsep_action_t;
563 typedef cc_string_t cc_peerconnection_t;
565 typedef unsigned int cc_media_stream_id_t;
567 typedef unsigned int cc_media_track_id_t;
570 typedef enum {
571 NO_STREAM = -1,
572 AUDIO,
573 VIDEO,
574 DATA,
575 TYPE_MAX
576 } cc_media_type_t;
578 typedef struct {
579 cc_boolean was_passed;
580 cc_boolean value;
581 cc_boolean mandatory;
582 } cc_boolean_constraint_t;
584 typedef struct {
585 cc_boolean_constraint_t offer_to_receive_audio;
586 cc_boolean_constraint_t offer_to_receive_video;
587 cc_boolean_constraint_t moz_dont_offer_datachannel;
588 cc_boolean_constraint_t moz_bundle_only;
589 } cc_media_constraints_t;
591 #endif /* _CC_CONSTANTS_H_ */