Hangup incoming SIP trunk not detected (voice mail & bri

In specific cases my SIP-trunks are not released when the caller hangs up.
In these cases hangup appearently is not detected - the trunk is released after a timeout of 30 sec (which is too long for trunks!).

Is this a (known?) bug or a consequence of SIP?
How can I shorten (or eliminate) the timeout?

Below three cases. In the first case hangup is detected and the trunk is released (so my configuration is working). In the other two cases hangup is not detected and the trunk is released after a time out of 30 sec.

case 1: incoming call to extension

    -- Called 202
    -- SIP/202-0822d668 is ringing
  == Spawn extension (DID_trunk_1, 2201643, 3) exited non-zero on 'SIP/trunk_1-08229258'

case 2: incoming call lands in voice mail

    -- <SIP/trunk_1-08229258> Playing 'beep' (language 'en')
    -- Recording the message
    -- x=0, open writing:  /var/spool/asterisk/voicemail/default/201/tmp/UmLc9A format: wav49, 0x822d938
    -- x=1, open writing:  /var/spool/asterisk/voicemail/default/201/tmp/UmLc9A format: gsm, 0x822dc50
    -- x=2, open writing:  /var/spool/asterisk/voicemail/default/201/tmp/UmLc9A format: wav, 0x822df28

caller hangs up
after 30 seconds:

    -- User hung up
  == Spawn extension (DID_trunk_1, 2202408, 13) exited non-zero on 'SIP/trunk_1-08229258'

case 3: call is bridged to an outgoing trunk

    -- Called trunk_2/0622402161
    -- SIP/trunk_2-0822d710 is making progress passing it to SIP/trunk_1-08229258
    -- SIP/trunk_2-0822d710 is ringing
    -- SIP/trunk_2-0822d710 is making progress passing it to SIP/trunk_1-08229258
    -- SIP/trunk_2-0822d710 answered SIP/trunk_1-08229258
    -- Packet2Packet bridging SIP/trunk_1-08229258 and SIP/trunk_2-0822d710

caller hangs up
after 30 seconds:

  == Spawn extension (DID_trunk_1, 2202408, 17) exited non-zero on 'SIP/trunk_1-08229258'

My SIP trunk is a Patton Smartnode VoIP ISDN gateway.
Settings for it in users.conf:

[trunk_1]
allow = all
context = DID_trunk_1
dialformat = ${EXTEN:1}
canreinvite = no
busydetect = yes
rtptimeout = 5
rtpholdtimeout = 60
hasexten = no
hasiax = no
hassip = yes
host = 192.168.0.1
port = 5060
registeriax = no
registersip = no
secret = *****
trunkname = Custom - patton 1
trunkstyle = customvoip
username = trunk_1

I do not expect busydetect to be relevant, but I had expected rtptimeout to be make the difference.