Accessing Placed/Received/Missed Calls Data

Version 1
    This document was generated from CDN thread

    Created by: Matt Wickless on 21-10-2011 01:13:02 PM
    I am writing a custom directory app to replace the URL used for the Directories Button on the 7945 phone. I need to be able to display the placed/missed/received calls, but can't find any reference on how to access that data. I looked at the xml from the built-in URL page, but there is nothing in the XML that references those options. Does anyone know if that data is available and if so, how to access it?

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Matt Wickless on 21-10-2011 01:24:37 PM
    I have changed the URL, but in doing so, I have lost access to the missed/placed/received calls options. There is no reference to them in the stock URL XML, but yet they appear on the screen for it. I'm wanting to add them into my URL.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Jean-Marc Lacoste on 21-10-2011 01:20:00 PM
    Before CUCM 7.1 it was hard coded in the phone. Now, they are Enterprise IP Phone Services (always subscribed). You can change the URL in the IP Phone Service definitions and replace by your URL.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Gordon Ross on 16-01-2012 12:55:32 PM
    A bit late to the party....

    Application:Cisco/MissedCalls
    Application:Cisco/PlacedCalls
    Application:Cisco/ReceivedCalls

    GTG

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 23-08-2012 12:20:07 PM
    Gordon, I saw these URLs in docs as well, but can you please explain what these URLs mean ? In other words, they don't look like standard web URLs like http://callmanager:8843/someservice

    How does a 7965 IP phone makes a call/send XML request to something like Application:Cisco/MissedCalls? There's got to be a DNS name or IP address behind it, should'nt it?

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 23-08-2012 12:39:30 PM
    Very useful! I had no clue they were on the phone itself, I was almost going to capture network traffic the get the request XML.
    So I have to go the CDR route to get missed calls/per device. Is CDROnDemand Service my best option ?

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 23-08-2012 12:44:08 PM
    Or should I use the AXLAPIService from the axlsqltoolkit (http://<callmanager>:8843/plugins/axlsqltoolkit.zip)?
    My goal is missed/placed/received calls, voicemail left/not left per device.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 23-08-2012 12:46:44 PM
    To sum up, should I use AXL API, Serviceability API or Extension Mobility API to get missed/placed/received calls, voicemail left/not left - per device?

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 23-08-2012 12:46:44 PM
    To sum up, should I use AXL API, Serviceability API or Extension Mobility API to get missed/placed/received calls, voicemail left/not left - per device?

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 23-08-2012 01:32:01 PM
    You can use CTI (TAPI/JTAPI) to monitor the phones in real time and keep your own statistics (usually a pretty heavy solution) or use the CDRs.
    Thats what I thought about TAPI/JTAPI, and there is no way I can/will go that route
     
    The CDRonDemand service can only receive single CDR files and there is a throttle limit, so it's usually impractical for anything but spot checking very specific time frames - e.g. examing when a 911 or malicious call was made.
    I was going to try the get_file_list operation in that service with one hour interval which was sufficient in my scenario. But only after we resolve the self signed SSL issue complicated by the 1024 bit CSR limit by CUCM OS Admin.
     
    If you want to keep large scale statistics, you will likely want to set up your app as a CDR FTP target, so that you receive all CDRs as they are generated (once a minute, default.)  You can then import then into a database and query as needed.
    That sounds the best option. I just need to research more on the CDR fields - what they mean - before I dump them to a SQL DB.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: David Staudt on 23-08-2012 01:46:18 PM
    CDR field definitions can be found in the docs here:
     
    http://developer.cisco.com/web/sxml/docs

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 23-08-2012 05:28:04 PM
    The phone interprets a special URI like 'Application:Cisco/MissedCalls' as an instruction to use the built-in Missed Calls feature for providing the service.  Missed/Placed/Received calls are recorded on the phone itself, and those display services are provided by an onboard phone routine.

    Just curious, is it not possible to access call logs from the device itself since it is stored on the device ? Say for instance get a list of IP's of all Ip Phones and query one by one for that log?

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: David Staudt on 23-08-2012 05:53:33 PM
    Not possible.  Historically this was for privacy/security reasons.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: David Staudt on 23-08-2012 12:31:41 PM
    The phone interprets a special URI like 'Application:Cisco/MissedCalls' as an instruction to use the built-in Missed Calls feature for providing the service.  Missed/Placed/Received calls are recorded on the phone itself, and those display services are provided by an onboard phone routine.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: David Staudt on 23-08-2012 12:45:24 PM
    You can use CTI (TAPI/JTAPI) to monitor the phones in real time and keep your own statistics (usually a pretty heavy solution) or use the CDRs.
     
    The CDRonDemand service can only receive single CDR files and there is a throttle limit, so it's usually impractical for anything but spot checking very specific time frames - e.g. examing when a 911 or malicious call was made.
     
    If you want to keep large scale statistics, you will likely want to set up your app as a CDR FTP target, so that you receive all CDRs as they are generated (once a minute, default.)  You can then import then into a database and query as needed.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 24-08-2012 01:14:19 PM
    Not possible.  Historically this was for privacy/security reasons.
    But am I not doing the same thing via CDR reporting?

    Also, like you mentioned, the server is creating/sending CDR files once per minute. I'd like to know is that minute the last minute that just passed according to the time on that server? The most recent file on the FTP server is off (behind) by 6 hours from the server time.

    On a side note: under Cisco Unified Communications Manager CDR Analysis and Reporting Menu, the title "Billing Application Server Parameters" assumes the file goes to ONLY Billing servers. Obviously not true in our case.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Shivinder Singh on 24-08-2012 01:14:19 PM
    Not possible.  Historically this was for privacy/security reasons.
    But am I not doing the same thing via CDR reporting?

    Also, like you mentioned, the server is creating/sending CDR files once per minute. I'd like to know is that minute the last minute that just passed according to the time on that server? The most recent file on the FTP server is off (behind) by 6 hours from the server time.

    On a side note: under Cisco Unified Communications Manager CDR Analysis and Reporting Menu, the title "Billing Application Server Parameters" assumes the file goes to ONLY Billing servers. Obviously not true in our case.

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: David Staudt on 24-08-2012 03:27:11 PM
    CDR files are sent from the phones to their registered nodes at the end of each call.  The UCM nodes sent any collected CDRs to the UCM Publisher ever minute.  Additionally the UCM Publisher can be configured to send the CDRs every minute to up to three 3rd party recipients ('billing servers.')
     
    Note that the 'CDR Analysis and Reporting' (CAR) module is itself an instance of a 'billing server' type application, just build-in and provided by Cisco.  For configuring CDR delivery to external applications, see the Tools/CDR Management page (also under Serviceability.)

    Subject: RE: Accessing Placed/Received/Missed Calls Data
    Replied by: Jiri Princ on 27-08-2012 04:19:31 AM
    Hi,
    just notice - one call can be spread over several rows and or CDR files, so be aware of that when you will put everything together (you will need to "analyze" it first if you are going to show times in the history).

    We were in same situation when we wanted to the history for Extension Mobility (so you can see history on any phone you log with your UserID). Even we have our own billing solution we decided to use TAPI instead. Sure it is lots of work, but you will have the information in the history lists immediately. When we look at that from the user point of view, it would be very difficult or inconvenient to explain them why they cannot see the missed called number immediately (when they are not quick enough to pick it up), and they have to wait few minutes to have it in history (at least we want to replace standard cisco history list).

    Not sure if it is your case, but I thing it is relevant point here.

    Regards
    Jiri