and restore this performance improvement. Astobj2 refcounting is now used
for users, peers, and dialogs. Users are encouraged to assist in regression
testing and problem reporting!
+ * Added ability to specify registration expiry time on a per registration basis in
+ the register line.
IAX Changes
-----------
enum sip_transport transport = SIP_TRANSPORT_UDP;
char buf[256] = "";
char *username = NULL;
- char *hostname=NULL, *secret=NULL, *authuser=NULL;
+ char *hostname=NULL, *secret=NULL, *authuser=NULL, *expiry=NULL;
char *porta=NULL;
char *callback=NULL;
char *trans=NULL;
if (hostname)
*hostname++ = '\0';
if (ast_strlen_zero(username) || ast_strlen_zero(hostname)) {
- ast_log(LOG_WARNING, "Format for registration is user[:secret[:authuser]]@host[:port][/contact] at line %d\n", lineno);
+ ast_log(LOG_WARNING, "Format for registration is user[:secret[:authuser]]@host[:port][/contact][~expiry] at line %d\n", lineno);
return -1;
}
/* split user[:secret[:authuser]] */
*authuser++ = '\0';
}
/* split host[:port][/contact] */
+ expiry = strchr(hostname, '~');
+ if (expiry)
+ *expiry++ = '\0';
callback = strchr(hostname, '/');
if (callback)
*callback++ = '\0';
ast_string_field_set(reg, secret, secret);
reg->transport = transport;
reg->expire = -1;
- reg->expiry = default_expiry;
+ reg->expiry = (expiry ? atoi(expiry) : default_expiry);
reg->timeout = -1;
- reg->refresh = default_expiry;
+ reg->refresh = reg->expiry;
reg->portno = portnum;
reg->callid_valid = FALSE;
reg->ocseq = INITIAL_CSEQ;
;----------------------------------------- OUTBOUND SIP REGISTRATIONS ------------------------
; Asterisk can register as a SIP user agent to a SIP proxy (provider)
; Format for the register statement is:
-; register => [transport://]user[:secret[:authuser]]@host[:port][/extension]
+; register => [transport://]user[:secret[:authuser]]@host[:port][/extension][~expiry]
;
;
;