Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
7b47e299
提交
7b47e299
authored
7月 17, 2015
作者:
Anthony Minessale
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix whitespace snafu
上级
73b98ae9
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
573 行增加
和
562 行删除
+573
-562
mod_conference.h
src/mod/applications/mod_conference/mod_conference.h
+573
-562
没有找到文件。
src/mod/applications/mod_conference/mod_conference.h
浏览文件 @
7b47e299
...
@@ -109,26 +109,26 @@
...
@@ -109,26 +109,26 @@
#define ALC_HRTF_SOFT 0x1992
#define ALC_HRTF_SOFT 0x1992
#define validate_pin(buf, pin, mpin) \
#define validate_pin(buf, pin, mpin)
\
pin_valid = (!zstr(pin) && strcmp(buf, pin) == 0);
\
pin_valid = (!zstr(pin) && strcmp(buf, pin) == 0);
\
if (!pin_valid && !zstr(mpin) && strcmp(buf, mpin) == 0) {
\
if (!pin_valid && !zstr(mpin) && strcmp(buf, mpin) == 0) {
\
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Moderator PIN found!\n"); \
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Moderator PIN found!\n"); \
pin_valid = 1;
\
pin_valid = 1;
\
mpin_matched = 1;
\
mpin_matched = 1;
\
}
}
/* STRUCTS */
/* STRUCTS */
struct
conference_fps
{
struct
conference_fps
{
float
fps
;
float
fps
;
int
ms
;
int
ms
;
int
samples
;
int
samples
;
};
};
typedef
enum
{
typedef
enum
{
CONF_SILENT_REQ
=
(
1
<<
0
),
CONF_SILENT_REQ
=
(
1
<<
0
),
CONF_SILENT_DONE
=
(
1
<<
1
)
CONF_SILENT_DONE
=
(
1
<<
1
)
}
conference_app_flag_t
;
}
conference_app_flag_t
;
extern
char
*
mod_conference_cf_name
;
extern
char
*
mod_conference_cf_name
;
...
@@ -136,23 +136,23 @@ extern char *api_syntax;
...
@@ -136,23 +136,23 @@ extern char *api_syntax;
extern
int
EC
;
extern
int
EC
;
typedef
enum
{
typedef
enum
{
FILE_STOP_CURRENT
,
FILE_STOP_CURRENT
,
FILE_STOP_ALL
,
FILE_STOP_ALL
,
FILE_STOP_ASYNC
FILE_STOP_ASYNC
}
file_stop_t
;
}
file_stop_t
;
/* Global Values */
/* Global Values */
typedef
struct
conference_globals_s
{
typedef
struct
conference_globals_s
{
switch_memory_pool_t
*
conference_pool
;
switch_memory_pool_t
*
conference_pool
;
switch_mutex_t
*
conference_mutex
;
switch_mutex_t
*
conference_mutex
;
switch_hash_t
*
conference_hash
;
switch_hash_t
*
conference_hash
;
switch_mutex_t
*
id_mutex
;
switch_mutex_t
*
id_mutex
;
switch_mutex_t
*
hash_mutex
;
switch_mutex_t
*
hash_mutex
;
switch_mutex_t
*
setup_mutex
;
switch_mutex_t
*
setup_mutex
;
uint32_t
id_pool
;
uint32_t
id_pool
;
int32_t
running
;
int32_t
running
;
uint32_t
threads
;
uint32_t
threads
;
switch_event_channel_id_t
event_channel_id
;
switch_event_channel_id_t
event_channel_id
;
}
conference_globals_t
;
}
conference_globals_t
;
extern
conference_globals_t
conference_globals
;
extern
conference_globals_t
conference_globals
;
...
@@ -164,662 +164,662 @@ typedef struct conference_member conference_member_t;
...
@@ -164,662 +164,662 @@ typedef struct conference_member conference_member_t;
struct
caller_control_actions
;
struct
caller_control_actions
;
typedef
struct
caller_control_actions
{
typedef
struct
caller_control_actions
{
char
*
binded_dtmf
;
char
*
binded_dtmf
;
char
*
data
;
char
*
data
;
char
*
expanded_data
;
char
*
expanded_data
;
}
caller_control_action_t
;
}
caller_control_action_t
;
typedef
struct
caller_control_menu_info
{
typedef
struct
caller_control_menu_info
{
switch_ivr_menu_t
*
stack
;
switch_ivr_menu_t
*
stack
;
char
*
name
;
char
*
name
;
}
caller_control_menu_info_t
;
}
caller_control_menu_info_t
;
typedef
enum
{
typedef
enum
{
MFLAG_RUNNING
,
MFLAG_RUNNING
,
MFLAG_CAN_SPEAK
,
MFLAG_CAN_SPEAK
,
MFLAG_CAN_HEAR
,
MFLAG_CAN_HEAR
,
MFLAG_KICKED
,
MFLAG_KICKED
,
MFLAG_ITHREAD
,
MFLAG_ITHREAD
,
MFLAG_NOCHANNEL
,
MFLAG_NOCHANNEL
,
MFLAG_INTREE
,
MFLAG_INTREE
,
MFLAG_NO_MINIMIZE_ENCODING
,
MFLAG_NO_MINIMIZE_ENCODING
,
MFLAG_FLUSH_BUFFER
,
MFLAG_FLUSH_BUFFER
,
MFLAG_ENDCONF
,
MFLAG_ENDCONF
,
MFLAG_HAS_AUDIO
,
MFLAG_HAS_AUDIO
,
MFLAG_TALKING
,
MFLAG_TALKING
,
MFLAG_RESTART
,
MFLAG_RESTART
,
MFLAG_MINTWO
,
MFLAG_MINTWO
,
MFLAG_MUTE_DETECT
,
MFLAG_MUTE_DETECT
,
MFLAG_DIST_DTMF
,
MFLAG_DIST_DTMF
,
MFLAG_MOD
,
MFLAG_MOD
,
MFLAG_INDICATE_MUTE
,
MFLAG_INDICATE_MUTE
,
MFLAG_INDICATE_UNMUTE
,
MFLAG_INDICATE_UNMUTE
,
MFLAG_NOMOH
,
MFLAG_NOMOH
,
MFLAG_VIDEO_BRIDGE
,
MFLAG_VIDEO_BRIDGE
,
MFLAG_INDICATE_MUTE_DETECT
,
MFLAG_INDICATE_MUTE_DETECT
,
MFLAG_PAUSE_RECORDING
,
MFLAG_PAUSE_RECORDING
,
MFLAG_ACK_VIDEO
,
MFLAG_ACK_VIDEO
,
MFLAG_GHOST
,
MFLAG_GHOST
,
MFLAG_JOIN_ONLY
,
MFLAG_JOIN_ONLY
,
MFLAG_POSITIONAL
,
MFLAG_POSITIONAL
,
MFLAG_NO_POSITIONAL
,
MFLAG_NO_POSITIONAL
,
MFLAG_JOIN_VID_FLOOR
,
MFLAG_JOIN_VID_FLOOR
,
MFLAG_RECEIVING_VIDEO
,
MFLAG_RECEIVING_VIDEO
,
MFLAG_CAN_BE_SEEN
,
MFLAG_CAN_BE_SEEN
,
MFLAG_SECOND_SCREEN
,
MFLAG_SECOND_SCREEN
,
MFLAG_SILENT
,
MFLAG_SILENT
,
///////////////////////////
///////////////////////////
MFLAG_MAX
MFLAG_MAX
}
member_flag_t
;
}
member_flag_t
;
typedef
enum
{
typedef
enum
{
CFLAG_RUNNING
,
CFLAG_RUNNING
,
CFLAG_DYNAMIC
,
CFLAG_DYNAMIC
,
CFLAG_ENFORCE_MIN
,
CFLAG_ENFORCE_MIN
,
CFLAG_DESTRUCT
,
CFLAG_DESTRUCT
,
CFLAG_LOCKED
,
CFLAG_LOCKED
,
CFLAG_ANSWERED
,
CFLAG_ANSWERED
,
CFLAG_BRIDGE_TO
,
CFLAG_BRIDGE_TO
,
CFLAG_WAIT_MOD
,
CFLAG_WAIT_MOD
,
CFLAG_VID_FLOOR
,
CFLAG_VID_FLOOR
,
CFLAG_WASTE_FLAG
,
CFLAG_WASTE_FLAG
,
CFLAG_OUTCALL
,
CFLAG_OUTCALL
,
CFLAG_INHASH
,
CFLAG_INHASH
,
CFLAG_EXIT_SOUND
,
CFLAG_EXIT_SOUND
,
CFLAG_ENTER_SOUND
,
CFLAG_ENTER_SOUND
,
CFLAG_USE_ME
,
CFLAG_USE_ME
,
CFLAG_AUDIO_ALWAYS
,
CFLAG_AUDIO_ALWAYS
,
CFLAG_ENDCONF_FORCED
,
CFLAG_ENDCONF_FORCED
,
CFLAG_RFC4579
,
CFLAG_RFC4579
,
CFLAG_FLOOR_CHANGE
,
CFLAG_FLOOR_CHANGE
,
CFLAG_VID_FLOOR_LOCK
,
CFLAG_VID_FLOOR_LOCK
,
CFLAG_JSON_EVENTS
,
CFLAG_JSON_EVENTS
,
CFLAG_LIVEARRAY_SYNC
,
CFLAG_LIVEARRAY_SYNC
,
CFLAG_CONF_RESTART_AUTO_RECORD
,
CFLAG_CONF_RESTART_AUTO_RECORD
,
CFLAG_POSITIONAL
,
CFLAG_POSITIONAL
,
CFLAG_TRANSCODE_VIDEO
,
CFLAG_TRANSCODE_VIDEO
,
CFLAG_VIDEO_MUXING
,
CFLAG_VIDEO_MUXING
,
CFLAG_MINIMIZE_VIDEO_ENCODING
,
CFLAG_MINIMIZE_VIDEO_ENCODING
,
CFLAG_MANAGE_INBOUND_VIDEO_BITRATE
,
CFLAG_MANAGE_INBOUND_VIDEO_BITRATE
,
CFLAG_JSON_STATUS
,
CFLAG_JSON_STATUS
,
CFLAG_VIDEO_BRIDGE_FIRST_TWO
,
CFLAG_VIDEO_BRIDGE_FIRST_TWO
,
CFLAG_VIDEO_REQUIRED_FOR_CANVAS
,
CFLAG_VIDEO_REQUIRED_FOR_CANVAS
,
CFLAG_PERSONAL_CANVAS
,
CFLAG_PERSONAL_CANVAS
,
/////////////////////////////////
/////////////////////////////////
CFLAG_MAX
CFLAG_MAX
}
conference_flag_t
;
}
conference_flag_t
;
typedef
struct
conference_cdr_node_s
{
typedef
struct
conference_cdr_node_s
{
switch_caller_profile_t
*
cp
;
switch_caller_profile_t
*
cp
;
char
*
record_path
;
char
*
record_path
;
switch_time_t
join_time
;
switch_time_t
join_time
;
switch_time_t
leave_time
;
switch_time_t
leave_time
;
member_flag_t
mflags
[
MFLAG_MAX
];
member_flag_t
mflags
[
MFLAG_MAX
];
uint32_t
id
;
uint32_t
id
;
conference_member_t
*
member
;
conference_member_t
*
member
;
switch_event_t
*
var_event
;
switch_event_t
*
var_event
;
struct
conference_cdr_node_s
*
next
;
struct
conference_cdr_node_s
*
next
;
}
conference_cdr_node_t
;
}
conference_cdr_node_t
;
typedef
enum
{
typedef
enum
{
CDRR_LOCKED
=
1
,
CDRR_LOCKED
=
1
,
CDRR_PIN
,
CDRR_PIN
,
CDRR_MAXMEMBERS
CDRR_MAXMEMBERS
}
cdr_reject_reason_t
;
}
cdr_reject_reason_t
;
typedef
struct
conference_cdr_reject_s
{
typedef
struct
conference_cdr_reject_s
{
switch_caller_profile_t
*
cp
;
switch_caller_profile_t
*
cp
;
switch_time_t
reject_time
;
switch_time_t
reject_time
;
cdr_reject_reason_t
reason
;
cdr_reject_reason_t
reason
;
struct
conference_cdr_reject_s
*
next
;
struct
conference_cdr_reject_s
*
next
;
}
conference_cdr_reject_t
;
}
conference_cdr_reject_t
;
typedef
enum
{
typedef
enum
{
CDRE_NONE
,
CDRE_NONE
,
CDRE_AS_CONTENT
,
CDRE_AS_CONTENT
,
CDRE_AS_FILE
CDRE_AS_FILE
}
cdr_event_mode_t
;
}
cdr_event_mode_t
;
struct
call_list
{
struct
call_list
{
char
*
string
;
char
*
string
;
int
iteration
;
int
iteration
;
struct
call_list
*
next
;
struct
call_list
*
next
;
};
};
typedef
struct
call_list
call_list_t
;
typedef
struct
call_list
call_list_t
;
typedef
enum
{
typedef
enum
{
RFLAG_CAN_SPEAK
=
(
1
<<
0
),
RFLAG_CAN_SPEAK
=
(
1
<<
0
),
RFLAG_CAN_HEAR
=
(
1
<<
1
),
RFLAG_CAN_HEAR
=
(
1
<<
1
),
RFLAG_CAN_SEND_VIDEO
=
(
1
<<
2
)
RFLAG_CAN_SEND_VIDEO
=
(
1
<<
2
)
}
relation_flag_t
;
}
relation_flag_t
;
typedef
enum
{
typedef
enum
{
NODE_TYPE_FILE
,
NODE_TYPE_FILE
,
NODE_TYPE_SPEECH
NODE_TYPE_SPEECH
}
node_type_t
;
}
node_type_t
;
typedef
enum
{
typedef
enum
{
NFLAG_NONE
=
(
1
<<
0
),
NFLAG_NONE
=
(
1
<<
0
),
NFLAG_PAUSE
=
(
1
<<
1
)
NFLAG_PAUSE
=
(
1
<<
1
)
}
node_flag_t
;
}
node_flag_t
;
typedef
enum
{
typedef
enum
{
EFLAG_ADD_MEMBER
=
(
1
<<
0
),
EFLAG_ADD_MEMBER
=
(
1
<<
0
),
EFLAG_DEL_MEMBER
=
(
1
<<
1
),
EFLAG_DEL_MEMBER
=
(
1
<<
1
),
EFLAG_ENERGY_LEVEL
=
(
1
<<
2
),
EFLAG_ENERGY_LEVEL
=
(
1
<<
2
),
EFLAG_VOLUME_LEVEL
=
(
1
<<
3
),
EFLAG_VOLUME_LEVEL
=
(
1
<<
3
),
EFLAG_GAIN_LEVEL
=
(
1
<<
4
),
EFLAG_GAIN_LEVEL
=
(
1
<<
4
),
EFLAG_DTMF
=
(
1
<<
5
),
EFLAG_DTMF
=
(
1
<<
5
),
EFLAG_STOP_TALKING
=
(
1
<<
6
),
EFLAG_STOP_TALKING
=
(
1
<<
6
),
EFLAG_START_TALKING
=
(
1
<<
7
),
EFLAG_START_TALKING
=
(
1
<<
7
),
EFLAG_MUTE_MEMBER
=
(
1
<<
8
),
EFLAG_MUTE_MEMBER
=
(
1
<<
8
),
EFLAG_UNMUTE_MEMBER
=
(
1
<<
9
),
EFLAG_UNMUTE_MEMBER
=
(
1
<<
9
),
EFLAG_DEAF_MEMBER
=
(
1
<<
10
),
EFLAG_DEAF_MEMBER
=
(
1
<<
10
),
EFLAG_UNDEAF_MEMBER
=
(
1
<<
11
),
EFLAG_UNDEAF_MEMBER
=
(
1
<<
11
),
EFLAG_KICK_MEMBER
=
(
1
<<
12
),
EFLAG_KICK_MEMBER
=
(
1
<<
12
),
EFLAG_DTMF_MEMBER
=
(
1
<<
13
),
EFLAG_DTMF_MEMBER
=
(
1
<<
13
),
EFLAG_ENERGY_LEVEL_MEMBER
=
(
1
<<
14
),
EFLAG_ENERGY_LEVEL_MEMBER
=
(
1
<<
14
),
EFLAG_VOLUME_IN_MEMBER
=
(
1
<<
15
),
EFLAG_VOLUME_IN_MEMBER
=
(
1
<<
15
),
EFLAG_VOLUME_OUT_MEMBER
=
(
1
<<
16
),
EFLAG_VOLUME_OUT_MEMBER
=
(
1
<<
16
),
EFLAG_PLAY_FILE
=
(
1
<<
17
),
EFLAG_PLAY_FILE
=
(
1
<<
17
),
EFLAG_PLAY_FILE_MEMBER
=
(
1
<<
18
),
EFLAG_PLAY_FILE_MEMBER
=
(
1
<<
18
),
EFLAG_SPEAK_TEXT
=
(
1
<<
19
),
EFLAG_SPEAK_TEXT
=
(
1
<<
19
),
EFLAG_SPEAK_TEXT_MEMBER
=
(
1
<<
20
),
EFLAG_SPEAK_TEXT_MEMBER
=
(
1
<<
20
),
EFLAG_LOCK
=
(
1
<<
21
),
EFLAG_LOCK
=
(
1
<<
21
),
EFLAG_UNLOCK
=
(
1
<<
22
),
EFLAG_UNLOCK
=
(
1
<<
22
),
EFLAG_TRANSFER
=
(
1
<<
23
),
EFLAG_TRANSFER
=
(
1
<<
23
),
EFLAG_BGDIAL_RESULT
=
(
1
<<
24
),
EFLAG_BGDIAL_RESULT
=
(
1
<<
24
),
EFLAG_FLOOR_CHANGE
=
(
1
<<
25
),
EFLAG_FLOOR_CHANGE
=
(
1
<<
25
),
EFLAG_MUTE_DETECT
=
(
1
<<
26
),
EFLAG_MUTE_DETECT
=
(
1
<<
26
),
EFLAG_RECORD
=
(
1
<<
27
),
EFLAG_RECORD
=
(
1
<<
27
),
EFLAG_HUP_MEMBER
=
(
1
<<
28
),
EFLAG_HUP_MEMBER
=
(
1
<<
28
),
EFLAG_PLAY_FILE_DONE
=
(
1
<<
29
),
EFLAG_PLAY_FILE_DONE
=
(
1
<<
29
),
EFLAG_SET_POSITION_MEMBER
=
(
1
<<
30
)
EFLAG_SET_POSITION_MEMBER
=
(
1
<<
30
)
}
event_type_t
;
}
event_type_t
;
#ifdef OPENAL_POSITIONING
#ifdef OPENAL_POSITIONING
typedef
struct
al_handle_s
{
typedef
struct
al_handle_s
{
switch_mutex_t
*
mutex
;
switch_mutex_t
*
mutex
;
ALCdevice
*
device
;
ALCdevice
*
device
;
ALCcontext
*
context
;
ALCcontext
*
context
;
ALuint
source
;
ALuint
source
;
ALuint
buffer_in
[
2
];
ALuint
buffer_in
[
2
];
int
setpos
;
int
setpos
;
ALfloat
pos_x
;
ALfloat
pos_x
;
ALfloat
pos_y
;
ALfloat
pos_y
;
ALfloat
pos_z
;
ALfloat
pos_z
;
}
al_handle_t
;
}
al_handle_t
;
void
conference_al_close
(
al_handle_t
*
al
);
void
conference_al_close
(
al_handle_t
*
al
);
#else
#else
typedef
struct
al_handle_s
{
typedef
struct
al_handle_s
{
int
unsupported
;
int
unsupported
;
switch_mutex_t
*
mutex
;
switch_mutex_t
*
mutex
;
}
al_handle_t
;
}
al_handle_t
;
#endif
#endif
struct
conference_obj
;
struct
conference_obj
;
typedef
struct
conference_file_node
{
typedef
struct
conference_file_node
{
switch_file_handle_t
fh
;
switch_file_handle_t
fh
;
switch_speech_handle_t
*
sh
;
switch_speech_handle_t
*
sh
;
node_flag_t
flags
;
node_flag_t
flags
;
node_type_t
type
;
node_type_t
type
;
uint8_t
done
;
uint8_t
done
;
uint8_t
async
;
uint8_t
async
;
switch_memory_pool_t
*
pool
;
switch_memory_pool_t
*
pool
;
uint32_t
leadin
;
uint32_t
leadin
;
struct
conference_file_node
*
next
;
struct
conference_file_node
*
next
;
char
*
file
;
char
*
file
;
switch_bool_t
mux
;
switch_bool_t
mux
;
uint32_t
member_id
;
uint32_t
member_id
;
al_handle_t
*
al
;
al_handle_t
*
al
;
int
layer_id
;
int
layer_id
;
int
canvas_id
;
int
canvas_id
;
struct
conference_obj
*
conference
;
struct
conference_obj
*
conference
;
}
conference_file_node_t
;
}
conference_file_node_t
;
typedef
enum
{
typedef
enum
{
REC_ACTION_STOP
=
1
,
REC_ACTION_STOP
=
1
,
REC_ACTION_PAUSE
,
REC_ACTION_PAUSE
,
REC_ACTION_RESUME
REC_ACTION_RESUME
}
recording_action_type_t
;
}
recording_action_type_t
;
/* conference xml config sections */
/* conference xml config sections */
typedef
struct
conference_xml_cfg
{
typedef
struct
conference_xml_cfg
{
switch_xml_t
profile
;
switch_xml_t
profile
;
switch_xml_t
controls
;
switch_xml_t
controls
;
}
conference_xml_cfg_t
;
}
conference_xml_cfg_t
;
struct
vid_helper
{
struct
vid_helper
{
conference_member_t
*
member_a
;
conference_member_t
*
member_a
;
conference_member_t
*
member_b
;
conference_member_t
*
member_b
;
int
up
;
int
up
;
};
};
typedef
struct
mcu_layer_geometry_s
{
typedef
struct
mcu_layer_geometry_s
{
int
x
;
int
x
;
int
y
;
int
y
;
int
scale
;
int
scale
;
int
floor
;
int
floor
;
int
flooronly
;
int
flooronly
;
int
fileonly
;
int
fileonly
;
int
overlap
;
int
overlap
;
char
*
res_id
;
char
*
res_id
;
char
*
audio_position
;
char
*
audio_position
;
}
mcu_layer_geometry_t
;
}
mcu_layer_geometry_t
;
typedef
struct
mcu_layer_def_s
{
typedef
struct
mcu_layer_def_s
{
char
*
name
;
char
*
name
;
mcu_layer_geometry_t
layers
[
MCU_MAX_LAYERS
];
mcu_layer_geometry_t
layers
[
MCU_MAX_LAYERS
];
}
mcu_layer_def_t
;
}
mcu_layer_def_t
;
struct
mcu_canvas_s
;
struct
mcu_canvas_s
;
typedef
struct
mcu_layer_s
{
typedef
struct
mcu_layer_s
{
mcu_layer_geometry_t
geometry
;
mcu_layer_geometry_t
geometry
;
int
member_id
;
int
member_id
;
int
idx
;
int
idx
;
int
tagged
;
int
tagged
;
int
bugged
;
int
bugged
;
int
screen_w
;
int
screen_w
;
int
screen_h
;
int
screen_h
;
int
x_pos
;
int
x_pos
;
int
y_pos
;
int
y_pos
;
int
banner_patched
;
int
banner_patched
;
int
mute_patched
;
int
mute_patched
;
int
avatar_patched
;
int
avatar_patched
;
int
refresh
;
int
refresh
;
int
is_avatar
;
int
is_avatar
;
switch_img_position_t
logo_pos
;
switch_img_position_t
logo_pos
;
switch_image_t
*
img
;
switch_image_t
*
img
;
switch_image_t
*
cur_img
;
switch_image_t
*
cur_img
;
switch_image_t
*
banner_img
;
switch_image_t
*
banner_img
;
switch_image_t
*
logo_img
;
switch_image_t
*
logo_img
;
switch_image_t
*
logo_text_img
;
switch_image_t
*
logo_text_img
;
switch_image_t
*
mute_img
;
switch_image_t
*
mute_img
;
switch_img_txt_handle_t
*
txthandle
;
switch_img_txt_handle_t
*
txthandle
;
conference_file_node_t
*
fnode
;
conference_file_node_t
*
fnode
;
struct
mcu_canvas_s
*
canvas
;
struct
mcu_canvas_s
*
canvas
;
}
mcu_layer_t
;
}
mcu_layer_t
;
typedef
struct
video_layout_s
{
typedef
struct
video_layout_s
{
char
*
name
;
char
*
name
;
char
*
audio_position
;
char
*
audio_position
;
mcu_layer_geometry_t
images
[
MCU_MAX_LAYERS
];
mcu_layer_geometry_t
images
[
MCU_MAX_LAYERS
];
int
layers
;
int
layers
;
}
video_layout_t
;
}
video_layout_t
;
typedef
struct
video_layout_node_s
{
typedef
struct
video_layout_node_s
{
video_layout_t
*
vlayout
;
video_layout_t
*
vlayout
;
struct
video_layout_node_s
*
next
;
struct
video_layout_node_s
*
next
;
}
video_layout_node_t
;
}
video_layout_node_t
;
typedef
struct
layout_group_s
{
typedef
struct
layout_group_s
{
video_layout_node_t
*
layouts
;
video_layout_node_t
*
layouts
;
}
layout_group_t
;
}
layout_group_t
;
typedef
struct
mcu_canvas_s
{
typedef
struct
mcu_canvas_s
{
int
width
;
int
width
;
int
height
;
int
height
;
switch_image_t
*
img
;
switch_image_t
*
img
;
mcu_layer_t
layers
[
MCU_MAX_LAYERS
];
mcu_layer_t
layers
[
MCU_MAX_LAYERS
];
int
total_layers
;
int
total_layers
;
int
layers_used
;
int
layers_used
;
int
layout_floor_id
;
int
layout_floor_id
;
int
refresh
;
int
refresh
;
int
send_keyframe
;
int
send_keyframe
;
int
play_file
;
int
play_file
;
switch_rgb_color_t
bgcolor
;
switch_rgb_color_t
bgcolor
;
switch_rgb_color_t
letterbox_bgcolor
;
switch_rgb_color_t
letterbox_bgcolor
;
switch_mutex_t
*
mutex
;
switch_mutex_t
*
mutex
;
switch_timer_t
timer
;
switch_timer_t
timer
;
switch_memory_pool_t
*
pool
;
switch_memory_pool_t
*
pool
;
video_layout_t
*
vlayout
;
video_layout_t
*
vlayout
;
video_layout_t
*
new_vlayout
;
video_layout_t
*
new_vlayout
;
int
canvas_id
;
int
canvas_id
;
struct
conference_obj
*
conference
;
struct
conference_obj
*
conference
;
switch_thread_t
*
video_muxing_thread
;
switch_thread_t
*
video_muxing_thread
;
int
video_timer_reset
;
int
video_timer_reset
;
switch_queue_t
*
video_queue
;
switch_queue_t
*
video_queue
;
int32_t
video_write_bandwidth
;
int32_t
video_write_bandwidth
;
}
mcu_canvas_t
;
}
mcu_canvas_t
;
/* Record Node */
/* Record Node */
typedef
struct
conference_record
{
typedef
struct
conference_record
{
struct
conference_obj
*
conference
;
struct
conference_obj
*
conference
;
char
*
path
;
char
*
path
;
switch_memory_pool_t
*
pool
;
switch_memory_pool_t
*
pool
;
switch_bool_t
autorec
;
switch_bool_t
autorec
;
struct
conference_record
*
next
;
struct
conference_record
*
next
;
switch_file_handle_t
fh
;
switch_file_handle_t
fh
;
}
conference_record_t
;
}
conference_record_t
;
typedef
enum
{
typedef
enum
{
CONF_VIDEO_MODE_PASSTHROUGH
,
CONF_VIDEO_MODE_PASSTHROUGH
,
CONF_VIDEO_MODE_TRANSCODE
,
CONF_VIDEO_MODE_TRANSCODE
,
CONF_VIDEO_MODE_MUX
CONF_VIDEO_MODE_MUX
}
conference_video_mode_t
;
}
conference_video_mode_t
;
/* Conference Object */
/* Conference Object */
typedef
struct
conference_obj
{
typedef
struct
conference_obj
{
char
*
name
;
char
*
name
;
char
*
la_name
;
char
*
la_name
;
char
*
la_event_channel
;
char
*
la_event_channel
;
char
*
mod_event_channel
;
char
*
mod_event_channel
;
char
*
desc
;
char
*
desc
;
char
*
timer_name
;
char
*
timer_name
;
char
*
tts_engine
;
char
*
tts_engine
;
char
*
tts_voice
;
char
*
tts_voice
;
char
*
enter_sound
;
char
*
enter_sound
;
char
*
exit_sound
;
char
*
exit_sound
;
char
*
alone_sound
;
char
*
alone_sound
;
char
*
perpetual_sound
;
char
*
perpetual_sound
;
char
*
moh_sound
;
char
*
moh_sound
;
char
*
muted_sound
;
char
*
muted_sound
;
char
*
mute_detect_sound
;
char
*
mute_detect_sound
;
char
*
unmuted_sound
;
char
*
unmuted_sound
;
char
*
locked_sound
;
char
*
locked_sound
;
char
*
is_locked_sound
;
char
*
is_locked_sound
;
char
*
is_unlocked_sound
;
char
*
is_unlocked_sound
;
char
*
kicked_sound
;
char
*
kicked_sound
;
char
*
join_only_sound
;
char
*
join_only_sound
;
char
*
caller_id_name
;
char
*
caller_id_name
;
char
*
caller_id_number
;
char
*
caller_id_number
;
char
*
sound_prefix
;
char
*
sound_prefix
;
char
*
special_announce
;
char
*
special_announce
;
char
*
auto_record
;
char
*
auto_record
;
char
*
record_filename
;
char
*
record_filename
;
char
*
outcall_templ
;
char
*
outcall_templ
;
char
*
video_layout_name
;
char
*
video_layout_name
;
char
*
video_layout_group
;
char
*
video_layout_group
;
char
*
video_canvas_bgcolor
;
char
*
video_canvas_bgcolor
;
char
*
video_super_canvas_bgcolor
;
char
*
video_super_canvas_bgcolor
;
char
*
video_letterbox_bgcolor
;
char
*
video_letterbox_bgcolor
;
char
*
no_video_avatar
;
char
*
no_video_avatar
;
conference_video_mode_t
conference_video_mode
;
conference_video_mode_t
conference_video_mode
;
int
members_with_video
;
int
members_with_video
;
int
members_with_avatar
;
int
members_with_avatar
;
switch_codec_settings_t
video_codec_settings
;
switch_codec_settings_t
video_codec_settings
;
uint32_t
canvas_width
;
uint32_t
canvas_width
;
uint32_t
canvas_height
;
uint32_t
canvas_height
;
uint32_t
terminate_on_silence
;
uint32_t
terminate_on_silence
;
uint32_t
max_members
;
uint32_t
max_members
;
uint32_t
doc_version
;
uint32_t
doc_version
;
char
*
maxmember_sound
;
char
*
maxmember_sound
;
uint32_t
announce_count
;
uint32_t
announce_count
;
char
*
pin
;
char
*
pin
;
char
*
mpin
;
char
*
mpin
;
char
*
pin_sound
;
char
*
pin_sound
;
char
*
bad_pin_sound
;
char
*
bad_pin_sound
;
char
*
profile_name
;
char
*
profile_name
;
char
*
domain
;
char
*
domain
;
char
*
chat_id
;
char
*
chat_id
;
char
*
caller_controls
;
char
*
caller_controls
;
char
*
moderator_controls
;
char
*
moderator_controls
;
switch_live_array_t
*
la
;
switch_live_array_t
*
la
;
conference_flag_t
flags
[
CFLAG_MAX
];
conference_flag_t
flags
[
CFLAG_MAX
];
member_flag_t
mflags
[
MFLAG_MAX
];
member_flag_t
mflags
[
MFLAG_MAX
];
switch_call_cause_t
bridge_hangup_cause
;
switch_call_cause_t
bridge_hangup_cause
;
switch_mutex_t
*
flag_mutex
;
switch_mutex_t
*
flag_mutex
;
uint32_t
rate
;
uint32_t
rate
;
uint32_t
interval
;
uint32_t
interval
;
uint32_t
channels
;
uint32_t
channels
;
switch_mutex_t
*
mutex
;
switch_mutex_t
*
mutex
;
conference_member_t
*
members
;
conference_member_t
*
members
;
conference_member_t
*
floor_holder
;
conference_member_t
*
floor_holder
;
uint32_t
video_floor_holder
;
uint32_t
video_floor_holder
;
uint32_t
last_video_floor_holder
;
uint32_t
last_video_floor_holder
;
switch_mutex_t
*
member_mutex
;
switch_mutex_t
*
member_mutex
;
conference_file_node_t
*
fnode
;
conference_file_node_t
*
fnode
;
conference_file_node_t
*
async_fnode
;
conference_file_node_t
*
async_fnode
;
switch_memory_pool_t
*
pool
;
switch_memory_pool_t
*
pool
;
switch_thread_rwlock_t
*
rwlock
;
switch_thread_rwlock_t
*
rwlock
;
uint32_t
count
;
uint32_t
count
;
int32_t
energy_level
;
int32_t
energy_level
;
uint8_t
min
;
uint8_t
min
;
switch_speech_handle_t
lsh
;
switch_speech_handle_t
lsh
;
switch_speech_handle_t
*
sh
;
switch_speech_handle_t
*
sh
;
switch_byte_t
*
not_talking_buf
;
switch_byte_t
*
not_talking_buf
;
uint32_t
not_talking_buf_len
;
uint32_t
not_talking_buf_len
;
int
pin_retries
;
int
pin_retries
;
int
broadcast_chat_messages
;
int
broadcast_chat_messages
;
int
comfort_noise_level
;
int
comfort_noise_level
;
int
auto_recording
;
int
auto_recording
;
int
record_count
;
int
record_count
;
uint32_t
min_recording_participants
;
uint32_t
min_recording_participants
;
int
ivr_dtmf_timeout
;
int
ivr_dtmf_timeout
;
int
ivr_input_timeout
;
int
ivr_input_timeout
;
uint32_t
eflags
;
uint32_t
eflags
;
uint32_t
verbose_events
;
uint32_t
verbose_events
;
int
end_count
;
int
end_count
;
uint32_t
count_ghosts
;
uint32_t
count_ghosts
;
/* allow extra time after 'endconf' member leaves */
/* allow extra time after 'endconf' member leaves */
switch_time_t
endconference_time
;
switch_time_t
endconference_time
;
int
endconference_grace_time
;
int
endconference_grace_time
;
uint32_t
relationship_total
;
uint32_t
relationship_total
;
uint32_t
score
;
uint32_t
score
;
int
mux_loop_count
;
int
mux_loop_count
;
int
member_loop_count
;
int
member_loop_count
;
int
agc_level
;
int
agc_level
;
uint32_t
avg_score
;
uint32_t
avg_score
;
uint32_t
avg_itt
;
uint32_t
avg_itt
;
uint32_t
avg_tally
;
uint32_t
avg_tally
;
switch_time_t
run_time
;
switch_time_t
run_time
;
char
*
uuid_str
;
char
*
uuid_str
;
uint32_t
originating
;
uint32_t
originating
;
switch_call_cause_t
cancel_cause
;
switch_call_cause_t
cancel_cause
;
conference_cdr_node_t
*
cdr_nodes
;
conference_cdr_node_t
*
cdr_nodes
;
conference_cdr_reject_t
*
cdr_rejected
;
conference_cdr_reject_t
*
cdr_rejected
;
switch_time_t
start_time
;
switch_time_t
start_time
;
switch_time_t
end_time
;
switch_time_t
end_time
;
char
*
log_dir
;
char
*
log_dir
;
cdr_event_mode_t
cdr_event_mode
;
cdr_event_mode_t
cdr_event_mode
;
struct
vid_helper
vh
[
2
];
struct
vid_helper
vh
[
2
];
struct
vid_helper
mh
;
struct
vid_helper
mh
;
conference_record_t
*
rec_node_head
;
conference_record_t
*
rec_node_head
;
int
last_speech_channels
;
int
last_speech_channels
;
mcu_canvas_t
*
canvas
;
mcu_canvas_t
*
canvas
;
mcu_canvas_t
*
canvases
[
MAX_CANVASES
+
1
];
mcu_canvas_t
*
canvases
[
MAX_CANVASES
+
1
];
int
canvas_count
;
int
canvas_count
;
int
super_canvas_label_layers
;
int
super_canvas_label_layers
;
int
super_canvas_show_all_layers
;
int
super_canvas_show_all_layers
;
int
canvas_running_count
;
int
canvas_running_count
;
switch_mutex_t
*
canvas_mutex
;
switch_mutex_t
*
canvas_mutex
;
switch_hash_t
*
layout_hash
;
switch_hash_t
*
layout_hash
;
switch_hash_t
*
layout_group_hash
;
switch_hash_t
*
layout_group_hash
;
struct
conference_fps
video_fps
;
struct
conference_fps
video_fps
;
int
playing_video_file
;
int
playing_video_file
;
int
recording_members
;
int
recording_members
;
uint32_t
video_floor_packets
;
uint32_t
video_floor_packets
;
}
conference_obj_t
;
}
conference_obj_t
;
/* Relationship with another member */
/* Relationship with another member */
typedef
struct
conference_relationship
{
typedef
struct
conference_relationship
{
uint32_t
id
;
uint32_t
id
;
uint32_t
flags
;
uint32_t
flags
;
struct
conference_relationship
*
next
;
struct
conference_relationship
*
next
;
}
conference_relationship_t
;
}
conference_relationship_t
;
/* Conference Member Object */
/* Conference Member Object */
struct
conference_member
{
struct
conference_member
{
uint32_t
id
;
uint32_t
id
;
switch_core_session_t
*
session
;
switch_core_session_t
*
session
;
switch_channel_t
*
channel
;
switch_channel_t
*
channel
;
conference_obj_t
*
conference
;
conference_obj_t
*
conference
;
switch_memory_pool_t
*
pool
;
switch_memory_pool_t
*
pool
;
switch_buffer_t
*
audio_buffer
;
switch_buffer_t
*
audio_buffer
;
switch_buffer_t
*
mux_buffer
;
switch_buffer_t
*
mux_buffer
;
switch_buffer_t
*
resample_buffer
;
switch_buffer_t
*
resample_buffer
;
member_flag_t
flags
[
MFLAG_MAX
];
member_flag_t
flags
[
MFLAG_MAX
];
uint32_t
score
;
uint32_t
score
;
uint32_t
last_score
;
uint32_t
last_score
;
uint32_t
score_iir
;
uint32_t
score_iir
;
switch_mutex_t
*
flag_mutex
;
switch_mutex_t
*
flag_mutex
;
switch_mutex_t
*
write_mutex
;
switch_mutex_t
*
write_mutex
;
switch_mutex_t
*
audio_in_mutex
;
switch_mutex_t
*
audio_in_mutex
;
switch_mutex_t
*
audio_out_mutex
;
switch_mutex_t
*
audio_out_mutex
;
switch_mutex_t
*
read_mutex
;
switch_mutex_t
*
read_mutex
;
switch_mutex_t
*
fnode_mutex
;
switch_mutex_t
*
fnode_mutex
;
switch_thread_rwlock_t
*
rwlock
;
switch_thread_rwlock_t
*
rwlock
;
switch_codec_implementation_t
read_impl
;
switch_codec_implementation_t
read_impl
;
switch_codec_implementation_t
orig_read_impl
;
switch_codec_implementation_t
orig_read_impl
;
switch_codec_t
read_codec
;
switch_codec_t
read_codec
;
switch_codec_t
write_codec
;
switch_codec_t
write_codec
;
char
*
rec_path
;
char
*
rec_path
;
switch_time_t
rec_time
;
switch_time_t
rec_time
;
conference_record_t
*
rec
;
conference_record_t
*
rec
;
uint8_t
*
frame
;
uint8_t
*
frame
;
uint8_t
*
last_frame
;
uint8_t
*
last_frame
;
uint32_t
frame_size
;
uint32_t
frame_size
;
uint8_t
*
mux_frame
;
uint8_t
*
mux_frame
;
uint32_t
read
;
uint32_t
read
;
uint32_t
vol_period
;
uint32_t
vol_period
;
int32_t
energy_level
;
int32_t
energy_level
;
int32_t
agc_volume_in_level
;
int32_t
agc_volume_in_level
;
int32_t
volume_in_level
;
int32_t
volume_in_level
;
int32_t
volume_out_level
;
int32_t
volume_out_level
;
int32_t
agc_concur
;
int32_t
agc_concur
;
int32_t
nt_tally
;
int32_t
nt_tally
;
switch_time_t
join_time
;
switch_time_t
join_time
;
switch_time_t
last_talking
;
switch_time_t
last_talking
;
uint32_t
native_rate
;
uint32_t
native_rate
;
switch_audio_resampler_t
*
read_resampler
;
switch_audio_resampler_t
*
read_resampler
;
int16_t
*
resample_out
;
int16_t
*
resample_out
;
uint32_t
resample_out_len
;
uint32_t
resample_out_len
;
conference_file_node_t
*
fnode
;
conference_file_node_t
*
fnode
;
conference_relationship_t
*
relationships
;
conference_relationship_t
*
relationships
;
switch_speech_handle_t
lsh
;
switch_speech_handle_t
lsh
;
switch_speech_handle_t
*
sh
;
switch_speech_handle_t
*
sh
;
uint32_t
verbose_events
;
uint32_t
verbose_events
;
uint32_t
avg_score
;
uint32_t
avg_score
;
uint32_t
avg_itt
;
uint32_t
avg_itt
;
uint32_t
avg_tally
;
uint32_t
avg_tally
;
struct
conference_member
*
next
;
struct
conference_member
*
next
;
switch_ivr_dmachine_t
*
dmachine
;
switch_ivr_dmachine_t
*
dmachine
;
conference_cdr_node_t
*
cdr_node
;
conference_cdr_node_t
*
cdr_node
;
char
*
kicked_sound
;
char
*
kicked_sound
;
switch_queue_t
*
dtmf_queue
;
switch_queue_t
*
dtmf_queue
;
switch_queue_t
*
video_queue
;
switch_queue_t
*
video_queue
;
switch_queue_t
*
mux_out_queue
;
switch_queue_t
*
mux_out_queue
;
switch_thread_t
*
video_muxing_write_thread
;
switch_thread_t
*
video_muxing_write_thread
;
switch_thread_t
*
input_thread
;
switch_thread_t
*
input_thread
;
cJSON
*
json
;
cJSON
*
json
;
cJSON
*
status_field
;
cJSON
*
status_field
;
uint8_t
loop_loop
;
uint8_t
loop_loop
;
al_handle_t
*
al
;
al_handle_t
*
al
;
int
last_speech_channels
;
int
last_speech_channels
;
int
video_layer_id
;
int
video_layer_id
;
int
canvas_id
;
int
canvas_id
;
int
watching_canvas_id
;
int
watching_canvas_id
;
int
layer_timeout
;
int
layer_timeout
;
int
video_codec_index
;
int
video_codec_index
;
int
video_codec_id
;
int
video_codec_id
;
char
*
video_banner_text
;
char
*
video_banner_text
;
char
*
video_logo
;
char
*
video_logo
;
char
*
video_mute_png
;
char
*
video_mute_png
;
char
*
video_reservation_id
;
char
*
video_reservation_id
;
switch_media_flow_t
video_flow
;
switch_media_flow_t
video_flow
;
switch_frame_buffer_t
*
fb
;
switch_frame_buffer_t
*
fb
;
switch_image_t
*
avatar_png_img
;
switch_image_t
*
avatar_png_img
;
switch_image_t
*
video_mute_img
;
switch_image_t
*
video_mute_img
;
uint32_t
floor_packets
;
uint32_t
floor_packets
;
int
blanks
;
int
blanks
;
int
managed_kps
;
int
managed_kps
;
int
blackouts
;
int
blackouts
;
int
good_img
;
int
good_img
;
int
auto_avatar
;
int
auto_avatar
;
int
avatar_patched
;
int
avatar_patched
;
mcu_canvas_t
*
canvas
;
mcu_canvas_t
*
canvas
;
switch_image_t
*
pcanvas_img
;
switch_image_t
*
pcanvas_img
;
};
};
typedef
enum
{
typedef
enum
{
CONF_API_SUB_ARGS_SPLIT
,
CONF_API_SUB_ARGS_SPLIT
,
CONF_API_SUB_MEMBER_TARGET
,
CONF_API_SUB_MEMBER_TARGET
,
CONF_API_SUB_ARGS_AS_ONE
CONF_API_SUB_ARGS_AS_ONE
}
conference_fntype_t
;
}
conference_fntype_t
;
typedef
void
(
*
void_fn_t
)
(
void
);
typedef
void
(
*
void_fn_t
)
(
void
);
/* API command parser */
/* API command parser */
typedef
struct
api_command
{
typedef
struct
api_command
{
char
*
pname
;
char
*
pname
;
void_fn_t
pfnapicmd
;
void_fn_t
pfnapicmd
;
conference_fntype_t
fntype
;
conference_fntype_t
fntype
;
char
*
pcommand
;
char
*
pcommand
;
char
*
psyntax
;
char
*
psyntax
;
}
api_command_t
;
}
api_command_t
;
typedef
struct
codec_set_s
{
typedef
struct
codec_set_s
{
switch_codec_t
codec
;
switch_codec_t
codec
;
switch_frame_t
frame
;
switch_frame_t
frame
;
uint8_t
*
packet
;
uint8_t
*
packet
;
}
codec_set_t
;
}
codec_set_t
;
typedef
void
(
*
conference_key_callback_t
)
(
conference_member_t
*
,
struct
caller_control_actions
*
);
typedef
void
(
*
conference_key_callback_t
)
(
conference_member_t
*
,
struct
caller_control_actions
*
);
typedef
struct
{
typedef
struct
{
conference_member_t
*
member
;
conference_member_t
*
member
;
caller_control_action_t
action
;
caller_control_action_t
action
;
conference_key_callback_t
handler
;
conference_key_callback_t
handler
;
}
key_binding_t
;
}
key_binding_t
;
struct
_mapping
{
struct
_mapping
{
const
char
*
name
;
const
char
*
name
;
conference_key_callback_t
handler
;
conference_key_callback_t
handler
;
};
};
typedef
enum
{
typedef
enum
{
CONF_API_COMMAND_LIST
=
0
,
CONF_API_COMMAND_LIST
=
0
,
CONF_API_COMMAND_ENERGY
,
CONF_API_COMMAND_ENERGY
,
CONF_API_COMMAND_VOLUME_IN
,
CONF_API_COMMAND_VOLUME_IN
,
CONF_API_COMMAND_VOLUME_OUT
,
CONF_API_COMMAND_VOLUME_OUT
,
CONF_API_COMMAND_PLAY
,
CONF_API_COMMAND_PLAY
,
CONF_API_COMMAND_SAY
,
CONF_API_COMMAND_SAY
,
CONF_API_COMMAND_SAYMEMBER
,
CONF_API_COMMAND_SAYMEMBER
,
CONF_API_COMMAND_STOP
,
CONF_API_COMMAND_STOP
,
CONF_API_COMMAND_DTMF
,
CONF_API_COMMAND_DTMF
,
CONF_API_COMMAND_KICK
,
CONF_API_COMMAND_KICK
,
CONF_API_COMMAND_MUTE
,
CONF_API_COMMAND_MUTE
,
CONF_API_COMMAND_UNMUTE
,
CONF_API_COMMAND_UNMUTE
,
CONF_API_COMMAND_DEAF
,
CONF_API_COMMAND_DEAF
,
CONF_API_COMMAND_UNDEAF
,
CONF_API_COMMAND_UNDEAF
,
CONF_API_COMMAND_RELATE
,
CONF_API_COMMAND_RELATE
,
CONF_API_COMMAND_LOCK
,
CONF_API_COMMAND_LOCK
,
CONF_API_COMMAND_UNLOCK
,
CONF_API_COMMAND_UNLOCK
,
CONF_API_COMMAND_DIAL
,
CONF_API_COMMAND_DIAL
,
CONF_API_COMMAND_BGDIAL
,
CONF_API_COMMAND_BGDIAL
,
CONF_API_COMMAND_TRANSFER
,
CONF_API_COMMAND_TRANSFER
,
CONF_API_COMMAND_RECORD
,
CONF_API_COMMAND_RECORD
,
CONF_API_COMMAND_NORECORD
,
CONF_API_COMMAND_NORECORD
,
CONF_API_COMMAND_EXIT_SOUND
,
CONF_API_COMMAND_EXIT_SOUND
,
CONF_API_COMMAND_ENTER_SOUND
,
CONF_API_COMMAND_ENTER_SOUND
,
CONF_API_COMMAND_PIN
,
CONF_API_COMMAND_PIN
,
CONF_API_COMMAND_NOPIN
,
CONF_API_COMMAND_NOPIN
,
CONF_API_COMMAND_GET
,
CONF_API_COMMAND_GET
,
CONF_API_COMMAND_SET
,
CONF_API_COMMAND_SET
,
}
api_command_type_t
;
}
api_command_type_t
;
struct
bg_call
{
struct
bg_call
{
conference_obj_t
*
conference
;
conference_obj_t
*
conference
;
switch_core_session_t
*
session
;
switch_core_session_t
*
session
;
char
*
bridgeto
;
char
*
bridgeto
;
uint32_t
timeout
;
uint32_t
timeout
;
char
*
flags
;
char
*
flags
;
char
*
cid_name
;
char
*
cid_name
;
char
*
cid_num
;
char
*
cid_num
;
char
*
conference_name
;
char
*
conference_name
;
char
*
uuid
;
char
*
uuid
;
char
*
profile
;
char
*
profile
;
switch_call_cause_t
*
cancel_cause
;
switch_call_cause_t
*
cancel_cause
;
switch_event_t
*
var_event
;
switch_event_t
*
var_event
;
switch_memory_pool_t
*
pool
;
switch_memory_pool_t
*
pool
;
};
};
/* FUNCTION DEFINITIONS */
/* FUNCTION DEFINITIONS */
...
@@ -945,27 +945,27 @@ const char *conference_utils_combine_flag_var(switch_core_session_t *session, co
...
@@ -945,27 +945,27 @@ const char *conference_utils_combine_flag_var(switch_core_session_t *session, co
int
conference_loop_mapping_len
();
int
conference_loop_mapping_len
();
switch_status_t
conference_outcall
(
conference_obj_t
*
conference
,
switch_status_t
conference_outcall
(
conference_obj_t
*
conference
,
char
*
conference_name
,
char
*
conference_name
,
switch_core_session_t
*
session
,
switch_core_session_t
*
session
,
char
*
bridgeto
,
uint32_t
timeout
,
char
*
bridgeto
,
uint32_t
timeout
,
char
*
flags
,
char
*
flags
,
char
*
cid_name
,
char
*
cid_name
,
char
*
cid_num
,
char
*
cid_num
,
char
*
profile
,
char
*
profile
,
switch_call_cause_t
*
cause
,
switch_call_cause_t
*
cause
,
switch_call_cause_t
*
cancel_cause
,
switch_event_t
*
var_event
);
switch_call_cause_t
*
cancel_cause
,
switch_event_t
*
var_event
);
switch_status_t
conference_outcall_bg
(
conference_obj_t
*
conference
,
switch_status_t
conference_outcall_bg
(
conference_obj_t
*
conference
,
char
*
conference_name
,
char
*
conference_name
,
switch_core_session_t
*
session
,
char
*
bridgeto
,
uint32_t
timeout
,
const
char
*
flags
,
const
char
*
cid_name
,
switch_core_session_t
*
session
,
char
*
bridgeto
,
uint32_t
timeout
,
const
char
*
flags
,
const
char
*
cid_name
,
const
char
*
cid_num
,
const
char
*
call_uuid
,
const
char
*
profile
,
switch_call_cause_t
*
cancel_cause
,
const
char
*
cid_num
,
const
char
*
call_uuid
,
const
char
*
profile
,
switch_call_cause_t
*
cancel_cause
,
switch_event_t
**
var_event
);
switch_event_t
**
var_event
);
void
conference_video_launch_muxing_thread
(
conference_obj_t
*
conference
,
mcu_canvas_t
*
canvas
,
int
super
);
void
conference_video_launch_muxing_thread
(
conference_obj_t
*
conference
,
mcu_canvas_t
*
canvas
,
int
super
);
void
conference_launch_thread
(
conference_obj_t
*
conference
);
void
conference_launch_thread
(
conference_obj_t
*
conference
);
void
conference_video_launch_muxing_write_thread
(
conference_member_t
*
member
);
void
conference_video_launch_muxing_write_thread
(
conference_member_t
*
member
);
void
*
SWITCH_THREAD_FUNC
conference_loop_input
(
switch_thread_t
*
thread
,
void
*
obj
);
void
*
SWITCH_THREAD_FUNC
conference_loop_input
(
switch_thread_t
*
thread
,
void
*
obj
);
switch_status_t
conference_file_local_play
(
conference_obj_t
*
conference
,
switch_core_session_t
*
session
,
char
*
path
,
uint32_t
leadin
,
void
*
buf
,
switch_status_t
conference_file_local_play
(
conference_obj_t
*
conference
,
switch_core_session_t
*
session
,
char
*
path
,
uint32_t
leadin
,
void
*
buf
,
uint32_t
buflen
);
uint32_t
buflen
);
switch_status_t
conference_member_play_file
(
conference_member_t
*
member
,
char
*
file
,
uint32_t
leadin
,
switch_bool_t
mux
);
switch_status_t
conference_member_play_file
(
conference_member_t
*
member
,
char
*
file
,
uint32_t
leadin
,
switch_bool_t
mux
);
switch_status_t
conference_member_say
(
conference_member_t
*
member
,
char
*
text
,
uint32_t
leadin
);
switch_status_t
conference_member_say
(
conference_member_t
*
member
,
char
*
text
,
uint32_t
leadin
);
uint32_t
conference_member_stop_file
(
conference_member_t
*
member
,
file_stop_t
stop
);
uint32_t
conference_member_stop_file
(
conference_member_t
*
member
,
file_stop_t
stop
);
...
@@ -1100,3 +1100,14 @@ extern struct _mapping control_mappings[];
...
@@ -1100,3 +1100,14 @@ extern struct _mapping control_mappings[];
#endif
/* MOD_CONFERENCE_H */
#endif
/* MOD_CONFERENCE_H */
/* For Emacs:
* Local Variables:
* mode:c
* indent-tabs-mode:t
* tab-width:4
* c-basic-offset:4
* End:
* For VIM:
* vim:set softtabstop=4 shiftwidth=4 tabstop=4 noet:
*/
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论