Reference9:Concept Call Detail Record CDR PBX: Difference between revisions

From innovaphone wiki
Jump to navigation Jump to search
Line 133: Line 133:
* to find the calls the user is responsible for, filter for CDRs with dir "from", "cf" or "ct".
* to find the calls the user is responsible for, filter for CDRs with dir "from", "cf" or "ct".
* the first event with type "conn-to", "transfer-to" or "cf-to" indicates the destination to which the user is to billed for this call
* the first event with type "conn-to", "transfer-to" or "cf-to" indicates the destination to which the user is to billed for this call
* the connected time is to be calculated from the first event with type "conn-to" to the first event with type "disc-to", "disc-from", "rel-to" or "ret-from"
* the connected time is to be calculated from the first event with type "conn-to" to the first event with type "disc-to", "disc-from", "rel-to" or "rel-from"


= Sample Records =
= Sample Records =

Revision as of 02:04, 4 September 2010

If enabled the PBX generates Call Detail Records (CDR) for each call and each object, which means if a call is made from one user to another a CDR for an outgoing call is generated at the first user object and a CDR for an incoming call is generated at the other user object. The CDRs are generated at the end of the call and sent via the CDR0 and CDR1 interfaces. XML is used for the content of the CDRs.

Content

Top-Level Tag <cdr>

Each CDR uses the top-level tag <cdr>. The following attributes are used with this tag:

guid The GUID identifying the object this call belongs to.
sys The system name (Gatekeeper Identifier) of the PBX
pbx The PBX this CDR was generated on
node The Node of the object for which this CDR was generated
cn The cn (Long Name) of the object
e164 The normalized Number of the object. This number includes the node prefixes if the object is not defined in the root node.
h323 The H.323 Id (Name) of the object
device The device (if applicable) which was used for this call
dir Indicates the direction of the call.
  • from: A call originating from this object.
  • to: A call sent to this object.
  • cf: A call diverted by this object.
  • ct: A call transfered by this object.
utc The time when this call was started as UTC time. This is an integer with the standard ctime semantic.
local The local time the call was started.

The Tag <event>

For each state a call goes thru a tag <event> is added to the CDR. The following attributes are used with this tag:

msg A string identifying the message which caused the state change of the call
time The time in seconds from the beginning of the call
type The Type of the other party of the call if available. A value of 'ext' indicates an external party.
e164 The number of the other party of the call if available. This number is a number as it can be dialed from this endpoint to call the other endpoint. This means it will include prefixes only if the other party is in a different node and it will include escapes if necessary.
h323 The H.323 Id (Name) of the other party of the call if available
conf A GUID identifying the call (conferenceID). This GUID can be used to associated CDRs from outgoing calls to the CDRs of incoming calls even across different PBXs. The first event within a CDR always contains this attribute. The conferenceID may change during a call (e.g. because of a call transfer). In this case another conf attribute is present containing the new conferenceID.
cause The cause code used when the call was cleared. The value is defined in Q.931. Common values are 16 - Normal Clearing, 17 - User Busy, 18 - No response.

The Tag <to>

Used as tag inside <event>. This is used to indicate that by the operation indicated by the message (transfer, call forward) the party to which this user is connected to will change.

The Tag <ep>

Indicates the endpoint to which the call is actually connected on this endpoint. This is mainly used on trunk objects, in the <cdr> tag itself only the number is indicated which was already dialed when the call is sent out to the trunk. With overlap sending more digits may be sent. In alert-from, conn-from, rel-to and rel-from the final number sent is indicated.

Tag <user>

The tag <cdr> may contain a tag <user> for additional information about the object:

  • Groups: For each group a tag <grp> is contained in <user>

Available messages (values of msg)

setup-from A call originating from the object was initiated
setup-to A call to the object was initiated
alert-from The endpoint for this object is alerting
alert-to The other party is alerting
conn-from The endpoint for this object has connected the call
conn-to The other party has connected the call
rel-from The endpoint for this object has released the call
rel-to The other party has released the call
transfer-from The endpoint for this call has transfered the call.
transfer-to The other party has transfered the call.
cf-from The endpoint for this object has forwarded the call.
cf-to The other party has forwarded the call.
connected Added after a transfer, if the other call leg was already connected.

Billing

To generate billing information for a given user (object), the outgoing calls the user is responsible for must be filtered, the destination to which the user is to be billed must be found and the connected time for these calls must be calculated. All this information can be obtained from the CDRs generated for the given user.

  • to find the calls the user is responsible for, filter for CDRs with dir "from", "cf" or "ct".
  • the first event with type "conn-to", "transfer-to" or "cf-to" indicates the destination to which the user is to billed for this call
  • the connected time is to be calculated from the first event with type "conn-to" to the first event with type "disc-to", "disc-from", "rel-to" or "rel-from"

Sample Records

Basic Call

A(100) calls B(101)

Object A CDR

<cdr guid="e78cb2b8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="a" cn="A" e164="100" h323="a" dir="from" utc="1272551262" local="1272558462">

   <user/>
   <event msg="setup-from" time="0" conf="e89277f0e909d31192e80090331032dd"/>
   <event msg="alert-to" time="1" e164="101" h323="b"/>
   <event msg="conn-to" time="2" e164="101" h323="b"/>
   <event msg="rel-to" time="4" cause="0"/>

</cdr>

Object B CDR

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="b" cn="B" e164="101" h323="b" dir="to" utc="1272551263" local="1272558463">

   <user/>
   <event msg="setup-to" time="0" e164="100" h323="a" conf="e89277f0e909d31192e80090331032dd"/>
   <event msg="alert-from" time="0" e164="100" h323="a"/>
   <event msg="conn-from" time="1" e164="100" h323="a"/>
   <event msg="rel-from" time="3" cause="0"/>

</cdr>

Call Forward

A(100) calls B(101) cfu to C(102)

Object A CDR

<cdr guid="e78cb2b8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="a" cn="A" e164="100" h323="a" dir="from" utc="1272551788" local="1272558988">

   <user/>
   <event msg="setup-from" time="0" conf="dd95b681e909d31192e80090331032dd"/>
   <event msg="cf-to" time="1" e164="101">
       <to e164="102"/>
   </event>
   <event msg="alert-to" time="1" e164="102" h323="c"/>
   <event msg="conn-to" time="3" e164="102" h323="c"/>
   <event msg="rel-to" time="5" cause="0"/>

</cdr>

Object B CDR

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" cn="B" e164="101" h323="b" dir="cf" utc="1272551789" local="1272558989">

   <user/>
   <event msg="setup-to" time="1" e164="100" h323="a" conf="dd95b681e909d31192e80090331032dd"/>
   <event msg="cf-from" time="1" e164="101">
       <to e164="102"/>
   </event>
   <event msg="alert-to" time="1" e164="102" h323="c"/>
   <event msg="conn-to" time="3" e164="102" h323="c"/>
   <event msg="rel-to" time="5" cause="0"/>

</cdr>

Object C CDR

<cdr guid="8f47c0cfe909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="c" cn="C" e164="102" h323="c" dir="to" utc="1272551789" local="1272558989">

   <user/>
   <event msg="setup-to" time="0" e164="100" h323="a" conf="dd95b681e909d31192e80090331032dd"/>
   <event msg="alert-from" time="0" e164="100" h323="a"/>
   <event msg="conn-from" time="2" e164="100" h323="a"/>
   <event msg="rel-from" time="4" cause="0"/>

</cdr>

A(100) calls B(101) cfnr to C(102)

Object A CDR

<cdr guid="e78cb2b8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="a" cn="A" e164="100" h323="a" dir="from" utc="1272552609" local="1272559809">

   <user/>
   <event msg="setup-from" time="0" conf="f5092783e909d31192e80090331032dd"/>
   <event msg="alert-to" time="1" e164="101" h323="b"/>
   <event msg="cf-to" time="5" e164="101" h323="b">
       <to e164="102"/>
   </event>
   <event msg="conn-to" time="8" e164="102" h323="c"/>
   <event msg="rel-to" time="9" cause="0"/>

</cdr>

Object B CDR

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="b" cn="B" e164="101" h323="b" dir="to" utc="1272552610" local="1272559810">

   <user/>
   <event msg="setup-to" time="0" e164="100" h323="a" conf="f5092783e909d31192e80090331032dd"/>
   <event msg="alert-from" time="0" e164="100" h323="a"/>
   <event msg="rel-to" time="4" cause="0"/>

</cdr>

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" cn="B" e164="101" h323="b" dir="cf" utc="1272552614" local="1272559814">

   <user/>
   <event msg="setup-to" time="5" e164="100" h323="a" conf="f5092783e909d31192e80090331032dd"/>
   <event msg="cf-from" time="5" e164="101" h323="b">
       <to e164="102"/>
   </event><event msg="conn-to" time="8" e164="102" h323="c"/>
   <event msg="rel-to" time="9" cause="0"/>

</cdr>

Object C CDR

<cdr guid="8f47c0cfe909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="c" cn="C" e164="102" h323="c" dir="to" utc="1272552614" local="1272559814">

   <user/>
   <event msg="setup-to" time="0" e164="100" h323="a" conf="f5092783e909d31192e80090331032dd"/>
   <event msg="alert-from" time="0" e164="100" h323="a"/>
   <event msg="conn-from" time="3" e164="100" h323="a"/>
   <event msg="rel-from" time="4" cause="0"/>

</cdr>

Call Transfer

A(100) calls B(101) blind transfer without consultation to C(102)

Object A CDR

<cdr guid="e78cb2b8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="a" cn="A" e164="100" h323="a" dir="from" utc="1272607911" local="1272615111">

   <user/>
   <event msg="setup-from" time="0" conf="9b24bc13e909d31192e80090331032dd"/>
   <event msg="alert-to" time="1" e164="101" h323="b"/>
   <event msg="conn-to" time="3" e164="101" h323="b"/>
   <event msg="transfer-to" time="7" e164="101" h323="b">
       <to e164="102"/>
   </event><event msg="conn-to" time="9" e164="102" h323="c"/>
   <event msg="rel-to" time="10" cause="0"/>

</cdr>

Object B CDR

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="b" cn="B" e164="101" h323="b" dir="to" utc="1272607912" local="1272615112">

   <user/>
   <event msg="setup-to" time="0" e164="100" h323="a" conf="9b24bc13e909d31192e80090331032dd"/>
   <event msg="alert-from" time="0" e164="100" h323="a"/>
   <event msg="conn-from" time="2" e164="100" h323="a"/>
   <event msg="rel-to" time="6" cause="26"/>

</cdr>

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" cn="B" e164="101" h323="b" dir="ct" utc="1272607918" local="1272615118">

   <user/>
   <event msg="setup-to" time="7" e164="100" h323="a" conf="9b24bc13e909d31192e80090331032dd"/>
   <event msg="transfer-from" time="7" e164="101" h323="b">
       <to e164="102" h323="c"/>
   </event>
   <event msg="conn-to" time="9" e164="102" h323="c"/>
   <event msg="rel-to" time="10" cause="0"/>

</cdr>

Object C CDR

<cdr guid="8f47c0cfe909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="c" cn="C" e164="102" h323="c" dir="to" utc="1272607918" local="1272615118">

   <user/>
   <event msg="setup-to" time="0" e164="100" h323="a" conf="9b24bc13e909d31192e80090331032dd"/>
   <event msg="alert-from" time="0" e164="100" h323="a"/>
   <event msg="conn-from" time="2" e164="100" h323="a"/>
   <event msg="rel-from" time="3" cause="0"/>

</cdr>

A(100) calls B(101) blind transfer with consultation to C(102)

Object A CDR

<cdr guid="e78cb2b8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="a" cn="A" e164="100" h323="a" dir="from" utc="1272609642" local="1272616842">

   <user/>
   <event msg="setup-from" time="0" conf="18dbf93fe909d31192e80090331032dd"/>
   <event msg="alert-to" time="2" e164="101" h323="b"/>
   <event msg="conn-to" time="4" e164="101" h323="b"/>
   <event msg="transfer-to" time="9" e164="101" h323="b">
       <to e164="102" h323="c"/>
   </event><event msg="conn-to" time="11" e164="102" h323="c"/>
   <event msg="rel-to" time="14" cause="0"/>

</cdr>

Object B CDR

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="b" cn="B" e164="101" h323="b" dir="to" utc="1272609644" local="1272616844">

   <user/>
   <event msg="setup-to" time="0" e164="100" h323="a" conf="18dbf93fe909d31192e80090331032dd"/>
   <event msg="alert-from" time="0" e164="100" h323="a"/>
   <event msg="conn-from" time="2" e164="100" h323="a"/>
   <event msg="rel-to" time="7" cause="26"/>

</cdr>

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="b" cn="B" e164="101" h323="b" dir="from" utc="1272609647" local="1272616847">

   <user/>
   <event msg="setup-from" time="0" conf="75762ef4e909d311aff8009033102603"/>
   <event msg="alert-to" time="2" e164="102" h323="c"/>
   <event msg="transfer-from" time="4" e164="102" h323="c" conf="18dbf93fe909d31192e80090331032dd">
       <to e164="100" h323="a"/>
   </event>
   <event msg="conn-to" time="11" e164="102" h323="c"/>
   <event msg="rel-to" time="14" cause="0"/>

</cdr>

Object C CDR

<cdr guid="8f47c0cfe909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="c" cn="C" e164="102" h323="c" dir="to" utc="1272609649" local="1272616849">

   <user/>
   <event msg="setup-to" time="0" e164="101" h323="b" conf="75762ef4e909d311aff8009033102603"/>
   <event msg="alert-from" time="0" e164="101" h323="b"/>
   <event msg="transfer-to" time="2" e164="101" h323="b" conf="18dbf93fe909d31192e80090331032dd">
       <to e164="100" h323="a"/>
   </event><event msg="conn-from" time="4" e164="100" h323="a"/>
   <event msg="rel-from" time="7" cause="0"/>

</cdr>

A(100) calls B(101) transfer with consultation to C(102)

Object A CDR

<cdr guid="e78cb2b8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="a" cn="A" e164="100" h323="a" dir="from" utc="1272613531" local="1272620731">

   <user/>
   <event msg="setup-from" time="0" conf="1827b3c7e909d31192e80090331032dd"/>
   <event msg="alert-to" time="1" e164="101" h323="b"/>
   <event msg="conn-to" time="3" e164="101" h323="b"/>
   <event msg="transfer-to" time="10" e164="101" h323="b">
       <to e164="102" h323="c"/>
   </event>
   <event msg="connected" time="10" e164="102" h323="c"/>
   <event msg="rel-to" time="12" cause="0"/>

</cdr>

Object B CDR

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="b" cn="B" e164="101" h323="b" dir="to" utc="1272613532" local="1272620732">

   <user/>
   <event msg="setup-to" time="0" e164="100" h323="a" conf="1827b3c7e909d31192e80090331032dd"/>
   <event msg="alert-from" time="0" e164="100" h323="a"/>
   <event msg="conn-from" time="2" e164="100" h323="a"/>
   <event msg="transfer-from" time="9" e164="100" h323="a">
       <to e164="102" h323="c"/>
   </event><event msg="connected" time="10" e164="102" h323="c"/>
   <event msg="rel-to" time="12" cause="0"/>

</cdr>

<cdr guid="9362bef8e909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="b" cn="B" e164="101" h323="b" dir="from" utc="1272613535" local="1272620735">

   <user/>
   <event msg="setup-from" time="0" conf="8fc0cfc0e909d311b722009033102603"/>
   <event msg="alert-to" time="2" e164="102" h323="c"/>
   <event msg="conn-to" time="4" e164="102" h323="c"/>
   <event msg="transfer-from" time="6" e164="102" h323="c" conf="1827b3c7e909d31192e80090331032dd">
       <to e164="100" h323="a"/>
   </event>
   <event msg="connected" time="4" e164="100" h323="a"/>
   <event msg="rel-from" time="6" cause="0"/>

</cdr>

Object C CDR

<cdr guid="8f47c0cfe909d31188ce0090330602e8" sys="PBX" pbx="." node="root" device="c" cn="C" e164="102" h323="c" dir="to" utc="1272613537" local="1272620737">

   <user/>
   <event msg="setup-to" time="0" e164="101" h323="b" conf="8fc0cfc0e909d311b722009033102603"/>
   <event msg="alert-from" time="0" e164="101" h323="b"/>
   <event msg="conn-from" time="2" e164="101" h323="b"/>
   <event msg="transfer-to" time="4" e164="101" h323="b" conf="1827b3c7e909d31192e80090331032dd">
       <to e164="100" h323="a"/>
   </event>
   <event msg="connected" time="4" e164="100" h323="a"/>
   <event msg="rel-from" time="6" cause="0"/>

</cdr>