Custom Engine Agents in Microsoft 365 Copilot

Agents in BizChat has been available for some time already, but now there is an upcoming update to Agents. The introduction of “ custom engine agents ” in Microsoft 365 Copilot! These specialized agents can be built on any large language model (LLM), toolchain, or orchestration tool, tailored specifically for your domain or tenant workflows. Initially supported in Microsoft Teams, this feature will soon be available in Microsoft 365 Copilot Business Chat ( BizChat ).   The introduction of Custom engine agents enables your organization to create customized experiences using your own AI systems and orchestrators. You can design unique prompts, connect to any LLM, and integrate these custom agents with Microsoft 365 Copilot. After the rollout, users will be able to access these agents, provided they are enabled and deployed in the Microsoft 365 admin center under the Copilot tab.   You can read more about the feature on this page . Eligible users can create agents using Micros...

Lync in coexistence with CUCM part 1

When introducing the Lync server to a customer which already have a fairly up to date PBX like CUCM, I never go for the "replace it all" approach. I usually introduce Lync to give the customer the best of to worlds for very different scenarios.

In this and my next post, I'll show you the most common ways I usually implement the solution for my customers.

First off all, you should know most my customers usually have a fairly up to date CUCM cluster. And they are not at all looking for a replacement. The investments already done in the platform are to big to just through away. So this is where "integration" plays a big part.

Here are a few features my customers often highlight as important to them, when considering Lync:
- Presence (maual)
- IM (one on one)
- IM (Multi)
- Easy desktop/application sharing
- Exchange/Outlook presence (based on calendar)
- Exchange/Outlook contacts (based on calendar)
- Presence (based on phone status)
- Soft-phone capabilities
- Click to call
- Remote capabilities for some or all of the above

Some also ask for dial-in conferencing. But as this post will not enable enterprise voice in Lync, this solution is not for them.

So; The six first and the last bullets are easily achieved just through implementing Lync in a proper manner. But how can we introduce bullets 7-9 when we do not enable enterprise voice in Lync? Well, then this post might be just for you :)

If you didn't know, there is a nifty plugin for Lync/CUCM from Cisco called CUCIMOC (or CUCILYNC as it probably will be called).

This won't be a technical drill down of how to do it step by step. I just want give you some important pointers and examples.

First of all, let's have a look at the client plug-in (how it all appears to the end user):

The user will have a secondary login, but credentials can be cached.The plug-in stays at the bottom, and adds functionality to the interface (sw-mode).Drag a contact over the plug-in to call the user.


As You can see, the Cisco plug'in is added to the Lync client at the bottom. The plug-in adds new commands to the "file" menu for among other things, calling contacts. One note though; Clicking the "call" button next to the user in the client itself, will initiate a pc-to-pc call to the user. It will not initiate a Voice/Voip call. To initiate the Voice/Voip call you have to use the file menu, or drag-n-drop the user onto the plug-in.

Now then, when you drop a contact onto the plug-in, a new dialogue box appears. Here you choose which number you want to make the call to.

The "select phonenumber" box.Making the call and updating the presence (hw-mode).Switch sw/hw mode by clicking the icon.


In hw-mode, the plug-in directly control your Cisco IP Phone. You may answer, call redirect or do any other operation you normally do through the the plug-in.

In software mode, the pc client makes the call and update your presence. The Cisco phone will now show the "remote shared line in use" symbol on the specified phone.

The only "limitation" to this implementation is the obvious need for a connection to the local LAN. The plug-in uses a direct CTI-connection to control the devices in CUCM. As a consequence, you may not use the edgeserver/remote user functionality to make calls when you're not at the office. You will need some kind of direct access or other VPN method.

Now then, I've briefly showed you what it looks like for the user. But how it is all done? What do you as an admin have to do to configure it all? Well, If your familiar with the CUCM, it's not at all that difficult.

First you create a new device/phone in CUCM (type: Cisco Unified Client Services Framework). Copy all the information/settings you need from the already existing ip phone. And attach the same dn to the new device.



Don't forget to "allow control of device from CTI" on both the softphone device, and the hardware phone.



Make sure the dn is associated properly with all devices, and set the desired calling name and display settings.



Then, on the end user page of the "owner"; Make sure the devices are associated, and the user is allowed to control these devices through CTI.




Finally; Prepare a bat script to update your registry, and install the client. When you download the package from Cisco (You do need licenses to do this), it contains a demo bat script. I'm only showing the bare minimum of configuration needed to make the basics work in the screen-dump. There are features for voice-mail and conferences, which I have not touched upon in this post. But they are not needed in order to make this work. You might also notice mu CUCM is integrated with a Windows AD, and the user authentication is done using the users regular user-name and password.



That's all for now. Happy labbing :)

See the other posts for more on CUCM and Lync: