Add AMI action CapichatRemove
This commit is contained in:
parent
7bbeb7ecf6
commit
ab7eff3897
|
@ -41,7 +41,7 @@ txdgain,-128
|
||||||
|
|
||||||
Mute all regular users if conference or mute selected user.
|
Mute all regular users if conference or mute selected user.
|
||||||
|
|
||||||
Conference: Conference room to mute
|
Conference: Conference room to unmute
|
||||||
Member: User to mute (Channel name)
|
Member: User to mute (Channel name)
|
||||||
Path: Path to mute (Rx or Tx)
|
Path: Path to mute (Rx or Tx)
|
||||||
|
|
||||||
|
@ -59,6 +59,7 @@ txdgain,0
|
||||||
|
|
||||||
Remove member from conference
|
Remove member from conference
|
||||||
|
|
||||||
|
Conference: Conference room name
|
||||||
Member: User to remove (Channel name)
|
Member: User to remove (Channel name)
|
||||||
|
|
||||||
+-------------------------------------------------------------------+
|
+-------------------------------------------------------------------+
|
||||||
|
|
|
@ -36,9 +36,10 @@
|
||||||
|
|
||||||
#ifdef CC_AST_HAS_VERSION_1_6
|
#ifdef CC_AST_HAS_VERSION_1_6
|
||||||
|
|
||||||
#define CC_AMI_ACTION_NAME_CHATLIST "CapichatList"
|
#define CC_AMI_ACTION_NAME_CHATLIST "CapichatList"
|
||||||
#define CC_AMI_ACTION_NAME_CHATMUTE "CapichatMute"
|
#define CC_AMI_ACTION_NAME_CHATMUTE "CapichatMute"
|
||||||
#define CC_AMI_ACTION_NAME_CHATUNMUTE "CapichatUnmute"
|
#define CC_AMI_ACTION_NAME_CHATUNMUTE "CapichatUnmute"
|
||||||
|
#define CC_AMI_ACTION_NAME_CHATREMOVE "CapichatRemove"
|
||||||
#define CC_AMI_ACTION_NAME_CAPICOMMAND "CapiCommand"
|
#define CC_AMI_ACTION_NAME_CAPICOMMAND "CapiCommand"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -47,11 +48,13 @@
|
||||||
static int pbx_capi_ami_capichat_list(struct mansession *s, const struct message *m);
|
static int pbx_capi_ami_capichat_list(struct mansession *s, const struct message *m);
|
||||||
static int pbx_capi_ami_capichat_mute(struct mansession *s, const struct message *m);
|
static int pbx_capi_ami_capichat_mute(struct mansession *s, const struct message *m);
|
||||||
static int pbx_capi_ami_capichat_unmute(struct mansession *s, const struct message *m);
|
static int pbx_capi_ami_capichat_unmute(struct mansession *s, const struct message *m);
|
||||||
|
static int pbx_capi_ami_capichat_remove(struct mansession *s, const struct message *m);
|
||||||
static int pbx_capi_ami_capichat_control(struct mansession *s, const struct message *m, int chatMute);
|
static int pbx_capi_ami_capichat_control(struct mansession *s, const struct message *m, int chatMute);
|
||||||
static int pbx_capi_ami_capicommand(struct mansession *s, const struct message *m);
|
static int pbx_capi_ami_capicommand(struct mansession *s, const struct message *m);
|
||||||
static int capiChatListRegistered;
|
static int capiChatListRegistered;
|
||||||
static int capiChatMuteRegistered;
|
static int capiChatMuteRegistered;
|
||||||
static int capiChatUnmuteRegistered;
|
static int capiChatUnmuteRegistered;
|
||||||
|
static int capiChatRemoveRegistered;
|
||||||
static int capiCommandRegistered;
|
static int capiCommandRegistered;
|
||||||
|
|
||||||
static char mandescr_capichatlist[] =
|
static char mandescr_capichatlist[] =
|
||||||
|
@ -78,6 +81,13 @@ static char mandescr_capichatunmute[] =
|
||||||
" *Member: <membername>\n"
|
" *Member: <membername>\n"
|
||||||
" *Path: <Rx or Tx>\n";
|
" *Path: <Rx or Tx>\n";
|
||||||
|
|
||||||
|
static char mandescr_capichatremove[] =
|
||||||
|
"Description: Removes user in a particular CapiChat conference.\n"
|
||||||
|
"Variables:\n"
|
||||||
|
" *ActionId: <id>\n"
|
||||||
|
" *Conference: <confname>\n"
|
||||||
|
" *Member: <membername>\n";
|
||||||
|
|
||||||
static char mandescr_capicommand[] =
|
static char mandescr_capicommand[] =
|
||||||
"Description: Exec capicommand.\n"
|
"Description: Exec capicommand.\n"
|
||||||
"Variables:\n"
|
"Variables:\n"
|
||||||
|
@ -105,6 +115,12 @@ void pbx_capi_ami_register(void)
|
||||||
"Unmute a conference user",
|
"Unmute a conference user",
|
||||||
mandescr_capichatunmute) == 0;
|
mandescr_capichatunmute) == 0;
|
||||||
|
|
||||||
|
capiChatRemoveRegistered = ast_manager_register2(CC_AMI_ACTION_NAME_CHATREMOVE,
|
||||||
|
EVENT_FLAG_CALL,
|
||||||
|
pbx_capi_ami_capichat_remove,
|
||||||
|
"Remove a conference user",
|
||||||
|
mandescr_capichatremove) == 0;
|
||||||
|
|
||||||
capiCommandRegistered = ast_manager_register2(CC_AMI_ACTION_NAME_CAPICOMMAND,
|
capiCommandRegistered = ast_manager_register2(CC_AMI_ACTION_NAME_CAPICOMMAND,
|
||||||
EVENT_FLAG_CALL,
|
EVENT_FLAG_CALL,
|
||||||
pbx_capi_ami_capicommand,
|
pbx_capi_ami_capicommand,
|
||||||
|
@ -123,6 +139,9 @@ void pbx_capi_ami_unregister(void)
|
||||||
if (capiChatUnmuteRegistered != 0)
|
if (capiChatUnmuteRegistered != 0)
|
||||||
ast_manager_unregister(CC_AMI_ACTION_NAME_CHATUNMUTE);
|
ast_manager_unregister(CC_AMI_ACTION_NAME_CHATUNMUTE);
|
||||||
|
|
||||||
|
if (capiChatRemoveRegistered != 0)
|
||||||
|
ast_manager_unregister(CC_AMI_ACTION_NAME_CHATREMOVE);
|
||||||
|
|
||||||
if (capiCommandRegistered != 0)
|
if (capiCommandRegistered != 0)
|
||||||
ast_manager_unregister(CC_AMI_ACTION_NAME_CAPICOMMAND);
|
ast_manager_unregister(CC_AMI_ACTION_NAME_CAPICOMMAND);
|
||||||
}
|
}
|
||||||
|
@ -300,7 +319,32 @@ static int pbx_capi_ami_capichat_control(struct mansession *s, const struct mess
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (0);
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int pbx_capi_ami_capichat_remove(struct mansession *s, const struct message *m)
|
||||||
|
{
|
||||||
|
const char *roomName = astman_get_header(m, "Conference");
|
||||||
|
const char *userName = astman_get_header(m, "Member");
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (ast_strlen_zero(roomName)) {
|
||||||
|
astman_send_error(s, m, "Capi Chat conference not specified");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (ast_strlen_zero(userName)) {
|
||||||
|
astman_send_error(s, m, "Capi Chat member not specified");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = pbx_capi_chat_remove_user (roomName, userName);
|
||||||
|
if (ret == 0) {
|
||||||
|
astman_send_ack(s, m, "Member removed");
|
||||||
|
} else {
|
||||||
|
astman_send_error(s, m, "Member not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pbx_capi_ami_capicommand(struct mansession *s, const struct message *m)
|
static int pbx_capi_ami_capicommand(struct mansession *s, const struct message *m)
|
||||||
|
|
Loading…
Reference in New Issue