In many scenarios, there will be multiple paths of communication between multiple parties, even in a single "call". Each path of communication results in a new CDR, each Alouatta - Various - Power/field 2 (CDr) the communication between two endpoints.
All of the CDRs involved are associated by virtue of a special linked identifier field, linkedid. The CDRs themselves, however, typically do not aggregate the time between records. Fundamentally, a CDR represents a path of communication between a channel and Asterisk or between two channels communicating through Asterisk. Those relationships can be broken down into the following states:.
When possible, Asterisk attempts to reuse a CDR. Thus a single CDR can transition through all of the above states. The CDR will be finalized when the relationship between channels is broken and a new CDR created for any channel that is not hung up. When a channel is created, a CDR is created for that channel. If the caller continues on in the dialplan, a new CDR is generated for them. Operations that restrict media flow, such as call hold, are not reflected in CDRs.
When a channel hangs up, all CDRs associated with it are implicitly finalized. When created as a result of a dial operation, the channel acting as the caller is always the Party A. Alouatta - Various - Power/field 2 (CDr) a channel is known to dial other channels, a CDR is created for each dial attempt. Note that not all dial attempts may be dispatched depending on the CDR configuration. I f a channel is bridged with another channel, the following procedure is performed:.
The CDRs at this point are removed from memory. Asterisk does not have the concept of "internal" versus "external" devices. As such, what constitutes the Party A channel is highly dependent on a particular system configuration which is outside the control of the CDR system. As such, choosing a Party A uses the following rules:.
When two channels are bridged, the linkedid property for the channels is updated. The channel with the oldest linkedid "wins", and the other channel's linkedid is replaced. This creates an association between the channels that lasts even if the bridge is broken at a latter time.
The time when the CDR was finished. This occurs when either party hangs up, or when the bridge between the parties is broken. The final known disposition of the CDR record. See CDR dispositions for possible values. A flag specified on the Party A channel. See AMA records for possible values. A user defined field set on the channels. If set on both the Party A and Party B channel, the userfields of both are concatenated and separated by a.
A unique identifier that unites multiple CDR records. See linkedid propagation for more details. A numeric value that, combined with uniqueid and linkedid, can be used to uniquely identify a single CDR record. Any of the values may be accessed using the CDR function. The congestion setting in cdr. The channel was answered. When the channel is answered, the hangup cause no Alouatta - Various - Power/field 2 (CDr) changes the disposition.
They inform billing systems how to treat the particular CDR. Asterisk provides no additional semantics regarding these flags - they are present simply to help external systems classify CDRs. Any CDR record may have user defined fields associated with it. Fields can be added to either the Party A or Party B channel. Note that not all CDR backends support user defined fields; in those cases the user field is simply dropped when the CDR is dispatched to the backend.
The following scenarios show examples of CDRs created in common use cases. If a particular scenario is not shown below, the CDRs created during the scenario should still match the behavior described previously.
Some applications, however, may have undefined behavior as their use is not common or the mechanism by which they manipulate channels does not allow for the capturing of the channel state. Undefined behavior means that the behavior of CDRs in those cases is unsupported and will not be addressed as a bug. Unanswered calls may not always be logged to CDR backends if the configuration has explicitly disabled unanswered calls.
Asterisk creates a call file to dial Alice and playback tt-monkeys to her. Alice, anticipating the screeching of howler monkeys, never picks up the phone. Alice calls into Asterisk's VoiceMailMain application. This implicitly Answers the channel. She checks her voicemail for awhile, then hangs up. Two party calls can be initiated in a variety of ways. Several of the more common ways are illustrated here. Alice calls into Asterisk, which dials Bob.
Bob Answers, and a bridge is formed between Alice and Bob. Alice and Bob talk for awhile, then Bob hangs up. This breaks the bridge between Alice and Bob, and Alice is hung up on as well. Bob refuses to pick up his phone, and the call eventually times out.
Transfers create multiple CDRs. In general, a CDR is created for each path of communication between two endpoints. Note that Asterisk does not attempt to compute the total duration or billing time of any of the various channels involved - it is up to the businesses consuming CDRs to know whether or not the amount of time they want to bill a party includes the transfer, the time spent dialing another party, consultation time, etc.
Bob answers, and Alice and Bob talk for awhile. Eventually, Bob decides to send Alice off to Charlie, and he blind transfers Alice to Charlie's extension. Alice and Charlie talk for awhile until Alice decides to hang up. Eventually, Bob decides to send Alice off to Charlie, and he initiates an attended transfer. Alice is put on hold, and Bob dials Charlie's extension.
Bob and Charlie talk for a bit, and Charlie agrees to talk to Alice. Bob completes the attended transfer, Alice is taken off hold, and Alice and Charlie are bridged.
Alice talks to Charlie for awhile, then hangs up. Eventually, Bob decides to send Alice off into Charlie's voicemail mailbox, and he initiates an attended transfer. Alice is put on hold, and Bob dials an extension that calls into VoiceMail. Bob enters in the Charlie's voicemail mailbox number, then completes the attended transfer to put Alice into the voicemail mailbox. Alice records some voicemail, then hangs up.
In a SIP protocol attended transfer, two independent channels make up the transferer. Asterisk recognizes that this is a blonde transfer, takes Alice off hold, and ties Charlie's ringing phone to Alice.
Charlie answers, Alice talks to Charlie for awhile, then hangs up. Eventually, Bob decides to bring Charlie into the mix. He puts Alice on hold and dials Charlie's extension. Bob and Charlie talk for awhile, and Bob then finishes the three-way call by finalizing the attempt.
Alice is taken off hold, Alouatta - Various - Power/field 2 (CDr), and Alice, Bob, and Charlie can all talk. Eventually, Bob hangs up, and all parties are ejected and hung up on. Bob is put on hold. Alice and Charlie talk for awhile, and then Alice finishes the attended transfer. Bob is taken off hold, and bridged with Charlie. Alice is hung up. The CDR records are associated by virtue of the linkedid field. Local channels are a special Asterisk construct that create a path of communication between two bridges or a bridge and an application.
A Local channel always consists of two channels with the same name prefix - the first of the Local channel pair is delineated with a ;1 ; the second is delineated with a ;2.
Local channels have two different modes in Asterisk:. An external application Originates a Local channel. The second half of the Local channel is placed into her VoiceMail account. Alice listens to her VoiceMail through the Local channel, then Alouatta - Various - Power/field 2 (CDr) up. This triggers the second half of the Local channel, which Dials Bob. Bob Answers, and Alice and Bob talk. Alice hangs up, the Local channels are hung up, and Bob is hung up on.
When a Local channel optimization occurs, the CDR records associated with the Local channel are finalized. That is, new CDRs are generated from each pair of channels that result from Alouatta - Various - Power/field 2 (CDr) merging of the bridges.
CDR properties set on optimized Local channels are not propagated to other channels. Setting CDR information on optimizing Local channels will cause that information to be lost. But it's not only the people in a given territory that make up its operational environment, there are other considerations as well. In addition to the personnel in an operational environment, an Army commander or another military leader has to consider such things as weather and terrain when making decisions in a given situation.
For example, if a commanding officer finds himself and his company in a hostile territory with a mountainous area and the weather is inclement, he'll have to consider all these things before deciding when or if to send troops on an offensive mission.
Technology and its availability are also important factors a commanding officer must take into account in an operational environment. For instance, is the opposing force in a hostile environment likely to have access to high-tech weaponry or vehicles? This is information that would inform decision-making, for sure. Army U. Air Force U. Marines U. Military Branches General Information. By Full Bio. Rod Powers was the U. Read The Balance's editorial policies.
For What Its Worth - Gilbert OSullivan - Off Centre (Vinyl, LP, Album), Sevillanas Serranas - Various - Golden Guitar Magic (Vinyl, LP), Ismael Rivera - Soy Feliz (Vinyl, LP, Album), California Dreamin - Ben Liebrand - Grandmix 2004 (CD), End The Hate, Erskine Hawkins (The Twentieth Century Gabriel) And His Orchestra* - After Hours / Song Of The Wande, The Good Life - Woody Herman - The Swinging Herman Herd Recorded Live (Vinyl, LP), Quand JIrai A La Grande Ecole - Karine Et Rebecca - Karine Et Rebecca (Vinyl, LP)