JExpr field properties

The following fields are used to configure the JExpr properties of the flexible importer.

Skip expression
Values: true, false
Purpose: Specifies header and footer rows of the CSV file. When true the entry is skipped.
Example:
$1 != "CDR"
Column 1 is not equal to "CDR". Any rows that do not contain the text "CDR" in the column 1 cell will be skipped.
Item validity expression
Values: true, false
Purpose: Used to detect malformed rows. When false the entry is not valid
Example:
$$ == 4
There must be exactly 4 columns for an item row.
Username
Format: String
Purpose: Specifies the username to apply the CDR against.
Example:
$2
The username is the entry in column 2.
Call timestamp
Format: Java date/timestamp (java.util.Date)
Purpose: Specifies the date and time the CDR event began or occurred.
Example:
parsers.parseDate("yyyy-MM-dd HH:mm:ss", $11)
The entries in column 11 are currently formatted in the format yyyy-MM-dd HH:mm:ss. parseDate parsers the date to...
Caller number
Format: String
Purpose: Specifies the number from which the CDR event originated.
Example:
$6
The caller number is in the sixth column.
Called number
Format: String
Purpose: Specifies the number to which the CDR event was sent.
Example:
$7
The called number is in the seventh column.
CDR billable duration in seconds
Format: UTInteger
Purpose: Specifies the duration of the CDR. Must be > 0 to be billable.
Example:
$5
The CDR billable duration in seconds is in the fifth column.
Wholesale price
Format: UTDecimal
Purpose: Specifies the charge for the CDR from the vendor.
Example:
$3::UTDecimal
Convert the entry in column 3 to javaBigDecimal format.
Tariff code
Format: String
Purpose: Specifies the tariff code which Smile should use to rate the call.
Example:
$4 + "-" + $12
Concatenates the contents of column 4 with column 12, with an intervening hyphen.
Call type
Values: CallType.getVoice(), CallType.getData(), CallType.getSms(), CallType.getMms(), CallType.getFax(), CallType.getWap(), CallType.getForwardedCall(), CallType.getCount(), CallType.getUnknown(), CallType.getVideoCall(), CallType.getIsdn(), CallType.getImportedCharge()
Purpose: Specifies the call type. Defaults to CallType.getVoice()
Example:
CallType.getVoice()
The call type is voice.
Chargeable
Format: Boolean
Purpose: Specifies if the CDR entry is chargeable. When false Smile will not rate the call. Defaults to true.
Example:
false
The call is not chargeable.
Description of event
Format: Text
Purpose: Specifies a custom description of the call event. When set, Smile will by default separate the call's charge to its own line item with this description. Mostly useful for imported charges.
Example:
$13
The description of the event is in the thirteenth column.
Bytes uploaded by customer
Format: UTLong
Purpose: Specifies the amount of data uploaded in bytes.
Example:
$14::UTLong
The bytes uploaded by customer is in the fourteenth column.
Bytes downloaded by customer
Format: UTLong
Purpose: Specifies the amount of data downloaded in bytes.
Example:
$15::UTLong
The bytes downloaded by customer is in the fifteenth column.
Pages
Format: UTInteger
Purpose: Specifies the number of (fax) pages to be billed.
Example:
$16::UTInteger
The number of pages to bill is in the sixteenth column.
Count
Format: UTInteger
Purpose: Specifies the number of CDR events to be billed.
Example:
$17::UTInteger
The number of CDR events to bill is in the seventeenth column.
Percentile rate
Format: UTDecimal
Purpose: This figure is used to convert the single once-off activity this CDR represents (such as a text message or flat-rate phone call) into a quantity of billing units that are later translated into a retail price to bill the subscriber for.
Example:
$18::UTDecimal
The percentile rate is in the eighteenth column.
Bytes sent from customer percentile rate
Format: UTDecimal
Purpose: This figure is used to convert the amount of bytes transmitted on the network from this subscriber into a quantity of billing units that are later translated into a retail price to bill the subscriber for.
Example:
$19::UTDecimal
The bytes sent from customer percentile rate is in the nineteenth column.
Bytes sent to the customer percentile rate
Format: UTDecimal
Purpose: This figure is used to convert the amount of bytes received thru the network by this subscriber into a quantity of billing units that are later translated into a retail price to bill the subscriber for.
Example:
$20::UTDecimal
The bytes sent from customer percentile rate is in the twentieth column.
IP Address
Format: String
Purpose: Specifies the IP address of the client's device.
$21
The IP address is in the twenty-first column.