CDR Call time not working as expected.

I’m not sure if this following scenario is a bug, or an intentional behavior. Either way, it wasn’t what we expected when viewing the CDR (via the web interface, or API).

The scenario is this. I call into our main number that rings a ring-group. Extension 101 picks up the call and does an attended transfer of the call to extension 102. I then talk to the person at extension 102 for a while (let’s say 10 minutes). After the call is completed, I go to the CDR to view the record. The CDR shows that I’ve talked to extension 101 for 10 minutes. Extension 102 is shown to have only talked for a few seconds to ext 101 (during the attended transfer). No record of me talking to ext 102 exists.

Is this what the CDR is intended to look like? We’re trying to come up with a way (using the API) to track total talk time for each of our extensions. This behavior in the CDR leads to inaccurate totals. Is there a better way to achieve what we’re trying to do?

Please send a detailed screenshot of you CDR that shows your scenario.

How do you do the attended transfer exactly?

I don’t have the exact extensions from the example I provided. But, in the images below:

  • I dialed in it rang through the ring group
  • EXT 606 picked up.
  • 606 transferred my call to 605.

The first image shows a talk time of 3:27 with me, that’s how long I was talking to EXT 605 (NOT 606).

The second image is the entirety of CDR for EXT 606 today. No mention of me (or anyone, except 606) talking to him.



As far as ‘how’ we do attended transfer, we have Yealink T46S phones and use the default behavior on that to do the transfers.

This is an issue for call recording as well.
I think this happens on attended transfer via phone. This will be an internal call then which has been bridged.

Try with call recording you will see that this call will be from beginning till end (including) the transfer. Don’t forget to enable internal call recording.

Yes, it does seems to be an issue from a phone-based attended transfer. I just transferred a call using *2 and that CDR looked correct. Anyone know of a way to use *2 with the BLF dsskeys on a yealink phone? Or any better option? My users won’t be willing to manually dial *2 and the extension.

The phone initiates a new call. With *2 the Asterisk PBX will know everything. But not without it.

Would be nice to have this fixed without the need of *2.

Anyone from VitalPBX know if this is something that can be implemented? Or should I start pursuing other options?

Just confirmed that Vitxi has the same behavior. Ext 401 transferred an incoming call to ext 501 using Vitxi. The CDR showed ext 401 had the talk time.

You can try this on your Yealink phone

\#It enables or disables the phone to send DTMF sequences for transfer function when pressing the transfer soft key or the TRAN key.
\# 0-Disabled, 1-Enabled.The default value is 0.

features.dtmf.replace_tran = 1

#It configures DTMF sequences for the transfer key function to be sent. It consists of 0-9, A-D, *, and #. The default value is blank.

features.dtmf.transfer = *2

I gave that a shot, but unfortunately, that doesn’t seem to be a feature for our Yealink T46S. I added those lines to my config file and uploaded it. When I re-exported my config file, those lines weren’t in it… In my experience, that normally means those lines weren’t valid options.

Do you know of a similar config for the T46S? My googling isn’t showing anything.

But your T46S ist listed here:

So please check again. There are different files to upload to yealink.
Or try the Phone Provisioning (the new one) from VitalPBX and use those lines in the Custom tab.

But maybe that configuration does not work if you use the BLF-keys instead of the TRANSFER-Key.

Ok, you’re right, the setting took when I added it to the provisioning template. Testing now.

Ok, so the that change did work for the transfer button. But the effect of the chagne didn’t correct the issue with the CDR. First image is with transfer button (via dtmf) and second image is via just pressing *2.

In both examples, an external call came into 401. 401 did an attended trasfer to 104. 104 talked to the external caller for a little over a minute. In the CDR, 401 was recorded as doing the ~1 minute talk.

So, same issue as before, but it just looks slightly different.



Does anyone else have any ideas? This does seem to be an issue with asterisk, I’ve seen (very old) posts elsewhere talking about this issue. Are there any better ways to monitor call time per extension?

1 Like

Having the same issue. Did you ever figure it out?