Re: [reSIProcate-users] Postpone ACKs in proxies
2009/8/18 Adam Roach <adam@xxxxxxxxxxx>:
> Are you using the repro proxy code, or trying to build a proxy from the DUM
> code?
It's a stateful proxy built using DUM. Actually, it's quite
comfortable and except this issue everything works just fine.
> The description you give -- sending an ACK immediately in response to a 200
> -- makes it sound like you're using DUM. Unfortunately, it's not possible
> to build a proxy from DUM; the closest you can do is create a back-to-back
> user agent.
>
> If you really intend to build a proxy, take a look at the repro directory.
That would definitely be a way though I'd lose a lot of comfort
dropping DUM. Anyway, thanks a lot for the response!
Vladimir.
>
> /a
>
> Vladimír Třebický wrote:
>>
>> Hi,
>>
>> first of all, thanks for the great software! I'm using resip in a SIP
>> proxy:
>>
>> UAC <-> Proxy <-> UAS
>>
>> Now, as call is being established, UAS sends OK to Proxy which
>> responds with ACK right ahead. Proxy then passes the OK to UAC, which
>> also responds with ACK. Proxy performs some nontrivial actions
>> (database calls, etc.) that might take some time (let's say up to 1
>> second in high load). Resip however sends the ACK right ahead, which
>> means that UAS start sending audio 1 second before UAC starts
>> accepting it.
>>
>> According to RFC3261, [Page 123], Chapter 17 Transactions:
>>
>> The 2xx response and its ACK receive special treatment. This
>> response is retransmitted only by a UAS, and its ACK generated only
>> by the UAC. This end-to-end treatment is needed so that a caller
>> knows the entire set of users that have accepted the call. Because
>> of this special handling, retransmissions of the 2xx response are
>> handled by the UA core, not the transaction layer. Similarly,
>> generation of the ACK for the 2xx is handled by the UA core. Each
>> proxy along the path merely forwards each 2xx response to INVITE and
>> its corresponding ACK.
>>
>> As far as I know, ACK is sent even before OnEstablished() is called
>> (see dum/ClientInviteSession.cxx) and I can only amend its content in
>> OnReadyToSend(). Is there a way for me to comply with this?
>>
>> Thanks!
>> Vladimir.
>> _______________________________________________
>> resiprocate-users mailing list
>> resiprocate-users@xxxxxxxxxxxxxxx
>> List Archive: http://list.resiprocate.org/archive/resiprocate-users/
>>
>
>