<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>We do not have time and resources to address interoperability issues with Session Border Controllers. The Session-match ACM model is broken by design and we do not support it.</div><div><br></div><div>You should ask the SBC manufacturers for supporting and developing this broken connection model.</div><div><br></div><div>Adrian</div><div><br></div><div><div>On Mar 25, 2011, at 9:32 PM, Gaurav Nangla wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<div>
<!-- Converted from text/plain format --><p><font size="2">Hello,<br>
<br>
We tried setting up a MSRP chat session between two blinks(let's call them Blink-1, Blink-2) with a SBC lying in the signalling and media paths.<br>
As far as signalling plane(SBC-SP) is concerned the SBC sbove is in a strict B2BUA mode. In the media plane(SBC-MP) it's acting strictly as a relay (i.e. NAT-PT mode).<br>
<br>
Now, the scenario we've setup is a special one.<br>
It's a [RFC6135] MSRP Alternative Connection Model (ACM) scenario wherein we've ensured that OFFER and ANSWER both contain 'a=setup:active' attribute.<br>
What this means is that the SBC will be receiving SYNs from both the Blinks and handling them using the 'TCP splicing' technique.<br>
It's basically making both the UAs think that they've each initiated and setup a MSRP TCP connection.<br>
<br>
The partial call flow below should clear up things a little more:<br>
<br>
| 10.201.1.152(Blink-1)                 | 10.201.1.99(Blink-2)                  |<br>
|                   |10.204.1.28(SBC-SP)|                   |10.207.1.100(SBC-MP)<br>
|         Request: INVITE sip           |                   |                   |SIP/SDP: Request: INVITE <a href="sip:12345@10.204.1.28">sip:12345@10.204.1.28</a>, with session description<br>
|(5060)------------->(5060)             |                   |                   |<br>
|         Status: 100 Trying            |                   |                   |SIP: Status: 100 Trying<br>
|(5060)<-------------(5060)             |                   |                   |<br>
|                   |         Request: INVITE sip           |                   |SIP/SDP: Request: INVITE <a href="sip:12345@10.201.1.99">sip:12345@10.201.1.99</a>, with session description<br>
|                   |(5060)------------->(5060)             |                   |<br>
|                   |         Status: 100 Trying            |                   |SIP: Status: 100 Trying<br>
|                   |(5060)<-------------(5060)             |                   |<br>
|                   |         Status: 180 Ringing           |                   |SIP: Status: 180 Ringing<br>
|                   |(5060)<-------------(5060)             |                   |<br>
|         Status: 180 Ringing           |                   |                   |SIP: Status: 180 Ringing<br>
|(5060)<-------------(5060)             |                   |                   |<br>
|                   |         Status: 200 OK                |                   |SIP/SDP: Status: 200 OK, with session description<br>
|                   |(5060)<-------------(5060)             |                   |<br>
|         Status: 200 OK                |                   |                   |SIP/SDP: Status: 200 OK, with session description<br>
|(5060)<-------------(5060)             |                   |                   |<br>
|         Request: ACK sip              |                   |                   |SIP: Request: ACK <a href="sip:12345@10.204.1.28:5060">sip:12345@10.204.1.28:5060</a><br>
|(5060)------------->(5060)             |                   |                   |<br>
|                   |         Request: ACK sip              |                   |SIP: Request: ACK <a href="sip:12345@10.201.1.99">sip:12345@10.201.1.99</a><br>
|                   |(5060)------------->(5060)             |                   |<br>
|         53502 > 15002 [SYN]           |                   |                   |TCP: 53502 > 15002 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=3 TSV=856688003 TSER=0<br>
|(53502)---------------------------------------------------->(15002)            |<br>
|                   |                   |         49838 > 15000 [SYN]           |TCP: 49838 > 15000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=3 TSV=971262787 TSER=0<br>
|                   |                   |(49838)------------>(15000)            |<br>
|         15002 > 53502 [SYN, ACK]      |                   |                   |TCP: 15002 > 53502 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=3 TSV=856688003 TSER=0<br>
|(53502)<----------------------------------------------------(15002)            |<br>
|                   |                   |         15000 > 49838 [SYN, ACK]      |TCP: 15000 > 49838 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=3 TSV=971262787 TSER=0<br>
|                   |                   |(49838)<------------(15000)            |<br>
|                   |                   |         49838 > 15000 [ACK]           |TCP: 49838 > 15000 [ACK] Seq=1 Ack=1 Win=524280 Len=0 TSV=971262787 TSER=971262787<br>
|                   |                   |(49838)------------>(15000)            |<br>
|         [TCP Dup ACK]                 |                   |                   |TCP: [TCP Dup ACK 921#1] 15002 > 53502 [ACK] Seq=1 Ack=1 Win=524280 Len=0 TSV=971262787 TSER=971262787<br>
|(53502)<----------------------------------------------------(15002)            |<br>
|         53502 > 15002 [ACK]           |                   |                   |TCP: 53502 > 15002 [ACK] Seq=1 Ack=1 Win=524280 Len=0 TSV=856688003 TSER=856688003<br>
|(53502)---------------------------------------------------->(15002)            |<br>
|                   |                   |         [TCP Dup ACK]                 |TCP: [TCP Dup ACK 922#1] 15000 > 49838 [ACK] Seq=1 Ack=1 Win=524280 Len=0 TSV=856688003 TSER=856688003<br>
|                   |                   |(49838)<------------(15000)            |<br>
|         Request: SEND Trans           |                   |                   |MSRP: Request: SEND Transaction ID: 745f0cb1fb640e52<br>
|(53502)---------------------------------------------------->(15002)            |<br>
|                   |                   |         Request: SEND Trans           |MSRP: Request: SEND Transaction ID: 745f0cb1fb640e52<br>
|                   |                   |(49838)<------------(15000)            |<br>
|                   |                   |         [TCP Dup ACK]                 |TCP: [TCP Dup ACK 923#1] 49838 > 15000 [ACK] Seq=1 Ack=1 Win=524280 Len=0 TSV=971262787 TSER=971262787<br>
|                   |                   |(49838)------------>(15000)            |<br>
|         [TCP Dup ACK 921#2]           |                   |                   |TCP: [TCP Dup ACK 921#2] 15002 > 53502 [ACK] Seq=1 Ack=1 Win=524280 Len=0 TSV=971262787 TSER=971262787<br>
|(53502)<----------------------------------------------------(15002)            |<br>
|                   |                   |         Request: SEND Trans           |MSRP: Request: SEND Transaction ID: 6ed1199a610a6a7d<br>
|                   |                   |(49838)------------>(15000)            |<br>
|         Request: SEND Trans           |                   |                   |MSRP: Request: SEND Transaction ID: 6ed1199a610a6a7d<br>
|(53502)<----------------------------------------------------(15002)            |<br>
|         53502 > 15002 [ACK]           |                   |                   |TCP: 53502 > 15002 [ACK] Seq=227 Ack=226 Win=524280 Len=0 TSV=856688003 TSER=971262787<br>
|(53502)---------------------------------------------------->(15002)            |<br>
|                   |                   |         15000 > 49838 [ACK]           |TCP: 15000 > 49838 [ACK] Seq=227 Ack=226 Win=524280 Len=0 TSV=856688003 TSER=971262787<br>
|                   |                   |(49838)<------------(15000)            |<br>
|                   |                   |         [TCP Retransmission           |MSRP: [TCP Retransmission] Request: SEND Transaction ID: 6ed1199a610a6a7d<br>
|                   |                   |(49838)------------>(15000)            |<br>
|         [TCP Retransmission           |                   |                   |MSRP: [TCP Retransmission] Request: SEND Transaction ID: 6ed1199a610a6a7d<br>
|(53502)<----------------------------------------------------(15002)            |<br>
|         [TCP Dup ACK]                 |                   |                   |TCP: [TCP Dup ACK 935#1] 53502 > 15002 [ACK] Seq=227 Ack=226 Win=524280 Len=0 TSV=856688012 TSER=971262796<br>
|(53502)---------------------------------------------------->(15002)            |<br>
|                   |                   |         [TCP Dup ACK]                 |TCP: [TCP Dup ACK 936#1] 15000 > 49838 [ACK] Seq=227 Ack=226 Win=524280 Len=0 TSV=856688012 TSER=971262796<br>
|                   |                   |(49838)<------------(15000)            |<br>
|         [TCP Retransmission           |                   |                   |MSRP: [TCP Retransmission] Request: SEND Transaction ID: 745f0cb1fb640e52<br>
|(53502)---------------------------------------------------->(15002)            |<br>
|                   |                   |         [TCP Retransmission           |MSRP: [TCP Retransmission] Request: SEND Transaction ID: 745f0cb1fb640e52<br>
|                   |                   |(49838)<------------(15000)            |<br>
|                   |                   |         [TCP Dup ACK                  |TCP: [TCP Dup ACK 1027#1] 49838 > 15000 [ACK] Seq=226 Ack=1 Win=524280 Len=0 TSV=971262806 TSER=971262787<br>
|                   |                   |(49838)------------>(15000)            |<br>
|         [TCP Dup ACK                  |                   |                   |TCP: [TCP Dup ACK 1028#1] 15002 > 53502 [ACK] Seq=226 Ack=1 Win=524280 Len=0 TSV=971262806 TSER=971262787<br>
|(53502)<----------------------------------------------------(15002)            |<br>
<br>
<br>
Now with reference to the above, I've got a few questions:<br>
1. The 'SEND Transaction 745f0cb1fb640e52' from Blink-1 receives an incorrect 'Ack=1' from Blink-2 causing its retransmission. What could be the reason for this incorrect ACK from Blink-2?<br>
   (Also note above that we've relayed the final ACKs during the handshake from the Blinks to the other unnecessarily.)<br>
2. Although 'SEND Transaction 6ed1199a610a6a7d' from BLink-2 does receive a correct ACK, the 'SEND' keeps getting retransmitted multiple times for some reason by Blink-2. What could be wrong here?<br>
3. Is it possible that each Blink isn't sending a '200 OK' to the SENDs received because they're not expecting a SEND? i.e. are they only looking to do a SEND?<br>
4. Does Blink support this likely scenario wherein they're both behind NATs and have no option but to use msrp-acm to resolve NAT issues (i.e. have no relays available)?<br>
5. It appears Blink-2 is misbehaving i.e. it's sending a wrong ACK and keeps retransmitting an acknowledged TCP segment over and over again.<br>
   Its logs shows the following error: 'Chat stream failed: MSRPBindSessionTimeout'. Do you agree with this analysis?<br>
<br>
Attached is the wireshark trace file and Blink logs are below. Hope this helps!<br>
<br>
<br>
Gaurav<br>
<br>
<br>
Blink-1 logs:<br>
2011-03-25 15:36:44   [session to 12345] Changing Session state to CONNECTING<br>
2011-03-25 15:36:44   [session to 12345] Connecting Session...<br>
2011-03-25 15:36:44   Outgoing Session request to To: <<a href="sip:12345@10.204.1.28">sip:12345@10.204.1.28</a>> (['chat'])<br>
2011-03-25 15:36:47   [session to 12345] Session will start<br>
2011-03-25 15:36:47   Chat stream established to <a href="msrp://10.207.1.100:15002/8e943e31a8e49a6597f0;tcp">msrp://10.207.1.100:15002/8e943e31a8e49a6597f0;tcp</a> (12345)<br>
2011-03-25 15:36:48   [session to 12345] Changing chat state to CONNECTED<br>
2011-03-25 15:36:48   [session to 12345@10.204.1.28] Changing Session state to CONNECTED<br>
2011-03-25 15:36:48   [session to 12345@10.204.1.28] Session started<br>
2011-03-25 15:36:58   [session to 12345@10.204.1.28] Session will end (remote)<br>
2011-03-25 15:36:58   [session to 12345@10.204.1.28] Changing Session state to FINISHED<br>
2011-03-25 15:36:58   Session <sipsimple.session.Session object at 0x115fa310> ended, disposing...<br>
2011-03-25 15:36:58   [session to 12345@10.204.1.28] Session ended<br>
2011-03-25 15:36:58   Chat stream ended<br>
2011-03-25 15:36:58   [session to 12345@10.204.1.28] Changing chat state to IDLE<br>
<br>
Blink-2 logs:<br>
2011-03-25 15:36:44   Incoming session from From: "56789" <<a href="sip:56789@10.204.1.28">sip:56789@10.204.1.28</a>>;tag=3509990736-382361 with proposed streams chat<br>
2011-03-25 15:36:47   Accepting session to From: "56789" <<a href="sip:56789@10.204.1.28">sip:56789@10.204.1.28</a>>;tag=3509990736-382361<br>
2011-03-25 15:36:47   [session to 56789] Handling incoming chat Stream<br>
2011-03-25 15:36:47   [session to 56789] Changing chat state to INCOMING<br>
2011-03-25 15:36:47   [session to 56789] Session will start<br>
2011-03-25 15:36:57   Chat stream failed: MSRPBindSessionTimeout<br>
2011-03-25 15:36:58   [session to 56789] Changing chat state to FAILED<br>
2011-03-25 15:36:58   [session to 56789] Session will end (local)<br>
2011-03-25 15:36:58   Chat stream ended<br>
2011-03-25 15:36:59   [session to 56789] Changing Session state to FINISHED<br>
2011-03-25 15:36:59   Session <sipsimple.session.Session object at 0x3439e30> ended, disposing...<br>
2011-03-25 15:36:59   [session to 56789] Session ended<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</font>
</p>

</div>
<span><blink_msrp.pcap></span>_______________________________________________<br>Blink mailing list<br><a href="mailto:Blink@lists.ag-projects.com">Blink@lists.ag-projects.com</a><br>http://lists.ag-projects.com/mailman/listinfo/blink<br></blockquote></div><br></body></html>