A method of processing multi-leg calls in a communication network is
provided. The method comprises: receiving a call for a user at a first
entity in the network; establishing a first call leg to a second entity;
generating a first charging data record with at least one field, wherein
the field contains a charging identifier for the first call leg;
receiving a response from the second entity; establishing a second call
leg to a third entity; generating a second charging data record with at
least two fields, wherein the first field contains a charging identifier
for the second call leg and the second field contains a copy of the
charging identifier for the first call leg; and sending the charging data
records to a third entity.