Dial timeout active during Call Forward on No Answer

I have a SwissVoice IP10S phone set to forward calls on no answer to my mobile phone.

The problem is that the Dial timeout of 20 seconds remains active (see below). Therefore if I set the CFNR timeout on the SwissVoice to the default time of 15 seconds, my mobile only rings once (i.e. 5 seconds) before Asterisk sends the call to Voicemail.

Is there a way to reset the timer to a new value on receipt of a Call Forward (remporarily moved) SIP response?

Here’s the console dump:

-- Executing Macro("SIP/analoguecordless-e890", "stdexten|mikepollitt|SIP/mikepollitt|limeboy") in new stack
-- Executing Dial("SIP/analoguecordless-e890", "SIP/mikepollitt|20") in new stack
-- Called mikepollitt
-- SIP/mikepollitt-f8c8 is ringing
-- Got SIP response 302 "Moved Temporarily" back from x.x.x.x
-- Now forwarding SIP/analoguecordless-e890 to 'Local/NNNNNNNN@limeboy_handsets' (thanks to SIP/mikepollitt-f8c8)
-- Executing Dial("Local/NNNNNNNN@limeboy_handsets-c3d4,2", "IAX2/NNNN/NNNNNNNN|60") in new stack
-- Called NNNN/NNNNNNNN
-- Call accepted by x.x.x.x (format g729)
-- Format for call is g729
-- IAX2/NNNN-3 is proceeding passing it to Local/NNNNNNNN@limeboy_handsets-c3d4,2
-- Local/NNNNNNNN@limeboy_handsets-c3d4,1 is proceeding passing it to SIP/analoguecordless-e890
-- IAX2/NNNN-3 is making progress passing it to Local/NNNNNNNN@limeboy_handsets-c3d4,2
-- Local/NNNNNNNN@limeboy_handsets-c3d4,1 is making progress passing it to SIP/analoguecordless-e890
-- IAX2/NNNN-3 is ringing
-- Local/NNNNNNNN@limeboy_handsets-c3d4,1 is ringing
-- Nobody picked up in 20000 ms
-- Executing Goto("SIP/analoguecordless-e890", "s-NOANSWER|1") in new stack
-- Goto (macro-stdexten,s-NOANSWER,1)
-- Executing VoiceMail("SIP/analoguecordless-e890", "umikepollitt@limeboy") in new stack
-- Hungup 'IAX2/NNNN-3'

Just thought I’d refresh this post to see if anyone has a solution.

To summarise:

If I have a SIP phone which has the Call Forward on Unavailable (No Answer) feature set to forward calls to another number, Asterisk exhibits the following behaviour:

I’m using Dial() with a timeout of 20 seconds, and the Call Forward settings on the SIP phone are set to forward after 15 seconds.

Rings the SIP phone for 15 seconds
Rings the second number for 5 seconds
Call passes to the next priority in the dialplan

Is there a way to reset the Dial timer, so that if it receives a 302 Temporarily Moved response from the SIP handset, it resets or cancels the timer?