Referring to my previous post:
http://pandaeatsbamboo.blogspot.hk/2014/01/associate-existing-phones-to-users-with.html
I have created a shell script that allow us to update the owner ID to phone in batch.
http://pandaeatsbamboo.blogspot.hk/2014/01/associate-existing-phones-to-users-with.html
I have created a shell script that allow us to update the owner ID to phone in batch.
bulk-update.sh, change with your UCM ip address and credential in the curl statement.
#!/bin/sh
for i in `less user-phone-list.txt`
do
#echo $i
username=`echo $i | cut -d ',' -f1`
devicename=`echo $i | cut -d ',' -f2`
cat <<EOF1 >$username.xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/8.5">
<soapenv:Header/>
<soapenv:Body>
<ns:executeSQLUpdate sequence="?">
EOF1
echo "<sql>update Device set fkenduser = ( select pkid from EndUser where userid = '$username') where name = '$devicename'</sql>" >>$username.xml
cat <<EOF2 >>$username.xml
</ns:executeSQLUpdate>
</soapenv:Body>
</soapenv:Envelope>
EOF2
curl -k -u administrator:ccievoice -H "Content-type: text/xml;" -H "SOAPAction: CUCM:DB ver=8.5" -d @$username.xml https://10.1.90.11:8443/axl/
done
user-phone-list.txt, file contains username and device name pair with comma as delimiter, put them in the same directory as the script.
dannywon,SEPAABBAABBAABB
briacho,SEP00077DDFFB7E
13 comments:
Hi Danny,
Thanks, that can come in handy.
Just to let you know there is an even easier way if you are using extension mobility. If so you can use the following SQL statement from CLI to set the owner ID to correspond to the user ID that is logged in at the phone.
run sql update device set fkenduser=(select fkenduser from extensionmobilitydynamic where fkdevice=device.pkid) where name like 'SEP%' and fkenduser IS NULL
Kind Regards,
Kevin
Hi Danny,
You can ignore my last reaction, I just scrolled down your blog and obviously I missed the previous post you made about using the SQL statement with extension mobility. My bad!!
Kevin
Thanks Kevin, useful one.
Just ran a test and this looks like it works great. Will be running it to update ~3500 users tonight. Thanks, you saved me a ton of time!!!
Good luck man
Tim Bassett, how did you go with running this on all the phones? We're in a similar situation but have 7000 phones to update. I gave this a test on our test/dev CUCM with only a few phones and it worked great. I wanted to know if you ran into any issues when scaled up to the thousands.
I only tested it in lab and my friend did run it in his production environment with a couple thousands of phone and it works OK. Good luck
I'm very fresh to AXL but I saw over at the Cisco Dev community someone was trying to accomplish the same thing:
https://communities.cisco.com/docs/DOC-49071
It looks like he did it through a more complicated method and ran into some issues. Are you able to comment on this (I apologise for my ignorance).
Instead of using the UpdatePhone object, my way is to use SQL statement directly. I can't compare them as I haven't tried his way before, but for me I am more comfortable to use SQL statement directly as I know better what the end result should be, comparing with using a AXL method provided which abstract what it will do. My 2 cents.
I was unable to get the script working. I am new to shell scripts. I received an alert the a few issues occurred.
\r was missing
EOF was missing
Please help
I use a very similar approach. Unless you want to keep the xml files for reference you can try running the XML as a variable. I know its saved me a lot of trouble with tmp files.
XML="
update Device set fkenduser = ( select pkid from EndUser where userid = \"$username\") where name = \"$devicename\"
"
curl -k -u administrator:ccievoice -H "Content-type: text/xml;" -H "SOAPAction: CUCM:DB ver=8.5" -d "$XML" https://10.1.90.11:8443/axl/
For Device Association you can also run the other way to associate Devices with Enduser for Jabber
So would there be a way to associate the device with the user and line to user this way also?
Thanks,
So would there be a way to associate the device with the user and line to user this way also?
Thanks,
Post a Comment