siplynclync-2010lync-server-2010

LYNC - SIP "413 - Request entity too large" error to SUBSCRIBE requests


I'm currently trying to federate two Lync domains with one custom SIP proxy in the middle. The problem is that the Lync server will reply "413 - Entity too large" to subscribe requests (msrtc-adrl-categorylist) coming from the other Lync domain after passing through the proxy.

However, when I sent a similar message with SIPp, a SIP emulator, the subscribe is accepted even though it went through the SIP proxy.

The two messages are much alike. The proxy adds a record route and appends an ID at the end of the From tag. It doesn't get its hands on the body.

The difference of content-length is because SIPp adds a CRLF at the end of the body, which Lync doesn't.

I cannot see anything wrong with the request. The following messages were logged on the Lync Edge of the destination domain.

LYNC SUBSCRIBE - REJECTED

Start-Line: SUBSCRIBE sip:ragg@lync2.com SIP/2.0
From: <sip:mdef@lync1.com>;epid=75bdd22553;tag=vl57cpy2rb72lu15i7awk22h0100003f1410
To: <sip:ragg@lync2.com>
CSeq: 1 SUBSCRIBE
Call-ID: 3ad1662aa2d84bc5a7de15f5d2ecd0be
Record-Route: <sip:smf1.testucfed.com:5061;lr>
Max-Forwards: 68
Via: SIP/2.0/TLS smf1.testucfed.com:5061;branch=z9hG4bKfspbWpOjnrsr3kELP8S9
Via: SIP/2.0/TCP 10.0.0.6:5060;branch=z9hG4bKfspbkK8M7FQrQmqN99a9
User-Agent: UCCAPI/4.0.7577.4103 OC/4.0.7577.4109 (Microsoft Lync 2010)
Event: presence
Accept: application/msrtc-event-categories+xml, application/xpidf+xml,     text/xml+msrtc.pidf, application/pidf+xml, application/rlmi+xml, multipart/related
Supported: com.microsoft.autoextend
Supported: ms-piggyback-first-notify
ms-asserted-verification-level: ms-source-verified-user=verified
Content-Type: application/msrtc-adrl-categorylist+xml
Content-Length: 464
Contact: <sip:smf1.testucfed.com:5061>
Message-Body: 
<batchSub xmlns="http://schemas.microsoft.com/2006/01/sip/batch-subscribe"                uri="sip:mdef@lync1.com" name="">
    <action name="subscribe" id="104999392">
        <adhocList>    
            <resource uri="sip:ragg@lync2.com"/>
        </adhocList>
        <categoryList xmlns="http://schemas.microsoft.com/2006/09/sip/categorylist">
            <category name="state"/>
            <category name="note"/>
            <category name="services"/>
            <category name="contactCard"/>
            <category name="calendarData"/>
        </categoryList>
    </action>
</batchSub>

SIPp SUBSCRIBE - ACCEPTED

Start-Line: SUBSCRIBE sip:ragg@lync2.com SIP/2.0
From: <sip:mdef@lync1.com>;epid=75bdd22553;tag=1iy5s1s4humjf184oeqyeitztd0100003f1410
To: <sip:ragg@lync2.com>
CSeq: 1 SUBSCRIBE
Call-ID: 1-32615@212.166.45.124
Record-Route: <sip:smf1.testucfed.com:5061;lr>
Max-Forwards: 68
Via: SIP/2.0/TLS smf1.testucfed.com:5061;branch=z9hG4bKfspbIP0PgNyO4vZelNvG
Via: SIP/2.0/TCP 10.0.0.6:5060;branch=z9hG4bKfspbWS366kCidcbxJt9m
Event: presence
Accept: application/msrtc-event-categories+xml, application/xpidf+xml,     text/xml+msrtc.pidf, application/pidf+xml, application/rlmi+xml, multipart/related
User-Agent: UCCAPI/4.0.7577.4103 OC/4.0.7577.4109 (Microsoft Lync 2010)
Supported: com.microsoft.autoextend
Supported: ms-piggyback-first-notify
ms-asserted-verification-level: ms-source-verified-user=verified
Content-Type: application/msrtc-adrl-categorylist+xml
Content-Length: 466
Contact: <sip:smf1.testucfed.com:5061>
Message-Body: 
<batchSub xmlns="http://schemas.microsoft.com/2006/01/sip/batch-subscribe"     uri="sip:mdef@lync1.com" name="">
    <action name="subscribe" id="104999648">
        <adhocList>
            <resource uri="sip:ragg@lync2.com"/>
        </adhocList>
        <categoryList xmlns="http://schemas.microsoft.com/2006/09/sip/categorylist">
            <category name="state"/>
            <category name="note"/>
            <category name="services"/>
            <category name="contactCard"/>
            <category name="calendarData"/>
        </categoryList>
    </action>
</batchSub>

RESPONSE

Start-Line: SIP/2.0 413 Request entity too large
From: <sip:mdef@lync1.com>;epid=75bdd22553;tag=vl57cpy2rb72lu15i7awk22h0100003f1410
To: <sip:ragg@lync2.com>;tag=5F72F2201902C33E22FE6C4063EC56AD
CSeq: 1 SUBSCRIBE
Call-ID: 3ad1662aa2d84bc5a7de15f5d2ecd0be
Via: SIP/2.0/TLS     10.0.0.7:38020;branch=z9hG4bKDA21D3D8.2E84E1112774D915;branched=FALSE;ms-received-    port=38020;ms-received-cid=400
Via: SIP/2.0/TLS     smf1.testucfed.com:5061;branch=z9hG4bKfspbWpOjnrsr3kELP8S9;received=212.166.45.124;ms-received-port=51456;ms-received-cid=A3300
Via: SIP/2.0/TCP 10.0.0.6:5060;branch=z9hG4bKfspbkK8M7FQrQmqN99a9
ms-diagnostics: 4008;reason="Input data too large - One of the paramaters to the sproc     exceeds limit";source="ARIW002.lync2.com"
Server: RTC/4.0
Content-Length: 0
Message-Body: –

Does someone know what can trigger this error? The error message is not really of great help here ...


Solution

  • I finally managed to spot the problem.

    The Lync server store the "Dialog ID" which is the "Call-ID" + "From tag" + "To tag". By appending some extra data at the end of the "From tag", the size of the "Dialog ID" exceeded its limit size.