I know this is an old issue - but I just powered up my PBXIAF a couple of weeks ago and ran all the updates (after the system had been down for several months while I was playing around with Trixbox) and now my inbound PSTN calls drop as soon as they are answered.
Used the tutorial from:
(http://nerdvittles.com/index.php?p=65).
========================================
Below is my extensions_custom.conf entry and data pulled from my "full" log file.
************************************************
;next extension (99) is to handle incoming PSTN calls
exten => 99,1,GotoIf($["${CALLERIDNUM:0:2}" = "00"]?2:3)
exten => 99,2,SetCIDNum(${CALLERIDNUM:2})
exten => 99,3,SetMusicOnHold(default)
exten => 99,4,Answer
exten => 99,5,Wait(1)
exten => 99,6,Background(pls-wait-connect-call)
exten => 99,7,Set(TIMEOUT(digit)=2)
exten => 99,8,Set(TIMEOUT(response)=2)
exten => t,1,Answer
exten => t,2,Wait(1)
exten => t,3,Background(pls-hold-while-try)
exten => t,4,Dial(SIP/2006,20,m)
exten => t,5,VoiceMail(2006@default)
exten => t,6,Hangup
exten => i,1,Answer
exten => i,2,Wait(1)
exten => i,3,Playback(wrong-try-again-smarty)
exten => i,3,Playback(yes-dear)
exten => i,4,Goto(99,5)
************************************************** ******
root@pbx:/var/log/asterisk $ vi full.3
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Executing [99@from-internal:1] GotoIf("SIP/asterisk-08bdb500", "0?2:3") in new stack
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Goto (from-internal,99,3)
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Executing [99@from-internal:3] SetMusicOnHold("SIP/asterisk-08bdb500", "default") in new stack
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Executing [99@from-internal:4] Answer("SIP/asterisk-08bdb500", "") in new stack
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Executing [99@from-internal:5] Wait("SIP/asterisk-08bdb500", "1") in new stack
[Feb 14 15:29:25] VERBOSE[19184] logger.c: -- Executing [99@from-internal:6] BackGround("SIP/asterisk-08bdb500", "pls-wait-connect-call") in new stack
[Feb 14 15:29:25] VERBOSE[19184] logger.c: -- <SIP/asterisk-08bdb500> Playing 'pls-wait-connect-call' (language 'en')
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Executing [99@from-internal:7] Set("SIP/asterisk-08bdb500", "TIMEOUT(digit)=2") in new stack
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Digit timeout set to 2
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Executing [99@from-internal:8] Set("SIP/asterisk-08bdb500", "TIMEOUT(response)=2") in new stack
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Response timeout set to 2
[Feb 14 15:29:27] VERBOSE[19184] logger.c: == Auto fallthrough, channel 'SIP/asterisk-08bdb500' status is 'UNKNOWN'
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Executing [h@from-internal:1] Macro("SIP/asterisk-08bdb500", "hangupcall") in new stack

==========================================
I've spent quite a bit of time trying to fix this. I'm kinda at a loss now. Thanks in advance for any suggestions.
Used the tutorial from:
(http://nerdvittles.com/index.php?p=65).
========================================
Below is my extensions_custom.conf entry and data pulled from my "full" log file.
************************************************
;next extension (99) is to handle incoming PSTN calls
exten => 99,1,GotoIf($["${CALLERIDNUM:0:2}" = "00"]?2:3)
exten => 99,2,SetCIDNum(${CALLERIDNUM:2})
exten => 99,3,SetMusicOnHold(default)
exten => 99,4,Answer
exten => 99,5,Wait(1)
exten => 99,6,Background(pls-wait-connect-call)
exten => 99,7,Set(TIMEOUT(digit)=2)
exten => 99,8,Set(TIMEOUT(response)=2)
exten => t,1,Answer
exten => t,2,Wait(1)
exten => t,3,Background(pls-hold-while-try)
exten => t,4,Dial(SIP/2006,20,m)
exten => t,5,VoiceMail(2006@default)
exten => t,6,Hangup
exten => i,1,Answer
exten => i,2,Wait(1)
exten => i,3,Playback(wrong-try-again-smarty)
exten => i,3,Playback(yes-dear)
exten => i,4,Goto(99,5)
************************************************** ******
root@pbx:/var/log/asterisk $ vi full.3
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Executing [99@from-internal:1] GotoIf("SIP/asterisk-08bdb500", "0?2:3") in new stack
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Goto (from-internal,99,3)
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Executing [99@from-internal:3] SetMusicOnHold("SIP/asterisk-08bdb500", "default") in new stack
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Executing [99@from-internal:4] Answer("SIP/asterisk-08bdb500", "") in new stack
[Feb 14 15:29:24] VERBOSE[19184] logger.c: -- Executing [99@from-internal:5] Wait("SIP/asterisk-08bdb500", "1") in new stack
[Feb 14 15:29:25] VERBOSE[19184] logger.c: -- Executing [99@from-internal:6] BackGround("SIP/asterisk-08bdb500", "pls-wait-connect-call") in new stack
[Feb 14 15:29:25] VERBOSE[19184] logger.c: -- <SIP/asterisk-08bdb500> Playing 'pls-wait-connect-call' (language 'en')
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Executing [99@from-internal:7] Set("SIP/asterisk-08bdb500", "TIMEOUT(digit)=2") in new stack
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Digit timeout set to 2
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Executing [99@from-internal:8] Set("SIP/asterisk-08bdb500", "TIMEOUT(response)=2") in new stack
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Response timeout set to 2
[Feb 14 15:29:27] VERBOSE[19184] logger.c: == Auto fallthrough, channel 'SIP/asterisk-08bdb500' status is 'UNKNOWN'
[Feb 14 15:29:27] VERBOSE[19184] logger.c: -- Executing [h@from-internal:1] Macro("SIP/asterisk-08bdb500", "hangupcall") in new stack

==========================================
I've spent quite a bit of time trying to fix this. I'm kinda at a loss now. Thanks in advance for any suggestions.