[asterisk-dev] Enforce Registrar Stickiness for operation on (3GPP) IMS networks

Philipp Schöning schoening.p at gmail.com
Sat Nov 23 19:37:01 CST 2019


On IMS networks P-CSCF usually operate stateful, therefore a registration
is always bound to a specific node.

When RFC3263 is used for a list of possible SIP-Servers/P-CSCF, this list
of servers might change, if a DNS-based loadbalancing is used.

Asterisk is not taking the statefulness of SIP-Servers (and therefore of
the registration) into consideration and is immediately sending SIP
Requests to the new SIP-Server of the DNS result.

AudioCodes introduced with Firmware 7.20 a feature called 'Registrar
Stickiness' which does the following:

[1] Enable = Enables the Register Stickiness feature. The device always
routes SIP requests of a registered Account to the same registrar server to
where the last successful REGISTER request was routed. In other words, once
initial registration of the Account to one of the IP addresses in the Proxy
Set (associated with the Account's Serving IP Group) is successful (i.e.,
200 OK), binding ("stickiness") occurs to this specific address
(registrar). All future SIP requests (e.g., INVITEs, SUBSCRIBEs and
REGISTER refreshes) whose source and destination match the Account are sent
to this registrar only. This applies until the registrar is unreachable or
registration refresh fails, for whatever reason

Additionally there is a setting for the 'Registrar Search Mode':

■ [1] According to IMS Specifications = For the initial registration
request, the device performs DNS resolution if the address of the Proxy Set
is configured as an FQDN. It then attempts to register to one of the listed
DNS-resolved addresses (or configured IP addresses), starting with the
first listed address and then going down the list sequentially. If an
address results in an unsuccessful registration, the device immediately
tries the next address (without waiting any retry timeout). The device goes
through the list of addresses until an address results in a successful
registration. If registration is unsuccessful for all addresses, the device
waits a configured retry time and then goes through the list again. Once
initial registration is successful, periodic registration refreshes are
performed as usual. In addition to the periodic refreshes, immediate
register refreshes are done upon the following triggers according to the
IMS specification:
✔ The device receives a SIP 408, 480, or 403 response from the Serving IP
Group in response to an INVITE.
✔ The transaction timeout expires for an INVITE sent to the Serving IP
Group.
✔ The device receives an INVITE from the Serving IP Group from an IP
address other than the address to which it is currently registered. In this
case, it also rejects the INVITE with a SIP 480 response. If the device's
physical Ethernet link to the proxy goes down, the device re-registers this
Account with the proxy when the link comes up again. Re-registration occurs
even if proxy keep-alive is disabled.

https://www.audiocodes.com/media/13258/mediant-800-msbr-users-manual-ver-72.pdf
Page 475 ff.

Is it possible to enforce those two behaviours via settings in Asterisk? Or
is this impossible in the current Asterisk architecture?

Best Regards
Philipp Schöning
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20191124/daaa0b73/attachment.html>


More information about the asterisk-dev mailing list