Thursday, 24 April 2008

Automatic Script for CMS (Call Management System) for Avaya

Hi All,

Sometimes it's arrives that you need to have to change a big list of login name or delete lot of login manually, so I think taht the scripts below will be very interesting for the majority of the people, so in first we'll see how to have a script in order to modify a list of login name and if the login doesn't exist then it will be created:

1) CMS Script to change agent and/or add the agent if he doesn't exist:

The value below must be changed in order to work with your system:

SERVERNAME= IP ADDRESS OF YOUR CMS SERVER
Dictionary.ACD = This is the value of your ACD on CMS
OpenTextFile("C:\agents.txt", 1) = This is the path where the list of your agent will be stored, so you need to create a file agents.txt on your hard drive C:\























Copy the content below in a file with the extension below .acsup so for example the name of my file will be "Script to change or add an agent.acsup" so you just need to doble click on this file and CMS will be started then enter your password and the script will be started automatically:


'LANGUAGE=ENG
'SERVERNAME=xx.xx.xx.xx
Public Sub Main()

'Place a ";" separated file name agents.txt on the root of C drive
'This file needs to have the agent format: Cyril;1234 on every line
'This line will be read and split on the ";" and put in an array to add into CMS


l=0 'loop value for read loop
result=0 'Answer on adding
c=0 'counter for giving the messagebox

dim regel, a 'variabel for readline and for splitting on ";"
dim sString 'variable for information on adding data
dim NameArray(999) 'define array for agent name. All data is read into this from agents.txt
dim NumberArray(999) 'define array for agent number
dim fs, f 'define filesystem stuff for read
Dim agAdded
Dim agModif
Dim ress
cvsSrv.Dictionary.ACD = 3

'Reads file one line at a time into name and number array
'Place the textfile on the root of C drive

Set fs=CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile("C:\agents.txt", 1)

Dim ss


Do While f.AtEndOfStream <> True

'result = msgbox (regel, 1, "regel")
regel = f.ReadLine
a = split(regel,";")
NameArray(l) = a(0)
NumberArray(l) = a(1)
l=l+1
'regel = f.ReadLine
Loop 'keep reading in data until EOF hit.

'a = split(regel,";")
'NameArray(l) = a(0)
'NumberArray(l) = a(1)

f.Close 'close agents.txt file

Set f=Nothing 'clear f and fs
Set fs=Nothing

'Read all agents into string and display it in a messagebox

for c = 0 to l-1
sString = sString & NumberArray(c) & " - " & nameArray (c) & (Chr(13) & Chr(10))
next
result = msgbox (sString, 1, "Sure to Modify these Agents?")
if result = 1 then

sString = "" 'make string empty for next use

'Modify entries

b = cvsSrv.Dictionary.CreateOperation("Login Identifications",Op)
'b2 = cvsSrv.Dictionary.CreateOperation("Login Identifications",Op)
Op.Window.Top = 4490
Op.Window.Left = 4680
Op.Window.Width = 6000
Op.Window.Height = 2540


agAdded = 0
agModif = 0
for c = 0 to l-1

If b Then
Op.SetProperty "login_id", NumberArray(c)
Op.SetProperty "ag_name", NameArray(c)

On Error Resume Next

if b = Op.DoAction("Modify") then

agModif = agModif + 1
else
sString = sString & " " & NumberArray(c) & (Chr(13) & Chr(10))


b2 = Op.DoAction("Add")
if Not(b2) Then
result = msgbox (NameArray(c), 64, "failed adding user")
else
agAdded = agAdded + 1
End If
end if

End If

next


ress = "Agents Added " & agAdded & " Agents Modified " & agModif
result = msgbox (ress, 64, "Result")

' if sString <> "toto" then
'msgbox sString, 64, "Following Agents Already Exist"
'else
'msgbox "All Agents Modify", 64, "Operation Succesfull"
' end if

If Not cvsSrv.Interactive Then cvsSrv.ActiveTasks.Remove Op.TaskID
Set Op = Nothing

end if

end Sub




This is the code to delete automatically a list of agent:


'LANGUAGE=ENG
'SERVERNAME=xx.xx.xx.xx
Public Sub Main()

'Place a ";" separated file name agents.txt on the root of C drive
'This file needs to have the agent format: Cyril;1234 on every line
'This line will be read and split on the ";" and put in an array to delete in CMS


l=0 'loop value for read loop
result=0 'Answer on deleting
c=0 'counter for giving the messagebox

dim regel, a 'variable for readline and for splitting on ";"
dim sString 'variable for information on adding data
dim NameArray(999) 'define array for agent name. All data is read into this from agents.txt
dim NumberArray(999) 'define array for agent number
dim fs, f 'define filesystem stuff for read

cvsSrv.Dictionary.ACD = 3

'Reads file one line at a time into name and number array
'Place the textfile on the root of C drive

Set fs=CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile("C:\agents.txt", 1)

Do While f.AtEndOfStream <> True
regel = f.ReadLine
a = split(regel,";")
NameArray(l) = a(0)
NumberArray(l) = a(1)
l=l+1
Loop 'keep reading in data until EOF hit.

f.Close 'close agents.txt file

Set f=Nothing 'clear f and fs
Set fs=Nothing

'Read all agents into string and display it in a messagebox

for c = 0 to l-1
sString = sString & NumberArray(c) & " - " & nameArray (c) & (Chr(13) & Chr(10))
next
result = msgbox (sString, 1, "Sure to Delete these Agents?")
if result = 1 then

sString = "" 'make string empty for next use

'Delete entries

b = cvsSrv.Dictionary.CreateOperation("Login Identifications",Op)
Op.Window.Top = 4490
Op.Window.Left = 4680
Op.Window.Width = 6000
Op.Window.Height = 2540

for c = 0 to l-1

If b Then
Op.SetProperty "login_id", NumberArray(c)
Op.SetProperty "ag_name", NameArray(c)

On Error Resume Next

if b = Op.DoAction("Delete") then
else
sString = sString & NumberArray(c) & " - " & nameArray (c) & (Chr(13) & Chr(10))
end if

End If

next
if sString <> "" then
msgbox sString, 64, "Following Agents Not in System"
else
msgbox "All Agents Deleted", 64, "Operation Succesfull"
end if

If Not cvsSrv.Interactive Then cvsSrv.ActiveTasks.Remove Op.TaskID
Set Op = Nothing

end if

end Sub



Take care when you want to start your script if you have some different version language available on CMS it could try to start the wrong one so just start your english version log you on CMS and run the script.

If some french people need to have an adaptation I can also try to change my version to work with a French CMS Supervisor version.

I hope this tutorial could help some people!!

4 comments:

Anonymous said...

Hi,

The script working ok with our system, CMS rls 14.

Thank you very much for your sharing.

Regards,
Raja.E,
email:rajae@spancotele.com

constantin said...

Hi,

You're welcome !

I'm using this script lot of times per week is very usefull.

Regards.

Anonymous said...

great scrips! Do you have similar scripts for updating vdns, split/skills and vectors?

Regards

Marten Soderberg
marten.soderberg@bredband.net

constantin said...

HI Marten,

Thanks for your reply, I don't have done it, like I don't need it, but you can try to modify it, in order to use VDN split or vectors.

Regards.