208 lines
5.2 KiB
C
Executable File
208 lines
5.2 KiB
C
Executable File
/* 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 _CCSESSION_H_
|
|
#define _CCSESSION_H_
|
|
|
|
#include "session.h"
|
|
#include "sessuri.h"
|
|
|
|
#define SID_TYPE_SHIFT 28
|
|
#define SID_LINE_SHIFT 16
|
|
|
|
#define GET_SESS_TYPE(x) ( (x & 0xF0000000) >> SID_TYPE_SHIFT )
|
|
#define GET_LINEID(x) (line_t)( (x & 0xFFF0000) >> SID_LINE_SHIFT )
|
|
#define GET_CALLID(x) (callid_t)(x & 0xFFFF)
|
|
|
|
|
|
|
|
|
|
/**
|
|
* ccSessionProviderCmd
|
|
* CallControl Provider Management Interface
|
|
* Called by Application to issue cmds to sipStack
|
|
*
|
|
* @param data - command and data
|
|
* data->cmd - see Session Provider Commands in session.h
|
|
* data->cmdData.ccData.reason - reason for SHUTDOWN/UNREGISTER_ALL_LINES CMD
|
|
CC_CAUSE_NORMAL/CC_CAUSE_NONE
|
|
* data->cmdData.ccData.reason_info - Descriptive stringa "notused"
|
|
*
|
|
* @return none
|
|
*
|
|
*/
|
|
void ccSessionProviderCmd(sessionProvider_cmd_t *data);
|
|
|
|
|
|
/**
|
|
* ccSessionProviderState
|
|
* Method to report provider state updates to Application
|
|
*
|
|
* @param state - indicates the Session Provider state CCApp_states_t
|
|
* @param data - ccProvider_state_t indicating
|
|
* data->stateData.ccData.mode - REGMODE CCM
|
|
* data->stateData.ccData.cause - FAILOVER/FALLBACK
|
|
*
|
|
* @return none
|
|
*
|
|
*/
|
|
void ccSessionProviderState(unsigned int state, ccProvider_state_t *data);
|
|
|
|
|
|
/**
|
|
* ccSessionCmd
|
|
* Method to Handle session lifecycle command such as realize, start etc.
|
|
*
|
|
* @param sCmd - session liefcycle command
|
|
* sCmd->cmd - REQUEST CMD
|
|
* sCmd->sessID - session ID
|
|
*
|
|
* @return none
|
|
*
|
|
*/
|
|
|
|
void ccSessionCmd (sessionCmd_t *sCmd);
|
|
|
|
|
|
/**
|
|
* ccCreateSession
|
|
*
|
|
* Called by Application to create a new session
|
|
*
|
|
* @param param - uri_t
|
|
* param->param.call_session_param.line_id - line on which to create the session
|
|
* @return ccSession_id_t - id of the session created
|
|
*/
|
|
|
|
session_id_t ccCreateSession(uri_t *param);
|
|
|
|
/**
|
|
* ccCloseSession
|
|
*
|
|
* Called by Application to close a session
|
|
*
|
|
* @param sess_id - ID of the session to be closed
|
|
*
|
|
* @return 0 success -1 failure
|
|
*
|
|
*/
|
|
|
|
int ccCloseSession(session_id_t sess_id);
|
|
|
|
/* Need to document IDs and data for the following 4 methods */
|
|
|
|
/**
|
|
* ccInvokeFeature
|
|
*
|
|
* Called by Application to invoke feature on session
|
|
*
|
|
* @param featData - featID and Additional info if needed for the feature
|
|
*
|
|
* @return none
|
|
*
|
|
*/
|
|
|
|
void ccInvokeFeature(session_feature_t *featData);
|
|
|
|
/**
|
|
* ccInvokeProviderFeature
|
|
*
|
|
* Called by Application to invoke device specific features
|
|
*
|
|
* @param featData - Additional info if needed for the feature
|
|
*
|
|
* @return none
|
|
*
|
|
*/
|
|
|
|
void ccInvokeProviderFeature(session_feature_t *featData);
|
|
|
|
|
|
/**
|
|
* ccSessionUpdate
|
|
*
|
|
* Called by sipstack to update session state and data
|
|
*
|
|
* @param eventID - ID of the event updating the session data
|
|
* @param session_data - event specific data
|
|
*
|
|
* @return none
|
|
*
|
|
*/
|
|
|
|
void ccSessionUpdate(session_update_t *session);
|
|
|
|
|
|
|
|
/**
|
|
* ccFeatureUpdate
|
|
*
|
|
* Called by sipstack to update feature state and data
|
|
*
|
|
* @param featureID - ID of the feature updated
|
|
* @param session_data - feature specific data
|
|
*
|
|
* @return none
|
|
*
|
|
*/
|
|
|
|
void ccFeatureUpdate(feature_update_t *session);
|
|
|
|
/***** Internal APIs below this line ***************/
|
|
|
|
/**
|
|
* ccCreateSession
|
|
*
|
|
* Called to create a CC session
|
|
*
|
|
* @param param - ccSession_create_param_t
|
|
* Contains the type of session and specific data
|
|
*
|
|
* @return ccSession_id_t - id of the session created
|
|
*/
|
|
session_id_t createSessionId(line_t line, callid_t call);
|
|
|
|
void platform_sync_cfg_vers (char *cfg_ver, char *dp_ver, char *softkey_ver);
|
|
/********************************************************************************/
|
|
|
|
/* Misc getter/setter function to get set the following */
|
|
|
|
#define PROPERTY_ID_MWI 1 // per line
|
|
#define PROPERTY_ID_TIME 2 // unsigned long
|
|
#define PROPERTY_ID_KPML 3
|
|
#define PROPERTY_ID_REGREASON 4
|
|
#define PROPERTY_ID_SPKR_HDST 5 1
|
|
|
|
void setIntProperty(unsigned int id, int val);
|
|
int getIntProperty(unsigned int id);
|
|
void setStrProperty(unsigned int id, char * val);
|
|
char * getStrProperty(unsigned int id);
|
|
|
|
|
|
/* Preserved API's from TNP Platform */
|
|
char *ccSetDP(const char *dp_file_name);
|
|
// update_label_n_speed_dial method here
|
|
void setPropertyCacheBoolean(int cfg_id, int bool_value);
|
|
void setPropertyCacheInteger(int cfg_id, int int_value);
|
|
void setPropertyCacheString(int cfg_id, const char *string_value);
|
|
void setPropertyCacheByte(int cfg_id, char byte_value);
|
|
void setPropertyCacheByteArray(int cfg_id, char *byte_value, int length);
|
|
|
|
/* BLF */
|
|
void ccBLFSubscribe(int request_id, int duration, const char *watcher,
|
|
const char *presentity, int app_id, int feature_mask);
|
|
void ccBLFUnsubscribe(int request_id);
|
|
void ccBLFUnsubscribeAll();
|
|
void blf_notification(int request_id, int status, int app_id);
|
|
|
|
|
|
/**********************************************************************
|
|
|
|
MID_JPlatUi_ui_log_status_msg, Ask RCDN team if log is changing?
|
|
|
|
**********************************************************************/
|
|
|
|
#endif
|
|
|