问题
Is it possible to globally catch ALL presence changes from Lync server without subscribing to all presentities individually?
What we're after seems to be very similar to the RemotePresenceView class in the UCMA SDK but that class only allows you to subscribe to presentities that you know about. Would we need to load all presentities and then subscribe to them - and even if you could is this a scalable solution?
回答1:
Just notice your question and although it's getting a little old, thought I'd answer it just in case.
There's nothing in UCMA that I know of but perhaps there is a repository of SIPs you can get to (from AD perhaps?) and subscribe to presence via RemotePresenceView as normal.
My experience is that RPV subscriptions actually scale fairly well, although you may want to call RPV.BeginSubscription(sips) with batches of sips of a few hundred rather than individually as you won't always get a SubscriptionStateChange event otherwise.
You may have trouble using RPV.BeginSubscription(sips) for more than 1000 sips in any individual call but I've certainly written systems that eventually subscribe to 10,000+ sips over time.
回答2:
An alternative suggestion, if you're looking to capture presence changes across an entire system, is to use the Lync Server 2010 SDK (download | MSDN). This will allow you to create a SIP filter to "sniff" each presence change as it happens. When a presence change occurs, the client actually "asks" the server to change the presence, and the server then sends out the presence change to all interested parties: such as other devices you're signed in on, and anyone tagging your status.
You can write a SIP filter to just read these presence change instructions. The SDK allows you to async off whatever you want to do with them, without impacting performance of Lync by slowing down the delivery of the messages.
(the SDK also lets you do other stuff, such as prevent or change delivery etc. but that's outside scope of this)
来源:https://stackoverflow.com/questions/15286795/lync-ucma-sdk-server-globally-subscribe-to-presence-updates-for-all-presentiti