Awesome Engineering
Posted by Kevster in Uncategorized on 08/05/2010
Some folks amaze me with their skill. Its a simple thing really but just works….. have a look
More more – shall we say ingenious – have a look at one of my fave sites
Cisco CUCM/Call Manager – Running on Sun’s Virtual Box
Posted by Kevster in VMware / Virtual Box / HyperV, VoIP and UC on 02/02/2010
Well it is possible
with a bit of hacking – but thats what its all about, isn’t it !
I actually used an existing working VM that had been built on VMware. I will test building one from scratch on VirtualBox but not 100% sure it will work….
Anyhooo…
1) Get the existing VMDK and copy it to your Virtual Box machine repository
2) Create a new VM using a Linux, Redhat, 1024MB RAM etc machine and set the disk as the VMDK
3) Modify the machine – I removed the sound card
4) Locate the machines XML config file. The directory is set in VirtualBox’es config. Edit it and add the following:
Add the following lines to it in the "<ExtraData> </ExtraData>" section: <ExtraDataItem name="VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" value="6 "/> <ExtraDataItem name="VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" value="VMware"/> <ExtraDataItem name="VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" value="Phoenix Technologies LTD"/> <ExtraDataItem name="VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct" value="VMware Virtual Platform"/>
(That bits from http://ubuntuforums.org/showthread.php?t=1029144)
5) Next follow the guide here http://www.blindhog.net/how-to-get-root-access-on-call-manager-56-server/ to get root access. Make sure you use the CentOS Disk 1 rather than the Live Disk…….grrrrr
6) Edit the /usr/local/bin/base_scripts/hardware_check.sh script to look like this:
We essentially comment out the hardware check and validation
function check_deployment()
{
local tmp_deployment
initProductLibrary tmp_deployment="$deployment"
# Check the deployment
# isHardwareValidForDeployment $tmp_deployment
# rc=$?
# if [ $rc -ne 0 ]; then
# log info "$tmp_deployment deployment Not Supported"
# return 1
# fi
# Deployment is supported by this hardware
log info "$tmp_deployment deployment Is Supported"
return 0
}
7) Save it and reboot
The VM should come up and work !
Quickie: Setting Company Name for Mac OSX XCODE
Quick note to remember how to set company name in the OSX XCODE environment. Taken from http://macdevelopertips.com/xcode/change-company-name-in-xcode.html/trackback
1) Open Terminal
2) Run >>>> defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{ORGANIZATIONNAME="YourNameHere";}'
3) Done
Sun Virtual Box – Cloning machines
Posted by Kevster in VMware / Virtual Box / HyperV on 04/01/2010
I’m a big fan of Sun’s Virtual Box – its cross platform (I run it on Windows 7 X64,OS X and Ubuntu), FREE and works
Cloning machines is pretty the same as all OS’s, with one slight twist…..
1) Copy the VDI file you want to clone/backup.
2) This file won’t boot because it has the same UUID as the first file you copied, so need to use VBoxManage utility to give it a new random UUID.
3) Open command prompt, and change to your Vbox directory with VBoxMange.exe in it. Probably located at C:\Program Files\Sun\xVM VirtualBox\
4) Run this command in command prompt
VBoxManage internalcommands setvdiuuid “D:\My Virtual Machines\VDI\HardDiskName.vdi”
Obviously you would change the above path to point to your NEW VDI file that you created (not the original).
Cisco CUCM UCCX Queue Status Web Service
Posted by Kevster in VoIP and UC on 27/08/2009
Heres a snip of somthing I wrote as an ‘add on’ the the free, Open Source SourceForge IPCC Wallboard package.
This uses code from the IPCC Wallboard package to access UCCX’s Historical database, and allows for queue information to be displayed on a Cisco IP Phone.
The formattings nasty as the IP Phone does not operate as a standard browser so theres lots of spaces and stuff to get things positioned right.
Ill post some information about how to get it working as a service in CUCM later…
<%On Error Resume Next
//**************************************************************************************//
// Service: Phone Wallboard Display //
// AUTHOR: Kevin Iddles, Yawns.com Limited //
// PURPOSE: Display UCCX Queue information on IP Phone - Exposed as a service //
// VERSION: 1.1 //
//**************************************************************************************//
//**************************************************************************************//
// History:
// 1.1 - Updated to parse query strings from CUCM to allow for spaces
// 1.0 - Updated for use on customer sites including layout
// 0.1 - Based on original version from Cisco Netpro
//**************************************************************************************//
%>
<!--#include file="parameters.asp"-->
<%
Response.AddHeader "Refresh", RefreshTime
//********************************START SQL MODULE**************************************//
//**************************************************************************************//
// Module: SQL Database Connector //
// AUTHOR: Jeremy Fielder, Leo Mourits //
// PURPOSE: Performs Database Connections and retrieves relavent recordSets. //
//**************************************************************************************//
If IPCCversion = 3 Then
WBConnect = "Provider=SQLOLEDB; Data Source = " & DBsource & "; Initial Catalog = " & DBdatabase & "; User Id = " & DBuserID & "; Password = " & DBpass
ElseIf IPCCversion = 4 Then
WBConnect = "Provider=SQLOLEDB; Data Source = " & DBsource & "\CRSSQL; Initial Catalog = db_cra; Integrated Security=SSPI;"
End If
Set cn = Server.CreateObject("ADODB.Connection")
cn.open WBConnect
needor = "0"
If Request.QueryString("csqa") = "" Then
sqlcsqa = ""
Else
tmpcsqa = Request.QueryString("csqa")
tmpcsqa = Replace(tmpcsqa, "%20", " ")
sqlcsqa = " (CSQName Like '%" & tmpcsqa & "%')"
needor = "1"
End if
If Request.QueryString("csqb") = "" Then
sqlcsqb = ""
Else
If needor = "0" Then
tmpcsqb = Request.QueryString("csqb")
tmpcsqb = Replace(tmpcsqb, "%20", " ")
sqlcsqb = " (CSQName Like '%" & tmpcsqb & "%')"
needor = "1"
Else
tmpcsqb = Request.QueryString("csqb")
tmpcsqb = Replace(tmpcsqb, "%20", " ")
sqlcsqb = " OR (CSQName Like '%" & tmpcsqb & "%')"
End if
End if
If Request.QueryString("csqc") = "" Then
sqlcsqc = ""
Else
If needor = "0" Then
tmpcsqc = Request.QueryString("csqc")
tmpcsqc = Replace(tmpcsqc, "%20", " ")
sqlcsqc = " (CSQName Like '%" & tmpcsqc & "%')"
needor = "1"
Else
tmpcsqc = Request.QueryString("csqc")
tmpcsqc = Replace(tmpcsqc, "%20", " ")
sqlcsqc = " OR (CSQName Like '%" & tmpcsqc & "%')"
End if
End if
If Request.QueryString("csqd") = "" Then
sqlcsqd = ""
Else
If needor = "0" Then
tmpcsqd = Request.QueryString("csqd")
tmpcsqd = Replace(tmpcsqd, "%20", " ")
sqlcsqd = " (CSQName Like '%" & tmpcsqd & "%')"
needor = "1"
Else
tmpcsqd = Request.QueryString("csqd")
tmpcsqd = Replace(tmpcsqd, "%20", " ")
sqlcsqd = " OR (CSQName Like '%" & tmpcsqd & "%')"
End if
End if
If sqlcsqa = "" and sqlcsqb = "" and sqlcsqc = "" and sqlcsqd = "" Then
sqlcsqa = " callsWaiting > '0'"
End if
sqlGetCSQstats = "SELECT CSQName, availableAgents, callsWaiting, convOldestContact FROM RtCSQsSummary WHERE " & sqlcsqa & sqlcsqb & sqlcsqc & sqlcsqd & " ORDER BY CSQName"
Set rs = server.createobject("adodb.recordset")
Set cm = Server.CreateObject("ADODB.Command")
cm.ActiveConnection = cn
cm.commandtext = sqlGetCSQstats
Set rs = cm.execute
Response.Write deptName %>
| Queue |AA|CW| L Wait |
-------------------------------------------------
<% While not rs.eof %>|
<%= rs("CSQName") %> | <%= rs("availableAgents") %> | <%= rs("callsWaiting") %> |<%= rs("convOldestContact")%><%
rs.moveNext
wEnd
rs.close
%>
Change of Platform
Posted by Kevster in Site Updates on 27/08/2009
Having run this blog and others on Community Server for quite a while not, I decided it was time for a change.
As this sites only used for blogs (no media, forums etc) there did not seem much point in continuing running the site on CS. In addition, for some reason they have decided to remove support for running multiple ‘virtual’ CS sites within the same database. Also I have issues with the stability, updates etc. Hence moving this to WordPress.
Lets see how it goes……
Windows 7 – How to add ‘difficult’ applications to the tray
Windows 7 rocks as they say. Been running it for a long while now and makes Vista seem as bad a shell as XP these days.
The Beta, then RC and now the RTM code is very, very solid. Amazingly fast and a dream to use. Owning a Mac as well, there are some compelling reasons why I still think its the premier desktop OS.
One annoyance though is being able to ‘pin’ applications to the tray. Depite all your efforts, some will not do it. Instead follow this procedure how to do it. Its a frig, but one that works !
http://www.unawave.de/windows-7-tipps/folder-to-taskbar.html?lang=EN
Flushing SQL Transaction Logs
Can never remember the syntax so here is is as a reminder:
Make the database current then run
DBCC
SHRINKFILE(‘Foo_LOG’,1)
BACKUP
LOG Foo WITH TRUNCATE_ONLY
DBCC
SHRINKFILE(‘Foo_LOG’,1)
go
ASP.Net and SharePoint
Its taken me long enough but finally had a reason to write some true ASP.Net code. One problem I hit was that trying to run code on a server that is running SharePoint Services …. so you need this exceprt….
You may see this error:
Reason: SharePoint does not allow server side code to execute in aspx pages contained in the SharePoint site.
Fix: Edit the web.config (I.E. C:\Inetpub\wwwroot\wss\VirtualDirectories\80\web.config) file:
<!– To allow a single file: –>
<PageParserPath VirtualPath=”/test.aspx” CompilationMode=”Always” AllowServerSideScript=”true” />
<!– To allow global: –>
<PageParserPath VirtualPath=”/*” CompilationMode=”Always” AllowServerSideScript=”true” />
<!– To allow global within a subsite: –>
<PageParserPath VirtualPath=”/websitefoobar/*” CompilationMode=”Always” AllowServerSideScript=”true” />
</PageParserPaths>