No callid in cdr when caller hangs up (1.4.25)

Currently running 1.4.25…

I noticed that if a caller hangs up before the context in the dialplan completes that the CDR does not record the Callerid or the extension. Caller id is blank and extension is “s”.

For example,

[test]
exten => 5555,1,Controlplayback(test)
exten => 5555,2,ControlPlayback(anothertest)
exten => 5555,3,Hangup()

If the caller hangs up during 1 or 2, CDR shows “” as callerid and “s” as extension. I have thought about putting a hangup script in the context but all documentation I have seen suggests that when entering an h extension the system trashes the caller info anyway.

As in h,1,Hangup() … etc…

Is there a way around this? Maybe putting the callerid and extention into Variables when the context is first accessed and then reassigning the variables to callerid and extension during the hangup script.

The main reason I hesitate doing this is that since the variables would be reassigned during a hangup script wouldn’t that make the script misbehave?

Just as an fyi, I also tried “endbeforehexten=yes” in the cdr.conf.