You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sems/apps/sbc/SBCCallControlAPI.h

82 lines
2.1 KiB

#ifndef _SBCCallControlAPI_h_
#define _SBCCallControlAPI_h_
#include "AmEvent.h"
#define CC_INTERFACE_MAND_VALUES_METHOD "getMandatoryValues"
#define CC_API_PARAMS_CC_NAMESPACE 0
#define CC_API_PARAMS_LTAG 1
#define CC_API_PARAMS_CALL_PROFILE 2
#define CC_API_PARAMS_SIP_MSG 3
#define CC_API_PARAMS_TIMESTAMPS 4
#define CC_API_PARAMS_CFGVALUES 5
#define CC_API_PARAMS_TIMERID 6
#define CC_API_PARAMS_OTHERID 5
#define CC_API_TS_START_SEC 0
#define CC_API_TS_START_USEC 1
#define CC_API_TS_CONNECT_SEC 2
#define CC_API_TS_CONNECT_USEC 3
#define CC_API_TS_END_SEC 4
#define CC_API_TS_END_USEC 5
#define SBC_CC_DROP_ACTION 0
#define SBC_CC_REFUSE_ACTION 1
#define SBC_CC_SET_CALL_TIMER_ACTION 2
#define SBC_CC_REPL_SET_GLOBAL_ACTION 10
#define SBC_CC_REPL_REMOVE_GLOBAL_ACTION 11
// index in action parameter:
#define SBC_CC_ACTION 0
// refuse with
#define SBC_CC_REFUSE_CODE 1
#define SBC_CC_REFUSE_REASON 2
#define SBC_CC_REFUSE_HEADERS 3
// set timer
#define SBC_CC_TIMER_TIMEOUT 1
// set/remove globals
#define SBC_CC_REPL_SET_GLOBAL_SCOPE 1
#define SBC_CC_REPL_SET_GLOBAL_NAME 2
#define SBC_CC_REPL_SET_GLOBAL_VALUE 3
/** post an SBCCallTimerEvent to an SBC call in order to set or reset call timer */
#define SBCCallTimerEvent_ID -563
struct SBCCallTimerEvent : public AmEvent {
enum TimerAction {
Remove = 0,
Set,
Reset
};
TimerAction timer_action;
double timeout;
int timer_id;
SBCCallTimerEvent(TimerAction timer_action, int timer_id, double timeout = 0)
: AmEvent(SBCCallTimerEvent_ID),
timer_id(timer_id), timer_action(timer_action), timeout(timeout) { }
};
#define SBCControlEvent_ID -564
struct SBCControlEvent : public AmEvent {
string cmd;
AmArg params;
SBCControlEvent(const string& cmd, const AmArg& params)
: AmEvent(SBCControlEvent_ID), cmd(cmd), params(params) { }
SBCControlEvent(const string& cmd)
: AmEvent(SBCControlEvent_ID), cmd(cmd) { }
};
#endif