TelecomsXChange uses a Round-up CDR duration calculation, this method rounds the call duration up to the nearest whole second. it's also the method used by Tier 1 operators mostly.


This method is used for both Buyer charging and Seller Payouts equally.


Example of call duration round-up calculation adopted


  • A voice call with a duration of 1 second 150 milliseconds will be recorded as 2 seconds.
  • A voice call with a duration of 2 seconds 500 milliseconds will be recorded as 3 seconds.
  • A voice call with a duration of 2 seconds 0 milliseconds will be recorded as 2 seconds.


When interconnecting with TelecomsXChange it is recommended to set your billing system to calculate based on Round-up so that it matches with TCXC system.


If you have any questions about this topic, you may contact our support team for further explanation.



Understanding None Round-Up Billing  & How to solve it in your system 


When the call starts and ends the same second, some billing systems count is as zero duration call.
The reason is that they have 1-sec precise timing coming from SIP B2BUA over RADIUS.
To fix this you will need to make changes to b2bua and billing to calculate the milli-seconds and round up.

No Round up Call Accounting:


h323-disconnect-time = '12:03:26.000 GMT Fri Jan 22 2021'
h323-connect-time = '12:03:26.000 GMT Fri Jan 22 2021'
Acct-Session-Time = '0'


Example of Acct Stop parsing milli-seconds


* get duration from connect/disconnect */
 SET var_duration = CEIL(STR_TO_DATE(par_disconnect_time, '%H:%i:%s.%f GMT %a %b %e %Y') - STR_TO_DATE(par_connect_time, '%H:%i:%s.%f GMT %a %b %e %Y'));     SET var_duration = CEIL(timestampdiff(MICROSECOND, STR_TO_DATE(par_connect_time, '%H:%i:%s.%f GMT %a %b %e %Y'), STR_TO_DATE(par_disconnect_time, '%H:%i:%s.%f GMT %a %b %e %Y'))/1000000);