######################################################################################################################################################################################################################################### # # MagConf Server Configuration Script # Do not edit the line start with # or <, it is for system usage. # Add // as remark. # ######################################################################################################################################################################################################################################### # Domain: is for display download page, access by http://www.YourServer.com:3333 # ServerSetting: is major for MagConf windows server, provide text/file/audio/video streaming on MagConf windows client. # WebMessenger: settings for mobile app and computer browser. # WebRTC: for web version audio and video streaming. # SystemAdmin: grant highest permission, do everything on MagConf System. # Result will be updated in Config.ini/httpd.conf/ssl.conf. WebRTC/WebConfig settings will be used in Web/Apache/php # config.?.txt under bin folder can be used for loading MagConf Server, and start listen for client login # each MagConf Server folder can only setup one config. If you need another config, you need to copy the complete MagConf Server folder to another folder, then setup config.2.txt # since system service is also config.?.txt dependent, system service with the same config will load with error. # sample command: mr.exe -cf=config.1.txt # if you need to run MagConf Server as system service, select designed config.?.txt then run ReInstall on main user interface. # IMPORTANT Notes: After RUN Script, you need to send password to user or ask them to access forget password to get back password. www.YourServer.com // either domain name or ip. also used for https/ssl certificate. ConnectIpPort=127.0.0.1:3333 // for AutoRecording on server, either domain name or ip. This setting is also for web connecting to Windows MagConf Server. ConnectIpPort is also used for Auto Recording movie and voice of any room configed with RoomConfig > AutoRecording as 1(ON). RecordingPath=temp\ // \temp\ or temp\ or D:\temp\ , relative path to MagConf Server or absolute path, leave empty take win client default path. MaxUserPerRoom=9999 //Max User Per Room, over 9999 may busy cpu or flooding network, highly depends on server abililty. MaxUserPerClass=1000 //Max User Per Class, over 1000 or too many, may not a reasonable class. CustomGroupUserLimit=256 // for User Mode(and all room), allow max no. of users selected in a Custom Group. Set CustomGroupUserLimit=0, not allow custom group feature. WebMessengerEnable=true // false for not start up Web Messenger Server. NOTES: WebConfig > ExchangeMessageEnable=false, MagConf win server will not send message to MagConf web server even WebMessengerEnable=true HttpServerListenPort=8080 // http is double encryption, for browser HttpsServerListenPort=8443 // https SSL + double encryption, for App, change this port should change in setting.php > $HttpsServerListenPort PushServerAsHttpsServer=true // if PushServerAsHttpsServer=false, PushServerStartPort/PushServerMaxClient will be used, notification port will different from http(s) server, if over 2000, say 10000 client, suggest to set PushServerAsHttpsServer=false, and set PushServerMaxClient=10000 PushServerStartPort=8001 // 400 client per thread/port, ie. PushServerMaxClient=800 client will take port 8001(http),8002(https),8003(http),8004(https) PushServerMaxClient=2000 // PushServerMaxClient refer to max instant messenger server allowed client WebRTCDir=webrtc\ //default for loading npm.cmd as WebRTC server, default is sub dir of root of MagConf server, you can set full path. d:\Mirotalk\ WebRTCExe=npm //point to sub exe/cmd or subdir+exe/cmd, default exe/cmd under default dir, you can set full path of exe ie. d:\Mirotalk\npm WebRTCVar=start //set var for exe/cmd ie. start # Grant Administrator Role OR Remote Control access right to the following users. # Remote Control is for User Mode meeting room , and 2 users must issue One to One Communication. # This Remote Control Setting is not same as Aissistant Mode(Remote Control Mode) on MagConf Connector. # It is making use of One to One connection, then create secure tunnel for Windows software like VNC. # Add 1 line for 1 user. This user will apply to all meeting room as User Mode. # After setting and grant access to admin user, you need to setup your preferred Remote Control Viewer on Admin side MagConf\config.ini, Remote Control Server on opposite user side, default port is 5900. # The settings in MagConf\config.ini RemoteControlServerPort/RequestAssistListenPort will not start up program, you need to setup viewer or server according to these ports. # Concerning security, you cannot select different server port to connect from admin/user, port setting must done on remote side MagConf\config.ini. # Therefore installing Request Assistance Server on Admin side must listen port same as RequestAssistListenPort in MagConf\config.ini, ie. Viewer.exe -listen 5500 # Guideline to setup Remote Control and Request Assistance: # 1. Select your preferred remote control software, support both active(Control) and passive(Assistance) connection. # 2. Setup Remote Control(active connection): # A. Assist side: # Install Remote Control Server, set listen port same as RemoteControlServerPort in Root Data Path Of MagConf\config.ini, default is 5900, allow local login (127.0.0.1), run as service. # See [NOTES][RemoteControlServerExe] on client magconf\config.ini file for detail how to configure and start up the remote control exe. # B. Admin side: # Install Remote Control software. # Change the setting in RemoteControlServerExe of Root Data Path Of MagConf\config.ini # Grant right on MagConf server by adding a user line in section SystemAdmin of settting.txt on magconf server. # Test by enter One to One Communication under user mode using MagConf client, select Remote Control on right panel popup menu. # See [NOTES][RemoteControlClientExe] on client magconf\config.ini file for detail how to configure and start up the remote control exe. # 3. Setup Request Assistance(passive connection): # A. Admin side: # Run the remote control software in passive mode, ie. c:\xVNsee\Viewer.exe -listen 5500, where 5500 must same as RequestAssistListenPort in MagConf\config.ini # See [NOTES][RequestAssistServerExe] on client magconf\config.ini file for detail how to configure and start up the remote control exe. # RequestAssistServerExe of MagConf\config.ini is used to store the exe and para to run vnc as passive mode. # B. Assist side: # See [NOTES][RequestAssistClientExe] on client magconf\config.ini file for detail how to configure and start up the remote control exe. # Change the setting in RequestAssistClientExe of MagConf\config.ini # No right need to setup on MagConf server, it is user action, not like Remote Control(active connection) # If necessary, assist side require to start up remote control server as service, otherwise passive connection command will not workable. # Test by enter One to One Communication under user mode using MagConf client, select Request Assistance on right panel popup menu. # 4. If you don't want to setup 1 user by 1 user, you can put/recompress all required remote control files and updated/configured MagConf\config.ini in MagConfServer\download\McCustomeClient.zip # then ask user to download by http://YourServer.com:3333/Download?f=McCustomeClient.zip # 5. config.ini in magconf program root path is for copying to user data root path, update should change on Root Data Path Of MagConf\config.ini # The following is sample setting, you can change according to your design. # admin can kick out user under user mode # admin can auto run shell command on remote side, then run exe without UAC prompt # admin can setup server user, group and more. Peter // Peter is admin, simple add a user to grant right in a line is ok. # Here is to edit the room list, room can start from ROOM01 to ROOMZZ, # where Mode=G is Guest/Holder, Mode=U is User Mode, Mode=D is Demo Mode, Mode=O is Open Meeting, # User Mode is for internal company user, Guest/Holder/Demo/Open Mode are for either internal or external company. # where TotalSeat = Available seat for selected room. User mode do not have TotalSeat, set to -1, but system limit to max 1024 seats(online users) per room. # where GDPTimeout = Guest Dynamic Password Timeout, in terms of minute. After this timeout, guest cannot use the password to login again. # GDPTimeout=0, no timeout, GDP reset on each holder login; # GDPTimeout=-1, no password, for Demo Mode only, User Mode / Open Mode are not applicable. # where PasswordLen = Password Length, password must at least this length, all password must digit, min is 8, max is 16. Open Mode do not have password, set to 0 # where GuestToInternal = Allow Guest to contact/touch Internal User or Holder ONLY. Guest cannot contact Guest, for Guest/Holder mode only(NOT for User Mode). # where MultipleLogin = User Mode Multiple Login by same user name, MultipleLogin=1 allow login more then once, MultipleLogin=0 allow login once. # where AssistantMode=1, set this room for assistant or remote control access, Mode MUST G. Room(s) for AssistantMode will not display on connector. # Assistant Mode or Remote Control Mode do not need password authentication. If you need authentication, clear all Assistant Mode or Remote Control Mode setting, ask user to login User Mode, then enter One to One Communication, request user to enable desktop/keyboard/mouse sharing. # If you want to disable a meeting room, delete a line in RoomList, keeping RoomPass,UserList,GroupList,RoomUser,RoomGroupUser no change. # If you want to delete/clear all record in server database, remove all lines in RoomList, process script will clear all records. # If you want RoomList to take effect after change, 1. logout all user first, 2. open this script and update settings, 3. run script, then the first login user will take the latest config to login. # The following is sample setting, you can change according to your design. # Room(6chars),Mode(1),TotalSeat(4),GDPTimeout(8),PasswordLen(2),GuestToInternal(1),MultipleLogin(1),AssistantMode(1) ROOM01, U, -1, 0, 8, 0, 1, 0 // ROOM01 as User Mode = U (here is a remark example), for internal company user exchange message. ROOM02, G, 16, 60, 8, 0, 0, 0 // if you do not require remark or description, no need to add // ROOM03, G, 16, 10000, 8, 0, 0, 0 // ROOM02 and ROOM03 for external company user meeting. Set GDPTimeout to 10000 minutes(7 days), allow guest to login with the same dynamic password. ROOM04, G, 49, 99999, 8, 1, 0, 0 // GuestToInternal = 1, ie Suppliers with my company staffs, suppliers cannot contact suppliers, only contact my company staffs. ROOM05, D, 100,999999, 8, 0, 0, 0 // Guest password will timeout after 2 years (999999/60/24/365) ROOM06, D,1000, -1, 8, 0, 0, 0 // Live Show or Demo ONLY, only holder can switch on device, but he can control guest device. Set GDPTimeout=-1, guest do not need password to enter room. ROOM07, G, 36, 0, 8, 0, 0, 0 // GDPTimeout = 0, Holder reset password on each login, and guest cannot login if holder is not login. ROOM11, U, -1, 0, 8, 0, 1, 0 // some user with specific password, not auto password. ROOMX0, G, 9, 0, 8, 0, 0, 1 // ROOMX0 to ROOMX9 are for assistant or remote control access, Room Mode MUST G, AssistantMode=1, predefine 10 channels/rooms. ROOMX1, G, 9, 0, 8, 0, 0, 1 ROOMX2, G, 9, 0, 8, 0, 0, 1 ROOMX3, G, 9, 0, 8, 0, 0, 1 ROOMX4, G, 9, 0, 8, 0, 0, 1 ROOMX5, G, 9, 0, 8, 0, 0, 1 ROOMX6, G, 9, 0, 8, 0, 0, 1 ROOMX7, G, 9, 0, 8, 0, 0, 1 ROOMX8, G, 9, 0, 8, 0, 0, 1 ROOMX9, G, 9, 0, 8, 0, 0, 1 ROOMZZ, O, 100, 0, 0, 0, 0, 0 # RoomConfig is for controlling device and access time on MagConf Windows client. # It is not neccessary to add line if no control, default is all enable/nolimit, ie. 3,3,3,3,3,-1,3,0,-1,-1,0 # where Video = 0 is not allow, 1 is allow in Public Sesssion ONLY, 2 is allow in One to One Communication ONLY, 3 is allow in both Public and One to One Communication. Default is 3 if not found in RoomConfig. # *when (Total Users(User Mode) over 100 or TotalSeat = -1) and (Video = 1 or 3), camera is still system force disabled, due to too many user will abuse network bandwidth. # where AllowSendFile(include send voice) = 0 is not allow, 1 is allow in Public Sesssion ONLY, 2 is allow in One to One Communication ONLY, 3 is allow in both Public and One to One Communication. Default is 3 if not found in RoomConfig. # where AllowLowCompress = 1, allow client enable low cam compression. It will use up bandwidth and server cpu usage. Default is 0 disabled. # where MaxCamRate from 1 to 150, default is 50, set to -1 no control. MaxCamRate is used to limit user cam rate, avoid abuse connection, 150 = 30 frame per second. # where MaxCamRes from 1 to 100, default is 50, set to -1 no control. MaxCamRes is used to limit user cam resolution, avoid abuse connection, 100 = 100% of camera resolution. # where AutoRecording = 0 is off, = 1 is on. Default is 0 disabled. User Mode is not allow AutoRecording # where MaxAliveCam from 1 to 99, 6 as default, when total cams count over MaxAliveCam, all cams will drop speed, BUT active speaker keep cam streaming until no active voice. # higher value for MaxAliveCam may flood your server bandwidth. # If allow 1 click ip phone, Audio should set to 3, allow MagConf auto switch on microphone. # If you want RoomConfig to take effect after change, 1. logout all user first, 2. open this script and update settings, 3. run script, then the first login user will take the latest config to login. # If TotalSeat in RoomList over 100 or equal -1, run script will auto set Video to 2, not allow Cam in Public Sesssion, too many Cam switch on in this room will crash server cpu to die. # If AutoRecording is set to 1, server will startup MagConf client when first user login, it will unload when none online in the room. # You cannot add/modify/user ASSISTANT or take ASSISTANT as Team/GroupName, it is reserved for server auto recording. # If server is run under user mode, data path sample is C:\Users\User123\AppData\Local\MagConf\Data\127.0.0.1$3333\ROOM01U # If server is run under service mode, data path sample is C:\Windows\system32\config\systemprofile\AppData\Local\MagConf\Data\127.0.0.1$3333\ROOM01U # If you need to change the recording folder path, you can add a key on selected folder config.ini, add key in section [SETTING], RecordingPath=D:\temp # If you cannot locate the folder storing config.ini or *.mcm, search c:\ # Result will be updated in Config.ini # The following is sample setting, you can change according to your design. # Room(6chars),Video(0/1/2/3),Audio(0/1/2/3),Chat(0/1/2/3),Drawing(0/1/2/3),Capture(0/1/2/3),AccessTimeLimit(-1=NoLimit, 0=Deny, 1 to 9999 allowed minutes),AllowSendFile(0/1/2/3),AllowLowCompress(0/1),MaxCamRate(1 to 150),MaxCamRes(1 to 100),AutoRecording(0/1),MaxAliveCam(1 to 99) ROOM01, 2,3,3,3,3,-1,3,0,-1,-1,0,6 // One to One Communication Cam is enabled, and others are all enabled. Too many user, says over 100, enable cam in Public Session will use up all bandwidth and server will very busy. ROOM04, 3,3,3,3,3,-1,0,0,-1,-1,0,6 // cam is allowed, and not allow to send file. ROOMZZ, 3,3,3,3,3,-1,3,0,-1,-1,0,6 // AccessTimeLimit default is -1 NoLimit, ie. set to 5 will stop(stop working) MagConf client after 5 minutes. set to 0 to deny(but meaningless). # WebConfig is for App or Browser setting, not for MagConf Windows Client, more private setting is also stored in setting.php # PerRoom setting is allow settng for specific room, true(for all room), false(disable for all room), ROOM01,ROOM02(true for specific room) # Configs are also applied to specific user: AllUser, AdminUser, SuperUser, AdminSuper(Admin & Super), NormalUser(Not Super Or Admin). IndexPageCount=10 //PerRoom,AllUser, User Count Per Index Page, Default 10, show all in a page. Sample PerRoom setting: ROOM01(10),ROOM11(100) MessagePageCount=50 //PerRoom,AllUser, Mess Count Per Message Page, Default 50 MaxUploadFileSize=50000000 //PerRoom,AllUser, default 50M, suggest max 100M, also depends on php.ini memory_limit DeleteMessOver=12 //PerRoom,AllUser, in terms of month, this setting for automatic house keeping, default 72months(6years) for school. DeleteASSISTANTMess=7 //PerRoom,AllUser, delete ASSISTANT message by 7days, this setting for automatic house keeping AllowDeleteAnyMess=false //PerRoom,AllUser, if true, allow user to delete his outgoing message on user/group node(all time, not only new message). Support UserConfig, Peter=AllowDeleteAnyMess=true, allow Peter to delete message, not only current message, also very old message ExchangeMessageEnable=true //PerRoom,AllUser, set to false will disable exchange message between windows client and app/browser, web will not send message to MagConf win server. Sample PerRoom setting: ROOM01,ROOM11 RequireChangePassword=false //PerRoom,NormalUser, after first login, will ask to change password, for non Admin/Super user ONLY, Admin/Super always false(no need to change). If Estate user login by qrcode, keep RequireChangePassword=false. Student user suggest to set a random password like 32345467, but not this, for all student, then after login they will change password ResetPassToDefault=false //PerRoom,AllUser, if true, admin/super reset other user's password will reset password to default(on setting.txt), if false(reset to random password), user need to get back password by login > forget password by email, or ask admin/super to show qrcode/token to login. If user reset passwrod himself(for admin/super/normal user), password MUST reset to random password, he can get back by forget password with email. School student ResetPassToDefault=true and RequireChangePassword=false, suggest Estate/Company user keep ResetPassToDefault=false AcceptSendMess=false //PerRoom,NormalUser, when send message to other, receive side need to accept(value is true) receive message before sender send message, for non Admin/Super user ONLY, Admin/Super always false(no need to accept, direct send and receive). HideAdminSuper=false //PerRoom,NormalUser, Estate Admin/Security suggest HideAdminSuper=true. Normal user can contact Admin/Secrity ONLY until Admin/Secrity contact normal user first. Once Admin/Super user contacted(send message) normal user, link will create on both side. ClearBoxAfterQRCodeScan=false //PerRoom,AdminSuper, when new normal user scan Admin/Super provided QRCode, all old message box of the user will be deleted. And will reset other device(same user), and reset passowrd, at the same time. Reset password according to ResetPassToDefault is true or false. Student/Teacher,Enterprize do not set to true. when ClearBoxAfterQRCodeScan=true, do not set RequireChangePassword=true, due to user do not know old password MasterSlaveOption= //PerRoom,PerSystem, reserve for next development MasterSameAsSlave=false //PerRoom,PerSystem, reserve for next development CacheEnable=true //PerRoom,AllUser, when true will save pages on device, false will not EmojiEnable=true //PerRoom,AllUser, when true will enable, false will not SelfieEnable=true //PerRoom,AllUser, when true will enable, false will not, BroadcastModeEnable=true may not need ProfileEnable=true //PerRoom,AllUser, when true will enable, false will not, BroadcastModeEnable=true may not need MyCloudEnable=true //PerRoom,NormalUser, enbale or disable MyCloud on setting, for non Super/Admin ONLY, Super/Admin always allow, BroadcastModeEnable=true may not need RejectMessageEnable=true //PerRoom,AllUser, when true will enable, false will not, BroadcastModeEnable=true may not need. Feature on detail message node, for reject opposite side user send in message. ResetOtherAccountEnable=true //PerRoom,AdminSuper, admin user can reset admin/super, super user can reset normal user. Reset my account or login user account, refer to ResetAccountEnable ASSISTANTEnable=true //PerRoom,NormalUser, when true will enable, false will not, Super/Admin force Enable=true, BroadcastModeEnable=true not allow Hidden User to access ASSISTANT node. ASSISTANTReadOnly=false //PerRoom,NormalUser, when true will not allow send out message, view system send in message only, ie. other user login with your account will send notice, or system will send in api to ASSISTANT. WebAudioCallEnable=true //PerRoom,NormalUser, enbale or disable Web Audio Call on message menu, for non Super/Admin ONLY, Super/Admin always allow WebVideoCallEnable=true //PerRoom,NormalUser, enbale or disable Web Video Call on message menu, for non Super/Admin ONLY, Super/Admin always allow RequestAdminLoginEnable=true //PerRoom,AdminUser, Administrator help user to login by QRCode RequestSuperLoginEnable=true //PerRoom,SuperUser, Supervisor help user to login by QRCode AbsoluteP2PEncrypt=true //PerRoom,AllUser, Point To Point Encryption, support ASSISTANT, User/Group CreateCustomGroupEnable=true //PerRoom,AllUser, Create Custom by user, not like create group on server by setting.txt, all server group features are not supported, ie. ReadOnly,SubmitGroup,NoPush. Custom Group, best For schoole student, class monitor will help teacher to do all new group on each new school year ShowGroupMemberEnable=true //PerRoom,NormalUser, Effect on non Super/Admin only, when true will enable, false will not, when BroadcastModeEnable=true, Guest/Hidden cannot view group member, no need to set ShowGroupMemberEnable=false ShowContactEnable=true //PerRoom,NormalUser, Effect on non Super/Admin only, enable allow view email/mobile on search list, Super/Admin keep enable NoShowEmail=false //PerRoom,AllUser, NoShowEmail=true, will not display email on search list ExportContactsEnable=true //PerRoom,AllUser, export contacts inside search list, students suggest to enable, colleague/company block, traveler block, estate user block. LargePreviewImgEnable=false //PerRoom,AllUser, show large preview image on message content, default is false/small BroadcastModeEnable=false //PerRoom,AllUser, BroadcastModeEnable=true, lots of info will hide, ONLY effect on allow empty password (apply for -> Hidden para as 1)(ALSO need mobile), not allow Guest view Contact/Mobile/Members, not allow ASSISTANT node. Set Hidden=1 when Guest User(allow empty password), Super/Admin user keep require password. Set any password with required password length for create Hidden user validation,(Super/Admin user must login with correct password), but this password for Hidden user will not use. App/browser cookie will keep for 365 days. KeepOldUserNode=true //PerRoom,AllUser, if user change in ClassFilter(or student upgraded to new grade) of setting.txt, he can keep old contacted user's message. FingerPrintAuthQRCodeAdmin=true //PerRoom,AdminUser, for admin, for getting qrcode/token to login on my profile. suggest admin should have finger print setup FingerPrintAuthQRCodeSuper=false //PerRoom,SuperUser, for super, for getting qrcode/token to login on my profile. if true all super must have finger print, if false users still able to setup finger print individually FingerPrintAuthQRCodeNormal=false //PerRoom,NormalUser, for normal user, hidden or not hidden, estate user take false, school student take false, teacher take true, company users take true. if false, but user setup finger print, still have higher security ChangePasswordEnable=true //PerRoom,AllUser, for all user change password on home page setting menu ResetAccountEnable=true //PerRoom,AllUser, for all user reset account without password on home page setting menu WinClientIconEnable=true //PerRoom,AllUser, for all user open web page for login MagConf windows client on home page setting menu PhoneDialEnable=true //PerRoom,AllUser, for all user dialing to selected mobile, not network phone AutoReplyBusy=2 //PerRoom,AllUser, 2 to 9999(apply to all room) or ie. ROOM01(2),ROOM02(2) , default 2 for specific room, 2 in () is value for AutoReplyBusy. if sender send message to receive side, receive side have incoming message count >= AutoReplyBusy in 1 hour, will auto send back notification to sender SendMessCount=999 //PerRoom,NormalUser, SendMessCount is per day(will reset over 24 hours). If over 999 message sent in a day, will limit to send. Estate user sugguest set to 3. If someone reply to this user, limit will reset to 0. All counting and reset are controlled by server. SendMessCount=ROOM01(99),ROOM09(3) for specific ROOM. SendSizeCount=999 //PerRoom,NormalUser, SendSizeCount is per day(will reset over 24 hours). If over 999M data/file/message sent in a day, will limit to send. Estate user sugguest set to 30. If someone reply to this user, limit will reset to 0. All counting and reset are controlled by server. SendSizeCount=ROOM01(1000),ROOM09(300) for specific ROOM. ### UserConfig is used to override default value on WebConfig, if you find some specific user need different value, set it to another value. ### UserConfig is applied to all room, each room will have the same UserConfig. ### UserConfig is for all room, not per room, ie. value either true/false/integer, SendSizeCount=200, ResetPassToDefault=true, cannot ResetPassToDefault=ROOM01, cannot SendSizeCount=ROOM01(200) ### Some feature is specific for Admin/Super, even set true for Normal User, it will not have effect. Feature for Admin, set true for Super User, it will not have effect. ### If LoginDIY value is configured for specific room, some features are limited on Normal User, then you can assign specific config for dedicated user. ### Seperate each config by ; Demo=AcceptSendMess=false;HideAdminSuper=false;ShowGroupMemberEnable=true;SendSizeCount=200 # The purpose of LoginDIY is used to auto generate user login name by the combination of options value, then user input specific known password, like Housing Account Number as password. # then no need to tell user account info, he can login himself, LoginDIY is suggested for Estate User, users select Block, Floor, Unit as login name, input Housing Account Number as password # All combination of options result value as user name string MUST be prefined in config settting.txt > UserList. # Security of LoginDIY is very low, mobile(last 4 digit) will not check while login, you can set to any 4 digit on each normal user, or random/fixed digits for this type of LoginDIY user, and no need to tell these user the mobile digits. # First portion of LoginDIY is password prefix. Then the required password of LoginDIY user do not need too long, but if too short, say <5 digit, will not safe. Too long will disclose password(Housng Account Number full length recorded on MagConf settting.txt) by hacking server setting.txt # the full password length(prefix+user input password) MUST same as RoomList > PasswordLen, ie. PasswordLen = 8, password prefix length = 3, user input password length = 5, then if prefix = 332 and user input = 24455, result password will be 33224455, this 33224455 must be the password on setting.txt > UserList # finally, you need to tell user how to input password, not include prefix password, ie. only tell 24455(last 5 digit of Housing Account Number) of 33224455(password on setting.txt) to user to login by app scan Login DIT QRCode. # Max 3 option lists. Leave empty, if 2nd or 3rd option list is not used, i.e ROOM01=332;OptionLabel:1,2,3,4,5:1,2,3,4,5 # LoginDIY Data Format(should combine all strings to 1 line): # 332; //this is password prefix, you can input any digit, avoid hacker guessing. And all these LoginDIY user's password must start with the same password prefix. # OptionLabel1:Opt1DisplayValue1,Opt1DisplayValue2:Opt1PartialUserNameValue1,Opt1PartialUserNameValue2; //this is 1st option list # OptionLabel2:Opt2DisplayValue1,Opt2DisplayValue2:Opt2PartialUserNameValue1,Opt2PartialUserNameValue2; //this is 2nd option list # OptionLabel3:Opt3DisplayValue1,Opt3DisplayValue2:Opt3PartialUserNameValue1,Opt3PartialUserNameValue2; //this is 3rd option list # after user select all options, the result user name is: Opt1PartialUserNameValue+Opt2PartialUserNameValue+Opt3PartialUserNameValue === Login User Name # If this type of DIY user request to reset password, new password(hardcode on setting.txt > UserList) also need to reuse the same password prefix, ie. old is 33212345, then new must ie. 33256789 # This Type of LoginDIY user MUST set UserList > SuperUser to 0, and MUST NOT an admin user, other members of family can login the same LoginDIY user, ie. combination of options values to form user name cannot set in SystemAdmin # For better control user usage, some features are limited, refer to diyconfig.php, # RequireChangePassword=false,AcceptSendMess=true,HideAdminSuper=true,MyCloudEnable=false,ASSISTANTReadOnly=true,WebAudioCallEnable=false,WebVideoCallEnable=false,ShowGroupMemberEnable=false,ShowContactEnable=false,NoShowEmail=true,ExportContactsEnable=false,ChangePasswordEnable=false,ResetAccountEnable=false,WinClientIconEnable=false,PhoneDialEnable=false # BUT UserConfig can override LoginDIY Config(diyconfg.php) # To get the login url, ie. https://web.yourserver.com/login.php?y=ROOM11, admin/all user login can show this link by qrcode on menu > DIY, print the qrcode, and circulate to all users for qrcode scanning by app to login. ROOM11=332;Block:B01,B02,B03,B05,B06,B07,B08,B09,B10:sv01,sv02,sv03,sv05,sv06,sv07,sv08,sv09,sv10;Floor:01,02,03,05,06,07,08:01,02,03,05,06,07,08;Flat:A,B,C,D,E,F,G,H:a,b,c,d,e,f,g,h //LoginDIY Sample for Estate Login User, sample user name: sv0101a(Block=sv01,Floor=01,Flat=a) ### NodeConfig is configs for user node or group node, support TextButton, DisplayMessage. ### TextButton is used to prefine text selections for special user node(help desk) or special group node(notification group or submit group), click on TextButton on App/Browser, then select predefined text will send out, no need to repeat to type again on each message sending. ### Normal group(not submit, not readonly group) using TextButton may meaningless, everyone is doing the same thing. ### Typing user name or group name, then input defined text, break each selection by
### ASSISTANT node is used by everyone, set TextButton is meaningless, and is not applicable. ### TextButton on group is for admin/super user only. ### DO NOT input these characters inside text selection, it is for programming, =; ### DisplayMessage(group node only) is used to show the first alert message to user, let user know what message should be alerted in this group. ### If more than 1 config in node, break config by ; ### G10099=DisplayMessage=This is Alert;TextButton=Text1
Text2 Peter=TextButton=你好!有什麽可以幫到你?
不客氣,應該的。 //Define TextButton for user: Peter. DO NOT input double slash(//), it is reseved for system usage G10099=DisplayMessage=重要事項提醒;TextButton=祝大家節日快樂,今天下午四点鐘提早下班。
提提大家,早上別忘記打卡。 //Define DisplayMessage/TextButton for group: G10099, take group key do not take Group Description. G10399=DisplayMessage=只限緊急滙報, 非急勿擾;TextButton=已通知控制室,請保持冷靜
已報警,請等待警員到場 //submit group, alert user we reply urgent message only.
# RoomPass is specifically defining a password to a room. For Guest/Holder/Demo Mode ONLY(Windows Client), not for Android/IOS App, not for computer browser. # Different Password of NON USER MODE CAN indentify which room to access. If first room is not available, it will seek another to enter. # 1st password is for holder of Guest/Holder and Demo Mode, 2nd password is for internal user of Guest/Holder, keep empty will auto assign password. # Guest/Holder password of selected room cannot same as Demo Mode password of any room. # if GuestToInternal of selected room is 0, leave InternalPass empty. # Guest/Holder with GuestToInternal setting, can avoid Guest A contact Guest B. But Guest can contact Internal User and Holder. # Internal User and Holder belong to same company or group. But All guests belong to another company, they will not contact each other. # If you want to auto assign password, no need to add line. Sometimes you may want all passwords are the same in all room, add some lines. # If you want to change password after first time process script, direct change the password inside list. # If user change password, the hardcode password will no longer valid. # The following is sample setting, you can change according to your design. # Room(6),HolderPass(16),InternalPass(16) ROOM02,88899877, // I want all holder using the same password for ROOM02 and ROOM03 (here is a remark example). ROOM03,88899877, ROOM04,96321478,74125896 // Internal user password must unique, cannot duplicate other rooms. If you cannot sure, set empty for auto assign. ROOM07,99998888, # Master User List # Different UserName and Password of USER MODE CANNOT indentify which room to access, user must select room to enter. # UserName = User Mode login user name, allow only AlphaNumeric 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ # and .@#$_ and empty space. # Description = Unicode Description, any character, but not comma or invalid character, allow @#$_ and space, max 16 char. # Description = User Mode Name Alias, cannot empty, else will generate error. # Description = Unique Name Alias, no duplicate allowed, else will generate error. # Leave password blank will return a random password from server. Hardcode password act as change password or new password. # If password duplicate, will auto generate a new one. # If user change password, the hardcode password will no longer valid. # Email max 100 characters or leave blank, for magconf popup menu to send email, not allow empty. # HeadOfUser max 16 characters or leave blank, source from name of user description, show in magconf popup menu. # Mobile/Extension is for display in user list popup menu, not allow empty, allow duplicate, at least 4 digit. # Mobile/Extension is also for identify user, not for authentication, must input. If you don't want to use real mobile, take 0001 to 9999 for different user. # Mobile/Extension allow characters: 123456789() and space # SuperUser = 1, allow add message to ReadOnly Group/Folder. SuperUser = 0 is normal user # SuperUser or Administrator allow delete message on User Profile. # Hidden = 1, this user CANNOT view/contact other user with Hidden = 1. Hidden = 0 can view/contact both Hidden = 1 or Hidden = 0 user. # ie. Pupil set Hidden = 1, Teacher set/keep Hidden = 0. Then teachers can talk to teachers and pupil, but pupil can talk to teachers only. # ie. Suppliers set Hidden = 1, then only your company user(Hidden = 0) can talk to suppliers, but suppliers cannot talk to suppliers. # SuperUser set to 1, then Hidden CANNOT set to 1. # Hidden users selected in the same group(server group and custom group), cannot view other hidden user message. # Hidden = 1 is for speical case only, most of the time you want all user talk to each other, but external users like suppliers/customers join your system, you don't want these types of users touched each others. # ClassFilter = UserClass:AccessClass, if over 1000 users in the same room, suggest to setup ClassFilter, higher performance on both client and server side. # max 1000 ClassFilter characters, allow 1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ONLY # must have UserClass then break by colon then break Class by semi colon if more than 1 Class # 1 Class cannot contain more than 1000 Users. # sample ClassFilter format: # 1A:1A Class 1A student allow to access his 1A classmate only. If 1A fall in the teacher's AccessClass, then the teacher can contact this class. # 6A:6A;6B;6C;6D Level 6 student can contact all Class classmates. # 6B:6A;6B;6C;6D Level 6 student can contact all Class classmates. # TT:TT;1A;1B;1C TT as Class name of school master/teacher, then master/teacher can contact other master/teacher/student, but student contact student only. # Finance:Finance;Shipping;Sales using real name as Class name instead of 2 chars symbols. # leave ClassFilter empty, all users can contact all users, same as disable ClassFilter. # any user entered ClassFilter, all user should fill ClassFilter. # after user login, he can only contact Class inside his AccessClass by his UserClass. # ClassFilter and Group(server defined or custom user defined) are standalone setting, will not affect each others. # ClassFilter and Hidden can be applied at the same time. # After apply ClassFilter, MAX users under the same room is 9999(For MagConf App, Browser), but Windows concurrent online users support MAX 1000. # The following is sample setting, you can change according to your design. # UserName(20),Description(16),Password(16),Email(100),HeadOfUser(16),Mobile(20),SuperUser(1),Hidden(1),ClassFilter(1000) Peter,香港辦彼得,,peter@yourdomain.com,,(852)91778899,1,0, // Peter is our admin (take // as remark line), he can do everything. Angel,香港辦安琪,89896321,angel@yourdomain.com,香港辦彼得,(86)15012345678,1,0, // Angel is Supervisor, but not admin. Demo,Demo,,demo@yourdomain.com,香港辦安琪,(86)13714741474,0,0, # Master Group List for GroupUser # where GroupID must from G10001 to G19999 # GroupID or Description is unique, duplicated item will generate error. # Description = Unicode Description, any character, but not comma or invalid character, allow @#$_ and space, max 16 char. # ReadOnly Group/Folder = 1, allow Super User and Administrator to add message to this group. Normal group set ReadOnly Group/Folder = 0. # ReadOnly Group/Folder = 2, allow Administrator ONLY to add message to this group, ie. for company/school/estate public notice. # ReadOnly Group is also supported for on user create custom group. If ReadOnly Group's members is less than CustomGroupUserLimit for small class, it is suggested to take Custom ReadOnly Group by user. # SubmitGroup = 1, only sender,admin,super user can view ALL message. If not admin/super user, user cannot view other users message, sender view his(and Admin/Supper) message only. # This SubmitGroup = 1 setting, for example, is for student submit their homework to this group, only teacher or administrator can view this message, other student cannot view other student's message. # It is used to protect student to view other students submitted homework/message. # SubmitGroup and UserList > Hidden can set to 1 at the same time. # When SubmitGroup=1 or 2, must assign at least one user as SuperUser=1 to this group, otherwise none can view message from sender. # Admin/Super user can reply to selected sender or reply to all(when SubmitGroup=2, all admin/super reply to all) user if message is not selected. # Even NoPush=1 is set on this submit group, system keep sending push notification to Admin/Super(Important person on this group) on mobile. If Admin/Super selected 1 user to reply, this user will also receive push notification. If Admin/Super select none and NoPush=1, system will not send push notification # SubmitGroup = 2, ALLOW admin/super user to send message to all user in this group(no need to select normal sender), admin/super NO NEED to select an incoming message to reply. School suggest to set SubmitGroup = 2, allow teacher to send homework to all student. Estate user suggest to set SubmitGroup = 1, admin/super only need to return submit message to sender only. If Estate admin/super need to send broardcast message, they can send to another ReadOnly(normal user is read only) Group. # SubmitGroup is a very complicated control, it is not support in windows client. # SubmitGroup is also supported for on user create custom group. If SubmitGroup's member is always change like school class, it is suggested to take Custom SubmitGroup by user. # NoPush = 1, group will not have Push Notification when message arrive. If group always have frquent message, suggest to set NoPush = 1, will not bother user, and user need to check message regularly. # If you don't require group for meeting room as user mode, you do not need to edit GroupList. # The following is sample setting, you can change according to your design. # GroupID(6),Description(16),ReadOnly(1),SubmitGroup(1),NoPush(1) G10001,HK HR Dept,0,0,0 // Take all group description in single language (here is a remark example). G10002,HK IT Dept,0,0,0 G10003,香港辦財務部,0,0,0 G10004,香港辦銷售部,0,0,0 G10005,香港辦所有人,0,0,0 G10006,北京办所有人,0,0,0 G10007,上海办所有人,0,0,0 G10008,ろいゑろいお,0,0,0 G10099,公司或學校公佈,1,0,0 G10199,放假申请群组,0,0,0 G10399,緊急滙報群组,0,1,0 G10477,常用下載,1,0,1 G10488,實用連結,1,0,1 G10499,上下班打卡,0,1,1 //this group is for collect gps(s), should update/sync group key in ClockInOut.php/ClockInOut.html/report.php G19998,某人信息,2,0,1 //this group is for specific manager, should update/sync group key in CopyToGroup.php G19999,所有信息,2,0,1 //this group is for CEO only, he can view all user's message under this group # User can login Room, for Meeting Room Mode=U, User mode only. # If Password is empty, keep using UserList default password for selected room. If not empty, will set this password on selected room. # RoomUser config is not only support UserName line by line, also support Class line by line and ALL. # You can do this: ROOM01,ClassABC, WHERE ClassABC is class used in UserList, if UserName not found in RoomUser, will regard as Class, ensure Class is used. # If you take Class, ensure all UserName have Class. # Password(empty will take password in UserList) on these lines will assign to all these UserName, and overwrite password in UserList. # You can do this: ROOM01,ALL, WHERE ALL will assign all UserName in UserList to this room, provided your system is only take 1 User Mode ROOM(Mode=U), more than 1 non User Mode ROOM is allowed. # This(ALL) is very good if there are lots of school or estate users. # The following is sample setting, you can change according to your design. # Room(6),UserName(20),Password(16) ROOM01,Peter, // Peter is allowed to login all user mode (here is a remark example). ROOM01,Angel, ROOM01,Demo, ROOM11,Angel, ROOM11,Peter,88899677 # User belong to Room and Group, for Meeting Room=U, User mode only. # If a user do not have group, no need to add line. # If you don't require group for meeting room as user mode, you do not need to edit RoomGroupUser. # RoomGroupUser config is not only support UserName line by line, also support Class line by line and ALL. # You can do this: ROOM01,G10001,ClassABC WHERE ClassABC is class used in UserList, all user with ClassABC will assign to this group, if UserName not found in RoomUser, will regard as Class, ensure Class is used. # You can do this: ROOM01,G10001,ALL WHERE ALL will assign all UserName to this room and group. # This(ALL) is very good if there are lots of school or estate users. # The following is sample setting, you can change according to your design. # RoomGroupUser is for group chat only. # Room(6),GroupID(6),UserName(20) ROOM01,G10001,Peter // Peter is belong to all group (here is a remark example). ROOM01,G10002,Peter ROOM01,G10003,Peter ROOM01,G10004,Peter ROOM01,G10005,Peter ROOM01,G10006,Peter ROOM01,G10007,Peter ROOM01,G10008,Peter ROOM01,G10001,Angel ROOM01,G10005,Angel ROOM01,G10099,ALL // Set User as 'ALL', assign this group to all user under this room. ROOM01,G10477,ALL ROOM01,G10488,ALL // add http://domain.com/useful.html this kind of messages on this folder, let colleague/classmate to download. ROOM01,G10499,ALL ROOM01,G19998,Peter ROOM01,G19999,Admin //Admin like CEO, only 1 assign, should update/sync group key in CopyToGroup.php ROOM11,G10001,Angel