Over the past few weeks I’ve run into deployments requiring XMPP for multi-vendor application presence integration. One of the caveats that’s published is the requirement to allow federation for any of the user accounts requiring XMPP integration. In highly secure environments this is not an option. It also adds a layer of complexity when troubleshooting presence integration of internal applications.
This blog post doesn’t cover installing or configuring the XMPP gateway itself, or configuring certificates. It does cover:
- Enabling XMPP communications between “domain.com” and “internalxmpp.domain.com” without the use of an edge server.
To configure XMPP integration:
1. Create a static route in Lync to enable routing for the appropriate SIP domain (internalxmpp.com in this case)
$tlsroute = New-CsStaticRoute -TLSRoute -destination “xmppservername.domain.com” -port 5061 -matchuri “internalxmpp.domain.com” -usedefaultcertificate $true
Note that the “destination” switch specifices the server name to send to, and that server must be resolvable from the front end server. Additionally, the server “xmppservername.domain.com” must have a certificate with “xmppservername.domain.com” for MTLS communication to occur.
2. Create a trusted application pool and application, so Lync can accept inbound requests and presence updates.
New-CsTrustedApplicationPool -Identity internalxmpp.domain.com -Registrar Registrar:lyncfe01.domain.com -site 1 -ComputerFqdn xmppservername.domain.com -ThrottleAsServer $true -TreatAsAuthenticated $true
New-CsTrustedApplication -ApplicationID XMPP -TrustedApplicationPoolFqdn internalxmpp.domain.com -Port 5061
3. Configure the XMPP gateway to send SIP requests to the front end server.
Now we have XMPP integration without an edge server in place.
If you have an application that leverages this type of integration, or run into any issues/questions when deploying XMPP integration please let me know. With the abundance of XMPP, Web Services/LyncClientAPI/UCMA, and other presence and UC integration technologies being used it’s important to have templates for the UC community to understand and use. Thanks!