User Agent Client (UAC) User Agent Server (UAS)
-
Upload
louise-shields -
Category
Documents
-
view
279 -
download
6
Transcript of User Agent Client (UAC) User Agent Server (UAS)
Michael GreenleeLead UC ArchitectClarity Consulting
Compliance, Message Routing, Filtering and More: Lync Server SDK
PLAT400
Vijay ManianSenior Development LeadMicrosoft Corporation
Routing in Lync Server
Session Initiation Protocol (SIP)Standardized protocol for UC messagingDefined in RFC 3261http://www.ietf.org/rfc/rfc3261.txt
Lync adds some extensions for presence, conferencinghttp://msdn.microsoft.com/en-us/library/cc339480(v=office.12).aspx
Can interoperate between Lync and other SIP-based platformsCaveat: Lync does SIP over TCP/TLS rather than UDP
SIP messageFirst lineHeaders (Name: Value)BodyCan be request or responseRequest has a methodINVITE, REGISTER
Response has a code200, 301, 404
User agentNetwork endpoint that sends or receives SIP messages on behalf of a user.
User agent
User Agent Client (UAC)
User Agent Server(UAS)
User agent
User Agent Server(UAS)
User Agent Client(UAC)
SIP URI
SIP URI
Logical Physical
vs.
Proxy server
Proxy server
Proxy
RegistrarLocation Server
INVITE sip:[email protected]: sip:[email protected]: sip:[email protected]
To/FromRequest URI
INVITE sip:[email protected]: sip:[email protected]: sip:[email protected]
To/From
sip:[email protected];key1=value;key2;key3=value:value
URI parameters
Forking
Proxy
INVITE
INVITE
INVITE
200 OK
200 OK
CANCEL
INVITE sip:[email protected]: sip:[email protected];tag=5B52BDATo: sip:[email protected];tag=062AG2B
Tags
Globally Routable User Agent URIUniquely identifies a specific user agentRoutable from anywhereContains the gruu parameter in the URI
GRUUs
Also known as “SIP dialog”Tied together by Call-ID headerUniquely identified by Call-ID plus from and to tagsStarts with INVITE, ends with BYE
SIP session
Message routing walkthrough
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
Perform routing and other tasksRoute messages to one another using request URILocated in the Server\Core directory
Front End Services
ClientVersionFilterTranslationServiceInboundRouting / DefaultRoutingUserServicesOutboundRoutingEtc.
Front End Services
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
TranslationService
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
UserServices/InterClusterRouting
INVITE sip:[email protected] SIP/2.0From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Via: SIP/2.0/TLS 192.168.100.163:49243Max-Forwards: 70Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==ms-keep-alive: UAC;hop-hop=yesAllow: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONSms-subnet: 192.168.100.0Accept-Language: en-USms-endpoint-location-data: NetworkScope;ms-media-location-type=Intranet
INVITE
InboundRouting
InboundRouting
101 Progress Report
SIP/2.0 101 Progress ReportFrom: "Michael Greenlee"<sip:[email protected]>;tag=25ed2084fd;epid=99479001a4To: <sip:[email protected]>CSeq: 1 INVITECall-ID: cfddfdafd2904102981a259f506a83ffAuthentication-Info: …Content-Length: 0Via: SIP/2.0/TLS 192.168.100.163:49243;ms-received-port=49243;ms-received-cid=2400ms-diagnostics: 13004;reason="Request was proxied to one or more registered endpoints";source="cctest-lync-02.cclab.internal";Count="1";appName="InboundRouting"Server: InboundRouting/4.0.0.0
INVITE sip:192.168.100.163:49526;transport=tls;ms-opaque=1ee5c33e9d;ms-received-cid=3F200 From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: sip:[email protected];epid=8a00958032 CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Record-Route: <sip:cctest-lyncpool-01.cclab.internal:5061;transport=tls;ms-fe=cctest-lync-02.cclab.internal;opaque=state:T:F:Ci.R3f200;lr;ms-route-sig=aamklZ7YmPrsCecMhQ0J0_9cE6QKHMO9lD1jfGgdRlNlGZyrM4NVmY5gAA>;tag=990C7A726842881A248A9D9BA48C69B3Via: SIP/2.0/TLS 192.168.100.163:49243Via: SIP/2.0/TLS 192.168.100.152:5061;branch=z9hG4bK0C4264F9.38B3CA99D96E73A7;branched=TRUEMax-Forwards: 69Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==…
INVITE
INVITE sip:192.168.100.163:49526;transport=tls;ms-opaque=1ee5c33e9d;ms-received-cid=3F200 From: <sip:[email protected]>;tag=f2e91c214e;epid=99479001a4To: sip:[email protected];epid=8a00958032 CSeq: 1 INVITECall-ID: 474db87e9ee44b288047254ebc8ce6e7Record-Route: <sip:cctest-lyncpool-01.cclab.internal:5061;transport=tls;ms-fe=cctest-lync-02.cclab.internal;opaque=state:T:F:Ci.R3f200;lr;ms-route-sig=aamklZ7YmPrsCecMhQ0J0_9cE6QKHMO9lD1jfGgdRlNlGZyrM4NVmY5gAA>;tag=990C7A726842881A248A9D9BA48C69B3Via: SIP/2.0/TLS 192.168.100.163:49243Via: SIP/2.0/TLS 192.168.100.152:5061;branch=z9hG4bK0C4264F9.38B3CA99D96E73A7;branched=TRUEMax-Forwards: 69Contact: <sip:[email protected];opaque=user:epid:F0kyMXrgcVG7AGiFOkX1AAAA;gruu>User-Agent: UCCAPI/15.0.4517.1004 OC/15.0.4517.1004 (Microsoft Lync)Supported: ms-dialog-route-set-updateMs-Conversation-ID: Ac6O1+2jz+e9yLIhSESaW5HSxAxLNQ==…
INVITE
Lync Server SDK
ScenariosFilter or block certain trafficModify message contentReroute messages to a UCMA applicationIntegrate third-party devices or softwareFine-tune PSTN or federation behaviour
ArchitectureRuns on Front End Server (or Edge Server)Handles messages as they are being routedInstalled/configured using Lync Management ShellCan be script-only or managed
WARNING!You can seriously mess up Lync Server routing with these APIsMake sure to test in a lab environment for both stability and performance
Two types of applicationsScript-onlyEntirely contained in manifest fileHigher performanceCannot delete or modify existing SIP headersCan’t reference external resources (except text file)Best for simple routing tasks
ManagedGenerally deployed as a Windows serviceNeed to be careful of performance impactCan modify, add, remove headers, modify message bodyCan reference external resources (e.g., database)Best for modifying messages, complex routing, anything that requires external data
Manifest fileText file with .am extension deployed on Front EndContains XML document with application attributes and script
Manifest file<?xml version="1.0"?><r:applicationManifestr:appUri="http://www.microsoft.com/LC/SDK/Samples/ContentModification"xmlns:r="http://schemas.microsoft.com/lcs/2006/05">
<r:requestFilter methodNames="INVITE,MESSAGE" strictRoute="true" registrarGenerated="false" domainSupported="false"/><r:responseFilter reasonCodes="NONE"/>
<r:scriptOnly/>
<r:splScript>…
Manifest file<?xml version="1.0"?><r:applicationManifestr:appUri="http://www.microsoft.com/LC/SDK/Samples/ContentModification"xmlns:r="http://schemas.microsoft.com/lcs/2006/05">
<r:requestFilter methodNames="INVITE,MESSAGE" strictRoute="true" registrarGenerated="false" domainSupported="false"/><r:responseFilter reasonCodes="NONE"/>
<r:scriptOnly/>
<r:splScript>…
Manifest file<?xml version="1.0"?><r:applicationManifestr:appUri="http://www.microsoft.com/LC/SDK/Samples/ContentModification"xmlns:r="http://schemas.microsoft.com/lcs/2006/05">
<r:requestFilter methodNames="INVITE,MESSAGE" strictRoute="true" registrarGenerated="false" domainSupported="false"/><r:responseFilter reasonCodes="NONE"/>
<r:scriptOnly/>
<r:splScript>…
Manifest file<requestFilter>Determines which SIP requests get handled by the scriptCan filter by SIP methodSupported domain flagStrict route flag
<responseFilter>Determines which SIP responses get handled by the scriptCan filter by SIP response code
<scriptOnly>Included if there is no managed code components
Manifest file<?xml version="1.0"?><r:applicationManifestr:appUri="http://www.microsoft.com/LC/SDK/Samples/ContentModification"xmlns:r="http://schemas.microsoft.com/lcs/2006/05">
<r:requestFilter methodNames="INVITE,MESSAGE" strictRoute="true" registrarGenerated="false" domainSupported="false"/><r:responseFilter reasonCodes="NONE"/>
<r:scriptOnly/>
<r:splScript>…
Manifest file<?xml version="1.0"?><r:applicationManifestr:appUri="http://www.microsoft.com/LC/SDK/Samples/ContentModification"xmlns:r="http://schemas.microsoft.com/lcs/2006/05">
<r:requestFilter methodNames="INVITE,MESSAGE" strictRoute="true" registrarGenerated="false" domainSupported="false"/><r:responseFilter reasonCodes="NONE"/>
<r:scriptOnly/>
<r:splScript>…
SPL scriptSPL = SIP Processing LanguageAlso known as MSPLC#-like syntax with limited set of functions, preset variablesCan access the request or response data and perform simple routing functions
SPL scriptProxyRequestSend a request alongLeave parameter blank to send to original destinationInclude a parameter to send to a specific physical location
ProxyResponseSend a response along
BeginFork/Fork/EndForkSend a request to multiple locationsOnly one of the receiving endpoints needs to respond
RespondSend a response to the request without proxying it anywhereCan be used to block or forward requests
SPL scriptLog("Debug", false, "");Log("Debug", false, "Entering ContentModification.am");
index = IndexOfString(sipRequest.Content, "echo");
if (index == -1) { /* * Not found; no-op */}else{ sipRequest.Content = Concatenate(sipRequest.Content, " (echo.)"); Log("Debug", false, " Message body matched substring; modified content");}
ProxyRequest("");
SPL scriptLog("Debug", false, "");Log("Debug", false, "Entering ContentModification.am");
index = IndexOfString(sipRequest.Content, "echo");
if (index == -1) { /* * Not found; no-op */}else{ sipRequest.Content = Concatenate(sipRequest.Content, " (echo.)"); Log("Debug", false, " Message body matched substring; modified content");}
ProxyRequest("");
SPL scriptLog("Debug", false, "");Log("Debug", false, "Entering ContentModification.am");
index = IndexOfString(sipRequest.Content, "echo");
if (index == -1) { /* * Not found; no-op */}else{ sipRequest.Content = Concatenate(sipRequest.Content, " (echo.)"); Log("Debug", false, " Message body matched substring; modified content");}
ProxyRequest("");
SPL scriptLog("Debug", false, "");Log("Debug", false, "Entering ContentModification.am");
index = IndexOfString(sipRequest.Content, "echo");
if (index == -1) { /* * Not found; no-op */}else{ sipRequest.Content = Concatenate(sipRequest.Content, " (echo.)"); Log("Debug", false, " Message body matched substring; modified content");}
ProxyRequest("sip:[email protected];gruu;opaque=srvr:presencetester:KE_GakuhUl-NoJitcGMskwAA");
SIP Application APIA.k.a. Managed SPL.NET API for handling SIP messages en route through the Front End or EdgeSuperset of the capabilities of SPLCan be slower because it’s a managed code APIMust be used in conjunction with an SPL script
SIP Application API – SPL methodsDispatchSend a message to managed code for an SPL script for further handlingCan specify managed code method name and extra parameters
DispatchNotificationCall a method in managed code with message info, but continue routing the messageGood for passing data to managed code for processing without impacting performance
Dispatching to managed codeif (sipRequest.StandardMethod == StandardMethod.Invite){
if (GetParameterValue(sipRequest.To, "tag") != null){
return;}
queryUri = RequestTarget.Uri;targetAOR = QueryAddressOfRecord(queryUri);
fromUserUri = GetUri(sipRequest.From); fromUserAOR = QueryAddressOfRecord(fromUserUri);
Dispatch("RequestInviteHandler", targetAOR, fromUserAOR );}
Dispatching to managed codeif (sipRequest.StandardMethod == StandardMethod.Invite){
if (GetParameterValue(sipRequest.To, "tag") != null){
return;}
queryUri = RequestTarget.Uri;targetAOR = QueryAddressOfRecord(queryUri);
fromUserUri = GetUri(sipRequest.From); fromUserAOR = QueryAddressOfRecord(fromUserUri);
Dispatch("RequestInviteHandler", targetAOR, fromUserAOR );}
Managed SPLpublic void RequestInviteHandler(object sender, RequestReceivedEventArgs eventArgs){ ServerTransaction srvTran = eventArgs.ServerTransaction; Request request = eventArgs.Request; … string targetAor = eventArgs.Parameters[0] as string; string sourceAor = eventArgs.Parameters[1] as string;
if (IsCrossingEthicalWall(sourceAor, targetAor)) { Console.Out.WriteLine("Rejecting Request."); Response resp = request.CreateResponse(403); srvTran.SendResponse(resp); return; }…
Managed SPLpublic void RequestInviteHandler(object sender, RequestReceivedEventArgs eventArgs){ ServerTransaction srvTran = eventArgs.ServerTransaction; Request request = eventArgs.Request; … string targetAor = eventArgs.Parameters[0] as string; string sourceAor = eventArgs.Parameters[1] as string;
if (IsCrossingEthicalWall(sourceAor, targetAor)) { Console.Out.WriteLine("Rejecting Request."); Response resp = request.CreateResponse(403); srvTran.SendResponse(resp); return; }…
Managed SPLpublic void RequestInviteHandler(object sender, RequestReceivedEventArgs eventArgs){ ServerTransaction srvTran = eventArgs.ServerTransaction; Request request = eventArgs.Request; … string targetAor = eventArgs.Parameters[0] as string; string sourceAor = eventArgs.Parameters[1] as string;
if (IsCrossingEthicalWall(sourceAor, targetAor)) { Console.Out.WriteLine("Rejecting Request."); Response resp = request.CreateResponse(403); srvTran.SendResponse(resp); return; }…
Lync Management ShellNeed to set up and enable server application in Lync environment using Management Shell*-CsServerApplication
*-CsServerApplicationIdentityIndicates pool the application is on, and application name
UriMust match URI in the manifest file
ScriptNameFor script-only applications, the path to the manifest file
PriorityOrder in which applications get to handle messages – lower numbers get higher priority
CriticalIf true, the Front End service won’t start if this application can’t be loaded
TroubleshootingScript-onlyCheck script path in Management ShellMake sure application is enabledMake sure URI matches between Management Shell and manifest fileCheck event log for errors from LS Script-Only ApplicationsMake sure <scriptOnly/> element is presentUse APILogger.exe
ManagedMake sure application is running under the right service accountCheck service account group assignments and permissionsMake sure application is enabledMake sure manifest file is in the right directoryLog to the console or the event log in your codeCheck event log for errors loading your applicationCollect RTCSPL logs with Lync Server Logging Tool
Demo: Message filtering
Vijay Manian
Demo: Redirect
Vijay Manian
Demo: Modifying content
Vijay Manian
Resources
MSDN documentationhttp://msdn.microsoft.com/en-us/library/office/dn454964.aspx
SDK downloadhttp://www.microsoft.com/en-ca/download/details.aspx?id=35456
Q&A
Thank you
Monday, February 17th
Exhibit Hall Hours 6:00pm – 8:00pm
6:00pm – 8:00pm Welcome Reception
Tuesday, February 18th
Exhibit Hall Hours 8:00am – 9:00am (Breakfast), 10:30am – 5:00pm
8:00am – 9:00am Breakfast (Exhibit Hall) 9:00am –10:30am General Session10:30am – 5:00pm Expo Hall Hours11:00am – 12:15pm Sessions & Hands-on Labs12:15pm – 2:00pm Lunch2:00pm – 5:00pm Sessions & Hands-on Labs5:00pm – 7:00pm Ask the Experts
Wednesday, February 19th
Exhibit Hall Hours 10:30am – 4:30pm
7:30am – 8:30am Breakfast8:30am – 11:30am Sessions & Hands-on Labs10:30am – 4:30pm Expo Hall Hours11:30am – 1:00pm Lunch1:00pm – 5:45pm Sessions & Hands-on Labs6:30pm – 9:30pm Attendee Party
Thursday, February 20th
Exhibit Hall Hours 9:00am – 12:00pm
8:00am – 9:00am Breakfast9:00am – 12:00pm Expo Hall Hours9:00am – 12:15pm Sessions & Hands-on Labs12:15pm – 1:30pm Lunch and Departures
Ask the ExpertsLocation: Meal Hall located on Level 1 in Pinyon Ballroom 4-8 Tuesday, February 18
TABLE TOPICS:Best Practices, Business Value, Clients & Mobility, Lync Meetings and Video, Lync Online, Networking, Platform, Server & Manageability, Voice, Lync Feedback Sessions
Meet face-to-face with the foremost experts in the Lync field and ask them the questions that have you stumped.
Location: Breakout rooms located on Level 1 5:00pm-7:00pm
GROUPS INCLUDE:Manageability – Pinyon 2Meetings & Web Experiences – Bluethorn 4-6Mobility – Bluethorn 7-9Presence & Chat – Pinyon 1Voice & Video – Bluethorn 1-3
Come participate in targeted Feedback Sessions to hear about the high-priority feature asks and help us improve the next release!
Lync Feedback
These sessions are meant to be informational, providing an understanding of the workload and conversational, to discuss your user scenarios and desired improvements.
Birds of a FeatherBirds of a Feather flock together! Join daily breakfast discussions of relevant topics by sitting in the separately designated areas of the Meal Hall. Seating will be sorted in a different way for each Birds of a Feather breakfast:Wednesday, February 19:Where are you from? Asia/Pacific, Eastern & Central Europe, Latin America, Middle East & Africa, US (West, Central & East) and Canada, Western Europe
Thursday, February 20:What is your interest?Best Practices, Business Value, Clients & Mobility, Lync Meetings and Video, Lync Online, Networking, Platform, Server & Manageability, Voice
#LyncConf14
/msftLYNC
/microsoft-lync
/MSFTLync
Lync Launch PadYou’ve launched Lync. Now Launch this.MS Pavilion – Expo Hall
Fill out evaluations to win prizesFill out evaluations on MyLync or MyLync Mobile.Prizes awarded daily.
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.