564 lines
11 KiB
C
564 lines
11 KiB
C
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef _CC_CONSTANTS_H_
|
|
#define _CC_CONSTANTS_H_
|
|
#include "cc_types.h"
|
|
|
|
#define PC_HANDLE_SIZE 17 /* 8 random bytes in hex plus null */
|
|
|
|
/**
|
|
* Max call servers
|
|
*/
|
|
#define MAX_CALL_SERVERS 4
|
|
|
|
/**
|
|
* Define notification priority
|
|
*/
|
|
#define CC_DEF_NOTIFY_PRI 20
|
|
#define CC_HR_NOTIFY_PRI 1
|
|
|
|
#define CC_ALL_LINES 255
|
|
#define SID_LINE_SHIFT 16
|
|
#define CC_NO_CALL_ID (0)
|
|
#define CC_NO_LINE (0)
|
|
#define CC_NO_CALL_INSTANCE (0)
|
|
|
|
#define CC_MAX_LEN_REQ_SUPP_PARAM_CISCO_SISTAG 64
|
|
|
|
/**
|
|
* Attrib bit in video available direction byte to indicate if the video is over CAST
|
|
*/
|
|
#define CC_ATTRIB_CAST 0x8
|
|
|
|
/**
|
|
* Define the line id. The value 0 (CC_NO_LINE) means not set, it will be set by pSipcc system.
|
|
*/
|
|
typedef unsigned short cc_lineid_t;
|
|
|
|
/**
|
|
* Define the call id. The value 0 (CC_NO_CALL_ID) means not set, it will be set by pSipcc system.
|
|
*/
|
|
typedef unsigned short cc_callid_t;
|
|
|
|
typedef unsigned short cc_streamid_t;
|
|
typedef unsigned short cc_mcapid_t;
|
|
typedef unsigned short cc_groupid_t;
|
|
typedef unsigned short cc_level_t;
|
|
|
|
/**
|
|
* Define the call instance id
|
|
*/
|
|
|
|
typedef unsigned short cc_call_instance_t;
|
|
|
|
/**
|
|
* Define string char
|
|
*/
|
|
typedef const char *cc_string_t;
|
|
|
|
/**
|
|
* Define an empty call handle
|
|
*/
|
|
#define CC_EMPTY_CALL_HANDLE (0)
|
|
|
|
/**
|
|
* This will be returned by pSipcc system, a user/application should use the following two methods to get the selected or
|
|
* assinged line id and call id.
|
|
* 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
|
|
* line to it based on the maximum call per line that is configured.
|
|
*/
|
|
typedef unsigned int cc_call_handle_t;
|
|
#define CC_SID_TYPE_SHIFT 28
|
|
#define CC_SID_LINE_SHIFT 16
|
|
#define CC_SESSIONTYPE_CALLCONTROL 1
|
|
#define GET_LINE_ID(call_handle) (cc_lineid_t)((call_handle & 0xFFF0000) >> CC_SID_LINE_SHIFT )
|
|
#define GET_CALL_ID(call_handle) (cc_callid_t)(call_handle & 0xFFFF)
|
|
#define CREATE_CALL_HANDLE(line, callid) (cc_call_handle_t)(((line & 0xFFF) << CC_SID_LINE_SHIFT) + (callid & 0xFFFF))
|
|
#define CREATE_CALL_HANDLE_FROM_SESSION_ID(session_id) (session_id & 0xFFFFFFF)
|
|
#define CREATE_SESSION_ID_FROM_CALL_HANDLE(call_handle) ((CC_SESSIONTYPE_CALLCONTROL << CC_SID_TYPE_SHIFT) + call_handle)
|
|
|
|
/**
|
|
* Define return codes
|
|
*/
|
|
typedef enum {
|
|
CC_FAILURE = -1,
|
|
CC_SUCCESS
|
|
} cc_return_t;
|
|
|
|
/**
|
|
* Define valid number digits for SendDigit method
|
|
*/
|
|
typedef enum {
|
|
KEY_1 = '1',
|
|
KEY_2 = '2',
|
|
KEY_3 = '3',
|
|
KEY_4 = '4',
|
|
KEY_5 = '5',
|
|
KEY_6 = '6',
|
|
KEY_7 = '7',
|
|
KEY_8 = '8',
|
|
KEY_9 = '9',
|
|
KEY_0 = '0',
|
|
KEY_STAR = '*',
|
|
KEY_POUND = '#',
|
|
KEY_A = 'A',
|
|
KEY_B = 'B',
|
|
KEY_C = 'C',
|
|
KEY_D = 'D',
|
|
KEY_PLUS = '+'
|
|
} cc_digit_t;
|
|
|
|
|
|
/**
|
|
* Defines cucm mode of the call manager to which device is connected.
|
|
*/
|
|
typedef enum {
|
|
CC_MODE_INVALID = -1,
|
|
CC_MODE_CCM,
|
|
CC_MODE_NONCCM
|
|
} cc_cucm_mode_t;
|
|
|
|
// Line feature
|
|
typedef enum {
|
|
CC_LINE_FEATURE_NONE = 0,
|
|
CC_LINE_FEATURE_REDIAL = 1,
|
|
CC_LINE_FEATURE_SPEEDDIAL = 2,
|
|
CC_LINE_FEATURE_DN = 9,
|
|
CC_LINE_FEATURE_SERVICE = 20,
|
|
CC_LINE_FEATURE_SPEEDDIALBLF = 21,
|
|
CC_LINE_FEATURE_MALICIOUSCALLID = 27,
|
|
CC_LINE_FEATURE_CALLPICKUP = 127,
|
|
CC_LINE_FEATURE_GROUPCALLPICKUP = 128,
|
|
CC_LINE_FEATURE_QUALREPORTTOOL = 133,
|
|
CC_LINE_FEATURE_OTHERPICKUP = 135,
|
|
CC_LINE_FEATURE_ALLCALLS = 140,
|
|
CC_LINE_FEATURE_ANSWEROLDEST = 141,
|
|
CC_LINE_FEATURE_SERVICES = 192,
|
|
CC_LINE_FEATURE_BLF = 255
|
|
} cc_line_feature_t;
|
|
|
|
/**
|
|
* Define feature option mask
|
|
*/
|
|
typedef enum {
|
|
CC_FEATUREOPTIONMASK_NONE,
|
|
CC_FEATUREOPTIONMASK_BLF_PICKUP
|
|
} cc_feature_option_mask_t;
|
|
|
|
/**
|
|
* Defines cucm secure levels
|
|
*/
|
|
typedef enum {
|
|
CC_CUCM_NONSECURE,
|
|
CC_CUCM_AUTHENTICATED,
|
|
CC_CUCM_ENCRYPTED,
|
|
CC_CUCM_NOT_IN_CTL
|
|
} cc_cucm_sec_level_t;
|
|
|
|
/**
|
|
* Defines cc events causing registration state change
|
|
*/
|
|
typedef enum {
|
|
CC_CAUSE_NONE,
|
|
CC_CAUSE_FAILOVER,
|
|
CC_CAUSE_FALLBACK,
|
|
CC_CAUSE_REG_ALL_FAILED,
|
|
CC_CAUSE_SHUTDOWN,
|
|
CC_CAUSE_UNREG_ALL,
|
|
CC_CAUSE_LOGOUT_RESET
|
|
} cc_service_cause_t;
|
|
|
|
/**
|
|
* Defines cc service state
|
|
*/
|
|
typedef enum {
|
|
CC_STATE_IDLE = 0,
|
|
CC_STATE_INS,
|
|
CC_STATE_OOS,
|
|
CC_STATE_PRO_BASE
|
|
} cc_service_state_t;
|
|
|
|
/**
|
|
* Define cucm connection status.
|
|
*/
|
|
typedef enum {
|
|
CC_CCM_STATUS_NONE = 0,
|
|
CC_CCM_STATUS_STANDBY,
|
|
CC_CCM_STATUS_ACTIVE
|
|
} cc_ccm_status_t;
|
|
|
|
/**
|
|
* Define line registration state
|
|
*/
|
|
typedef enum {
|
|
CC_UNREGISTERED,
|
|
CC_REGISTERED
|
|
}cc_line_reg_state_t;
|
|
|
|
/**
|
|
* Defines pSipcc shutdown reason code
|
|
*/
|
|
typedef enum {
|
|
CC_SHUTDOWN_NORMAL,
|
|
CC_SHUTDOWN_UNSPECIFIED,
|
|
CC_SHUTDOWN_VERMISMATCH
|
|
} cc_shutdown_reason_t;
|
|
|
|
/**
|
|
* Defines kpml value
|
|
*/
|
|
typedef enum {
|
|
CC_KPML_NONE = 0x0,
|
|
CC_KPML_SIGNAL_ONLY = 0x1,
|
|
CC_KPML_DTMF_ONLY = 0x2,
|
|
CC_KPML_BOTH = 0x3
|
|
} cc_kpml_config_t;
|
|
|
|
/**
|
|
* Defines whether to upgrade now or later to recently download firmware image
|
|
*/
|
|
typedef enum {
|
|
CC_UPGRADE_NONE = 0,
|
|
CC_UPGRADE_NOW,
|
|
CC_UPGRADE_LATER
|
|
} cc_upgrade_t;
|
|
|
|
/* Media flow direction */
|
|
typedef enum {
|
|
CC_SDP_DIRECTION_INACTIVE,
|
|
CC_SDP_DIRECTION_SENDONLY,
|
|
CC_SDP_DIRECTION_RECVONLY,
|
|
CC_SDP_DIRECTION_SENDRECV,
|
|
CC_SDP_MAX_QOS_DIRECTIONS
|
|
} cc_sdp_direction_t;
|
|
|
|
/**
|
|
* Defines BLF state
|
|
*/
|
|
typedef enum {
|
|
CC_SIP_BLF_UNKNOWN,
|
|
CC_SIP_BLF_IDLE,
|
|
CC_SIP_BLF_INUSE,
|
|
CC_SIP_BLF_EXPIRED,
|
|
CC_SIP_BLF_REJECTED,
|
|
CC_SIP_BLF_ALERTING
|
|
} cc_blf_state_t;
|
|
|
|
/**
|
|
* Defines BLF feature mask
|
|
*/
|
|
typedef enum {
|
|
CC_BLF_FEATURE_MASK_NONE = 0,
|
|
CC_BLF_FEATURE_MASK_PICKUP
|
|
} cc_blf_feature_mask_t;
|
|
|
|
/**
|
|
* Defines call state
|
|
*/
|
|
typedef enum {
|
|
OFFHOOK,
|
|
ONHOOK,
|
|
RINGOUT,
|
|
RINGIN,
|
|
PROCEED,
|
|
CONNECTED,
|
|
HOLD,
|
|
REMHOLD,
|
|
RESUME,
|
|
BUSY,
|
|
REORDER,
|
|
CONFERENCE,
|
|
DIALING,
|
|
REMINUSE,
|
|
HOLDREVERT,
|
|
WHISPER,
|
|
PRESERVATION,
|
|
WAITINGFORDIGITS = 21,
|
|
CREATEOFFER,
|
|
CREATEANSWER,
|
|
CREATEOFFERERROR,
|
|
CREATEANSWERERROR,
|
|
SETLOCALDESC,
|
|
SETREMOTEDESC,
|
|
SETLOCALDESCERROR,
|
|
SETREMOTEDESCERROR,
|
|
REMOTESTREAMADD,
|
|
MAX_CALL_STATES
|
|
} cc_call_state_t;
|
|
|
|
/**
|
|
* Defines call attribute
|
|
*/
|
|
typedef enum {
|
|
CC_ATTR_NOT_DEFINED = -1,
|
|
CC_ATTR_NORMAL,
|
|
CC_ATTR_XFR_CONSULT,
|
|
CC_ATTR_CONF_CONSULT,
|
|
CC_ATTR_BARGING,
|
|
CC_ATTR_RIUHELD_LOCKED,
|
|
CC_ATTR_LOCAL_CONF_CONSULT,
|
|
CC_ATTR_LOCAL_XFER_CONSULT,
|
|
CC_ATTR_CFWDALL,
|
|
CC_ATTR_GRP_CALL_PICKUP,
|
|
CC_ATTR_CFWD_ALL,
|
|
CC_ATTR_MAX
|
|
} cc_call_attr_t;
|
|
|
|
/**
|
|
* Defines the hold reason
|
|
*/
|
|
typedef enum {
|
|
CC_HOLD_REASON_NONE,
|
|
CC_HOLD_REASON_XFER,
|
|
CC_HOLD_REASON_CONF,
|
|
CC_HOLD_REASON_SWAP,
|
|
CC_HOLD_REASON_INTERNAL
|
|
} cc_hold_reason_t;
|
|
|
|
/**
|
|
* Defines call type
|
|
*/
|
|
typedef enum {
|
|
CC_CALL_TYPE_NONE,
|
|
CC_CALL_TYPE_INCOMING,
|
|
CC_CALL_TYPE_OUTGOING,
|
|
CC_CALL_TYPE_FORWARDED
|
|
} cc_call_type_t;
|
|
|
|
/**
|
|
* Defines call security
|
|
*/
|
|
typedef enum {
|
|
CC_SECURITY_NONE,
|
|
CC_SECURITY_UNKNOWN,
|
|
CC_SECURITY_AUTHENTICATED,
|
|
CC_SECURITY_NOT_AUTHENTICATED,
|
|
CC_SECURITY_ENCRYPTED
|
|
} cc_call_security_t;
|
|
|
|
/**
|
|
* Defines call policy
|
|
*/
|
|
typedef enum {
|
|
/* Call Policy */
|
|
CC_POLICY_NONE,
|
|
CC_POLICY_UNKNOWN,
|
|
CC_POLICY_CHAPERONE
|
|
} cc_call_policy_t;
|
|
|
|
/**
|
|
* Defines Log disposition
|
|
*/
|
|
typedef enum {
|
|
CC_LOGD_MISSED,
|
|
CC_LOGD_RCVD,
|
|
CC_LOGD_SENT,
|
|
CC_LOGD_UNKNWN,
|
|
CC_LOGD_DELETE
|
|
} cc_log_disposition_t;
|
|
|
|
/**
|
|
* Defines call priority
|
|
*/
|
|
typedef enum{
|
|
CC_PRIORITY_NORMAL,
|
|
CC_PRIORITY_URGENT
|
|
} cc_call_priority_t;
|
|
|
|
/**
|
|
* Defines call selection
|
|
*/
|
|
typedef enum {
|
|
CC_CALL_SELECT_NONE,
|
|
CC_CALL_SELECT_LOCKED,
|
|
CC_CALL_SELECT_UNLOCKED,
|
|
CC_CALL_SELECT_REMOTE_LOCKED
|
|
} cc_call_selection_t;
|
|
|
|
/**
|
|
* Defines service control request
|
|
*/
|
|
typedef enum {
|
|
CC_DEVICE_RESET = 1,
|
|
CC_DEVICE_RESTART,
|
|
CC_DEVICE_ICMP_UNREACHABLE = 5
|
|
} cc_srv_ctrl_req_t;
|
|
|
|
/**
|
|
* Defines service control command
|
|
*/
|
|
typedef enum {
|
|
CC_ACTION_RESET = 1,
|
|
CC_ACTION_RESTART
|
|
} cc_srv_ctrl_cmd_t;
|
|
|
|
/**
|
|
* Defines messaging type
|
|
*/
|
|
typedef enum {
|
|
CC_VOICE_MESSAGE = 1,
|
|
CC_TEXT_MESSAGE
|
|
} cc_message_type_t;
|
|
|
|
/**
|
|
* Defines handset lamp state
|
|
*/
|
|
typedef enum {
|
|
CC_LAMP_NONE = 0,
|
|
CC_LAMP_ON,
|
|
CC_LAMP_BLINK,
|
|
CC_LAMP_FRESH
|
|
} cc_lamp_state_t;
|
|
|
|
/**
|
|
* defines call cause
|
|
* Important: when update this enum, please update the cc_cause_name accordingly.
|
|
*/
|
|
typedef enum {
|
|
CC_CAUSE_MIN = -1,
|
|
CC_CAUSE_BASE = -1,
|
|
CC_CAUSE_OK,
|
|
CC_CAUSE_ERROR,
|
|
CC_CAUSE_UNASSIGNED_NUM,
|
|
CC_CAUSE_NO_RESOURCE,
|
|
CC_CAUSE_NO_ROUTE,
|
|
CC_CAUSE_NORMAL,
|
|
CC_CAUSE_BUSY,
|
|
CC_CAUSE_NO_USER_RESP,
|
|
CC_CAUSE_NO_USER_ANS,
|
|
CC_CAUSE_REJECT,
|
|
CC_CAUSE_INVALID_NUMBER,
|
|
CC_CAUSE_FACILITY_REJECTED,
|
|
CC_CAUSE_CALL_ID_IN_USE,
|
|
CC_CAUSE_XFER_LOCAL,
|
|
CC_CAUSE_XFER_REMOTE,
|
|
CC_CAUSE_XFER_BY_REMOTE,
|
|
CC_CAUSE_XFER_CNF,
|
|
CC_CAUSE_CONGESTION,
|
|
CC_CAUSE_ANONYMOUS,
|
|
CC_CAUSE_REDIRECT,
|
|
CC_CAUSE_PAYLOAD_MISMATCH,
|
|
CC_CAUSE_CONF,
|
|
CC_CAUSE_REPLACE,
|
|
CC_CAUSE_NO_REPLACE_CALL,
|
|
CC_CAUSE_NO_RESUME,
|
|
CC_CAUSE_NO_MEDIA,
|
|
CC_CAUSE_REQUEST_PENDING,
|
|
CC_CAUSE_INVALID_PARTICIPANT,
|
|
CC_CAUSE_NO_CNF_BRIDE,
|
|
CC_MAXIMUM_PARTICIPANT,
|
|
CC_KEY_NOT_ACTIVE,
|
|
CC_TEMP_NOT_AVAILABLE,
|
|
CC_CAUSE_REMOTE_SERVER_ERROR,
|
|
CC_CAUSE_BARGE,
|
|
CC_CAUSE_CBARGE,
|
|
CC_CAUSE_NOT_FOUND,
|
|
CC_CAUSE_SECURITY_FAILURE,
|
|
CC_CAUSE_MONITOR,
|
|
CC_CAUSE_UI_STATE_BUSY,
|
|
CC_SIP_CAUSE_ANSWERED_ELSEWHERE,
|
|
CC_CAUSE_RETRIEVED,
|
|
CC_CAUSE_FORWARDED,
|
|
CC_CAUSE_ABANDONED,
|
|
CC_CAUSE_XFER_LOCAL_WITH_DIALSTRING,
|
|
CC_CAUSE_BW_OK,
|
|
CC_CAUSE_XFER_COMPLETE,
|
|
CC_CAUSE_RESP_TIMEOUT,
|
|
CC_CAUSE_SERV_ERR_UNAVAIL,
|
|
CC_CAUSE_REMOTE_DISCONN_REQ_PLAYTONE,
|
|
CC_CAUSE_OUT_OF_MEM,
|
|
CC_CAUSE_VALUE_NOT_FOUND,
|
|
CC_CAUSE_MAX
|
|
} cc_cause_t;
|
|
|
|
/**
|
|
* defines subscription event type
|
|
*/
|
|
typedef enum {
|
|
CC_SUBSCRIPTIONS_DIALOG_EXT = 2,
|
|
CC_SUBSCRIPTIONS_KPML_EXT = 4,
|
|
CC_SUBSCRIPTIONS_PRESENCE_EXT = 5,
|
|
CC_SUBSCRIPTIONS_REMOTECC_EXT = 6,
|
|
CC_SUBSCRIPTIONS_REMOTECC_OPTIONSIND_EXT = 7,
|
|
CC_SUBSCRIPTIONS_CONFIGAPP_EXT = 8,
|
|
CC_SUBSCRIPTIONS_MEDIA_INFO_EXT = 10
|
|
} cc_subscriptions_ext_t;
|
|
|
|
typedef enum {
|
|
APPLY_DYNAMICALLY=0,
|
|
RESTART_NEEDED,
|
|
APPLY_CONFIG_NONE
|
|
} cc_apply_config_result_t;
|
|
|
|
|
|
/**
|
|
* defines ID of cucm
|
|
*/
|
|
|
|
typedef enum {
|
|
PRIMARY_CCM = 0,
|
|
SECONDARY_CCM,
|
|
TERTIARY_CCM,
|
|
MAX_CCM,
|
|
UNUSED_PARAM
|
|
} CCM_ID;
|
|
|
|
typedef enum {
|
|
CC_SIS_B2B_CONF = 0,
|
|
CC_SIS_SWAP,
|
|
CC_SIS_CFWD_ANY_LINE
|
|
} cc_sis_feature_id_e;
|
|
|
|
/**
|
|
* enum for conference participant status
|
|
*/
|
|
|
|
typedef enum {
|
|
CCAPI_CONFPARTICIPANT_UNKNOWN,
|
|
CCAPI_CONFPARTICIPANT_DIALING_OUT,
|
|
CCAPI_CONFPARTICIPANT_ALERTING,
|
|
CCAPI_CONFPARTICIPANT_CONNECTED,
|
|
CCAPI_CONFPARTICIPANT_ON_HOLD,
|
|
CCAPI_CONFPARTICIPANT_DISCONNECTED
|
|
} cc_conf_participant_status_t;
|
|
|
|
|
|
typedef enum {
|
|
JSEP_NO_ACTION = -1,
|
|
JSEP_OFFER,
|
|
JSEP_ANSWER,
|
|
JSEP_PRANSWER
|
|
} cc_jsep_action_t;
|
|
|
|
|
|
typedef cc_string_t cc_peerconnection_t;
|
|
|
|
typedef unsigned int cc_media_stream_id_t;
|
|
|
|
typedef unsigned int cc_media_track_id_t;
|
|
|
|
|
|
typedef enum {
|
|
NO_STREAM = -1,
|
|
AUDIO,
|
|
VIDEO,
|
|
TYPE_MAX
|
|
} cc_media_type_t;
|
|
|
|
|
|
typedef struct {
|
|
char *name;
|
|
char *value;
|
|
cc_boolean mandatory;
|
|
} cc_media_constraint_t;
|
|
|
|
typedef struct {
|
|
cc_media_constraint_t** constraints;
|
|
cc_uint16_t constraint_count;
|
|
} cc_media_constraints_t;
|
|
|
|
#endif /* _CC_CONSTANTS_H_ */
|
|
|