TeleMate Managed Access Service First Steps Guide TeleMate Managed Access Service – Overview The TeleMate Managed Access Service makes it easy for you to out‐source your Call Accounting solution. The only software you need to install on‐site is the TeleMate Collector Pro (which is described in detail in another document), and our customer service representatives will assist you with its installation and configuration. Once all of your CDR and directory logs are being collected and relayed to our managed access servers, we find out from you how you need the data processed, and then we configure it for you. After that, the only thing you have to do is decide what reports you want to see. You will be give n your own HTTPS web portal with a host name like <customer>.telemate.com with a valid trusted certificate, and you can use that portal to run ad‐hoc reports or schedule them to be distributed automatically. Service Highlights • The managed Service is SSAE-16 Type 2 certified. All processes and controls are audited and tested by a third party CPA firm annually. • The managed server cluster is kept at a secure co‐location with redundant power, cooling, and high‐speed Internet service. This provides a very high level of physical security and availability. The co-location facility is located at Quality Technology Services – Atlanta Metro http://www.qtsdatacenters.com/data_centers/southeast/atlanta_ga.aspx • The cluster is kept behind a firewall. Aside from the VPN connection set up at our main office for remote administration, every port is locked except for TCP port 443. No traffic is allowed into the cluster unless it is properly encrypted and bound for a valid destination. • All incoming connections are directed to a restricted service running on a secure Unix server. That service accepts relay connections from TeleMate Collector Pro installations. It also acts as a proxy for HTTPS requests to <customer>.telemate.com. All other connection attempts are rejected. • A new Virtual Machine is created for each customer with its own TeleMate enterprise server installation. Each has a completely separate configuration, web server, and database attached to our managed server cluster(s). • TeleMate Professional Services configure and manage all of your data sources for you by configuring custom CDR Layouts, applying tariff and location updates, configuring trunk groups and costing methods, and making sure the data makes it into the database the way you need it for your reports. • All customer log files and databases are backed up on a nightly, weekly, and monthly rotation schedule. • Nightly and weekly backups are kept at the co‐location for quick recovery. Monthly backups are taken off‐site to protect against a disaster at the co‐location. Virtualization technologies are utilized for intra-day recoveries. Web Portal Highlights • Each customer receives their own host name under the telemate.com domain. • The web portal only accepts HTTPS traffic, and our server has a valid trusted certificate. • With the help of customer service, each customer may set up accounts for logging into their web portal. All features of the web portal are security based and can be controlled by a user’s log-in credentials. You may choose to have one administrator account or multiple that sets up the access levels and reports for individual managers or you may choose to give each manager an account, only allowing each to run reports on their department or staff. • In addition to letting you run/schedule reports, the web portal also allows you to view/manage the TeleMate directory. Some customers will use the Collector Pro to provide directory changes automatically, but some will manage it manually through the web portal. The web portal allows you to manually make moves/adds/changes, but it also allows you to export all or part of the directory to a CSV file, update it, and import the changes back in. • Completed reports may be archived on the web portal for a period of time, where you can download them securely via HTTPS. Report archives can be individual or group accessible. Archives content can supports several automatic management methods to ensure archives always contain current reports. • If you choose to configure SMTP, you may also configure reports to be delivered by email. However, SMTP by itself is not secure, and secure SMTP becomes insecure if it must be relayed to another server. Therefore, you must have your own secure SMTP server configured so that our managed server can access it when it needs to send an email if you wish to use this option safely. You may also use a web‐based email account like Gmail if you trust it to keep your data safe. • If your log collection method is real‐time or near real‐time, you can take advantage of the web portal’s real‐time call monitors. You can monitor trunk groups, departments, call types, and several other values, and you can choose to graph the total cost, count, concurrent usage, or duration. You can make a graph persistent (or saved) so it’s always there when you log into the portal, and you can configure alert emails to be sent for persistent graphs when a line on the graph goes too high or low. The TeleMate Managed Service Web Application Interface TeleMate’s web interface allows administrators to access reports, directory, and real-time call monitors from anywhere on the network without having to install a client. Administrators can also grant access to managers and other employees in the organization who need to be able to access that information. The web interface must be licensed separately from the main product, but you may evaluate it for free for up to 15 days after installing the product. The web interface also provides some features that are not available in the main TeleMate product. LDAP imports allow you to import your organization into TeleMate's directory using LDAP (i.e. Active Directory, eDirectory). Real-time call monitors allow you to watch calls in real-time on graphs as soon as they are logged by your phone system, and to give email alerts when certain thresholds are exceeded. The graphs are updated every 15 seconds, but new data is processed and alerts may be generated every second (depending on how quickly you can collect CDR data). Logging into the Web Interface Once you have the web server service running, press the "Browse" button in the service manager to open your default web browser and point it to the correct web page. You will be asked to log in. If the authentication method you chose was "TeleMate Login Only", then your password will be blank the first time you login. You may change it from within the web interface or from the user manager component. If you chose "TeleMate and LDAP Login" and provide a domain when logging in, then your password will be sent to your LDAP server (i.e. domain controller) for authentication, allowing you to use Windows domain passwords, which keeps you from having to manage a separate password in TeleMate. Warning: TeleMate requires HTTPS for LDAP authentication to avoid sending your domain password across the network without encrypting it. However, if your domain controller is not using secure LDAP (LDAPS), the LDAP protocol will transmit domain passwords in clear text. If there is a chance someone may be able to intercept packets between your TeleMate server and your LDAP server, make sure the LDAP server is configured to use LDAPS. The Navigation Bar The first thing you should notice after you log in is the navigation bar at the top of the page: The navigation bar consists of icons on the left for switching between TeleMate components, links on the right for accessing user and system settings, and a component bar to show the current component and provide links to access views and commands specific to that component. The round blue "info" icon on the far right shows the status of tasks running in the background. It will change to an animated icon when tasks are running or a red “x” when tasks have failed. Click on it for more detail information. Manager Settings Click the link containing your login name on the right side of the navigation bar to access manager settings. This will open a dialog box that will allow you to change your password (unless you’re using an account tied to an LDAP source). System Settings Select the “Settings” link on the right side of the navigation bar to access system settings. The system settings allow you to configure system-wide options, like mail server settings and custom text strings. There are also component-specific options that can be configured for Reports, Monitors and the Directory. General Settings The system settings allow you to configure mail server settings for emailing reports and monitor alerts. Note the “Test” (check icon) and “Save” (disk icon) buttons in the upper-right corner of the bubble, as well as the down arrow above them. Clicking the arrow will expand or collapse the bubble, which you may want to use to hide options you rarely need to change. Buttons inside a bubble only affect what’s inside it, so pressing this “Save” button will only save the mail server settings. The system settings page also allows you to configure LDAP authentication sources, which allow you to configure manager accounts that send authentication credentials to a LDAP server. This allows your managers to log into the web interface using their domain login and password instead of having to manage a separate login and password. Authentication Note: Entering a domain name for an LDAP source is required and must be unique. It provides a “default” domain/organization so your managers don’t have to type so much when logging in. For Active Directory, entering “mydomain” will automatically look for “mydomain\john.smith” when “john.smith” logs in. For eDirectory, entering “o=myorg” or “myorg” will automatically look for “cn=john.smith,o=myorg”. The LDAP server value can be multiple values separated by a comma. It allows you to provide a backup server in case the other LDAP server goes down. It is suggested that you use the full host name like "dc01.telemate.net". Note: If you are experiencing slow connection times check your server names to ensure that they are valid. Failed DNS resolution can slow down the connection times. Sample Active Directory LDAP Source: Sample eDirectory LDAP Source: The system settings page also allows you to configure custom field names. Custom field names are special names set aside by TeleMate to be flexible to meet the needs of your organization. For example, if you use TeleMate to bill your customers, you may want to change “Division” to “Customer” and “Department” to “Customer Site”. Note: Custom 1-10 and Trunk Misc 1-5 are used for special information not normally handled by TeleMate. As a result, these fields will be hidden everywhere in the web interface unless you give them a name here. Report Settings The report system settings allow you to configure the global reporting options. Each TeleMate web login gets its own archive – which corresponds to a directory beneath the specified root folder on the TeleMate server – where completed reports are saved for a number of days (which you specify when you provision a user in the Security Manager). Old reports are purged from archive folders every day at the specified time. TeleMate's web interface also keeps track of each user's most recently run reports, including the filter and destination options selected for those reports. You can change the number of most recently run reports tracked by TeleMate here. Monitor & ViewPoint Settings The monitor system settings allow you to control how “custom” fields are used in TeleMate’s real-time monitors. The values have to be stored as text in the TeleMate database, but they may actually be simple numeric values (e.g. a reason code or call quality measurement) or they may be numeric values you want to accumulate/sum (e.g. VoIP byte or packet counts). It is important to select “Numeric” or “Accumulator” for numeric fields because “Text” comparisons do not work properly for numbers. Only the first character matters when comparing “Smith” to “Ramsey”, and for the same reason “4” would be less than “35” for a text field. The additional cost fields – Account Cost, Call Type Group Cost, and Department Cost – are used by a very small percentage of our customers, so they are disabled in the monitors by default to avoid confusion. They can be enabled as accumulators by setting them to “Enable”. Once enabled, they will appear as an accumulator in the monitor properties. You can also request a reload of all Monitor and ViewPoint data. In the Monitor and ViewPoint service, once a record is loaded, it will not be updated automatically. For example, if you assign a department to your Atlanta site location, newly processed calls will show up in the new location, but calls that have already been processed will remain where they were unless you explicitly request a reload. Reloading data will clear data for ALL users. The reload will re-populate them, but it may take a few minutes. Organization Settings The organization system settings allow you to configure a number of system-wide properties specific to the Directory component’s Organization section. Just as the monitors have custom fields, the directory organization has 10 user-defined fields to allow you to store custom information for each user. In addition, you can define workgroups and titles to assign users to as well as site locations, publish types, and call plans to assign extensions to. Expense Settings The expenses system settings allow you to configure a number of system-wide properties specific to the Directory component’s Expense section. This is the place to create vendors and general ledger numbers that you assign expense codes to. Dashboard Settings The dashboard system settings allow you to configure the global options for the Dashboard for Contact Center. The settings page allows you to configure custom values for Agent States which are the statuses reported by the Contact Center. The page also allows you to configure custom literals. Custom literals are special names that can be customized to reflect how you define items in your organization. Also, you can configure custom variables. Custom variables are special fields provided in Contact Center. Providing a custom name for the variable will allow it to be displayed in the 'Calls' section of the dashboard. The Reporting Component Select the reporting component when you need more comprehensive information from TeleMate. Perhaps you need a comprehensive summary report, reports on call volume, call trends over time, or you want a PDF automatically generated every night/week/month for you to review. When you select the reporting component, the component bar changes to allow you to switch between the four main reporting views: Configure Reports Select “Configure Reports” when you want to run, save, or schedule a new report. It will show you a list of all available report templates, which will be grouped by report categories. Keep in mind that the reports available to you will depend on the features your TeleMate is licensed for and the data you’re processing. For example, if have not configured any expenses and run an expense distribution, you won’t even see the “Expenses” category. When you select a report template from the list, it will display a set of options and filters for you to choose from before you run, save, or schedule the report. Note that each report template may have a different set of options and filters. Commands There are three commands available when configuring a report: copy (only available for stored reports), delete (only available for stored reports), and run/save (which changes depending on the selected frequency). Properties The most critical properties when configuring a report are the date range you want to run it for and whether you want to run it immediately, save the currently selected options so you can reuse them later, or schedule it to run automatically. If saving or scheduling it, you must specify the name you want it to show up under in the “Stored Reports” list. If scheduling it, additional options will become available to let you define the frequency. Note: If you’re logged in with an admin account, you can choose to assign a saved/scheduled report to someone else’s account. Distribution These options allow you to choose the report’s file format (PDF, Excel, RTF, CSV, TXT, or HTML) and where to deliver it. All completed reports will automatically be stored in an archive, which equates to the user’s “Completed Reports” list. However, completed reports can also be delivered automatically via email, FTP, etc. TeleMate’s delivery mechanism allows custom scripts to be written to provide custom delivery methods. Note: If you’re logged in with an admin account, you can choose to deliver the report to another account’s archive (their completed report list). Options These optional formatting options allow you to customize certain aspects of how the final report looks. One example of this would be to remove all charts from a report, which can make the resulting report file significantly smaller, which may be necessary to get around mail server attachment size limits. Each report can have completely different options. For instance, a report with no charts would not have an “Include Charts” option. Some options may be available in many reports, but others may only show up in one report. If you’re not certain what an option does, allow the mouse cursor to hover over its name to see a longer description pop up over it. If you’re still not certain, try running the report with different options and look for differences. Filters Filters are also optional, but it is very important to consider them when configuring a report. If you have 3 data sources and you only want to see data processed by one of them, specifying a filter on that data source will make the report run a lot faster and will make the resulting report a lot smaller. When running detail reports, you could end up with a report that is too large to open. It could easily be hundreds of pages. Note: When you configure a user account, you can limit the data sources and departments it can access. In that case, every report that user runs will have filters automatically applied. To configure a filter, select its name to open the filter panel beneath it: For each filter type, you can specify several criteria (or rules) of different types. As you add criteria, descriptive text is placed next to the filter name to try to make the logic clear regarding how the rules are combined. The example above will report on any user starting in “smith” UNLESS they are “Smith, Sarah”. To remove a filter rule, click the “x” button on the right of the rule. To remove all filter rules, click the “x” button to the right of the filter name. To hide the filter panel, click on the filter name again or click on another filter you wish to configure. Note: When you combine different types of filters, the logic is always “AND” logic. You can run a report showing calls for user “Smith, John” AND call type “International”. You cannot run a report showing calls for user “Smith, John” OR call type “International”. Stored Reports Select “Stored Reports” when you want to view, manage, or copy saved or scheduled reports. Click the name of a stored report to modify it. Check the box next to it and click the red “X” button to delete it. Click the “Run” link to make a copy and queue it to run immediately using all the options you’ve selected for that stored report. Click the “Copy” link to start modifying a copy of the report, which will be saved under a different name. Note that the “Schedule”, “Last Run”, “Duration”, and “Next Run” columns in the table are for scheduled reports only. Note: If you’re logged in with an admin account, you will be able to view and modify saved/scheduled reports assigned to other accounts. Pending Reports Select “Pending Reports” when you want to view or manage reports that have recently been queued to run. In the screenshot above, the reports have been queued but haven’t finished yet. If you check the box next to a pending report and click the red “X”, it will be cancelled (terminating the report engine if it is currently running for that report). Note: If you’re logged in with an admin account, you will be able to view and delete reports pending for other accounts. Completed Reports Select “Completed Reports” when you want to view or manage reports that have recently finished. In the screenshot above, all the reports have finished running. If you check the box next to a completed report and click the red “X”, it will be deleted. The icon next to a report is very useful. A blue “i” (for info) indicates that it completed without warnings or errors. A yellow exclamation point indicates that it generated a warning. A red X indicates that it failed to complete. In all cases for a completed report, you can click on the icon for more information. Click on the name of the completed report to open the report file. This will attempt to open the report in your web browser (e.g. using the Adobe PDF plugin). If you want to download the report file to open it locally, you can right-click on the link instead and select “Save As” (the exact name of the command will depend on which web browser you’re using). Note: If you’re logged in with an admin account, you will be able to view and modify archives assigned to other accounts. The Monitoring Component Select the monitoring component to manage and view real-time traffic monitors. The monitors allow you to tell the TeleMate processing engine to keep an eye on something specific for you as it processes real-time data. You can then check the monitor component at any time and instantly see all monitored traffic for the past 24 hours (down to 1-minute increments) in a graph or the last records processed. You can even set up alerts to have the processing engine alert you immediately if the monitored traffic exceeds certain thresholds. The first time you select the monitoring component, the only option available is to create a new monitor. Monitor Properties – General When you first create a monitor, you must choose a name and style type. The style type will determine which type of monitor you have, either a line graph or a record list. If you choose a record list monitor the rest of the settings on the General tab are optional, unless you plan to use Alarms. To set up lines on a line graph or if you plan to configure alarms on a record list, a field to group by (i.e. department, trunk group, call type, call direction, country, part of the phone number) and a quantity type to calculate (i.e. cost, count, concurrent, duration) must be chosen. Then you must select specific values of the chosen field. Each value you choose becomes a line on the graph and/or an item monitored for alarming. When setting one up, it looks like this: Monitor Properties – Columns If you have chosen a record list monitor you will see an additional tab for columns. The columns you choose are displayed in the monitor. You must select at least one column to be displayed by the monitor. The order of the columns can be changed by clicking on the column in the list and dragging it to a new position. Monitor Properties – Filters In many cases you will need to filter the data you are monitoring. For instance, you may have one phone system in Atlanta and another in Los Angeles, and you may only want to monitor calls from Atlanta. In that case, you may select the "Filters" tab and filter the calls by any of the fields in the drop down on the filters tab. Note: Monitor line filters work the same way report filters do, but because space is more limited in a dialog, the way you add a new filter is slightly different. Monitor Properties – Advanced The advanced tab is for creating snapshot or persistent monitors. A snapshot monitor is a monitor that goes back to a specific date and time and builds the graph as it would've looked then. Because the time period of a snapshot monitor is fixed, it does not update in real-time. A persistent monitor does not go away when you close your browser session. The web server continues to monitor calls even when you are logged off, and the next time you log in the graph is already there waiting for you to look at. Monitor Properties – Alarms Because snapshot graphs do not update in real-time, only persistent graphs have the option to set alerts on them. This feature is similar to features offered in TeleMate's Alarms component, but it is not the same. The Alarms component was designed to help administrators catch phone system fraud and emergency calls. These alerts were designed to help managers monitor employee call usage. For example, the manager of a call center may want to know when call volume drops below a certain threshold during times of the day that are supposed to be busy. There are several alarm delivery methods. An email can be sent, an SNMP trap can be generated, a report can be launched, etc. As with the report delivery mechanism, custom scripts can be written to provide custom alarm delivery methods. Monitors – Record List Record list monitors displays the most recent records processed into TeleMate. Once you have one set up and have data processed into your monitor, it should look something like this: More than any other TeleMate component, the monitor packs a lot of clickable items into a very small space. The commands at the top are (from left to right): Pause/Play – Either pauses or resumes the monitor. Number of Rows – Adjusts the number of rows displayed Properties – Allows you to edit the properties of the monitor Copy – Copies the monitor’s properties Open in New Window – Allows you to open a specific monitor in a separate browser window (useful when you have multiple monitors to keep an eye on) Delete – Allows you to delete a monitor In addition to those commands, you may resize the bottom portion of the monitor. If you have multiple monitors, you can click on their title bars and drag them to order them however you want. Monitors – Line Graph Line graph monitors display the data plotted over the last 24 hours. Once you have one set up and have data processed into your monitor, it should look something like this: Like the record list monitor, the monitor has a lot of clickable items. The commands at the top are (from left to right): Range – Scale the graph horizontally to show the past 1 to 24 hours Offset – Shift the lead time of the graph (use with range to focus on a specific hour) Increment – Summarize the counts into buckets ranging from 1 minute to 30 minutes Zoom – Scale the graph vertically to show a specific line to its best advantage Properties – Allows you to edit the properties of the monitor Copy – Copies the monitor’s properties Open in New Window – Allows you to open a specific monitor in a separate browser window (useful when you have multiple monitors to keep an eye on) Delete – Allows you to delete a monitor In addition to those commands, you may resize the top and bottom portions of the monitor. If you have multiple monitors, you can click on their title bars and drag them to order them however you want. If you click on the color box for a line, it toggles the line between normal, highlighted, and hidden. If you select "Show Details" in the menu, it will bring up a window showing you all the calls that make up that line in the graph. For performance reasons, the calls show up in reverse order based on the time the call was collected and processed (typically the end time of the call for real-time collection and processing), and the call time shown is the local phone system time (not the local browser time you see in the graph). By default the number of calls displayed is limited to 1000, and you can specify how far back in time you want it to start looking. If you want to see the calls presented in a different way, you need to run a full report. This feature is meant to be a quick tool to see what's going on when there's a spike in the graph, and its purpose is defeated if it takes a long time to run. Performance Tips The web server maintains all monitors for all web users on the server. The graphs are updated in their own processing thread so they can utilize additional CPU cores if you have them, and to avoid making the web server pause while the graphs are being updated. Whether the web server is building 1 graph or 10,000, it runs the same number of queries against the database when checking for new calls. When all real-time graphs are up-to-date (i.e. when none are reloading the past 24 hours), the server runs one query per second, takes all new calls it finds, and checks each graph to see if the call applies to it. This is very fast even if you have a lot of graphs and very high call volumes (i.e. 200 calls per second sustained for a long period of time). If any real-time graphs are in the process of reloading the past 24 hours, the server runs a second query per second to find the older calls it needs. If you have 100 graphs being reloaded and each started reloading at a different time, you would see the newest graph start updating in reverse chronological order until it caught up with the next most recent graph. Then both would be updated in sync until it caught up with the next one, and so on until all had been reloaded. One problem with this is that if someone creates a new graph while your graph is reloading, the process will start over again. This means your graph may pause while loading halfway through until the new graph catches up to yours. (Real-time graphs that are reloading will still always get new calls as they come in, only the reload of the past 24 hours will pause.) The benefit is excellent performance no matter how many graphs you have reloading. The database queries it is using are designed to be as fast as possible, but they still take much longer than the calculations required to build the graphs. Snapshot graphs are not real-time, and they present a very different problem. Because they can be configured to show a day from last week, last month, or even last year, snapshot graphs cannot share query results with other graphs. This means that each snapshot graph must be given a separate processing thread that must run separate database queries, so each snapshot graph has a much higher incremental cost. It should not be a problem if a few users decide to create a snapshot graph at the same time, but the more you have loading at the same time, the slower the server will run. Once a snapshot graph finishes loading, it stops impacting the web server's performance. If your call volume is not high and snapshots load quickly, you may not have to worry about them at all. If you have over a million calls per day, it may take an hour to scan through all those calls to load a snapshot. The Directory Component The Directory Component is made up of Organization, Expenses, Invoice Batches and Imports sections. Organization Select “Organization” when you want to view and manage companies, divisions, departments, users, and extensions in your directory organization. The left-hand side of this section provides controls for navigating through your directory tree. Select the “Organization” tab when it is easier to navigate by clicking through a tree of companies, divisions, and departments. When it is easier to type in a few characters of what you’re looking for, select the “Find” tab. We recommend that you get familiar with both navigation methods, as the “easier” method changes based on what you need to accomplish. Note: In the Organization tree, the option to add a new entity at a specific level will only appear if the currently selected item provides a valid “parent” to assign it to. For example, if you select a company, you can’t add a department because it is not clear which division it should be assigned to. Regardless of how you choose to navigate, once you select a directory entity at any level, its properties and children will appear on the right-hand side of this section. Note that entities at different levels of the organization will have different options and properties. For example, the department level allows you to specify a costing method or markups, the user level allows you to specify a job title, and the resource (extension) level allows you to specify call plans. Common to All Levels While some levels of the tree have special options, there are some general options that are the same on every level. No matter where you are in the tree, you will see a “You are here” section at the top. The first line of text shows the level and name of the currently selected directory entity. The second line of text shows where it is currently assigned in the directory tree (using links to let you quickly jump to any parent level). The image above shows the “Development” department in the “Atlanta” division of the “TeleMate.Net Software” company. To the right of the text you will see a number of buttons for making changes to the current entity: 1) History – Select to view/modify the list of historical changes (e.g. transfers) for this entity. For example, if “John Smith” was transferred from the “West Coast Sales” department to the “East Coast Sales” department on June 1st, the history listing for “John Smith” will show that transfer. If the transfer was a mistake and you need to change or delete it, you should do that here. Note: If historical tracking is disabled, each entity will only have one history record to represent where it belongs (for all dates). If you change it, you change it for all dates. 2) Transfer – Select to transfer any directory entity from its current parent to a new parent. When historical tracking is disabled, this simply replaces its only history record. When tracking is enabled, it creates a new history record, which requires you to specify an effective date. 3) Create Invoice Batch – Refer to the “Invoice Batches” section below for an explanation. 4) Delete – Select to delete the currently selected entity. This is a recursive deletion that can have unintended consequences when historical tracking is enabled, so be very careful when deleting anything in the directory. The only time deletion is completely safe is when you recently created a directory entity by mistake and no calls or expenses are assigned to it. Otherwise, we recommend you transfer entities to “!Unassigned” instead of completely deleting them. Reminder: Background Tasks Operations like transfer and delete may take a while because they may affect a lot of records in the database, and they may require integrity checks or locks to clear before they complete, so they are run as background tasks to keep the web browser from getting stuck for long periods of time and/or timing out. Check the status of background tasks by clicking on the “info” icon in the top-right hand corner of the page. This is an example of both successful and failed deletion tasks: Properties When you select a directory entity at any level, it will have a “Properties” section for general properties. The most common properties in this section are name, description, and email address (for email breakout report distribution), but some levels will have different properties: Children When you select a directory entity at any level, except the very bottom of the tree, it will have a “Children” section. This section allows you to manage all children, grand-children, etc. beneath the selected entity: The “Display” option defaults to show the children directly beneath the current entity, but you can change it to show any level of the tree below the current one. The text box next to the display selection allows you to quickly search the selected level. So if you select “Extension” and type “55”, it will show you all extensions beneath the current entity that contain “55”. The buttons available on the right allow you to: 1) Add – Create a new child entity (direct children only, not grand-children). 2) Import – Use to quickly re-import a file you have modified after exporting it. The file format must be exactly the same as the format generated by the Export button (see below). Note: The import is actually global and not specific to any directory entity. The button only appears here because it goes with the Export button, which is specific to this entity. 3) Export – Quickly export the properties of all children beneath the currently selected entity to a csv file. You can modify those properties in Excel or some other csv editor. 4) Transfer – Executes a batch transfer for every child selected in the list. 5) Delete – Execute a batch deletion for every child selected in the list. Note: There are a few special cases when some of these buttons are not applicable, in which case they will be grayed out or give an appropriate error message. For example, you may not transfer invoices or any level of the built-in “!Unassigned” bin. Company Level The company level has no additional properties. Since it is the highest level in the organizational tree, companies have no parent, which means they cannot be transferred and do not have history. Division Level The division level has no additional properties. Department Level In addition to its common properties, a department can have a site location. Site locations can be used to determine the physical location of an Extension. When a site location is set at the department level all extensions in that department will have the site location unless it was explicitly set at the user or extension level to something else. The Override button clears any site locations set at the user or extension level, so that they will use the location set at the department level. Departments can also have cost adjustments applied to calls or a completely different costing method selected. This is useful if you have departments that represent customers or clients that you wish to bill for phone calls. Most of our customers configure a primary costing method that represents what they are being charged by the phone company. Then for each department, they specify a markup or select a completely different costing method to represent the cost they wish to allocate/charge their departments/customers. The standard “Profit and Loss” report will compare these two costs. User Level The user level has quite a few more properties than all of the other levels: A user can be categorized as one of three types: person, overhead, or miscellaneous. The type selection is purely informational, and most of our customers only use it as a reminder when they create an overhead user under a department with the same name to assign shared resources (e.g. fax machines) and expenses (e.g. the cost of the phone line for that fax machine). The street address properties are also informational, but they show up on all of our bill reports. You can also select a title and/or a workgroup for each user. While these selections are primarily informational, they are also available as filters on almost every Call Accounting report, so you can use these selections as an alternate way to group users together outside of the department they belong to. If you need to create new titles or workgroups to choose, click on the “settings” link in the top-right corner of the web interface. Then select the “Organization” settings and look for the “Titles” and “Workgroups” sections. You can also select a site location. Similar to site locations in departments, they can be used to determine the physical location of an Extension. When a site location is set at the user level all extensions assigned to that user will have that site location unless it was explicitly set at the extension level to something else. The Override button clears any site locations set at the extension level, so that they will use the location set at the user level. User-Defined Data Our customers often wish to import or enter additional information for each user in the directory, but different customers have different needs. As a result, we reserve 10 fields that you can define to use for anything you wish. To use one of these reserved fields, click on the “settings” link in the top-right corner of the web interface. Then select the “Organization” settings and look for the “User Defined Fields” section. When you specify a name for one of these fields, it will show up as a filter in most of our Call Accounting reports (using the name you specified). Devices You may also add custom “devices” (or phone numbers) for a user, such as their home phone, cell phone, etc. This is purely informational, and is not used by any of our standard reports (though custom reports can be written to use this information). Expenses If you purchased an Enterprise license for TeleMate, you can also manage expense code assignments for the selected user here. Refer to the documentation on the Expenses section for more information. Address Level The term “address” is an aggregate that includes any unique identifier that can be used to assign calls to a user in TeleMate. These can be extensions, DISA numbers, cell phone numbers, calling card numbers, VoIP logins/addresses, etc. If we use it when processing call logs to identify which user “owns” the call from an accounting viewpoint, it’s an address. In the current release, all addresses are treated as one of two types: Extensions and DISA numbers (which are often called auth codes). In practice, either type can be used for just about anything. The “Extension” type is typically used for anything that identifies a physical phone, calling card, etc. The “DISA” (Direct Inward System Access) type traditionally refers to private authorization codes used to identify employees placing calls from any phone. As such, DISA numbers have no physical location and they override the ownership implied by the call’s extension, and by default the numbers themselves are hidden on most Call Accounting reports. Options As mentioned above, extensions have a few additional options that DISA numbers don’t have. First, extensions have Site Location and Publish Type selections. These work exactly the same way that the Title and Workgroup selections work at the user level, and they can be used for just about anything you need to use them for. For example, you may wish to create special publish types for hunt pilots, customer service lines, fax machines, floor extensions that any employee can pick up, or dedicated extensions. Call Plans In addition, extensions can be assigned to call plans to help you track when a particular extension is making too many (or too few) calls. Call plans can be configured by clicking on the “settings” link in the top-right corner of the web interface. Then click on the “Organization” link and look for either the “Call Plans” section. By running the reports in the “Call Planning” category, you can watch for over-use (e.g. cell phones costing you extra by exceeding the number of minutes included in their plan) or under-use (e.g. call center agents not answering enough calls). Expenses The Expenses part of the Directory component can only be accessed if you purchased an Enterprise license for TeleMate. It allows you to allocate and distribute specific costs to the users responsible for them. For example, you may wish to allocate a one-time charge of $50.00 to a specific user to cover the installation of a phone line on a specific date, and then a recurring charge of $20/month while that phone is in use. You can also create a very large expense and distribute the cost across several users/departments (and across several months/years). You can then run monthly distributions and reports to calculate budget expenses for departments or divisions, bills for clients, etc. The Expenses feature also ties into our invoicing features by allowing you to create expense codes that assign different percentages of call costs for different call types. This allows you to account for call costs as well as to calculate fees based on a percentage of call costs (e.g. local/federal USF charges). You may also specify which taxes to apply to each expense code. Like the Directory, information is presented as a tree of expense categories, expense codes, assigned users, distribution periods and applied expense distributions. Categories The category level of the tree allows you to manage a specific expense category. You can modify the selected category's properties as well as add/edit/delete expense codes assigned to this category. Click the red "X" in the title bar of the expense category to delete the selected category along with all codes, assigned users and distributions associated with the category. Unless you execute a search, the Children section will show all of the codes for the selected category. To assign new codes, select the "Add” button in the upper left corner. Codes The code level of the tree allows you to manage a specific expense code. You can modify the selected code's properties as well as manage users assigned to this expense code. Click the red "X" in the title bar of the expense code to delete the code and all assigned users and distributions associated with the code. The Expense Code properties are straightforward. The Reporting Label is only used in reports as a longer descriptive name. There are several distribution types that affect how the expensed cost is distributed to assigned users: Period, Once - Distributes a one-time cost to any user you choose on any date you choose. A good example of this would be a fixed charge for installing a phone line. If John Smith has 3 phone lines installed on June 5, you can assign the “Phone Line Installation Fee” expense code to John for June 5 and set the assigned quantity to 3. When you distribute costs for June and run bill/expense reports, the appropriate cost will be applied. Period, Recurring - Distributes a recurring expense to all assigned users from the specified start date to the specified end date (pro-rating as necessary). Any monthly service fee would be a good example of this. In the John Smith example above, you could assign 3 recurring service line fees of $20 each starting June 5. June would be pro-rated for 26 out of 30 days for a total of $52. Subsequent months would be $60 until you choose to terminate the assignment of those lines (which will be pro-rated if you terminate mid-month). Assigned Users, Call Records, and Call Duration – All of these distribution types take a single amount across multiple users/departments, and often across multiple months. For example, let’s say you spend $200,000 to upgrade your phone system and you want to expense the cost across all departments over the course of 5 years. Create the expense code and specify the expense amount and date range. Select “Assigned Users” to spread the amount evenly across all assigned users, “Call Records” to weight the distribution based on how many calls each user makes, or select “Call Duration” to weight the distribution based on how long each user spends on the phone. Invoice Calls –This distribution type allows you to add up the costs of individual calls for each user and distribute a percentage of that call cost. Further, it allows you to include/exclude calls by call type. This can be used to apply markups, but it is also useful for calculating things like local/federal USF fees, which may not apply to all call types. It is also useful if you need to apply different taxes to different call types (e.g. some states charge sales tax on intrastate calls while other states do not). The date range selection is really only used for the distribution types that spread a single cost across multiple users and periods. While it can be used to terminate a recurring expense code, it is better to terminate individual user assignments to that expense code. Taxes allow you to apply the selected taxes to the distributed cost of the expense in certain reports. Note: The tax assignments are currently only used in our invoice reports and custom reports. The standard Expense reports do not currently use these tax assignments. Unless you execute a search, the listing below will show all of the users assigned to the selected code. To assign new users, select the "Assign" or “Add” button in the upper left corner. To manage an assigned user, select the user name. To unassign a user, select its checkbox and click the "Delete" button. Assigned User The user assignment level allows you to manage the assignment of a user to an expense code. You can modify the selected assignment's properties as well as manage distribution or billing runs applied to this assignment. Click the red "X" in the title bar of the assigned user to delete the assignment and all distributions associated with the assignment. Unless you execute a search, the listing below shows the distribution for the assigned user. Distribution Period This page allows you to manage all of your expense periods and distributions. Most of our customers only have one expense period (e.g. “(Default)”), which gets created automatically when they run either expense distribution reports or invoice batch reports. The primary reason to have more than one period would be if you had different users that needed to be on different billing cycles (or perhaps just have bills generated on different dates). For example, your US division may need to generate bills on the 1st of every month but your UK division may need to wait until the 8th. Note: We recommend you use distribution/invoice reports to manage your periods and distributions. Most of our customers only check this information to trouble-shoot something that looks wrong in a report or to delete older distributions that they wish to clean out of the system. Important: Unlike date ranges specified when running a report, distribution date ranges appear to overlap. They don’t actually overlap, as the end date is not included in the distribution. We are just following a common convention used by accounting software when displaying distribution ranges. Click the red "X" in the title bar of the distribution period to delete the period and all distributions associated with the period. Unless you execute a search, the listing below shows the distribution dates for the selected billing period. Here you may add/edit/delete the distributions. Distributions This page allows you to manage the selected expense distribution. Any changes to a distribution's date range may cause inconsistencies in the data for that distribution. If you must change a distribution’s date range, you should re-run the distribution to fix the distributed amounts by clicking the button with the green arrow. Note: We recommend that you use distribution/invoice reports to manage your periods and distributions. Most of our customers only check this information to trouble-shoot something that looks wrong in a report or to delete older distributions that they wish to clean out of the system. To run generate a distribution click the green arrow in the title bar. If you want to delete the distribution click the red "X". Unless you execute a search, the listing below shows the distribution costs for the selected distribution range. Invoice Batches TeleMate’s invoicing features are new to the 6.00 version of TeleMate, and they are an extension of the Expenses feature, which means they can only be accessed if you purchased an Enterprise license for TeleMate. The invoicing features are disabled in the web interface by default. To enable them, click on the “settings” link in the top-right corner of the web interface and look for the “Invoice Settings” section. Enable it and click the Save icon in the top-right corner of that section. Once enabled, you will see new invoicing options in several places in the Directory component. The first thing you should notice is a new “Invoice Batches” link next to the “Expenses” link. That link will allow you to create, review, or delete invoices by batch. Generating Batches Keep in mind that we recommend against manually creating or deleting invoices (or batches). The recommended steps to get started with invoice batches are: 1) Go to the Reporting component and select the “Invoice Batch” report (or your customized version of it, as most customers want their invoice report tailored to fit their company). 2) Specify a “Batch Level”, which determines whether invoice batches should be generated for a set of companies, divisions, or departments. To keep the list of batches easy to manage, always choose the highest level (e.g. choose company unless you have different divisions or departments that have different billing cycles). 3) Specify a “Batch Type”. For the first few billing cycles, we recommend you use the “Test Batch” first to spot-check invoices for potential problems (e.g. calls processed incorrectly, expense code assignments incorrect). When all visible problems have been fixed, switch to “Final Batch”. In the future, if you need to reprint bills from prior batches, select “Review Existing Batches”. 4) After running a final batch, double check it. If problems are detected before invoices are sent out, we recommend that you delete the batch, fix the problem, and re-run the batch. As your list of invoice batches grows over the years, this will help keep it clean and easy to manage. 5) In most cases when problems are detected by individual clients/customers after bills are sent out, we recommend applying adjustments (credits/debits) to those users in the directory so that corrections will show up in their next invoice. This allows you to preserve a record of the original invoices in your database. 6) If you have a special case where an individual client needs a bill to be fixed and reprinted, it may be best to manually delete a specific invoice (preserving the rest of the batch that you sent out to your other clients) and then manually run a special batch just for that one client. To print the new invoice, you would then run the “Invoice Batch” report in “Review Existing Batches” mode and filter on the custom batch. 7) If/when you feel comfortable automating invoice batch generation (e.g. everything runs smoothly for a few billing cycles), you can schedule the Invoice Batch report to generate invoices automatically. We still recommend spot-checking them. Managing Invoices In addition to being able to review invoices by the batch that generated them, the Organization tree in the Directory component also allows you to search for them. You can either search by invoice number in the “Find” tab, or you can select any entity in your organization and change the “Children” section to display Invoices assigned under the current entity. When you look at the invoices assigned to a specific user, you will also see a special link named “!Unassigned Calls” that represents the next invoice (which hasn’t been generated yet). Click that link if you wish to view/modify recent adjustments and calls waiting to be assigned to that user’s next invoice. There is also a “Create Invoice Batch” button at the top of the page (next to the delete button) that allows you to manually create a batch of invoices for the currently selected entity. We generally recommend that our customers use the “Invoice Batch” report instead, but it is not required. Regardless of how you find an invoice, when select one you will see all adjustments, expense amounts, and call records assigned to that invoice. You may not modify anything assigned to an invoice because those records are “locked” to ensure that you always have a record of the bills you sent out to clients or customers. You may delete an individual invoice to unlock those records, but we recommend you try to avoid doing that. Instead, we recommend that you add adjustments (credits and debits) and select specific calls to credit back to that user, which you can do directly from the invoice page. Reminder: The adjustments you create (and calls you credit) from an invoice will not be visible on the current page after you save them. This is because they can’t be applied to an invoice because all of its records are “locked”. New adjustments must wait to be applied to the next invoice. To view/modify recent adjustments or calls, you must select the special “!Unassigned Calls” link for the current user. Applying Adjustments There are two methods to apply an adjustment to a user. The first method is to simply click the “Add” button in the Adjustment section of an invoice (or the “!Unassigned Calls” page): Clicking the Add button will bring up the “Invoice Adjustment” dialog, which requires you to specify a date, an adjustment amount (positive for debits, negative for credits), an expense code (which is necessary to track which general ledger to apply the amount to and which taxes to apply to it), and a comment (a description which typically shows up on the user’s invoice). The second method is to credit specific calls. This will create a copy of the call record with a negative amount, which will show up on (and be applied correctly to) the next invoice. To credit specific calls, simply select them in the invoice call listing and select the “Credit” button in the top-right corner of the call detail section. Note: When looking at “!Unassigned Calls”, which represents the “next” invoice, the “Credit” button is replaced with a “Delete” button, which essentially credits the call before your customer even sees it. Imports If your company directory is maintained in an external application or database, it is usually better to import it into TeleMate than to manually enter the information twice. Directory imports can even be scheduled to handle moves/adds/changes automatically after the initial import. TeleMate supports two types of imports. You can either import from a delimited file or from a server with Lightweight Directory Access Protocol (LDAP) support, like Microsoft's Active Directory or Novell's eDirectory. Template Listing This listing allows you to manage, delete, run or schedule TeleMate Directory imports. Hover the mouse over the “Add” button in the upper right corner of the listing and select a template type to create a new one. Click on an existing template’s name to modify it. Use the checkbox next to a template name and click the red "X" button to delete an import template. To run an import manually, select the "Run" link (for LDAP) or the "Queue" link (for delimited file) in the Queue column. Select the “Test” link before running an LDAP import to verify that it will pick up the LDAP attributes correctly. To schedule an import, or to modify its schedule frequency, select the “Add”, “Edit”, or “Clear” links in the Schedule column. Note: Because the LDAP import is run directly from the web server, it can be run immediately. The delimited file import is run from TeleMate's scheduler and must be queued to run. The notification email is also very different for the two different operations. When you schedule an import, you will be asked to specify a frequency and run time for the import. You may also choose to be notified by email when the import has completed. Delimited File Import TeleMate can import from a delimited file by specifying which fields in the file map to which TeleMate organization properties. Step 1: File Properties The first step requires you to specify a delimited text file to import. This file must be visible to the server, either on one of the server’s local drives or on a network share (the TeleMate services must have read access to that share). If the file is not on the server but you can access it from your web browser, select the “Upload File” button to upload the file to the server. Before selecting the “Upload File” button, you must specify the path on the server to upload it to. If you’re not sure where to put it, you can use an environment variable to specify a temporary folder (e.g. %TEMP%\myimport.txt). Warning: If you have multiple data sources in TeleMate, the Data Source selection here is very important! You may not import a single file for multiple data sources. You must split them up into separate files and configure a separate import for each. Step 2: Default Values The second step allows you to choose a default value for the Company, Division and Department fields. You can either type in the name or use the “Choose…” button to pick a value from a list of Companies/Divisions/Departments that have already been created. If the delimited file does not contain one of them or the field is blank, the import will use the default value. Step 3: Field Mappings The third step shows a few sample records parsed from the delimited file specified in Step 1. If the sample records do not look right for any reason, double-check the file and the settings you specified for it in Step 1. Once everything looks okay, use the selection boxes to specify where each field from the file should be pulled into TeleMate, and click the Save button (in the top-right corner). LDAP Import TeleMate can connect directly to your LDAP server to import directory information. Unfortunately, the mapping between an LDAP directory and the TeleMate directory is never a perfect fit, which tends to make the configuration very complex in all but the simplest cases. Fortunately, TeleMate provides some very flexible and powerful options to “clean up” the mapping. It can even be used to clean up some of the data it finds in LDAP, which almost always contains data entry errors that are hard to find until the data is forced into a structure that makes errors stick out like a sore thumb. TeleMate also provides professional services to help you through the complexity to get the most out of your LDAP integration. The process of configuring an LDAP import generally includes: 1) If you have multiple data sources to import from a single LDAP server, you must first find a way to identify the data source for each extension you want TeleMate to import. Extension 3001 on phone system A is not the same as extension 3001 on phone system B. You may not have overlapping extensions, but TeleMate can’t assume that, so you have to tell it which phone system 3001 belongs to. 2) Next you must decide how you want to map LDAP Organizational Units, Groups, and/or attributes to TeleMate’s Company/Division/Department hierarchy. This depends on how you have organized your LDAP directory and how you want users to appear in the TeleMate directory. It ends up being at least a little different for every customer. Some customers want to use the location attribute for division and the department attribute for department. Others want to use groups or organizational units to decide where to put everyone. Others want to use extension ranges to decide. 3) Most customers want to be able to use LDAP to “terminate” users in TeleMate. TeleMate can’t delete users that have historical data linked to them, so this is generally done by creating a copy of the main LDAP import. The copy will check for some sign in LDAP that a user has been deactivated (e.g. a special OU for terminated users or the “enabled” flag for ActiveDirectory accounts). This alternate import will transfer users out of their current department to a “disabled” area in the TeleMate directory. 4) Once the basic structure of the LDAP import is laid out, it is time to worry about the details. You need to specify how to pick up each LDAP attribute, run a “Test” to spot-check examples of users being imported, and tweak the details of how those attributes are picked up. 5) Finally, run the import to see what shows up in the TeleMate directory. At this point, most customers spot all sorts of data entry problems that they weren’t aware of in their LDAP directory. At this point, it is very common for customers to run through several passes where they delete the entire organization in TeleMate, make a few changes in LDAP, make a few changes in the import definition, and run it again. Step 1: Connection Settings The first step requires you to supply all the information TeleMate needs to connect to the LDAP server. You must also choose a “default” data source for any extensions imported. (This data source selection can be overridden using custom scripting checks on LDAP attributes in step 4.) Import Name – A unique name to identify the Import in TeleMate. Data Source – The data source that any imported extensions or DISAs will be associated with. Connection Type – The type of LDAP connection used, Clear or Secure. LDAP Server – The IP or hostname of the LDAP server. The value can be multiple values separated by a comma. It allows you to provide a backup server in case the other LDAP server goes down. It is suggested that you use the full host name like "dc01.telemate.net". LDAP Port – The port number specifies which TCP port is used to connect to the server. If the LDAP server is not using its default port you should set it here. The default for the Clear LDAP connection type is 389 and Secure LDAP is 636. LDAP Login – This login should have read access to the RootDN. Some examples are: o Active Directory: telemate\joe.smith o Active Directory: cn=Joe Smith,ou=Development,ou=Telemate.Net Software,dc=telemate,dc=net o eDirectory: cn=admin,o=test; o Open Directory: uid=netspective,cn=users,dc=qa,dc=xserve,dc=com LDAP Password – The password to authenticate the login. Root DN – Specify the Distinguished Name (DN) of the “root” object to use for this import. Most customers just use the root node of your LDAP tree (e.g. your entire domain or organization), but in some cases it is better to create a few distinct imports that each check a different branch of the tree. o Active Directory: dc=telemate,dc=net o eDirectory: o=test o Open Directory: dc=xserve,dc=com User Search Filter – The search filter is an advanced option to help you weed out LDAP objects you want to avoid importing. Its syntax, and how you use it, depends on the type of LDAP server you have. Note: All fields are required except for the User Search Filter. Also, if you are experiencing slow connection times check your server names to ensure that they are valid. Failed DNS resolution can slow down the connection times. Step 2: Organizational Units The second step allows you to map LDAP Organizational Units to TeleMate Departments. Important: The LDAP import will only import users it finds in Organizational Units and Groups you tell it to import. If you do not select anything in steps 2 or 3, the import will run, but it won’t find any users. Find the Organizational Unit (OU) that you would like to import and click on the “!Unassigned” link to the right of it to select a TeleMate Company/Division/Department to map it to. If you haven’t created the appropriate Company/Division/Department in TeleMate yet, you must switch to the Organization page to create it. (We recommend that you open the Organization page in a new browser tab or window so you can switch back and forth easily.) When you click the “!Unassigned” link, the LDAP Assignment dialog will open with a list of the top 100 departments. The list can be narrowed down by typing part of the name of a department into the “Contains” field. When you find the department you want, select the department and click “OK”. After you’ve assigned an OU to a department, you will see a “Clear” link you can use to remove the association. It is important to keep in mind that OU’s are organized in a tree. When you map an OU to a department, all users beneath that OU (and its children) will be mapped to that department. However, the department you link an OU to is just the “default” department for that OU. The default department for any OU can be overridden by: departments mapped to child OU’s, LDAP Group mappings, LDAP attribute assignments, etc. Note: If a department you select here gets deleted, the mapping on this page will disappear, causing it to stop importing that OU. This is normally only a problem when you’re going through the trial-and-error involved in configuring the import for the first time. Step 3: Groups The instructions for step 3 are exactly the same as the instructions for step 2, so read the explanation above first. The only difference that needs to be pointed out here is that LDAP Group associations take precedence over LDAP OU associations. For example, imagine you have a “John Smith” in a “Sales” OU that belongs to a “Sales Engineer” Group. You can map both to different departments in TeleMate, but “John Smith” can only belong to one department in TeleMate. In this case TeleMate will choose the “Sales Engineer” department. Step 4: Attributes The fourth step allows you to map LDAP User attributes to TeleMate directory fields. In the simplest cases, this is a simple mapping where you click on the name of each TeleMate field you care about, and then select an LDAP attribute to assign to it. Because the Data Source, Company, Division, and Department fields all have default values you specified in steps 1-3, the Last Name field is the only field that is “required” to import an LDAP User. However, you can use LDAP attributes to pick up several additional fields, and you can use them to override all of those default values. For most of our customers, that simple mapping is not enough. The data in their LDAP directory is too “messy” for a clean mapping. It is very rare for any LDAP attribute to contain the “extension” value that TeleMate needs (the one it sees in the phone system logs), the “company” and “department” attributes always contains something other than the company and department names our customers want to see in TeleMate, there are always typos in attributes, and so on. To help deal with these issues, TeleMate allows custom scripting code to be specified for each and every import column. This custom scripting allows us to do virtually anything, but as it requires programming skills, the majority of our customers require assistance from our professional services group to configure it. The scripting language is called Ruby. Documentation for the Ruby scripting language can be found at: http://www.ruby-lang.org/. The most useful variables you can access from the script are: value - An array of values for the selected LDAP attribute. user - A hash table of attributes for the LDAP user object. It is easiest to learn to use scripts by example, especially when you can get it to work by copying/pasting existing scripts and changing the names. For instance, let's say you need to select the data source for an extension based on the first digit in the extension. You could select your LDAP attribute containing the extension for the "Data Source" column, and then enter a script like this: case value[0,1] when '4','5' then 'Data Source 1' when '6' then 'Data Source 2' else nil # Don't specify a data source end In this example, "value" gets the first value of the selected attribute (LDAP allows multiple values per attribute), and the "[0,1]" gets a substring starting at position 0 for length 1 (i.e. get the first character of the first value). The "case" statement makes it easy to map one set of values to another. In the case above, any extension starting with a '4' or '5' gets mapped to 'Data Source 1'. Any extension starting with a '6' gets mapped to 'Data Source 2'. All other extensions return nil (which means nothing). If no Data Source is selected, the import will use the default Data Source you selected in step 1. Here are some other examples: # You can use complex regular expressions to check your values # This script singles out extension ranges 4100-4399 and 4400-4799 case value when /^4[1-3]\d\d$/ then 'Data Source 1' when /^4[4-7]\d\d$/ then 'Data Source 2' else nil # Don't specify a data source end # You can also use if-then-else logic, variables, loops, data conversion, and math calculations. # This script singles out extensions 4100-4399, 4400-4799, and the Atlanta location. ext = user['extension'].to_i loc = user['l'] if ext >= 4100 and ext <= 4399 'Data Source 1' elsif ext >= 4400 and ext <= 4799 'Data Source 2' elsif loc == 'Atlanta' 'Data Source 3' else nil # Don't specify a data source end # If you have multiple values in one LDAP attribute, you can scan them all ret = nil # This will be the value we return to the import value.each do |v| # Loop through all values in the "value" array if v[0,1] == '4' or v[0,1] == '5' ret = 'Data Source 1' elsif v[0,1] == '6' ret = 'Data Source 2' end end ret # Don't forget to return the selected value to the import In theory you can even open files, make database queries, or make other LDAP queries. However, we strongly recommend against doing anything like that. Not only would it be nearly impossible to troubleshoot problems in it, but it would also run so slow that it would be unusable. Step 5: Exceptions The fifth step is optional, and we recommend that you avoid using it if you can because the users in this list must be maintained manually. This step is a crutch designed specifically for users that end up in the wrong department no matter what you do in steps 1-4. It may be due to users that currently work in one location/department but technically belong to another, or that belong to multiple LDAP Groups you’ve mapped to different departments, or something else entirely. The Security Manager Component Select the Security Manager component to configure manager accounts (logins to the TeleMate web server) and their privileges so they can log in and set up their own reports, monitors, alerts, etc. When the security manager component is selected, the component bar at the bottom of the navigation bar allows you to switch between the main security views: Managers This is the primary view for the security manager component, and it is the only view that allows you to create, delete, and modify manager accounts. The other views are optional, as they merely provide a convenient way to quickly spot-check which managers have a specific privilege. To create a manager account, click the “Add” button. To delete a manager account, check the box next to it and select the “Delete” button. To modify a manager account, click the icon next to its name. If you chose to configure any LDAP Sources, you may also specify an LDAP User, Group, or Organizational Unit (OU) when creating a Manager account. When a Manager account is tied to an LDAP Group or OU, any privileges you grant it will be granted to all LDAP Users assigned to them. Every time an LDAP User logs into TeleMate’s web interface, it receives all privileges assigned to: 1. The Manager account representing that LDAP User. 2. Any Manager accounts representing LDAP OUs that LDAP user belongs to. 3. Any Manager accounts representing LDAP Groups that LDAP user belongs to. Note: If an LDAP User is granted privileges via Groups and/or OUs but does not have its own Manager account, an account will be created for him automatically the first time he logs in, and a report archive with the same name will be created and assigned to that account. The new account won’t have any other privileges granted to it, as they are being inherited from the LDAP Groups and OUs that user belongs to. Note: Manager accounts created from the web interface are the only ones that can be managed or deleted from here. Accounts created in the TeleMate Client are listed and their permissions are viewable but they just cannot be modified. Data Sources Select this view if you want to see which accounts have access to a specific privilege (as opposed to seeing which data sources a specific account can access). For instance, this screenshot shows that only the admin and TELEMATE\eric.turner accounts have access to the “Real Time” data source. Privileges Select this view if you want to see which accounts have access to a specific privilege (as opposed to seeing which privileges a specific account has). For instance, this screenshot shows that the admin and TELEMATE\eric.turner accounts have access to the “Access to monitors” privilege. Reports Select this view if you want to see which accounts can run a specific report (as opposed to seeing which reports a specific account can run). For instance, this screenshot shows that all the accounts have access to run the “Call Activity Overview by User” report. Departments Select this view if you want to see which accounts have access to a specific department (as opposed to seeing which departments a specific account can access). For instance, this screenshot shows that the admin, Telemate.Net Software\Development, and TELEMATE\eric.turner accounts have access to the “Development” department. Archives Select this view if you want to manage or delete an archive or see which accounts have access to a specific archive (as opposed to seeing which archives a specific account can access). For instance, this screen shot shows the “TELEMATE\john.smith” archive has a 100 MB size limit and an expiration of 30 days. It also shows that the accounts admin, TELEMATE\eric.turner and TELEMATE\john.smith have access to the archive. The Dashboard for Contact Center Component The Dashboard for Contact Center component displays real-time statistics for Cisco Contact Center data sources so you can keep an eye on your agents and CSQs (or Contact Service Queues). This component will only be available if you have purchased a data source license for your Contact Center and the services necessary to configure the TeleMate dashboard scripts to collect real-time data from your Contact Center. The component bar at the bottom of the navigation bar allows you filter and hide the different sections: For example, the options allow you to choose a different data source, select a handful of CSQ’s to monitor (sometimes you need to monitor a few of them instead of one or all of them), or to hide sections or the web page header to get more out of your screen’s real estate. CSQ Statistics The information contained in “CSQ Statistics” comes directly from your Contact Center’s “Real-Time Snapshot” feature. Depending on how your dashboard collection script is configured, it can either be updated in real-time via the CTI protocol or pulled from the Cisco database periodically (typically every 5 to 30 seconds). It contains some immediate counters, such as how many calls are currently waiting in each CSQ and how many agents are currently available to handle those calls. It also contains some summary information for the current day. You may click on any numeric value in this table to define thresholds for highlighting the value in different colors to make it stand out. For example, if the number of calls waiting jumps to 10 for CSQ 3, you may want to see it highlighted in red so you can take steps to free up agents to handle some of those calls. Note: As different queues have different volumes, thresholds are saved separately for each queue. The saved thresholds also must be configured per manager. Clicking the gear icon in the upper-right corner of the “CSQ Statistics” section allows you to hide columns in the text view. An additional option allows you to toggle the display to show the information as a bar chart. As a bar chart the data can be accumulated based on waiting, handled, abandoned and/or dequeued calls. Live Calls by Agent The “Live Calls by Agent” section is only available if you are collecting live call information via the Cisco Contact Center’s CTI protocol. If so, it displays agents grouped by team. Each agent’s current state is displayed. If the agent is on the phone, it displays all available call information. This information is updated once per second. Clicking the gear icon in the upper-right corner of the “Live Calls by Agent” section allows you to hide columns in the text view. An additional option allows you to toggle the display to show the information as a bar chart. As a bar chart the data can be accumulated based on queue time, ring time, hold time and/or talk time. Note: This section will not show calls waiting in a CSQ. See “Live Calls by CSQ” for that information. Live Calls by CSQ The “Live Calls by CSQ” section is only available if you are collecting live call information via the Cisco Contact Center’s CTI protocol. If so, it displays all live CSQ calls grouped by CSQ. This information is updated once per second. Note: This section will not show direct in/out calls. See “Live Calls by Agent” for that information. CSQ Summary The “CSQ Summary” section is similar to the “CSQ Statistics” section above, but instead of showing the summary counts Cisco tracks, it shows the counts from the “Recently Completed Calls” section, which depends on the time window you specified when configuring the dashboard collection script. It is often more useful to be able to see the number of calls that have been dequeued or abandoned in the past 30-60 minutes than for the entire day. Agent Summary The “Agent Summary” section contains a summary of agents assigned to the selected queues that have valid state information for the past 24 hours. These statistics include each agent’s current state and the length of time they have been in that state. You may click on either of those fields to configure thresholds based on an agent’s state duration. Click on the “info” icon next to an agent’s name to see more information about that agent (e.g. CSQ assignments by team, resource group, and skill set). Clicking the gear icon in the upper-right corner of the “Agent Summary” section allows you to hide columns in the text view. An additional option allows you to toggle the display to show the information as a bar chart. As a bar chart the data can be accumulated based on calls handled, calls presented or times. The times available include ring time, hold time, talk time and work time. All the times can be selected together so that the bars are stacked. Recent Calls The “Recent Calls” section shows a listing of recently completed calls that have completed during the time window you specified when configuring the dashboard collection script. For abandoned and dequeued calls, it shows which agent phones rang vs. “No agents available”. You may click on any of the column headers in this table to sort by that column. Note: This section does not show active calls. See “Live Calls by Agent” or “Live Calls by CSQ” for that information. The ViewPoint Component The ViewPoint component displays your most recent calls summarized by location on a world map. It allows you to choose which calls to show, how to group them, and how to display them. It also allows you to select areas of interest to see individual calls going to/from specific locations. The map and call list are updated in real-time. NOTE: The term “real-time” depends on how fast your CDR logs are collected and processed, which can vary widely based on your phone system and how it is configured. Example 1: (calls displayed as different size and color dots by LATA/city) Example 2: (calls displayed as different fills by state/country) Creating Views Because you may have several different concerns regarding your data, you can create several different world map views that you can switch between quickly. For example, you may wish to create one view to show you all inbound calls by area code and another to view all outbound calls by state. Or you may wish to create one view to monitor division A and another to monitor division B. To create a new view, click on the “View” drop-down box on the left side of the option bar at the top and select “Add a New View”. That will open up the ViewPoint properties window. ViewPoint Properties: General When you create a new view, you must first specify a unique name. After that, specify whether you want to summarize calls by On-Site or Off-Site. On-Site is determined by the site location. Site locations are assigned at the Extension, User or Department level. Off-Site is calculated by the location of the caller when the record is an incoming call or by the callee when it is outgoing. With Off-Site you must also specify how you want to summarize calls in North America (by State/Province, Area Code, Lata, or Rate Center) and everywhere else in the world (by Country Code or City Code). If you select State/Province for North America and Country Code for International you can choose to fill in state/country shapes rather than drawing points. However, by choosing state/country fills, you lose the ability to use the point size to represent an accumulated value. ViewPoint Properties: Size These properties allow you to control the size of the points rendered in this view. For example, you could have the view use total call count, total duration, maximum call cost, or minimum call quality to determine the point size. The minimum and maximum size define the range of sizes the points use, and the scale is a multiplier that controls how quickly the points go from the minimum to the maximum. The ideal scale value can vary widely based on several factors (call volume, filter selection, summary selection, and accumulator type), so we recommend you try a few different values for each view to see what looks best for each. The “Maintain point size ratio when zooming” checkbox determines whether or not point sizes remain the same size (in pixels) when zooming. ViewPoint Properties: Color These properties allow you to control the color of the points (or filled regions) rendered in this view. Where point sizes grow/shrink smoothly on a logarithmic scale, the colors are fixed based on a set of thresholds you define. For example, you may want to have a region turn red if the total call cost for a region exceeds $100, or perhaps if the maximum or average jitter value for that region exceeds 35. A legend will be visible in the lower left hand corner of the map for easy reference. It can be turned off by unchecking the Show Legend option. ViewPoint Properties: Filters In many cases you will need to filter the summary and detail data you are viewing. For instance, you may have one phone system in Atlanta and another in Los Angeles, and you may only want to see calls from Atlanta. In that case, you may select the "Filters" tab and filter the calls by any of the fields in the drop down on the filters tab. ViewPoint Properties: Columns The columns you choose are displayed in the detail section. You must select at least one column to have details displayed. The order of the columns can be changed by clicking on the column in the list and dragging it to a new position. ViewPoint Properties: Details Additional options for the Detail section are located under the Details tab. The Maximum Rows limits the number of rows displayed of call detail. If you set the value to zero or leave it blank it will return all rows for selected location and time period. However, returning to many rows could affect the performance and responsiveness of your browser. Additionally, there is an option to display the selected location’s name on the map. The selection’s name is displayed in a box in the lower right corner of the map. Managing Views Once a view is created and selected, you can use the mouse scroll wheel to zoom in and out, you can click-and-drag to pan and see different portions of the map, and you can click on highlighted points/regions to display detailed call info. There is also an option bar at the top with icons you can click for more options: From left to right, the icons are: Pause/Play – Click to pause the real-time updates. This is useful when you need to examine specific calls without them moving around. Click again to resume the real-time updates. 1:1 – Restores the zoom to a scale of one-to-one (100%) Cursor – Toggles the mouse cursor selection mode. The current options are single selection mode (which allows you to select individual points/regions or click and drag to pan the map) and box selection mode (which allows you to click and drag to select a box of points/regions). Layout – Toggles the orientation of the map and detail section. There are two vertical layouts with the call listing below or above the map. And two horizontal layouts with the call listing to the left or right of the map. Range – Adjusts the time range to display anywhere from the most recent 15 minutes of calls to the most recent 24 hours of calls. Offset – Shifts the lead time of the current view back and forward. Combine with “Range” to look at specific periods of time within the past 24 hours. For example, instead of displaying the most recent hour, you can back it up and display the hour 6 hours before that. Properties – Allows you to edit the properties of the current view. Copy – Copies the current view’s properties to make it easier to create a similar view. Delete – Allows you to delete the current view when you no longer need it. In addition to those commands, you may resize the detail section. When the layout orientation has the detail section at the top or bottom the details height can be resized. With detail section on the left or right you can adjust the width of the detail section and the map.