Newer
Older
/*
* Data types and API prototypes that are shared between voicemngr and asterisk-chan-voicemngr
*/
#ifndef __VOICE_TYPES_H
#define __VOICE_TYPES_H
#define RTP_HEADER_SIZE 12
typedef enum callid_state {
CALLID_INVALID = -1,
CALLID_OBTAINING = 0,
CALLID_ESTABLISHED = 1
} callid_state;
struct __attribute__((__packed__)) media_packet_t {
int32_t line;
int32_t connection_id;
uint32_t rtp_size;
uint8_t rtp[1];
};
typedef struct __attribute__((__packed__)) media_packet_t audio_packet_t;//used for asterisk-chan-voicemngr
// ubus request for set codec
enum VOICE_CODEC {
VOICE_CODEC_G711U,
VOICE_CODEC_G711A,
VOICE_CODEC_G722,
VOICE_CODEC_G723,
VOICE_CODEC_G726,
VOICE_CODEC_G729,
};

Yalu Zhang
committed
enum voice_dtmf_mode {
VOICE_DTMF_NONE,
VOICE_DTMF_RFC_4733,
VOICE_DTMF_INBAND,
VOICE_DTMF_INFO,
VOICE_DTMF_AUTO,
VOICE_DTMF_AUTO_INFO,
};
#define UBUS_DATA_CODEC_BIT 1
#define UBUS_DATA_PTIME_BIT (1<<1)
struct config_update_struct {
uint8_t mask; // 8 bit mask
enum VOICE_CODEC codec;
int ptime;
// add more if needed
};

Yalu Zhang
committed
// In UBUS request to voicemngr we need to define what this request is about
enum call_action {
CALL_DEFAULT0, // answer/release the call for PCM_0
CALL_DEFAULT1, // answer/release the call for PCM_1
CALL_DIGIT_PRESSED, // DTMF pressed
CALL_TOGGLE, // Switch in Call Waiting
CALL_CONFERENCE, // Join - start Call Conference
CALL_DECT_UNAVAILABLE, // No DECT handset available for call
CALL_REJECT, // indicate for call_reject event, upper 16 bits for pcm_id when using
CALL_MODE_SINGLE, // indicate the Single Call Mode has been set for DECT line
CALL_MODE_MULTIPLE, // indicate the Multiple Call Mode has been set for DECT line
CALL_LAST
};
/*
* UBUS related definitions
*/
// Objects
#define DECTMNGR_RPC_UBUS_OBJECT "dect-rpc"
// Methods
#define DECTMNGR_RPC_RINGING_STOP "ringing-stop"
#define DECTMNGR_RPC_CALLS_RELEASE "calls-release"
// Parameters
#define DECTMNGR_RPC_PARAM_EXTENSION_ID "extension_id"
#define DECTMNGR_RPC_PARAM_PCM_ID "pcm_id"