Linux MCU can now use command line tool to terminate meetings hosted at any MCU of the same cluster. For cluster information, please check HIT documentation section 4.10. A source mcu can issue a command to terminate a meeting at a target mcu. The source mcu and the target mcu can be the same. 1) command line options terminate meeting by meetingid: mcu [--ip= [--terminate_delay=] --terminate_by_id=] or terminate meeting by session index: mcu [--ip= [--terminate_delay=] --terminate_by_index=] the option "--ip=" is required, its value is the IP address of the target MCU where the meeting is hosted. When there is only one MCU in the cluster, this IP points to itself. 2) The terminate delay is in unit minute, not second. Due to overhead trade-off, the meeting management thread is scanning meetings every 30 seconds. Thus, the terminate delay cannot be accurate up to second level. If the [--terminate_delay=0] is used, the target meeting(s) will be terminated immediately. If a nonzero delay value is used, such as [--terminate_delay=x], the target meeting(s) will be terminated roughly x minutes later. The option [--terminate_delay=] is optional. If non-exist, the target meeting(s) will be terminated immediately. This has the same effect as using [--terminate_delay=0]. The terminate delay must be 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 or 10. 3) there are two methods to specify the target meeting(s) to be terminated: by id, or by index. Each meeting has a unique index, which can be retrieved by looking up the mcu log file, such as Mon Sep 12 10:23:19 weboffice new session allocated for owner John in a message,random_id=1292754943,sessionindex=2,vid=0 The above meeting can be terminated using [--terminate_by_index=2] Alternatively, the target meeting(s) can also be specified by using meetingid, such as Mon Sep 12 22:20:36 userinfo2 passed checking: John751473733236Instant Meetingmeeting The above meeting can be terminated using [--terminate_by_id=75] Please note that a single meetingid can be associated with many active meetings, at least in theory. If multiple meetings are found matching a meetingid, all these meetings will be terminated. 4) behavior of terminate delay If a non-zero value is used for the terminate delay, such as x(minutes), the MCU will find all matching meetings, and for each matched meeting, 4.1) if a termination timer already exists, and this command is later than the existing termination timer, no action. 4.2) if a termination timer already exists, and this command is earlier than the existing termination timer, all the existing participants will receive a warning "This meeting will be terminated in x minutes". The existing termination timer will be updated to the new value "x". 4.3) if no termination timer is found, all the existing participants will receive a warning "This meeting will be terminated in x minutes". A termination timer will be set up using value "x". 4.4) if the termination timer fires, the meeting will be terminated forcefully by the MCU. Each participants will receive the notification "The meeting is over", just as if the meeting owner has terminated the meeting manually. 4.5) when a new participant join a meeting while the meeting contain a termination timer, the new participant will receive a warning "This meeting will be terminated in x minutes". 5) behavior of termination without delay If no terminate delay is used or a zero value is used, the target meeting(s) will be terminated immediately by the MCU. Each participants will receive the notification "The meeting is over", just as if the meeting owner has terminated the meeting manually. 6) command line output The result will be output in stderr. And the return values are as follows: Any value less than 10000 or larger than 13000 indicates command line option error. #define LOCAL_MANAGE_BASE 10000 Normal return value is LOCAL_MANAGE_BASE + (1,2,3,... i.e., the number of meeting that will be terminated). If 10001 is returned, it means that one meeting is found and will be terminated. If 10003 is returned, it means that three meetings are found and will be terminated. Return values larger than 11000 means error. #define LOCAL_MANAGE_ERROR_RESOLVE 11001 cannot resolve the IP #define LOCAL_MANAGE_ERROR_CONNECT 11002 cannot connect to the IP #define LOCAL_MANAGE_ERROR_NETWORK 11003 network error occurs during the process #define LOCAL_MANAGE_ERROR_CREATEFILE 11004 cannot create file at the recording folder #define LOCAL_MANAGE_ERROR_CONFIG 11005 configm.ini doesn't correctly set portm or recording folder #define LOCAL_MANAGE_ERROR_OPTION 11006 option error. such as missing "--ip=" #define LOCAL_MANAGE_ERROR_INVALID_PORT 12001 must use portm, portm2 is not good #define LOCAL_MANAGE_ERROR_VERSION 12002 source mcu and target mcu must use the same MCU version #define LOCAL_MANAGE_ERROR_AUTH_FAIL 12003 authentication error: the cluster is not configured correctly #define LOCAL_MANAGE_ERROR_UNKNOWN_COMMAND 12004 unknown command #define LOCAL_MANAGE_ERROR_T_INVALID_DELAY 12005 delay value is invalid #define LOCAL_MANAGE_ERROR_T_INVALID_INDEX 12006 session index is invalid #define LOCAL_MANAGE_ERROR_T_NOT_FOUND 12007 no meeting is found #define LOCAL_MANAGE_ERROR_T_INVALID_LEN 12008 meeting id is too long 7) The option can only be specified once in the command line. If multiple ones are specified, only the first one will be processed. 8) If a meeting is terminated due to this command, the reason how this meeting is terminated will be recorded as "6" in file _recording_xxx.xml. 6 9) both the source mcu and the target mcu will log the activity in the log file. If the source mcu and the target mcu is the same, the logs will be in the same log file. 10) example. terminating meeting of meetingid "153" at IP 192.168.1.10 after 1 minute: ./mcu --ip=192.168.1.10 --terminate_delay=1 --terminate_by_id=153 local manage, terminate_by_id return 10001 source mcu log: Fri Oct 21 21:31:26 local manage, terminate_by_id 153 (ip=192.168.1.10,delay=1), result: 10001 target mcu log: Fri Oct 21 21:31:26 local manage, receive request from 192.168.1.10,54549 Fri Oct 21 21:31:26 local manage, session 0(id=153) will be terminated in 1 minute(s), send termination warning... Fri Oct 21 21:32:38 terminating session 0: forced by admin Fri Oct 21 21:32:38 session 0(random_id=1684816320,sessionindex=0,meetingid=153) is terminated