Index: channels/chan_sip.c =================================================================== --- channels/chan_sip.c (revision 211731) +++ channels/chan_sip.c (working copy) @@ -2070,7 +2070,8 @@ enum sip_transport transport; /*!< Transport for this registration UDP, TCP or TLS */ int portno; /*!< Optional port override */ int expire; /*!< Sched ID of expiration */ - int expiry; /*!< Value to use for the Expires header */ + int request_expiry; /*!< Configured value to use for the Expires header */ + int expiry; /*!< Negotiated value used for the Expires header */ int regattempts; /*!< Number of attempts (since the last success) */ int timeout; /*!< sched id of sip_reg_timeout */ int refresh; /*!< How often to refresh */ @@ -7428,7 +7429,8 @@ } reg->transport = transport; reg->expire = -1; - reg->expiry = (expire ? atoi(expire) : default_expiry); + reg->request_expiry = (expire ? atoi(expire) : default_expiry); + reg->expiry = reg->request_expiry; reg->timeout = -1; reg->refresh = reg->expiry; reg->portno = portnum; @@ -11363,6 +11365,7 @@ ast_log(LOG_NOTICE, " -- Re-registration for %s@%s\n", r->username, r->hostname); r->expire = -1; + r->expiry = r->request_expiry; __sip_do_register(r); registry_unref(r, "unref the re-register scheduled event"); return 0;