import xapi from 'xapi';
const KEYBOARD_TYPES = {
NUMERIC: 'Numeric',
SINGLELINE: 'SingleLine',
PASSWORD: 'Password',
PIN: 'PIN',
};
const CALL_TYPES = {
AUDIO: 'Audio',
VIDEO: 'Video',
};
const MEETING_ID = 'meetingID';
const PASSCODE = 'pass';
const INROOMCONTROL_AUDIOCONTROL_PANELID = 'callmeeting';
const postfix = 'cumulusorg@m.webex.com'; /* Webex VIMTやZoomの会議接続URIを変更します */
const REGEXP_URLDIALER = /([a-zA-Z0-9@_\-\.]+)/;
const REGEXP_NUMERICDIALER = /^([0-9]{3,10})$/; /* サンプルとして3桁~10桁の番号入力が可能 */
var meetingID = '1234567890';
function getMeetingID(text){
xapi.Command.UserInterface.Message.TextInput.Display({
InputType: KEYBOARD_TYPES.NUMERIC,
Placeholder: "",
Title: "MS-Teams接続",
Text: text,
SubmitText: "Join",
FeedbackId: MEETING_ID,
}).catch((error) => { console.error(error); });
}
/* This is the listener for the in-room control panel button that will trigger the dial panel to appear */
xapi.Event.UserInterface.Extensions.Panel.Clicked.on((event) => {
if(event.PanelId === INROOMCONTROL_AUDIOCONTROL_PANELID){
getMeetingID("会議IDを入力します" );
}
});
xapi.Event.UserInterface.Message.TextInput.Response.on((event) => {
switch(event.FeedbackId){
case MEETING_ID:
const regex = REGEXP_NUMERICDIALER;
const match = regex.exec(event.Text);
if (match !== null) {
meetingID = match[1];
}
else{
showDialPad("You typed in an invalid number. Please try again." );
}
break;
}
xapi.command("dial", { Number : meetingID + '.' + postfix , Protocol : 'Sip'});
}); |