CCF with floating windows

Submitted by Robert MacLean on Thu, 02/08/2007 - 17:41
CCF comes in pretty much any design you like, thanks to having the source code for the agent desktop available. One of the properties of the applications you add is a "Display Group" property which allows you to set where you want the application to go. If you leave it blank, then it defaults to the first CCF panel it finds. If you fill it in and it matches the name of an existing panel it will go on that panel (have a look at the out of box examples for Workflow, Current Session and Session Explorer). What is not documented anywhereUpdated: It is in the developer guide is you can also put in either "floating" or "floatingtool" which will cause the window not to be in the CCF SDI interface (i.e. on the tabs or on some other area) but in it's own pop-up window. The "floatingtool" option changes the type of pop-up form to a tool form (i.e. thin header). it is possible to push the boundry on this one further by putting in your own terms, and then modifing the "AddApplication" method of UIConfiguration.cs to handle those special terms. An idea I had here is that you could do something like have the window be stay on top, align to the right of the window and have it load a reporting services report with graphs on it. Nice mini-dashboard!

Submitted by Robert MacLean on Thu, 02/08/2007 - 16:14

I have been offered the great opportunity of having a blog on IW, is a community site driven by Microsoft and a core group of Partners focused on Information Workers (thus the name of the site, in case you did not pick that up). As that is going to be more (completely) CRM focused, I won't publish much CRM stuff here, but I will continue to go on about all the other crazy stuff.

My blog their can be found at:

(ooh btw IW runs on SharePoint 2007, which makes blogs and wiki's easy)

Worst product name (for developers)

Submitted by Robert MacLean on Wed, 02/07/2007 - 14:53

Microsoft PowerShell may be the worst product name for developers. If you write scripts I'm not classing you as a developer, I am classing people who understand Assemblies, Namespaces and Generics as developers for this post.

Anyway if you are a developer it should be called .Net Object to Text Render (and if Motorola made it NOTR), since that is what it actually does, it converts .Net objects to text. Once you understand that concept it gets a lot more powerful than the whole "DIR", "COPY" on a blue background than it appears the first time.

So it understands strings so this is possible:
PS C:\Documents and Settings\rmaclean> 'sadev'+''

It also understands ints so this is also possible:
PS C:\Documents and Settings\rmaclean> 67 * 34 + 9 - 22

And since .Net understands how to translate int's to strings, this becomes possible:
PS C:\Documents and Settings\rmaclean> 'sadev'+'' + (67 * 34 + 9 - 223) + 999

And since objects can have properties you can start with Get-ChildItem which is like DIR for the old school in the audience, then add | where-object { $_.CreationTime -gt "1/29/2007" } to get all items created since Jan 29th 2007. Example
Get-ChildItem | where-object { $_.CreationTime -gt "1/29/2007" }

Then add on | epcsv to export the results to a CSV file.

Pure madness I say, pure developer insanity :D

94.7 Highveld Stereo Audio Streaming

Submitted by Robert MacLean on Wed, 02/07/2007 - 14:16

If you are annoyned with having to go to then click listern now then get stuck with the floating window while you listern to the radio this may help. Open media player (I'm using version 11 but it should work with all versions from 7) and hit Ctrl+U and put in the following URL:

And enjoy the ability to minimize media player to the task bar, or select it using recent items without having to browse to it etc...

CCF Wikipedia Entry

Submitted by Robert MacLean on Mon, 02/05/2007 - 10:07

There is an entry in Wikipedia for CCF :) It is unfortunately very light in content.

What does spur me to post about it is not the article itself, but the comments in the history:
"(cur) (last) 21:07, 25 September 2006 Jmcnamera (Talk | contribs) (This reads like an ad plus I can not find anything notable on the web about this except some vague marketing material at MS web site. I'm an MS booster but this doesn't look real.)"

The whole "it doesn't look real" is bad, and it is not the first time this has been brought up. Because so few people know of CCF and the website is tiny (compared to others like MSCRM or Dynamics GP, let alone someone like Office) it really does appear to be a vaporware or beta or some other product which does not exist yet.

Definately the CCF community needs to put more content up in public places, but Microsoft also needs to help drive this, even if it is just with a better website (which links to the forums would also help show real activity with the product).

Bug with CRM Outlook Client

Submitted by Robert MacLean on Fri, 02/02/2007 - 09:11

Thanks to Greg Nichols for highlighting this the bug caused by a security update which is killing off MS Outlook with CRM installed. This is definately something we are seeing in production enviroments everywhere at the moment.

Agent Desktop: Error: Failed to connect to the web server.

Submitted by Robert MacLean on Thu, 02/01/2007 - 15:29

It appears that a few people have had the problem where everything works great in agent desktop, but not when selecting a contact to work with, as they get some thing like
The underlying connection was closed: The remote name could not be resolved.\n\nStack:\n at Microsoft.Ccf.Csr.Sessions.SetActiveSession(Guid sessionID)
at Microsoft.Ccf.Csr.Sessions.AddSession(String name, Int32 callID, Object customer)
at Microsoft.Ccf.Samples.Csr.AgentDesktop.Desktop.AddSession(CustomerRecord customer, CallClassProvider call)

Customer Care Framework 2005 - Agent Desktop: Error: Failed to connect to the web server. Please verify that you can connect to the web server.

Well it would appear from the outside that the SetActiveSession method (atleast in the .Net 1.1 QFE 3 version, and likely the earlier .Net 1.1 version) has the server hard coded (since this is one of the few assemblies you don't get the code for and reflector wasn't much help in finding out I can not state for sure).

If it is hard coded it is insanity and *hopefully* fixed in the .Net 2.0 release. But if you do hit this because your CCF server is not named CCFIIS the simple fix is either add an entry to the DNS server on your network to redirect to that or (if you can't due to security restrictions during development) add it to the hosts file in c:\Windows\System32\Drivers\Etc\

Once that is done, restart agent desktop and enjoy.

Update:Thanks to MattB on the CCF Forum for confirming it is hard coded and that a hotfix is available for 1.1 from PSS and 2.0 is already fixed :)

CCF Workflow and Workflow step addition fails with "Unable to update the requested information"

Submitted by Robert MacLean on Thu, 02/01/2007 - 10:37

When in the CCF admin console you may get an "Unable to update the requested information" when trying to add a new workflow or workflow step (from here I will just say workflow but I mean both). This is because you can not add a workflow when no others exist. i.e. DON'T delete the demo ones until you create one of your own.

What is happening is the ID field in the table in the database is used in a relationship and thus can not be an identify field. So the admin tool does a check for the highest value and adds one to it and uses it as the new ID. When there is no items it fails.

If you need to manually add a workflow in to the database (instead of doing a redeploy) it is in dbo.ContactCenterAIF.WorkflowsMaster and for workflow steps it is in dbo.ContactCenterAIF.WorkflowStepsMaster

RegisterListener Exception

Submitted by Robert MacLean on Thu, 02/01/2007 - 10:13

If you get an exception with the CCF agent desktop which involves "RegisterListener" then likely you got a little too confident in your deployment and didn't follow the deployment guide like for line. If you had you would have installed Microsoft WSE 2.0 SP3 Runtime.msi which is in the Others folder of the deployment on the desktop prior to trying.

So you are also aware, if this fails pretty much a ton of other items (menu's, status updates etc...) will also fail.

Why should you promote upgrades

Submitted by Robert MacLean on Thu, 02/01/2007 - 07:52

I enquired with my hosting company (Hetzner) about upgrading the amount of disk space, and only disk space. See I am planning to upload my photo's and that takes space, lots of it and it's the only thing I have come close to using. The bandwidth is great, the amount of email address is ridiculous (I only use 2 and they are both just forwards anyway), and so on. The options available to me are
1) Upgrade, which doubles my disk space
2) Buy 10Mb more for R5 more.

Here is the downside for the upgrade, they are charging me R49 for it (. The logic told to me is that they have to manually do the changes to quota's etc... This for me is horribly flawed because
1) They have this great "award winning" H-Console which did the entire set of my account automatically
2) They don't charge for downgrading. This is really the part that shocks me as I could understand if they only charged for downgrades (penelizing the end user in a way) or charged for both (due to the "manual" work required) but they don't. They seem happier to have people downgrade than upgrade, which in my mind means they will make less money.

Anyway the other funny part of this how story is that if I pay R5 per 10Mb and buy the 100Mb I will end up paying the same amount as if I upgraded, but without the penalty for an upgrade.

I actually think this is a horrible side effect of one of the value propositions that Hetzner likes to tell people: "Stable pricing since 1999". The problem with stable pricing is no one ever goes back and reviews it and applies all those business lessons learnt in the last 8 years, like getting existing customers to spend more money is easier than getting new customers.

Note: This is not a issue about amount of money but rather the logic behind it.