media/webrtc/signaling/src/sipcc/include/cc_constants.h

Thu, 15 Jan 2015 15:59:08 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:59:08 +0100
branch
TOR_BUG_9701
changeset 10
ac0c01689b40
permissions
-rw-r--r--

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_ */

mercurial