But that's not the only use-case for Contact - the Contact URI of Alice can be used at any time later for an out-of-dialog request to Alice, and at that point it suddenly needs a full sips path to Alice. For example in a REFER case.
-hadriel
On Sep 15, 2011, at 10:25 AM, Iñaki Baz Castillo wrote:
> 2011/9/15 Olle E. Johansson <***@edvina.net>:
>> This means thet the request URI of the ACK will be using SIPS, and then section 8.1.1.8 comes into play
>> and requires the other side to also use a SIPS uri in their contact.
>>
>> In this case, both UAs need a TLS certificate.
>
> No, that's incorrect. I show two call flows in which TLS is just used
> by one of the enpoints.
>
>
>
> CASE 1)
> - Alice uses TLS.
> - Bob uses UDP.
> - Proxy/registrar does loose-routing.
> - Alice calls Bob, Bob answers and later Bob hangs up.
>
>
> F1 INVITE Alice -> SIP Proxy (transport TLS)
>
> INVITE sip:***@atlanta.com SIP/2.0
> Via: SIP/2.0/TLS 93.12.40.105:20565;branch=z9hG4bK56sdasks
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
> Max-Forwards: 70
> Contact: <sips:***@93.12.40.105:20565;transport=tcp>
> Content-Type: application/sdp
>
>
> F2 100 Trying SIP Proxy -> Alice (transport TLS)
>
> SIP/2.0 100 Trying
> Via: SIP/2.0/TLS 93.12.40.105:20565;branch=z9hG4bK56sdasks
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
>
>
> F3 INVITE SIP Proxy -> Carol (transport UDP)
>
> INVITE sip:***@77.123.45.23:5060 SIP/2.0
> Via: SIP/2.0/UDP 100.100.100.100;branch=z9hG4bKhjhjqw32c
> Via: SIP/2.0/TLS 93.12.40.105:20565;branch=z9hG4bK56sdasks
> Record-Route: <sip:100.100.100.100;transport=udp>,
> <sips:100.100.100.100;transport=tcp>
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
> Max-Forwards: 69
> Contact: <sips:***@93.12.40.105:20565;transport=tcp>
> Content-Type: application/sdp
>
>
> F4 200 OK Carol -> SIP Proxy (transport UDP)
>
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 100.100.100.100;branch=z9hG4bKhjhjqw32c
> Via: SIP/2.0/TLS 93.12.40.105:20565;branch=z9hG4bK56sdasks
> Record-Route: <sip:100.100.100.100;transport=udp>,
> <sips:100.100.100.100;transport=tcp>
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com;tag=bmqkjhsd
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
> Max-Forwards: 69
> Contact: <sip:***@77.123.45.23:5060;transport=udp>
> Content-Type: application/sdp
>
>
> F5 200 OK SIP Proxy -> Alice (transport TLS)
>
> SIP/2.0 200 OK
> Via: SIP/2.0/TLS 93.12.40.105:20565;branch=z9hG4bK56sdasks
> Record-Route: <sip:100.100.100.100;transport=udp>,
> <sips:100.100.100.100;transport=tcp>
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com;tag=bmqkjhsd
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
> Max-Forwards: 69
> Contact: <sip:***@77.123.45.23:5060;transport=udp>
> Content-Type: application/sdp
>
>
> F6 ACK Alice -> SIP Proxy (transport TLS)
>
> ACK sip:***@77.123.45.23:5060;transport=udp SIP/2.0
> Via: SIP/2.0/TLS 93.12.40.105:20565;branch=z9hG4bKhgqqp090
> Route: <sips:100.100.100.100;transport=tcp>,
> <sip:100.100.100.100;transport=udp>
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com;tag=bmqkjhsd
> Call-ID: asidkj3ss
> CSeq: 1 ACK
> Max-Forwards: 70
>
>
> F7 ACK SIP Proxy -> Carol (transport UDP)
>
> ACK sip:***@77.123.45.23:5060;transport=udp SIP/2.0
> Via: SIP/2.0/UDP 100.100.100.100;branch=z9hG4bKhwpoc80zzx
> Via: SIP/2.0/TLS 93.12.40.105:20565;branch=z9hG4bKhgqqp090
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com;tag=bmqkjhsd
> Call-ID: asidkj3ss
> CSeq: 1 ACK
> Max-Forwards: 69
>
>
> F8 BYE Carol -> SIP Proxy (transport UDP)
>
> BYE sips:***@93.12.40.105:20565;transport=tcp SIP/2.0
> Via: SIP/2.0/UDP 77.123.45.23;branch=z9hG4bKbiuiansd001
> Route: <sip:100.100.100.100;transport=udp>,
> <sips:100.100.100.100;transport=tcp>
> From: sip:***@atlanta.com;tag=bmqkjhsd
> To: sip:***@atlanta.com;tag=asdyka899
> Call-ID: asidkj3ss
> CSeq: 1201 BYE
> Max-Forwards: 70
>
>
> F9 BYE SIP Proxy -> Alice (transport TLS)
>
> BYE sips:***@93.12.40.105:20565;transport=tcp SIP/2.0
> Via: SIP/2.0/TLS 100.100.100.100;branch=z9hG4bKmma01m3r5
> Via: SIP/2.0/UDP 77.123.45.23;branch=z9hG4bKbiuiansd001
> From: sip:***@atlanta.com;tag=bmqkjhsd
> To: sip:***@atlanta.com;tag=asdyka899
> Call-ID: asidkj3ss
> CSeq: 1201 BYE
> Max-Forwards: 69
>
>
> F10 200 OK Alice -> SIP Proxy (transport TLS)
>
> SIP/2.0 200 OK
> Via: SIP/2.0/TLS 100.100.100.100;branch=z9hG4bKmma01m3r5
> Via: SIP/2.0/UDP 77.123.45.23;branch=z9hG4bKbiuiansd001
> From: sip:***@atlanta.com;tag=bmqkjhsd
> To: sip:***@atlanta.com;tag=asdyka899
> Call-ID: asidkj3ss
> CSeq: 1201 BYE
>
>
> F11 200 OK SIP Proxy -> Carol (transport UDP)
>
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 77.123.45.23;branch=z9hG4bKbiuiansd001
> From: sip:***@atlanta.com;tag=bmqkjhsd
> To: sip:***@atlanta.com;tag=asdyka899
> Call-ID: asidkj3ss
> CSeq: 1201 BYE
>
>
>
>
>
>
>
> CASE 2)
> - Alice uses TLS.
> - Bob uses UDP.
> - Proxy/registrar does loose-routing.
> - Bob calls Alice, Alice answers and later Alice hangs up.
>
>
> F1 INVITE Bob -> SIP Proxy (transport UDP)
>
> INVITE sip:***@atlanta.com SIP/2.0
> Via: SIP/2.0/UDP 77.123.45.23:5060;branch=z9hG4bK56sdasks
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
> Max-Forwards: 70
> Contact: <sip:***@77.123.45.23:5060;transport=udp>
> Content-Type: application/sdp
>
>
> F2 100 Trying SIP Proxy -> Bob (transport TLS)
>
> SIP/2.0 100 Trying
> Via: SIP/2.0/UDP 77.123.45.23:5060;branch=z9hG4bK56sdasks
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
>
>
> F3 INVITE SIP Proxy -> Alice (transport TLS)
>
> INVITE sips:***@93.12.40.105:20565 SIP/2.0
> Via: SIP/2.0/TLS 100.100.100.100;branch=z9hG4bKhjhjqw32c
> Via: SIP/2.0/UDP 77.123.45.23:5060;branch=z9hG4bK56sdasks
> Record-Route: <sips:100.100.100.100;transport=tcp>,
> <sip:100.100.100.100;transport=udp>
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
> Max-Forwards: 69
> Contact: <sip:***@77.123.45.23:5060;transport=udp>
> Content-Type: application/sdp
>
>
> F4 200 OK Alice -> SIP Proxy (transport TLS)
>
> SIP/2.0 200 OK
> Via: SIP/2.0/TLS 100.100.100.100;branch=z9hG4bKhjhjqw32c
> Via: SIP/2.0/UDP 77.123.45.23:5060;branch=z9hG4bK56sdasks
> Record-Route: <sips:100.100.100.100;transport=tcp>,
> <sip:100.100.100.100;transport=udp>
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com;tag=bmqkjhsd
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
> Max-Forwards: 69
> Contact: <sips:***@93.12.40.105:20565;transport=tcp>
> Content-Type: application/sdp
>
>
> F5 200 OK SIP Proxy -> Bob (transport UDP)
>
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 77.123.45.23:5060;branch=z9hG4bK56sdasks
> Record-Route: <sips:100.100.100.100;transport=tcp>,
> <sip:100.100.100.100;transport=udp>
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com;tag=bmqkjhsd
> Call-ID: asidkj3ss
> CSeq: 1 INVITE
> Max-Forwards: 69
> Contact: <sips:***@93.12.40.105:20565;transport=tcp>
> Content-Type: application/sdp
>
>
> F6 ACK Bob -> SIP Proxy (transport UDP)
>
> ACK sips:***@93.12.40.105:20565;transport=tcp SIP/2.0
> Via: SIP/2.0/TLS 77.123.45.23:5060;branch=z9hG4bKhgqqp090
> Route: <sip:100.100.100.100;transport=udp>,
> <sips:100.100.100.100;transport=tcp>
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com;tag=bmqkjhsd
> Call-ID: asidkj3ss
> CSeq: 1 ACK
> Max-Forwards: 70
>
>
> F7 ACK SIP Proxy -> Alice (transport TLS)
>
> ACK sips:***@93.12.40.105:20565;transport=tcp SIP/2.0
> Via: SIP/2.0/TLS 100.100.100.100;branch=z9hG4bKhwpoc80zzx
> Via: SIP/2.0/UDP 77.123.45.23:5060;branch=z9hG4bKhgqqp090
> From: sip:***@atlanta.com;tag=asdyka899
> To: sip:***@atlanta.com;tag=bmqkjhsd
> Call-ID: asidkj3ss
> CSeq: 1 ACK
> Max-Forwards: 69
>
>
> F8 BYE Alice -> SIP Proxy (transport TLS)
>
> BYE sip:***@77.123.45.23:5060;transport=udp SIP/2.0
> Via: SIP/2.0/TLS 77.123.45.23;branch=z9hG4bKbiuiansd001
> Route: <sips:100.100.100.100;transport=tcp>,
> <sip:100.100.100.100;transport=udp>
> From: sip:***@atlanta.com;tag=bmqkjhsd
> To: sip:***@atlanta.com;tag=asdyka899
> Call-ID: asidkj3ss
> CSeq: 1201 BYE
> Max-Forwards: 70
>
>
> F9 BYE SIP Proxy -> Bob (transport UDP)
>
> BYE sip:***@77.123.45.23:5060;transport=udp SIP/2.0
> Via: SIP/2.0/UDP 100.100.100.100;branch=z9hG4bKmma01m3r5
> Via: SIP/2.0/TLS 77.123.45.23;branch=z9hG4bKbiuiansd001
> From: sip:***@atlanta.com;tag=bmqkjhsd
> To: sip:***@atlanta.com;tag=asdyka899
> Call-ID: asidkj3ss
> CSeq: 1201 BYE
> Max-Forwards: 69
>
>
> F10 200 OK Bob -> SIP Proxy (transport UDP)
>
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 100.100.100.100;branch=z9hG4bKmma01m3r5
> Via: SIP/2.0/TLS 77.123.45.23;branch=z9hG4bKbiuiansd001
> From: sip:***@atlanta.com;tag=bmqkjhsd
> To: sip:***@atlanta.com;tag=asdyka899
> Call-ID: asidkj3ss
> CSeq: 1201 BYE
>
>
> F11 200 OK SIP Proxy -> Alice (transport TLS)
>
> SIP/2.0 200 OK
> Via: SIP/2.0/TLS 77.123.45.23;branch=z9hG4bKbiuiansd001
> From: sip:***@atlanta.com;tag=bmqkjhsd
> To: sip:***@atlanta.com;tag=asdyka899
> Call-ID: asidkj3ss
> CSeq: 1201 BYE
>
>
>
>
> These flows are inspired in real scenarios, so both are real and working flows.
>
>
> --
> Iñaki Baz Castillo
> <***@aliax.net>
> _______________________________________________
> Sip mailing list https://www.ietf.org/mailman/listinfo/sip
> This list is essentially closed and only used for finishing old business.
> Use sip-***@cs.columbia.edu for questions on how to develop a SIP implementation.
> Use ***@ietf.org for new developments on the application of sip.
> Use ***@ietf.org for issues related to maintenance of the core SIP specifications.
_______________________________________________
Sip mailing list https://www.ietf.org/mailman/listinfo/sip
This list is essentially closed and only used for finishing old business.
Use sip-***@cs.columbia.edu for questions on how to develop a SIP implementation.
Use ***@ietf.org for new developments on the application of sip.
Use ***@ietf.org for issues related to maintenance of the core SIP specifications.