mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +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.
 |