Unpredictable registration timeout

I using phone GXP1628 with firmware version 1.0.2.27 (the last at the time). My phone is connected to Asterisk 13 server and be located in the same LAN without any routers and access points. Only switch. The phone has default settings. After reboot it make registration correctly but in several hours I can see on the Asterisk server that the registration was lost:
CLI> sip show peers
660/660 (Unspecified) D Auto (No) No 0 UNKNOWN

Although “Register Expiration” is set to 60 minutes, registration can drop in 10 minutes or in one hour (randomly). But the phone always indicates that it is registered: “Status -> SIP Registration = YES”. I have softphone and it never lost registration on Asterisk.
I found events in my full log, but I can’t determine does phone or asterisk breaks registration. And also I can’t understand this line: “Subscription-State: terminated;reason=timeout”. How can subscription timed out in 10 minutes when all timeouts is set to 60 minutes!
How can I tell asterisk to show current registration time left?
The text of my log below.

[Feb 2 20:31:39] VERBOSE[100731] chan_sip.c: set_destination: Parsing sip:660@10.1.1.160:5060 for address/port to send to
[Feb 2 20:31:39] VERBOSE[100731] chan_sip.c: set_destination: set destination to 10.1.1.160:5060
[Feb 2 20:31:39] VERBOSE[100731] chan_sip.c: Reliably Transmitting (no NAT) to 10.1.1.160:5060:
NOTIFY sip:660@10.1.1.160:5060 SIP/2.0
Via: SIP/2.0/UDP 10.1.1.120:5060;branch=z9hG4bK75b7fbfe;rport
Max-Forwards: 70
From: sip:661@10.1.1.120;tag=as654ea89b
To: sip:660@10.1.1.120;tag=113628648
Contact: sip:661@10.1.1.120:5060
Call-ID: 1554482010-5060-2@BA.B.B.BGA
CSeq: 105 NOTIFY
User-Agent: Asterisk PBX 13.6.0
Subscription-State: terminated;reason=timeout
Event: dialog
Content-Type: application/dialog-info+xml
Content-Length: 201

<?xml version="1.0"?> terminated

[Feb 2 20:31:39] VERBOSE[100731] chan_sip.c:
<— SIP read from UDP:10.1.1.160:5060 —>
SIP/2.0 481 Subscription Does Not Exist
Via: SIP/2.0/UDP 10.1.1.120:5060;branch=z9hG4bK75b7fbfe;rport=5060
From: sip:661@10.1.1.120;tag=as654ea89b
To: sip:660@10.1.1.120;tag=113628648
Call-ID: 1554482010-5060-2@BA.B.B.BGA
CSeq: 105 NOTIFY
Supported: replaces, path, timer
User-Agent: Grandstream GXP1628 1.0.2.27
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
Content-Length: 0

<------------->
[Feb 2 20:31:39] VERBOSE[100731] chan_sip.c: — (10 headers 0 lines) —
[Feb 2 20:31:39] VERBOSE[100731] chan_sip.c: Really destroying SIP dialog '1554482010-5060-2@BA.B.B.BGA’ Method: SUBSCRIBE
[Feb 2 20:31:40] VERBOSE[100731] chan_sip.c: set_destination: Parsing sip:660@10.1.1.160:5060 for address/port to send to
[Feb 2 20:31:40] VERBOSE[100731] chan_sip.c: set_destination: set destination to 10.1.1.160:5060
[Feb 2 20:31:40] VERBOSE[100731] chan_sip.c: Reliably Transmitting (no NAT) to 10.1.1.160:5060:
NOTIFY sip:660@10.1.1.160:5060 SIP/2.0
Via: SIP/2.0/UDP 10.1.1.120:5060;branch=z9hG4bK79bbd13f;rport
Max-Forwards: 70
From: sip:662@10.1.1.120;tag=as51a35485
To: sip:660@10.1.1.120;tag=298925962
Contact: sip:662@10.1.1.120:5060
Call-ID: 538233515-5060-3@BA.B.B.BGA
CSeq: 105 NOTIFY
User-Agent: Asterisk PBX 13.6.0
Subscription-State: terminated;reason=timeout
Event: dialog
Content-Type: application/dialog-info+xml
Content-Length: 201

<?xml version="1.0"?> terminated

[Feb 2 20:31:40] VERBOSE[100731] chan_sip.c:
<— SIP read from UDP:10.1.1.160:5060 —>
SIP/2.0 481 Subscription Does Not Exist
Via: SIP/2.0/UDP 10.1.1.120:5060;branch=z9hG4bK79bbd13f;rport=5060
From: sip:662@10.1.1.120;tag=as51a35485
To: sip:660@10.1.1.120;tag=298925962
Call-ID: 538233515-5060-3@BA.B.B.BGA
CSeq: 105 NOTIFY
Supported: replaces, path, timer
User-Agent: Grandstream GXP1628 1.0.2.27
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
Content-Length: 0
<------------->
[Feb 2 20:31:40] VERBOSE[100731] chan_sip.c: — (10 headers 0 lines) —
[Feb 2 20:31:40] VERBOSE[100731] chan_sip.c: Really destroying SIP dialog '538233515-5060-3@BA.B.B.BGA’ Method: SUBSCRIBE

I have new information about the problem. I have noticed a strange behavior of registration parameters: after a registration I see in “sip show peer 660” expire=3599. But later, after 40 minutes for example, I see expire=-1. What does it mean? Is it the phone’s bug or asterisk’s bug?
I see the next warnings in full log:
WARNING[100839] chan_sip.c: Retransmission timeout reached on transmission 367c51ff45a5a0dd52e1b381493e825c@10.1.1.120:5060 for seqno 102 (Critical Request) – See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Can asterisk cancel registration on this error?

I had that problem with Grandstream phones, they were not renewing the registration after it expired. It was solved by doing a firmware upgrade