I'm trying to modify some message SDP coming to/from a UCMA application, and I'm running into some roadblocks trying to do it. I've already proven out what I want to do with a simple MSPL application, but I'd like to see if I can do the same thing without touching the Lync server. Here's what I've tried so far:
-I created an ApplicationEndpoint and attached to InnerEndpoint.SessionReceived to try handling things at the signaling layer. I can accept a call, but ran into two issues here. First, it looks like if I want to modify the SDP that the application sends back, I need to implement a full IOfferAnswer class. Is there a sample of this somewhere? Ideally, I'd like to have a last chance to modify the response that UCMA generates before sending it on. Second, even if I do establish a call this way, is there any way to pass control up to the Collaboration layer again after a call is accepted at the signaling layer? I know if I don't actually accept or reject the session the higher level handler will still fire, but it seems like once I handle the call in SessionReceived, I can't get back up a level.
-Another thought I had was to allow the initial negotiation to go through, but then send an SDP renegotiation once the call is established. This way, I can obtain (and keep) a reference to the signaling session in SessionReceived, but still accept the call in my Collaboration layer handler. I couldn't find a way to do this though-is it even possible?
-Digging around on here, I found this thread that Adarsh answered in 2010 that said "If you really want to add additional SDP, you need to rewrite BeginGetOffer implementation in BackToBackMediaProvider code". I checked out the class though, and it looks like the BackToBackMediaProvider is internal now? Is there no way to modify SDP on a b2b call this way?
I'd hate to have to resort to MSPL to do a simple manipulation of the media negotiation for this app, so if there's a better way to modify the SDP the app responds to the INVITE with, I'd love to know about it. All I'm looking to do is modify responses that have "a=rtcp-fb:*x-message app send:src,x-pli recv:src,x-pli" in them.