Call CSV schedulers

This section allows programming automatic periodical CSV reports to brand operators.

Nota

This section is almost identical to Invoice schedulers except to the fields that do not apply to CSVs (Invoice number sequence, Tax rate...)

When adding a new definition, these fields are shown:

Name
Name of the scheduled Call CSV
Email
Send generated Call CSV via email. Empty if no automatic mail is wanted.
Client type
Selecting All will generate a CSV containing calls of all clients. Selecting one client type will allow selecting one specific client of that type.
Notification template
Used on email notifications for schedulers containing calls of all clients. In client specific schedulers, the notification template assigned to the specific client will be used.
Frequency/Unit
Defines the frequency (once a month, every 7 days, etc.) of the programmed task
Direction
Defines which calls should be included attending to its direction (inbound, outbound, both).
Carrier
Only for Direction: outbound reports, allows filtering calls of one specific carrier.
Client
Only for Client type different from All, allows selecting one specific client of chosen type.
DDI
Lists all DDIs of chosen client to get only calls from/to that specific DDI.
Endpoint type
Allows selecting one specific endpoint type of chosen client. Depending on client type, different values will be listed.
Residential device
Only for Client type: residential and Endpoint type: residential device, allows selecting one specific residential device of chosen client.
Retail account
Only for Client type: retail, allows selecting one specific retail account of chosen client.
User
Only for Client type: vpbx and Endpoint type: user, allows selecting one specific user of chosen client.
Fax
Only for Client type: vpbx/residential and Endpoint type: fax, allows selecting one specific fax of chosen client.
Friend
Only for Client type: vpbx and Endpoint type: friend, allows selecting one specific friend of chosen client.

Once created, some new fields and subsections are accesible:

Next execution
Shows next execution date
Last execution
Shows last execution and its result.

Truco

Modifying Next execution value allows forcing specific runs. For example, setting Next execution to current month’s first day will create again last month’s CSV report (for a monthly scheduler).

Generated CSVs of each scheduler can be accessed in List of Call CSV reports subsection.

CSV fields

These are the fields of the generated CSV files:

callid
Call-ID of the SIP dialog
startTime
Time and date of the call establishment
duration
Call duration in seconds
caller
Caller number in E.164 format (with ‘+’)
callee
Callee number in E.164 format (with ‘+’)
cost
Calculated cost for the given call
price
Calculated price for the given call
endpointType
Possible values: RetailAccount, ResidentialDevice, User, Fax, Friend.
endpointId
Internal ID of specific endpoint (only when endpointType is non-empty).
endpointName
User extension, friend name, fax name, retail account name or residential device name (only when endpointId is non-empty).
direction
Possible values: inbound, outbound.
companyId
Client ID
carrierId
Only for outbound calls, internal ID of used carrier
ddiProviderId
Only for inbound calls, internal ID of used DDI Provider
ddiId
Client DDI to which call will be assigned (callee for inbound calls, caller for outbound calls). Empty for wholesale clients.

DDI Provider detection

DDI Provider detection deserves a deeper explanation as is not as unambiguous as Carrier (carrier is the one chosen by routing logic, no doubt here).

DDI Provider detection logic is directly related to underlying DDI detection logic.

When IvozProvider receives an INVITE to KamTrunks from an outside entity:

  1. Source IP is compared against all DDI Providers addresses (from all brands).

    • If none matches, call is rejected.
  2. DDI is transformated in a loop using matching DDI Providers transformation rules (the lower id, the first).

  3. As soon as transformated DDI matches a DDI (in E.164) within the same brand, loop ends and call is accepted.

    • If loop ends without any match, call is rejected.

The DDI Provider that allowed that match is saved as DDI Provider for that inbound all, except:

  • Matched DDI is linked to another DDI Provider that also matches source IP address. If this happens, linked DDI Provider is saved instead.

Using CSV scheduler as a one-shot CSV generator

External Calls section can filter list and export resulting rows to CSV, but filter criteria are much powerful in Call CSV schedulers section.

That’s why it could be useful to use this section even if we are not interested in scheduling any recurring CSV.

Nota

Scheduling a CSV to generate just a CSV could be useful as Call CSV Schedulers have more filtering criteria than External Calls section.

Imagine you need:

  • Start date: 2020/06/02 (included)
  • End date: 2020/06/14 (included)
  • Client: XXX (vpbx)
  • Inbound calls to YYY DDI answered by user ZZZ

To achieve such a CSV using schedules section we would create a scheduler with these inputs:

  • Client Type: vpbx
  • Client: XXX
  • DDI: YYY
  • Endpoint Type: user
  • User: ZZZ
  • Direction: inbound.
  • Unit: days.
  • Frequency: 13

Truco

Get sure you set Unit to days and Frequency to the amount of days wanted in resulting CSV. In the example, from 2nd of June to 14th, both included, we have 13 days.

Once generated, we would edit Next execution time from tomorrow’s date to 2020/06/15, leaving time unchanged.

Truco

Get sure you modify Next execution to the first day not wanted in resulting CSV.

Then we will wait a few minutes until scheduler generates our CSV, download it and delete the row to avoid recurrent CSV generation.