// ============================================================================ // - MicroSIP // ============================================================================ var WSN = WScript.CreateObject("WScript.Network"); var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var WSS = WScript.CreateObject('WScript.Shell'); var confFileName = 'MicroSIP.ini'; var confFolderName = 'MicroSIP'; var distFolderName = 'Dist'; var usersFolderName = 'Users'; var srvConfPath = '\\\\<server_name>\\microsip$'; var userName = WSN.UserName; var srvDistPath = srvConfPath + '\\' + distFolderName; var usrConfPath = WSS.ExpandEnvironmentStrings('%APPDATA%') + '\\' + confFolderName; var genConfFileOnSrv = srvConfPath + '\\' + confFileName; var usrConfFileOnSrv = srvConfPath + '\\' + usersFolderName + '\\' + userName + '.ini'; var usrConfFileOnLoc = usrConfPath + '\\' + confFileName; var genSrvINI = {}; var usrSrvINI = {}; var usrLocINI = {}; // if ( !(FSO.FileExists(usrConfFileOnSrv) && FSO.GetFile(usrConfFileOnSrv).Size > 0) ) { // , WScript.Quit(); } // if (FSO.FolderExists(srvDistPath)) { // MicroSIP (/ ) var cmdLine = 'tasklist /fi "IMAGENAME eq microsip.exe" /fi "USERNAME eq ' + userName + '" /FO CSV /NH'; var wasRunning = /microsip.exe/.test(WSS.Exec(cmdLine).StdOut.ReadAll()); // MicroSIP ( ) WSS.run("taskkill.exe /T /F /IM MicroSIP.exe", 0, true); FSO.CopyFolder(srvDistPath, usrConfPath); // strDesktop = WSS.SpecialFolders("Desktop"); oMyShortcut = WSS.CreateShortcut(strDesktop + "\\MicroSIP.lnk"); oMyShortcut.WindowStyle = 4; oMyShortcut.IconLocation = usrConfPath + '\\microsip.exe, 0'; oMyShortcut.TargetPath = usrConfPath + '\\microsip.exe'; oMyShortcut.WorkingDirectory = usrConfPath; oMyShortcut.Save(); } // ReadINIFile(genSrvINI, genConfFileOnSrv); // ReadINIFile(usrSrvINI, usrConfFileOnSrv); // ReadINIFile(usrLocINI, usrConfFileOnLoc); // // // MergeINIObj(usrLocINI,genSrvINI); MergeINIObj(usrLocINI,usrSrvINI); // SaveINIFile(usrLocINI,usrConfPath,usrConfFileOnLoc); // MicroSIP if (wasRunning) { WSS.run(usrConfPath + "\\microsip.exe", 1, false); } // ini function ReadINIFile(INIObj, filename) { if ((FSO.FileExists(filename)) && (FSO.GetFile(filename).Size > 0)) { var fileh = FSO.OpenTextFile(filename, 1); while (!fileh.AtEndOfStream) { var line = fileh.ReadLine(); if (/^\[(\w+)\]/.test(line)){ var section = RegExp.$1.toLowerCase(); INIObj[section] = {}; } if (/^([^;#][^=]*?)\s*=\s*([^\r\n]*?)\s*$/.test(line)){ var param = RegExp.$1.toLowerCase(); var value = RegExp.$2; INIObj[section][param] = value; } } fileh.Close(); } } // INI ini- function SaveINIFile(INIObj, confPath, filename){ function WriteArray(arr){ for (var i in arr){ var value = arr[i]; if (typeof(value)=='object') { if (value) { file.Write('[' + i + ']\r\n'); WriteArray(value); } }else{ if (value) { file.Write(i + '=' + value + '\r\n'); } } } } if (!FSO.FolderExists(confPath)){ FSO.CreateFolder(confPath); } var file = FSO.OpenTextFile(filename, 2, true); WriteArray(INIObj); file.Close(); } // INI () INI function MergeINIObj(firstINIObj, secondINIObj){ for (var section in secondINIObj){ if (!firstINIObj[section]) { firstINIObj[section] = {}; } for (var param in secondINIObj[section]){ if (!firstINIObj[section][param] || firstINIObj[section][param] != secondINIObj[section][param]){ firstINIObj[section][param] = secondINIObj[section][param]; } } } }
[Settings] disableLocalAccount=1 EnableLog=0 updatesInterval=never CheckUpdatesTime=1466489328 denyIncoming= usersDirectory=http://phonebook.local SingleMode=1 LocalDTMF=1 autoanswer=button denyIncoming=button micAmplification=1 swLevelAdjustment=1 audioCodecs=PCMA/8000/1 PCMU/8000/1 accountId=1 [Account1] Server=voip.local Domain=voip.local Proxy= PublicAddr= ListenPort= SRTP= Transport=udp Publish=0 STUN= ICE=0 allowRewrite=1 voicemailNumber= disableSessionTimer=0
[Account1] label=number AuthID=number Username=number DisplayName=sAMAccountName Password=password
Source: https://habr.com/ru/post/359409/