On Mon, Sep 8, 2008 at 3:59 PM, Iñaki Baz Castillo <[EMAIL PROTECTED]> wrote:
> 2008/9/8, Victor Pascual Ávila <[EMAIL PROTECTED]>:
>> On Mon, Sep 8, 2008 at 3:23 PM, Iñaki Baz Castillo <[EMAIL PROTECTED]> wrote:
>>  > Anyway, it seems that SCTP offers some capabilities (IP redundancy in
>>  > a single connection) that SIP can't not advantage of them. Am I wrong?
>>  > This is: the transport layer knows about associations between IP:port
>>  > and connections, but just it, it doesn't know about complex SCTP
>>  > connections involving various IP's.
>>
>>
>> Actually, in SCTP, an endpoint is represented as the tuple {IP1, IP2, IPn: 
>> port}
>>
>>  IMO, the received parameter should only include the PRIMARY_PATH
>>  address and the SCTP failover should be used transparently.
>
> Well, this could be easily solved if the SCTP socket used by the SIP
> stack returns the PRIMARY_PATH as the IP:port. Then the SIP stack
> would work just with that IP and the SCTP layer would handle the
> connection and it's redundant addresses transparentely.
> But for that, the SCTP socket in the SIP stack programming language
> must return the PRIMARY_PATH even if the real used IP is different.
>
> Is it feasible? I don't know SCTP protocol, neither a SCTP API in C or
> other language, but if you have an object "SCTPSocket" with the
> following behaviour then it should work ok:
>
> - SCTP connection:
>  - local IP 1: 1.1.1.1  (PRIMARY)
>  - local IP 2: 1.1.1.2
>  - local port: 6666
>  - remote IP 1: 9.9.9.1  (PRIMARY)
>  - remote IP 2: 9.9.9.2
>  - remote port: 8765
>
> - You receive a request in that connection in the address 1.1.1.2.
>
> - You get a SCTP socket.
>
> - my_sctp_socket.get_ip
>  => 1.1.1.1
>
>
> If the behaviour is this (getting the PRIMARY address *ALWAYS*) then I
> think SIP should work perfectly over SCTP.

Do you mean including the PRIMARY_PATH address in the ";received" even
though the source address is a different one? This is actually
possible (See Sockets API Extensions for Stream Control Transmission
Protocol (SCTP) draft-ietf-tsvwg-sctpsocket-17.txt).

I was considering this workaround but RFC3261 is still mandating: this
(";received") parameter MUST contain *the source address from which
the packet was received*.

IMO, if RFC3261 is respected:
- one-to-one style socket shall be used
- when using sendmsg(), a preferred peer address shall be indicated if
the sender wishes to discourage the stack from sending the message to
the primary address of the receiver.

Please, correct me if I'm wrong.

Cheers,
-- 
Victor Pascual Ávila

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to