Dialogic Dialogic Global Call IP IP Phone User Manual


 
274
Dialogic Corporation
SIP
When using SIP, auto-refresh is used by default. If the application does not explicitly set the
time_to_live value in the IP_REGISTER_ADDRESS structure (that is, doesn’t change the value
from its default value of 0), the call control library automatically sets the Expires header field in the
REGISTER request to a a value of 3600 seconds. If the application wishes to request a longer or
shorter auto-refresh interval, it simply sets the time_to_live field to the appropriate value, and that
value is set in the Expires header field.
The actual expiration time for registration is determined by the Registrar, which may or may not
accept the Expires value suggested in the REGISTER request. The expiration time received from
the Registrar is recorded and used by the Dialogic
®
Global Call API library only if the application
has not disabled the auto-refresh mechanism. If the expiration time returned by the Registrar is
greater than 40 seconds, re-registration is attempted 30 seconds before the registration is set to
expire. If the expiration time returned by the Registrar is 40 seconds or less, re-registration is
attempted within 5 seconds of receiving that response. When auto-refresh is enabled, the call
control library rejects registration refresh times of 5 seconds or less and generates a
GCEV_SERVICERESP event with the response code IPEC_REG_FAIL_invalidExpires. If a
refresh time of 5 seconds or less is actually desired, the application must disable the auto-refresh
mechanism for each binding and will then be responsible for explicitly renewing those bindings
with the Registrar.
If the automatic re-registration fails because the Registrar rejects the request, the Registrar’s
response code is forwarded to the application in a GCEV_SERVICERESP event. Automatic re-
registration can also fail if constant application activity on a particular binding causes re-
registration to be postponed beyond the binding’s actual expiration time. (A 500ms postponement
occurs when an auto re-registration attempt collides with a current application transaction on the
same binding.) In this case the GCEV_SERVICERESP event sent to the application contains the
result code IPEC_REG_FAIL_reRegistrationRequired. In either case, the application is then
responsible for re-registering the binding, if appropriate.
The extra data associated with a re-registration failure event includes:
Request-URI (as IPSET_SIP_MSGINFO / IPPARM_REQUEST_URI)
To header field value (as IPSET_SIP_MSGINFO / IPPARM_TO)
From header field value, if one had been provided (as IPSET_SIP_MSGINFO / IPPARM_TO)
Contact header field value that failed to auto refresh (as IPSET_LOCAL_ALIAS /
IPPARM_ADDRESS_TRANSPARENT)
A SIP application can explicitly disable or re-enable auto-refresh on a per registration basis, by
using the following parameter element:
IPSET_REG_INFO
IPPARM_REG_AUTOREFRESH
and one of the following values:
IP_AUTOREFRESH_DISABLE – disable auto-refresh for a specific registration