[asterisk-dev] STUN support in chan_sip revisited

Simon Perreault simon.perreault at viagenie.ca
Mon Aug 9 08:32:11 CDT 2010


On 2010-08-09 09:24, Klaus Darilion wrote:
> 
> 
> Am 09.08.2010 14:11, schrieb Simon Perreault:
>>> Thus Asterisk would need
>>> a feature to send REGISTERs with the required high Expires header, but
>>> reregisters much earlier although the registration has not expired.
>>
>> Yes!
>>
>> And note that this is 100% compliant with RFC 3261. The only purpose of
>> the Expires header returned by the registrar is to inform the client of
>> the registration's life-time. The client is free to re-register (or not)
>> at any moment.
>>
>> The right value for the Expires header to be sent to the registrar could
>> be determined automatically from the Min-Expires header that the
>> registrar sends us when it rejects the initial REGISTER with a 423
>> (Interval Too Brief). Asterisk would send a new REGISTER request with
>> this value but the actual re-registration interval would be the one
>> configured statically in sip.conf. Would that work?
> 
> I think yes. But IMO it is not elegant - using STUN or CRLF is more 
> elegant. Although not defined in RFC3261, CRLF as keep-alive for UDP is 
> well supported.

Yes, but they serve different purposes.

When e.g. the DSL modem gets assigned a new IP address, all existing
connections die, even if they were kept-alive using STUN or CRLF.
(Related use cases: the NAT device crashes and reboots, the NAT device
runs out of memory and kills our binding, etc.)

To solve these problems, we need to send a REGISTER request as soon as
the event happens. We can either try to detect the event (I couldn't
figure out a good method), or just send REGISTER requests at small interval.

Simon
-- 
NAT64/DNS64 open-source --> http://ecdysis.viagenie.ca
STUN/TURN server        --> http://numb.viagenie.ca
vCard 4.0               --> http://www.vcarddav.org



More information about the asterisk-dev mailing list