All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.asteriskjava.manager.event.CdrEvent Maven / Gradle / Ivy

/*
 * Copyright 2004-2006 Stefan Reuter
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
package org.asteriskjava.manager.event;

import java.util.Date;
import java.util.TimeZone;

import org.asteriskjava.util.DateUtil;

/**
 * A CdrEvent is triggered when a call detail record is generated, usually at
 * the end of a call.
 * 

* To enable CdrEvents you have to add enabled = yes to the general * section in cdr_manager.conf. *

* This event is implemented in cdr/cdr_manager.c * * @author srt * @version $Id$ */ public class CdrEvent extends ManagerEvent { /** * */ private static final long serialVersionUID = -5530571196096202052L; public static final String DISPOSITION_NO_ANSWER = "NO ANSWER"; public static final String DISPOSITION_FAILED = "FAILED"; public static final String DISPOSITION_BUSY = "BUSY"; public static final String DISPOSITION_ANSWERED = "ANSWERED"; public static final String DISPOSITION_UNKNOWN = "UNKNOWN"; public static final String AMA_FLAG_OMIT = "OMIT"; public static final String AMA_FLAG_BILLING = "BILLING"; public static final String AMA_FLAG_DOCUMENTATION = "DOCUMENTATION"; public static final String AMA_FLAG_UNKNOWN = "Unknown"; // 通话类型 public static final String CALLTYPE_INTERNAL = "internal"; public static final String CALLTYPE_INCOMING = "incoming"; public static final String CALLTYPE_OUTGOING = "outgoing"; private String accountCode; private String src; private String destination; private String destinationContext; private String callerId; private String channel; private String destinationChannel; private String lastApplication; private String lastData; private String startTime; private String answerTime; private String endTime; private Integer duration; private Integer billableSeconds; private String disposition; private String amaFlags; private String uniqueId; private String userField; private String callType; private String recordFile; private String callDestNum; private String callSrcNum; public CdrEvent(Object source) { super(source); } /** * Returns the account number that is usually used to identify the party to * bill for the call. *

* Corresponds to CDR field accountcode. * * @return the account number. */ public String getAccountCode() { return accountCode; } /** * Sets the account number. * * @param accountCode * the account number. */ public void setAccountCode(String accountCode) { this.accountCode = accountCode; } /** * Returns the Caller*ID number. *

* Corresponds to CDR field src. * * @return the Caller*ID number. */ public String getSrc() { return src; } /** * Sets the Caller*ID number. * * @param source * the Caller*ID number. */ public void setSrc(String source) { this.src = source; } /** * Returns the destination extension. *

* Corresponds to CDR field dst. * * @return the destination extension. */ public String getDestination() { return destination; } /** * Sets the destination extension. * * @param destination * the destination extension. */ public void setDestination(String destination) { this.destination = destination; } /** * Returns the destination context. *

* Corresponds to CDR field dcontext. * * @return the destination context. */ public String getDestinationContext() { return destinationContext; } /** * Sets the destination context. * * @param destinationContext * the destination context. */ public void setDestinationContext(String destinationContext) { this.destinationContext = destinationContext; } /** * Returns the Caller*ID with text. *

* Corresponds to CDR field clid. * * @return the Caller*ID with text */ public String getCallerId() { return callerId; } /** * Sets the Caller*ID with text. * * @param callerId * the Caller*ID with text. */ public void setCallerId(String callerId) { this.callerId = callerId; } /** * Returns the name of the channel, for example "SIP/1310-asfe". *

* Corresponds to CDR field channel. * * @return the name of the channel. */ public String getChannel() { return channel; } /** * Sets the name of the channel. * * @param channel * the name of the channel. */ public void setChannel(String channel) { this.channel = channel; } /** * Returns the name of the destination channel if appropriate. *

* Corresponds to CDR field dstchannel. * * @return the name of the destination channel or null if not * available. */ public String getDestinationChannel() { return destinationChannel; } /** * Sets the name of the destination channel. * * @param destinationChannel * the name of the destination channel. */ public void setDestinationChannel(String destinationChannel) { this.destinationChannel = destinationChannel; } /** * Returns the last application if appropriate, for example "VoiceMail". *

* Corresponds to CDR field lastapp. * * @return the last application or null if not avaialble. */ public String getLastApplication() { return lastApplication; } /** * Sets the last application. * * @param lastApplication * the last application. */ public void setLastApplication(String lastApplication) { this.lastApplication = lastApplication; } /** * Returns the last application's data (arguments), for example "s1234". *

* Corresponds to CDR field lastdata. * * @return the last application's data or null if not * avaialble. */ public String getLastData() { return lastData; } /** * Set the last application's data. * * @param lastData * the last application's data. */ public void setLastData(String lastData) { this.lastData = lastData; } /** * Returns when the call has started. *

* This corresponds to CDR field start. * * @return A string of the format "%Y-%m-%d %T" (strftime(3)) representing * the date/time the * call has started, for example "2006-05-19 11:54:48". */ public String getStartTime() { return startTime; } /** * Returns the start time as Date object. *

* This method asumes that the Asterisk server's timezone equals the default * timezone of your JVM. * * @return the start time as Date object. * @since 0.3 */ public Date getStartTimeAsDate() { return DateUtil.parseDateTime(startTime); } /** * Returns the start time as Date object. * * @param tz * the timezone of the Asterisk server. * @return the start time as Date object. * @since 0.3 */ public Date getStartTimeAsDate(TimeZone tz) { return DateUtil.parseDateTime(startTime, tz); } /** * Sets the date/time when the call has started. * * @param startTime * the date/time when the call has started. */ public void setStartTime(String startTime) { this.startTime = startTime; } /** * Returns when the call was answered. *

* This corresponds to CDR field answered. * * @return A string of the format "%Y-%m-%d %T" (strftime(3)) representing * the date/time the * call was answered, for example "2006-05-19 11:55:01" */ public String getAnswerTime() { return answerTime; } /** * Returns the answer time as Date object. *

* This method asumes that the Asterisk server's timezone equals the default * timezone of your JVM. * * @return the answer time as Date object. * @since 0.3 */ public Date getAnswerTimeAsDate() { return DateUtil.parseDateTime(answerTime); } /** * Returns the answer time as Date object. * * @param tz * the timezone of the Asterisk server. * @return the answer time as Date object. * @since 0.3 */ public Date getAnswerTimeAsDate(TimeZone tz) { return DateUtil.parseDateTime(answerTime, tz); } /** * Sets the date/time when the call was answered. * * @param answerTime * the date/time when the call was answered. */ public void setAnswerTime(String answerTime) { this.answerTime = answerTime; } /** * Returns when the call has ended. *

* This corresponds to CDR field end. * * @return A string of the format "%Y-%m-%d %T" (strftime(3)) representing * the date/time the * call has ended, for example "2006-05-19 11:58:21" */ public String getEndTime() { return endTime; } /** * Returns the end time as Date object. *

* This method asumes that the Asterisk server's timezone equals the default * timezone of your JVM. * * @return the end time as Date object. * @since 0.3 */ public Date getEndTimeAsDate() { return DateUtil.parseDateTime(endTime); } /** * Returns the end time as Date object. * * @param tz * the timezone of the Asterisk server. * @return the end time as Date object. * @since 0.3 */ public Date getEndTimeAsDate(TimeZone tz) { return DateUtil.parseDateTime(endTime, tz); } /** * Sets the date/time when the call has ended. * * @param endTime * the date/time when the call has ended. */ public void setEndTime(String endTime) { this.endTime = endTime; } /** * Returns the total time (in seconds) the caller spent in the system from * dial to hangup. *

* Corresponds to CDR field duration. * * @return the total time in system in seconds. */ public Integer getDuration() { return duration; } /** * Sets the total time in system. * * @param duration * total time in system in seconds. */ public void setDuration(Integer duration) { this.duration = duration; } /** * Returns the total time (in seconds) the call was up from answer to * hangup. *

* Corresponds to CDR field billsec. * * @return the total time in call in seconds. */ public Integer getBillableSeconds() { return billableSeconds; } /** * Sets the total time in call. * * @param billableSeconds * the total time in call in seconds. */ public void setBillableSeconds(Integer billableSeconds) { this.billableSeconds = billableSeconds; } /** * Returns what happened to the call. *

* This is one of *

    *
  • {@link #DISPOSITION_NO_ANSWER} *
  • {@link #DISPOSITION_FAILED} *
  • {@link #DISPOSITION_BUSY} *
  • {@link #DISPOSITION_ANSWERED} *
  • {@link #DISPOSITION_UNKNOWN} *
* Corresponds to CDR field disposition. * * @return the disposition. */ public String getDisposition() { return disposition; } /** * Sets the disposition. * * @param disposition * the disposition. */ public void setDisposition(String disposition) { this.disposition = disposition; } /** * Returns the AMA (Automated Message Accounting) flags. *

* This is one of *

    *
  • {@link #AMA_FLAG_OMIT} *
  • {@link #AMA_FLAG_BILLING} *
  • {@link #AMA_FLAG_DOCUMENTATION} *
  • {@link #AMA_FLAG_UNKNOWN} *
* Corresponds to CDR field amaflags. * * @return the AMA flags. */ public String getAmaFlags() { return amaFlags; } /** * Sets the AMA (Automated Message Accounting) flags. * * @param amaFlags * the AMA (Automated Message Accounting) flags. */ public void setAmaFlags(String amaFlags) { this.amaFlags = amaFlags; } /** * Returns the unique id of the channel. * * @return the unique id of the channel. */ public String getUniqueId() { return uniqueId; } /** * Sets the unique id of the channel. * * @param uniqueId * the unique id of the channel. */ public void setUniqueId(String uniqueId) { this.uniqueId = uniqueId; } /** * Returns the user-defined field as set by * Set(CDR(userfield)=Value). *

* Corresponds to CDR field userfield. * * @return the user-defined field. */ public String getUserField() { return userField; } /** * Sets the user-defined field. * * @param userField * the user-defined field */ public void setUserField(String userField) { this.userField = userField; } public String getCallType() { return callType; } public String getRecordFile() { return recordFile; } public String getCallDestNum() { return callDestNum; } public String getCallSrcNum() { return callSrcNum; } public void setCallType(String callType) { this.callType = callType; } public void setRecordFile(String recordFile) { this.recordFile = recordFile; } public void setCallDestNum(String callDestNum) { this.callDestNum = callDestNum; } public void setCallSrcNum(String callSrcNum) { this.callSrcNum = callSrcNum; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy