mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@202841 65c4cc65-6c06-0410-ace0-fbb531ad65f3
		
			
				
	
	
		
			87 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\section{Applications}
 | 
						|
 | 
						|
\begin{itemize}
 | 
						|
    \item SetAccount - Set account code for billing
 | 
						|
    \item SetAMAFlags - Sets AMA flags
 | 
						|
    \item NoCDR - Make sure no CDR is saved for a specific call
 | 
						|
    \item ResetCDR - Reset CDR
 | 
						|
    \item ForkCDR - Save current CDR and start a new CDR for this call
 | 
						|
    \item Authenticate - Authenticates and sets the account code
 | 
						|
    \item SetCDRUserField - Set CDR user field
 | 
						|
    \item AppendCDRUserField - Append data to CDR User field
 | 
						|
\end{itemize}
 | 
						|
 | 
						|
For more information, use the "core show application $<$application$>$" command.
 | 
						|
You can set default account codes and AMA flags for devices in
 | 
						|
channel configuration files, like sip.conf, iax.conf etc.
 | 
						|
 | 
						|
\section{CDR Fields}
 | 
						|
 | 
						|
\begin{itemize}
 | 
						|
   \item accountcode:  What account number to use, (string, 20 characters)
 | 
						|
   \item src:  Caller*ID number (string, 80 characters)
 | 
						|
   \item dst:  Destination extension (string, 80 characters)
 | 
						|
   \item dcontext:  Destination context (string, 80 characters)
 | 
						|
   \item clid:  Caller*ID with text (80 characters)
 | 
						|
   \item channel:  Channel used (80 characters)
 | 
						|
   \item dstchannel:  Destination channel if appropriate (80 characters)
 | 
						|
   \item lastapp:  Last application if appropriate (80 characters)
 | 
						|
   \item lastdata:  Last application data (arguments) (80 characters)
 | 
						|
   \item start:  Start of call (date/time)
 | 
						|
   \item answer:  Answer of call (date/time)
 | 
						|
   \item end:  End of call (date/time)
 | 
						|
   \item duration:  Total time in system, in seconds (integer), from dial to hangup
 | 
						|
   \item billsec:  Total time call is up, in seconds (integer), from answer to hangup
 | 
						|
   \item disposition:  What happened to the call: ANSWERED, NO ANSWER, BUSY
 | 
						|
   \item amaflags:  What flags to use: DOCUMENTATION, BILL, IGNORE etc,
 | 
						|
            specified on a per channel basis like accountcode.
 | 
						|
   \item user field:  A user-defined field, maximum 255 characters
 | 
						|
\end{itemize}
 | 
						|
 | 
						|
In some cases, uniqueid is appended:
 | 
						|
 | 
						|
\begin{itemize}
 | 
						|
   \item uniqueid:  Unique Channel Identifier (32 characters)
 | 
						|
      This needs to be enabled in the source code at compile time
 | 
						|
\end{itemize}
 | 
						|
 | 
						|
NOTE: If you use IAX2 channels for your calls, and allow 'full' transfers
 | 
						|
(not media-only transfers), then when the calls is transferred the server
 | 
						|
in the middle will no longer be involved in the signaling path, and thus
 | 
						|
will not generate accurate CDRs for that call. If you can, use media-only
 | 
						|
transfers with IAX2 to avoid this problem, or turn off transfers completely
 | 
						|
(although this can result in a media latency increase since the media packets
 | 
						|
have to traverse the middle server(s) in the call).
 | 
						|
 | 
						|
\section{Variables}
 | 
						|
 | 
						|
If the channel has a CDR, that CDR has its own set of variables which can be
 | 
						|
accessed just like channel variables. The following builtin variables are
 | 
						|
available.
 | 
						|
 | 
						|
\begin{verbatim}
 | 
						|
${CDR(clid)}         Caller ID
 | 
						|
${CDR(src)}          Source
 | 
						|
${CDR(dst)}          Destination
 | 
						|
${CDR(dcontext)}     Destination context
 | 
						|
${CDR(channel)}      Channel name
 | 
						|
${CDR(dstchannel)}   Destination channel
 | 
						|
${CDR(lastapp)}      Last app executed
 | 
						|
${CDR(lastdata)}     Last app's arguments
 | 
						|
${CDR(start)}        Time the call started.
 | 
						|
${CDR(answer)}       Time the call was answered.
 | 
						|
${CDR(end)}          Time the call ended.
 | 
						|
${CDR(duration)}     Duration of the call.
 | 
						|
${CDR(billsec)}      Duration of the call once it was answered.
 | 
						|
${CDR(disposition)}  ANSWERED, NO ANSWER, BUSY
 | 
						|
${CDR(amaflags)}     DOCUMENTATION, BILL, IGNORE etc
 | 
						|
${CDR(accountcode)}  The channel's account code.
 | 
						|
${CDR(uniqueid)}     The channel's unique id.
 | 
						|
${CDR(userfield)}    The channels uses specified field.
 | 
						|
\end{verbatim}
 | 
						|
 | 
						|
In addition, you can set your own extra variables by using Set(CDR(name)=value).
 | 
						|
These variables can be output into a text-format CDR by using the cdr\_custom
 | 
						|
CDR driver; see the cdr\_custom.conf.sample file in the configs directory for
 | 
						|
an example of how to do this.
 |