Call Detail Record Access Service Part No. 520-0015-01R01



Similar documents

Cisco TelePresence Content Server

File Transfer Service (Batch SOAP) User Guide. A Guide to Submitting batches through emedny FTS

VoIP LAB. 陳 懷 恩 博 士 助 理 教 授 兼 所 長 國 立 宜 蘭 大 學 資 訊 工 程 研 究 所 TEL: # 255

Web Services in Eclipse. Sistemi Informativi Aziendali A.A. 2012/2013

Lecture Notes course Software Development of Web Services

Freight Tracking Web Service Implementation Guide

Middleware and the Internet

Using ilove SharePoint Web Services Workflow Action

AXL Troubleshooting. Overview. Architecture

B2B Appointment Booking Specification

HTTP - METHODS. Same as GET, but transfers the status line and header section only.

What is Distributed Annotation System?

What is in a Distributed Object System? Distributed Object Systems 5 XML-RPC / SOAP. Examples. Problems. HTTP protocol. Evolution

Usage of Evaluate Client Certificate with SSL support in Mediator and CentraSite

DocuSign Connect Guide

Hacking SAP BusinessObjects

Contents. 2 Alfresco API Version 1.0

Table of Contents. Open-Xchange Authentication & Session Handling. 1.Introduction...3

State Estimation and Network Marketing Systems

GFI FaxMaker Online Inbound Web Services V.1.0

Web-Service Example. Service Oriented Architecture

CONTRACT MODEL IPONZ DESIGN SERVICE VERSION 2. Author: Foster Moore Date: 20 September 2011 Document Version: 1.7

Integrating CRM On Demand with the E-Business Suite to Supercharge your Sales Team

ADOBE INDESIGN CS6 ADOBE INDESIGN CS6 SERVER SOLUTIONS

Single Sign-On Implementation Guide

Secure Password-Based Authenticated Key Exchange. for Web Services

ACCREDITATION COUNCIL FOR PHARMACY EDUCATION. CPE Monitor. Technical Specifications

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

Qualys API Limits. July 10, Overview. API Control Settings. Implementation

Examining the InDesign Server Solution

ARCHITECTURE FRAMEWORK PROPOSAL FOR DYNAMIC AND UBIQUITOUS SECURITY IN GLOBAL SOA

"Understanding Devices Profile for Web Services, Web Services Discovery, and SOAPover-UDP"

JASPERREPORTS SERVER WEB SERVICES GUIDE

Integration Guide for Data Originators of CCR Documents. Version 1.0

PASS4TEST 専 門 IT 認 証 試 験 問 題 集 提 供 者

HTTP and HTTPS Statistics Services

Dynamic Decision-Making Web Services Using SAS Stored Processes and SAS Business Rules Manager

The BritNed Explicit Auction Management System. Kingdom Web Services Interfaces

Single Sign-On Implementation Guide

CRM On Demand. Oracle CRM On Demand CTI Developer s Guide

T320 E-business technologies: foundations and practice

Web Services. Distributed Object Systems 11. Web Services, SOAP and NET. Web Applications. Web Services. Web services vs Distributed Objects

9.4 BI Web. SAS Services. Developer's Guide. SAS Documentation

Bindings for the OASIS Security Assertion Markup Language (SAML) V2.0

DEVELOPING CONTRACT - DRIVEN WEB SERVICES USING JDEVELOPER. The purpose of this tutorial is to develop a java web service using a top-down approach.

Web Services for deeply embedded extra low-cost devices

Documentation Cendris Web Services Version July 2013

Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT)

dctrack Web Services API - Ticketing User Guide 3.0.0

Single Sign-On Implementation Guide

WEB OF KNOWLEDGE WEB SERVICES LITE V July 2, 2013

Dev Guide for Encrypted Swipe

Sample Usage of TAXII

Windows Phone 8 Enterprise Device Management Protocol

Shibboleth Architecture

Introduction to Testing Webservices

Using web service technologies for incremental, real-time data transfers from EDC to SAS

Merchant Web Services API

Sage CRM. Sage CRM 2016 R1 Web Services Guide

GetFormatList. Webservice name: GetFormatList. Adress:

Types of Cloud Computing

SOPG (Service Oriented Prepaid Gateway - xml based protocol) Documentation. Version Date Description Author

UPMC HEALTH PLAN. HIPAA EDI Companion Guide

Single Sign-On Implementation Guide

Windows 8.1 Enterprise Device Management Protocol

Universal Event Monitor for SOA Reference Guide

Responsys Interact January Cherry Ave. 5 th Floor San Bruno, CA

Designing RESTful Web Applications

CONNECTICUT INSURANCE VERIFICATION SYSTEM (CTIVS)

Web-Programmierung (WPR)

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

Vodia PBX RESTful API (v2.0)

How To Validate A Single Line Address On An Ipod With A Singleline Address Validation (For A Non-Profit) On A Microsoft Powerbook (For An Ipo) On An Uniden Computer (For Free) On Your Computer Or

Nuance Mobile Developer Program. HTTP Services for Nuance Mobile Developer Program Clients

Web Based Single Sign-On and Access Control

Title page. Alcatel-Lucent 5620 SERVICE AWARE MANAGER 13.0 R7

Betfair API Quick Start and Best Practice Guide

HireDesk API V1.0 Developer s Guide

Real-Time Connectivity Specifications For. 270/271 and 276/277 Inquiry Transactions. United Concordia Dental (UCD)

Merchant Service Provider Guide for Mobilpenge Based Acquiring

SECURE USE OF CLOUD STORAGE

Web Application Security

[MS-SPEMAWS]: SharePoint Web Service Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Service Oriented Computing: SOAP, WSDL and UDDI. Dr. Cristian Mateos Diaz ( ISISTAN - CONICET

gsoap User Guide

HP Operations Manager Incident Web Service

Technical Interface Description

Penetration Testing Corporate Collaboration Portals. Giorgio Fedon, Co-Founder at Minded Security

reference: HTTP: The Definitive Guide by David Gourley and Brian Totty (O Reilly, 2002)

Replacements TECHNICAL REFERENCE. DTCCSOLUTIONS Dec Copyright 2009 Depository Trust Clearing Corporation. All Rights Reserved.

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

Address Phone & Fax Internet

EMC Atmos Cloud Optimized Storage for Web Services

e Merchant Plug-in (MPI) Integration & User Guide

Specify the location of an HTML control stored in the application repository. See Using the XPath search method, page 2.

GetLibraryUserOrderList

02267: Software Development of Web Services

What is a Web service?

Web. Services. Web Technologies. Today. Web. Technologies. Internet WWW. Protocols TCP/IP HTTP. Apache. Next Time. Lecture # Apache.

Transcription:

Call Detail Record Access Service Part No. 520-0015-01R01 Summary Objective WSDL URL (Testing) WSDL URL (Hosting Production) Endpoint URL (Testing) Endpoint URL (Hosting Production) Namespace URI Service Name Port Provide secure access to Call Detail Records (CDRs) of calls to a particular application. http://cafe.services.bevocal.com/cdraccessservice_v2/services/ CDRAccessService_v2?WSDL http://production.services.bevocal.com/cdraccessservice_v2/ services/cdraccessservice_v2?wsdl http://cafe.services.bevocal.com/cdraccessservice_v2/services/ CDRAccessService_v2 http://production.services.bevocal.com/cdraccessservice_v2/ services/cdraccessservice_v2 http://www.bevocal.com/soap/services CDRAccessService CDRAccessService_v2 Methods Note: For simplicity, this document describes methods as though you used a language such as Java or JavaScript to access the service. In particular, the parameter types are described as Java equivalents. See Using BeVocal Platform Services for the correspondence between Java types and XML Schema built-ins. int int getcalldetailrecordcount( String organizationid, String applicationid, Date starttime, Date endtime ) getcalldetailrecordcountbyfilter( String organizationid, String applicationid, Filter[] filterlist ) CallDetailRecord[] getcalldetailrecords ( String organizationid, String applicationid, Date starttime, Date endtime, boolean requestextendeddata )

CALL DETAIL RECORD ACCESS SERVICE CallDetailRecord[] CallDetailRecord[] getcalldetailrecordsbyfilter( String organizationid, String applicationid, Filter[] filterlist, OrderBy[] orderbylist, int startindex, int recordcount, boolean requestextendeddata ) getcalldetailrecordsbyindex( String organizationid, String applicationid, Date starttime, Date endtime, int startindex, int recordcount, boolean requestextendeddata boolean orderbytimeascending ) Data Types CallDetailRecord CallDetailRecord { String sessionid; String parentsessionid; Date startdatetime; Int calldurationseconds; String calledparty; String callingparty; String originalcallingparty; String organizationid; String applicationid; String initialurl; String calltype; // valid values are INBOUND, OUTBOUND, // TROMBONE_TRANSFER, BLIND_TRANSFER String callresult; // valid values are BUSY, RING_NO_ANSWER... String mediagatewayhostname; String mediagatewaychannel; boolean bevocalcalllogavailable; boolean speechvendorcalllogavailable; boolean utterancesavailable; int capturedutterancecount; NameValuePair[] extendeddata; } Filter Filter { EnumFilterField field; //such as EnumFilterField.ERROR_COUNT EnumFilterOperator op; //such as EnumFilterOperator.EQUALS Object operand; //such as 4; type Date, String, or Integer } 2 CALL DETAIL RECORD ACCESS SERVICE

Summary EnumFilterField EnumFilterOperat or Enumerated type; one of: EnumFilterField.APPLICATION_ID EnumFilterField.CALLED_PARTY EnumFilterField.CALLING_PARTY EnumFilterField.CALL_TYPE EnumFilterField.DURATION EnumFilterField.END_TIME EnumFilterField.ERROR_COUNT EnumFilterField.MEDIA_GATEWAY_HOST EnumFilterField.MISREC_COUNT EnumFilterField.ORGANIZATION_ID EnumFilterField.START_TIME Enumerated type; one of: EnumFilterOperator.EQUALS EnumFilterOperator.EQUALS_IGNORE_CASE EnumFilterOperator.GREATER_THAN EnumFilterOperator.GREATER_THAN_OR_EQUALS EnumFilterOperator.IS_NOT_NULL EnumFilterOperator.IS_NULL EnumFilterOperator.LESS_THAN EnumFilterOperator.LESS_THAN_OR_EQUALS EnumFilterOperator.NOT_EQUALS EnumFilterOperator.NOT_EQUALS_IGNORE_CASE NameValuePair NameValuePair { String name; String value; } OrderBy OrderBy { EnumOrderByField field; //such as EnumOrderByField.CALL_TYPE boolean ascending; [ascending or descending sort] } EnumOrderByField Enumerated type; one of: EnumOrderByField.APPLICATION_ID EnumOrderByField.CALLED_PARTY EnumOrderByField.CALLING_PARTY EnumOrderByField.CALL_TYPE EnumOrderByField.DURATION EnumOrderByField.END_TIME EnumOrderByField.MEDIA_GATEWAY_HOST EnumOrderByField.ORGANIZATION_ID EnumOrderByField.START_TIME CALL DETAIL RECORD ACCESS SERVICE 3

CALL DETAIL RECORD ACCESS SERVICE How to Use This Service The Call Detail Record Access Service provides access to the CDRs of calls made to a particular VoiceXML application. You can use this service, for example, to write a reporting application summarizing the high-level details of usage of your application. You can also use it in conjunction with other BeVocal Platform services to provide more detailed analysis of calls and to write custom tools. For example, the BeVocal Café Vocal Player tool uses this and other services to let you interactively walk through user calls. To use the service, your client application passes parameters describing the set of calls whose records are desired. For a simple request, the parameters specify the application and a start time and an end time for the calls of interest. Other methods allow more complex queries, filtering on various conditions, such as the caller s ANI. The service returns records describing each call to that application matching the criteria that ended during that time period. For example, assume you specify a start time of 2001-05-29T08:00:00Z and an end time of 2001-05-29T09:00:00Z. A call that started at 2001-05-29T07:58:30Z and ended at 2001-05-29T08:00:50Z would be included in the records returned, but a call that started at 2001-05-29T08:58:30Z and ended at 2001-05-29T09:00:50Z would not be included. Using call end times makes it easier for you to be certain that you get access to relevant CDRs in a timely fashion. Because certain information about a call is not available until the call ends, the system must wait until after the call ends to write the CDR for that call. Consequently, an ongoing call does not yet have a CDR you can access. It is fairly common to want your application to access CDRs shortly after they become available. Because there is no way to know when an ongoing call will end, there is no way to know when the CDRs for all calls started during a particular time period will be available and hence how long after that time period you must wait before accessing the CDRs. On the other hand, it is obviously possible to know when the CDRs for all calls that ended during that same time period are available (that is, almost immediately after the time period!). There is a separate CDR for every inbound call, outbound call, and transferred call to and from a VoiceXML application. Once you have an array of CDRs, you work with them directly. You can also use the session ID that identifies a particular call as your handle for other services, such as to use the Media Access Service to get the recordings of what a user said during a call. You use this service to retrieve a limited number of records at a time. The service may limit the maximum number of records returned. Access to this service is restricted by the use of a security key. Before you can use this service, you must first obtain a key from BeVocal. For general information on using BeVocal Platform services, see Using BeVocal Platform Services. For an example of using this service, see the VoiceXML Samples page. 4 CALL DETAIL RECORD ACCESS SERVICE

getcalldetailrecordcount getcalldetailrecordcount Syntax Parameters Returns the number of calls that ended during a certain time period. See How to Use This Service on page 4 for a discussion of why the method returns calls that end during the time period and not those that start during the time period. int getcalldetailrecordcount( String organizationid, String applicationid, Date starttime, Date endtime ) Returns Faults Parameter organizationid applicationid starttime endtime Description The number of matching call records. The organization identifier. This ID is assigned when the application is provisioned. For Café developers, the value is always BVCLDEV. The application identifier. This ID is assigned when the application is provisioned. For Café developers, the value is the Café user ID. The start of the time interval for which records are requested. The Date format is described in Data Types on page 3 in Using BeVocal Platform Services. The end of the time interval for which records are requested. The Date format is described in Data Types on page 3 in Using BeVocal Platform Services. For many faults, you can see the fault detail for additional information. Examples Fault Number Description 1002 Access denied. (Client does not have access to the requested data.) 1003 The requested data is not available. SOAP Request POST /CDRAccessService_v2/services/CDRAccessService_v2 HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.0 Host: utopia Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 863 CALL DETAIL RECORD ACCESS SERVICE 5

CALL DETAIL RECORD ACCESS SERVICE <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:header> <ns1:platformservicessessionid xsi:type="xsd:string" xmlns:ns1="http://www.bevocal.com/soap/headers/"> E3EB1B1D378CC147ED935EFF39B8C911 </ns1:platformservicessessionid> </soapenv:header> <soapenv:body> <ns2:getcalldetailrecordcount xmlns:ns2="cdraccessservice_v2"> <arg0 xsi:type="xsd:string">bvcldev</arg0> <arg1 xsi:type="xsd:string">0000001239</arg1> <arg2 xsi:type="xsd:datetime">2003-02-01t20:00:00.000z</arg2> <arg3 xsi:type="xsd:datetime">2003-02-15t20:00:00.000z</arg3> </ns2:getcalldetailrecordcount> </soapenv:body> </soapenv:envelope> SOAP Response HTTP/1.0 200 OK Server: Resin/2.1.4 Content-Type: text/xml; charset=utf-8 Date: Thu, 13 Mar 2003 22:14:20 GMT <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:body> <ns1:getcalldetailrecordcountresponse xmlns:ns1="cdraccessservice_v2"> <getcalldetailrecordcountreturn xsi:type="xsd:int"> 11</getCallDetailRecordCountReturn> </ns1:getcalldetailrecordcountresponse> </soapenv:body> </soapenv:envelope> getcalldetailrecordcountbyfilter Syntax Returns the number of calls matching the specified criteria. int getcalldetailrecordcountbyfilter( String organizationid, String applicationid, Filter[] filterlist 6 CALL DETAIL RECORD ACCESS SERVICE

getcalldetailrecordcountbyfilter ) Parameters Parameter organizationid applicationid filterlist Description The organization identifier. This ID is assigned when the application is provisioned. For Café developers, the value is always BVCLDEV. The application identifier. This ID is assigned when the application is provisioned. For Café developers, the value is the Café user ID. An array of Filter objects to constrain the query. Each filter specifies: a field on which to filter, such as EnumFilterField.ERROR_COUNT. an operator, such as EnumFilterOperator.GREATER_THAN. if applicable, an operand, such as 4; at present, an operand must be of type Date, String, or Integer. Returns The number of matching call records. Faults For many faults, you can see the fault detail for additional information. Examples Fault Number Description 1002 Access denied. (Client does not have access to the requested data.) 1003 The requested data is not available. SOAP Request POST /CDRAccessService_v2/services/CDRAccessService_v2 HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.0 Host: utopia Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 2882 <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:header> <ns1:platformservicessessionid xsi:type="xsd:string" xmlns:ns1="http://www.bevocal.com/soap/headers/"> E3EB1B1D378CC147ED935EFF39B8C911 </ns1:platformservicessessionid> </soapenv:header> <soapenv:body> <ns2:getcalldetailrecordcountbyfilter xmlns:ns2="cdraccessservice_v2"> CALL DETAIL RECORD ACCESS SERVICE 7

CALL DETAIL RECORD ACCESS SERVICE <arg0 xsi:type="xsd:string">bvcldev</arg0> <arg1 xsi:type="xsd:string">0000001239</arg1> <arg2 xsi:type="soapenc:array" soapenc:arraytype="ns3:filter[2]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns3="urn:beanservice"> <item href="#id0"/> <item href="#id1"/> </arg2> </ns2:getcalldetailrecordcountbyfilter> <multiref id="id1" soapenc:root="0" xsi:type="ns4:filter" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns4="urn:beanservice"> <filterfield href="#id2"/> <filteroperator href="#id3"/> <filteroperand xsi:type="xsd:datetime"> 2003-02-15T20:00:00.000Z</filterOperand> <multiref id="id0" soapenc:root="0" xsi:type="ns5:filter" xmlns:ns5="urn:beanservice" <filterfield href="#id4"/> <filteroperator href="#id5"/> <filteroperand xsi:type="xsd:datetime"> 2003-02-01T20:00:00.000Z</filterOperand> <multiref id="id3" soapenc:root="0" xsi:type="ns6:enumfilteroperator" xmlns:ns6="urn:beanservice" <value xsi:type="xsd:string">less_than_or_equals</value> <multiref id="id4" soapenc:root="0" xsi:type="ns7:enumfilterfield" xmlns:ns7="urn:beanservice" <value xsi:type="xsd:string">start_time</value> <multiref id="id2" soapenc:root="0" xsi:type="ns8:enumfilterfield" xmlns:ns8="urn:beanservice" <value xsi:type="xsd:string">end_time</value> <multiref id="id5" soapenc:root="0" xsi:type="ns9:enumfilteroperator" xmlns:ns9="urn:beanservice" <value xsi:type="xsd:string">greater_than_or_equals</value> </soapenv:body> </soapenv:envelope> 8 CALL DETAIL RECORD ACCESS SERVICE

getcalldetailrecords SOAP Response HTTP/1.0 200 OK Server: Resin/2.1.4 Content-Type: text/xml; charset=utf-8 Date: Wed, 19 Mar 2003 02:11:55 GMT <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:body> <ns1:getcalldetailrecordcountbyfilterresponse xmlns:ns1="cdraccessservice_v2"> <getcalldetailrecordcountbyfilterreturn xsi:type="xsd:int"> 11 </getcalldetailrecordcountbyfilterreturn> </ns1:getcalldetailrecordcountbyfilterresponse> </soapenv:body> </soapenv:envelope> getcalldetailrecords Syntax Parameters Returns a list of call detail records for the set of calls that ended during a certain time period. See How to Use This Service on page 4 for a discussion of why the method returns calls that end during the time period and not those that start during the time period. CallDetailRecord[] getcalldetailrecords ( String organizationid, String applicationid, Date starttime, Date endtime, boolean requestextendeddata ) Parameter organizationid applicationid starttime Description The organization identifier. This ID is assigned when the application is provisioned. For Café developers, the value is always BVCLDEV. The application identifier. This ID is assigned when the application is provisioned. For Café developers, the value is the Café user ID. The start of the time interval for which records are requested. The Date format is described in Data Types on page 3 in Using BeVocal Platform Services. CALL DETAIL RECORD ACCESS SERVICE 9

CALL DETAIL RECORD ACCESS SERVICE Returns Faults Parameter endtime requestextendeddata Description The end of the time interval for which records are requested. The Date format is described in Data Types on page 3 in Using BeVocal Platform Services. Determines whether or not to include extended data with the records. In some cases, the platform may associate additional data with a CDR. If this parameter is true, that additional data is included with the returned records as a set of name-value pairs. For Café applications, the platform always associates extended data. Currently, the available extended data are: NUM_ERROR--the number of errors NUM_MISRECS--the number of rejections REQ_ID--outbound request ID associated with the session (for outbound notification calls) CONNECTED--the time the call was actually connected (for outbound notification calls) An array of CallDetailRecord objects describing a particular call. For many faults, you can see the fault detail for additional information. Examples Fault Number Description 1002 Access denied. (Client does not have access to the requested data.) 1003 The requested data is not available. SOAP Request POST /services/cdraccessservice_v2 HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.0 Host: utopia Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 896 <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:header> <ns1:platformservicessessionid xsi:type="xsd:string" xmlns:ns1="http://www.bevocal.com/soap/headers/"> E3EB1B1D378CC147ED935EFF39B8C911 </ns1:platformservicessessionid> </soapenv:header> <soapenv:body> <ns2:getcalldetailrecords xmlns:ns2="cdraccessservice"> <arg0 xsi:type="xsd:string">bvcldev</arg0> 10 CALL DETAIL RECORD ACCESS SERVICE

getcalldetailrecords <arg1 xsi:type="xsd:string">0000001239</arg1> <arg2 xsi:type="xsd:datetime">2002-10-28t19:36:17.327z</arg2> <arg3 xsi:type="xsd:datetime">2002-10-29t19:36:17.327z</arg3> <arg4 xsi:type="xsd:boolean">true</arg4> </ns2:getcalldetailrecords> </soapenv:body> </soapenv:envelope> SOAP Response HTTP/1.0 200 OK Server: Resin/2.1.4 Content-Type: text/xml; charset=utf-8 Date: Tue, 29 Oct 2002 19:36:07 GMT <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:body> <ns1:getcalldetailrecordsresponse xmlns:ns1="cdraccessservice"> <getcalldetailrecordsreturn xsi:type="soapenc:array" soapenc:arraytype="ns2:calldetailrecord[4]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:beanservice"> <item href="#id0"/> <item href="#id1"/> <item href="#id2"/> <item href="#id3"/> </getcalldetailrecordsreturn> </ns1:getcalldetailrecordsresponse> <multiref id="id0" soapenc:root="0" xsi:type="ns3:calldetailrecord" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns3="urn:beanservice"> <applicationid xsi:type="xsd:string">0000001239</applicationid> <bevocalcalllogavailable xsi:type="xsd:boolean"> true </bevocalcalllogavailable> <calldurationseconds xsi:type="xsd:int">28</calldurationseconds> <callresult xsi:type="xsd:string">completed</callresult> <calltype xsi:type="xsd:string">inbound</calltype> <calledparty xsi:type="xsd:string">6506411110</calledparty> <callingparty xsi:type="xsd:string">6506411508</callingparty> <extendeddata xsi:type="soapenc:array" soapenc:arraytype="ns3:namevaluepair[3]"> <item href="#id4"/> <item href="#id5"/> <item href="#id6"/> </extendeddata> <initialurl xsi:type="xsd:string">http://engweb-1:90/vxml/cafelogin.vxml </initialurl> <mediagatewaychannel xsi:type="xsd:string">ch001</mediagatewaychannel> <mediagatewayhostname xsi:type="xsd:string">engcm002 CALL DETAIL RECORD ACCESS SERVICE 11

CALL DETAIL RECORD ACCESS SERVICE </mediagatewayhostname> <organizationid xsi:type="xsd:string">bvcldev</organizationid> <originalcallingparty xsi:type="xsd:string" xsi:nil="true"/> <parentsessionid xsi:type="xsd:string">null</parentsessionid> <sessionid xsi:type="xsd:string">2002-engca002-ch001-fhk6w</sessionid> <speechvendorcalllogavailable xsi:type="xsd:boolean">true </speechvendorcalllogavailable> <startdatetime xsi:type="xsd:datetime">2002-10-28t21:59:20.000z </startdatetime> <utterancesavailable xsi:type="xsd:boolean">false</utterancesavailable> <multiref id="id1" soapenc:root="0" xsi:type="ns4:calldetailrecord" xmlns:ns4="urn:beanservice" <applicationid xsi:type="xsd:string">0000001239</applicationid> <bevocalcalllogavailable xsi:type="xsd:boolean">true </bevocalcalllogavailable> <calldurationseconds xsi:type="xsd:int">27</calldurationseconds> <callresult xsi:type="xsd:string">completed</callresult> <calltype xsi:type="xsd:string">inbound</calltype> <calledparty xsi:type="xsd:string">6506411110</calledparty> <callingparty xsi:type="xsd:string">6506411508</callingparty> <extendeddata xsi:type="soapenc:array" soapenc:arraytype="ns4:namevaluepair[3]"> <item href="#id7"/> <item href="#id8"/> <item href="#id9"/> </extendeddata> <initialurl xsi:type="xsd:string">http://engweb-1:90/vxml/cafelogin.vxml </initialurl> <mediagatewaychannel xsi:type="xsd:string">ch001</mediagatewaychannel> <mediagatewayhostname xsi:type="xsd:string">engcm002 </mediagatewayhostname> <organizationid xsi:type="xsd:string">bvcldev</organizationid> <originalcallingparty xsi:type="xsd:string" xsi:nil="true"/> <parentsessionid xsi:type="xsd:string">null</parentsessionid> <sessionid xsi:type="xsd:string">2002-engca002-ch001-fhk7x</sessionid> <speechvendorcalllogavailable xsi:type="xsd:boolean">true </speechvendorcalllogavailable> <startdatetime xsi:type="xsd:datetime">2002-10-28t21:59:57.000z </startdatetime> <utterancesavailable xsi:type="xsd:boolean">false</utterancesavailable> <multiref id="id2" soapenc:root="0" xsi:type="ns5:calldetailrecord" xmlns:ns5="urn:beanservice" <applicationid xsi:type="xsd:string">0000001239</applicationid> <bevocalcalllogavailable xsi:type="xsd:boolean">true </bevocalcalllogavailable> <calldurationseconds xsi:type="xsd:int">131</calldurationseconds> <callresult xsi:type="xsd:string">completed</callresult> <calltype xsi:type="xsd:string">inbound</calltype> <calledparty xsi:type="xsd:string">6506411110</calledparty> 12 CALL DETAIL RECORD ACCESS SERVICE

getcalldetailrecords <callingparty xsi:type="xsd:string">6506411508</callingparty> <extendeddata xsi:type="soapenc:array" soapenc:arraytype="ns5:namevaluepair[3]"> <item href="#id10"/> <item href="#id11"/> <item href="#id12"/> </extendeddata> <initialurl xsi:type="xsd:string">http://engweb-1:90/vxml/cafelogin.vxml </initialurl> <mediagatewaychannel xsi:type="xsd:string">ch001</mediagatewaychannel> <mediagatewayhostname xsi:type="xsd:string">engcm002 </mediagatewayhostname> <organizationid xsi:type="xsd:string">bvcldev</organizationid> <originalcallingparty xsi:type="xsd:string" xsi:nil="true"/> <parentsessionid xsi:type="xsd:string">null</parentsessionid> <sessionid xsi:type="xsd:string">2002-engca002-ch001-fgr8n</sessionid> <speechvendorcalllogavailable xsi:type="xsd:boolean">true </speechvendorcalllogavailable> <startdatetime xsi:type="xsd:datetime">2002-10-28t23:33:59.000z </startdatetime> <utterancesavailable xsi:type="xsd:boolean">false</utterancesavailable> <multiref id="id3" soapenc:root="0" xsi:type="ns6:calldetailrecord" xmlns:ns6="urn:beanservice" <applicationid xsi:type="xsd:string">0000001239</applicationid> <bevocalcalllogavailable xsi:type="xsd:boolean">true </bevocalcalllogavailable> <calldurationseconds xsi:type="xsd:int">57</calldurationseconds> <callresult xsi:type="xsd:string">completed</callresult> <calltype xsi:type="xsd:string">inbound</calltype> <calledparty xsi:type="xsd:string">6506411110</calledparty> <callingparty xsi:type="xsd:string">6506411508</callingparty> <extendeddata xsi:type="soapenc:array" soapenc:arraytype="ns6:namevaluepair[3]"> <item href="#id13"/> <item href="#id14"/> <item href="#id15"/> </extendeddata> <initialurl xsi:type="xsd:string">http://engweb-1:90/vxml/cafelogin.vxml </initialurl> <mediagatewaychannel xsi:type="xsd:string">ch001</mediagatewaychannel> <mediagatewayhostname xsi:type="xsd:string">engcm002 </mediagatewayhostname> <organizationid xsi:type="xsd:string">bvcldev</organizationid> <originalcallingparty xsi:type="xsd:string" xsi:nil="true"/> <parentsessionid xsi:type="xsd:string">null</parentsessionid> <sessionid xsi:type="xsd:string">2002-engca002-ch001-fj3a3</sessionid> <speechvendorcalllogavailable xsi:type="xsd:boolean">true </speechvendorcalllogavailable> <startdatetime xsi:type="xsd:datetime">2002-10-29t17:49:15.000z </startdatetime> <utterancesavailable xsi:type="xsd:boolean">false </utterancesavailable> CALL DETAIL RECORD ACCESS SERVICE 13

CALL DETAIL RECORD ACCESS SERVICE <multiref id="id13" soapenc:root="0" xsi:type="ns7:namevaluepair" xmlns:ns7="urn:beanservice" <name xsi:type="xsd:string">num_error</name> <multiref id="id12" soapenc:root="0" xsi:type="ns8:namevaluepair" xmlns:ns8="urn:beanservice" <name xsi:type="xsd:string">log_version</name> <value xsi:type="xsd:string">1.0</value> <multiref id="id7" soapenc:root="0" xsi:type="ns9:namevaluepair" xmlns:ns9="urn:beanservice" <name xsi:type="xsd:string">num_error</name> <multiref id="id6" soapenc:root="0" xsi:type="ns10:namevaluepair" xmlns:ns10="urn:beanservice" <name xsi:type="xsd:string">log_version</name> <value xsi:type="xsd:string">1.0</value> <multiref id="id4" soapenc:root="0" xsi:type="ns11:namevaluepair" xmlns:ns11="urn:beanservice" <name xsi:type="xsd:string">num_error</name> <multiref id="id11" soapenc:root="0" xsi:type="ns12:namevaluepair" xmlns:ns12="urn:beanservice" <name xsi:type="xsd:string">num_mis_rec</name> <multiref id="id5" soapenc:root="0" xsi:type="ns13:namevaluepair" xmlns:ns13="urn:beanservice" <name xsi:type="xsd:string">num_mis_rec</name> <multiref id="id8" soapenc:root="0" xsi:type="ns14:namevaluepair" xmlns:ns14="urn:beanservice" <name xsi:type="xsd:string">num_mis_rec</name> 14 CALL DETAIL RECORD ACCESS SERVICE

getcalldetailrecordsbyfilter <multiref id="id15" soapenc:root="0" xsi:type="ns15:namevaluepair" xmlns:ns15="urn:beanservice" <name xsi:type="xsd:string">log_version</name> <value xsi:type="xsd:string">1.0</value> <multiref id="id10" soapenc:root="0" xsi:type="ns16:namevaluepair" xmlns:ns16="urn:beanservice" <name xsi:type="xsd:string">num_error</name> <multiref id="id14" soapenc:root="0" xsi:type="ns17:namevaluepair" xmlns:ns17="urn:beanservice" <name xsi:type="xsd:string">num_mis_rec</name> <multiref id="id9" soapenc:root="0" xsi:type="ns18:namevaluepair" xmlns:ns18="urn:beanservice" <name xsi:type="xsd:string">log_version</name> <value xsi:type="xsd:string">1.0</value> </soapenv:body> </soapenv:envelope> getcalldetailrecordsbyfilter Syntax Returns a list of call detail records for the set of calls that match the specified criteria. CallDetailRecord[] getcalldetailrecordsbyfilter( String organizationid, String applicationid, Filter[] filterlist, OrderBy[] orderbylist, int startindex, int recordcount, boolean requestextendeddata ) CALL DETAIL RECORD ACCESS SERVICE 15

CALL DETAIL RECORD ACCESS SERVICE Parameters Returns Faults Parameter organizationid applicationid filterlist orderbylist startindex recordcount requestextendeddata Description A list of CDRs matching the specified criteria. The organization identifier. This ID is assigned when the application is provisioned. For Café developers, the value is always BVCLDEV. The application identifier. This ID is assigned when the application is provisioned. For Café developers, the value is the Café user ID. An array of Filter objects to constrain the query. Each filter specifies: a field on which to filter, such as EnumFilterField.ERROR_COUNT. an operator, such as EnumFilterOperator.GREATER_THAN. if applicable, an operand, such as 4; at present, an operand must be of type Date, String, or Integer. An array of OrderBy objects specifying the columns on which to sort the results. Each object specifies a field to use for ordering (such as EnumOrderByField.CALLING_PARTY) and a boolean indicating whether to sort in ascending or descending order. The starting index of the subset of records matching the criteria that are actually wanted. If you first use getcalldetailrecordcountbyfilter to determine the number of records that match your filter, you can then get those records in batches, by specifying a startindex and recordcount to this method. The number of records to retrieve. Determines whether or not to include extended data with the records. In some cases, the platform may associate additional data with a CDR. If this parameter is true, that additional data is included with the returned records as a set of name-value pairs. For Café applications, the platform always associates extended data. Currently, the available extended data are: NUM_ERROR--the number of errors NUM_MISRECS--the number of rejections REQ_ID--outbound request ID associated with the session (for outbound notification calls) CONNECTED--the time the call was actually connected (for outbound notification calls) For many faults, you can see the fault detail for additional information. Fault Number Description 1002 Access denied. (Client does not have access to the requested data.) 1003 The requested data is not available. 16 CALL DETAIL RECORD ACCESS SERVICE

getcalldetailrecordsbyfilter Examples SOAP Request POST /CDRAccessService_v2/services/CDRAccessService_v2 HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.0 Host: utopia Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 4448 <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:header> <ns1:platformservicessessionid xsi:type="xsd:string" xmlns:ns1="http://www.bevocal.com/soap/headers/"> E3EB1B1D378CC147ED935EFF39B8C911 </ns1:platformservicessessionid> </soapenv:header> <soapenv:body> <ns2:getcalldetailrecordsbyfilter xmlns:ns2="cdraccessservice_v2"> <arg0 xsi:type="xsd:string">bvcldev</arg0> <arg1 xsi:type="xsd:string">0000001239</arg1> <arg2 xsi:type="soapenc:array" soapenc:arraytype="ns3:filter[2]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns3="urn:beanservice"> <item href="#id0"/> <item href="#id1"/> </arg2> <arg3 xsi:type="soapenc:array" soapenc:arraytype="ns4:orderby[2]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns4="urn:beanservice"> <item href="#id2"/> <item href="#id3"/> </arg3> <arg4 xsi:type="xsd:int">1</arg4> <arg5 xsi:type="xsd:int">33</arg5> <arg6 xsi:type="xsd:boolean">false</arg6> </ns2:getcalldetailrecordsbyfilter> <multiref id="id1" soapenc:root="0" xsi:type="ns5:filter" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns5="urn:beanservice"> <filterfield href="#id4"/> <filteroperator href="#id5"/> <filteroperand xsi:type="xsd:datetime"> 2003-02-15T20:00:00.000Z</filterOperand> CALL DETAIL RECORD ACCESS SERVICE 17

CALL DETAIL RECORD ACCESS SERVICE <multiref id="id3" soapenc:root="0" xsi:type="ns6:orderby" xmlns:ns6="urn:beanservice" <orderbyascending xsi:type="xsd:boolean">false</orderbyascending> <orderbyfield href="#id6"/> <multiref id="id0" soapenc:root="0" xsi:type="ns7:filter" xmlns:ns7="urn:beanservice" <filterfield href="#id7"/> <filteroperator href="#id8"/> <filteroperand xsi:type="xsd:datetime"> 2002-02-01T20:00:00.000Z</filterOperand> <multiref id="id2" soapenc:root="0" xsi:type="ns8:orderby" xmlns:ns8="urn:beanservice" <orderbyascending xsi:type="xsd:boolean">true</orderbyascending> <orderbyfield href="#id9"/> <multiref id="id5" soapenc:root="0" xsi:type="ns9:enumfilteroperator" xmlns:ns9="urn:beanservice" <value xsi:type="xsd:string">less_than_or_equals</value> <multiref id="id7" soapenc:root="0" xsi:type="ns10:enumfilterfield" xmlns:ns10="urn:beanservice" <value xsi:type="xsd:string">start_time</value> <multiref id="id4" soapenc:root="0" xsi:type="ns11:enumfilterfield" xmlns:ns11="urn:beanservice" <value xsi:type="xsd:string">end_time</value> <multiref id="id9" soapenc:root="0" xsi:type="ns12:enumorderbyfield" xmlns:ns12="urn:beanservice" <value xsi:type="xsd:string">start_time</value> <multiref id="id6" soapenc:root="0" xsi:type="ns13:enumorderbyfield" xmlns:ns13="urn:beanservice" <value xsi:type="xsd:string">end_time</value> <multiref id="id8" soapenc:root="0" 18 CALL DETAIL RECORD ACCESS SERVICE

getcalldetailrecordsbyfilter xsi:type="ns14:enumfilteroperator" xmlns:ns14="urn:beanservice" <value xsi:type="xsd:string">greater_than_or_equals</value> </soapenv:body> </soapenv:envelope> SOAP Response HTTP/1.0 200 OK Server: Resin/2.1.4 Content-Type: text/xml; charset=utf-8 Date: Wed, 19 Mar 2003 02:16:14 GMT <?xml version="1.0" encoding="utf-8"?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:body> <ns1:getcalldetailrecordsbyfilterresponse xmlns:ns1="cdraccessservice_v2"> <getcalldetailrecordsbyfilterreturn xsi:type="soapenc:array" soapenc:arraytype="ns2:calldetailrecord[33]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:beanservice"> <item href="#id0"/> <item href="#id1"/> <item href="#id2"/>... <item href="#id32"/> </getcalldetailrecordsbyfilterreturn> </ns1:getcalldetailrecordsbyfilterresponse> <multiref id="id2" soapenc:root="0" xsi:type="ns12:calldetailrecord" xmlns:ns12="urn:beanservice" <calldurationseconds xsi:type="xsd:int">77</calldurationseconds> <capturedutterancecount xsi:type="xsd:int">0</capturedutterancecount> <utterancesavailable xsi:type="xsd:boolean">false</utterancesavailable> <parentsessionid xsi:type="xsd:string" xsi:nil="true"/> <applicationid xsi:type="xsd:string">0000001239</applicationid> <calledparty xsi:type="xsd:string">6506411110</calledparty> <bevocalcalllogavailable xsi:type="xsd:boolean">true</bevocalcalllogavailable> <sessionid xsi:type="xsd:string">2002-engca002-ch001-fw6bz</sessionid> <callresult xsi:type="xsd:string">completed</callresult> <mediagatewayhostname xsi:type="xsd:string">engcm002</mediagatewayhostname> <extendeddata xsi:type="soapenc:array" xsi:nil="true"/> <callingparty xsi:type="xsd:string">6506411508</callingparty> <mediagatewaychannel xsi:type="xsd:string">ch001</mediagatewaychannel> <speechvendorcalllogavailable xsi:type="xsd:boolean">true</speechvendorcalllogavailable> <originalcallingparty xsi:type="xsd:string" xsi:nil="true"/> <startdatetime xsi:type="xsd:datetime"> 2002-11-05T11:23:59.000Z</startDateTime> <organizationid xsi:type="xsd:string">bvcldev</organizationid> CALL DETAIL RECORD ACCESS SERVICE 19

CALL DETAIL RECORD ACCESS SERVICE <initialurl xsi:type="xsd:string"> http://engweb-1:90/vxml/cafelogin.vxml</initialurl> <calltype xsi:type="xsd:string">inbound</calltype> <multiref id="id1" soapenc:root="0" xsi:type="ns16:calldetailrecord" xmlns:ns16="urn:beanservice" <calldurationseconds xsi:type="xsd:int">24</calldurationseconds> <capturedutterancecount xsi:type="xsd:int">0</capturedutterancecount> <utterancesavailable xsi:type="xsd:boolean">false</utterancesavailable> <parentsessionid xsi:type="xsd:string" xsi:nil="true"/> <applicationid xsi:type="xsd:string">0000001239</applicationid> <calledparty xsi:type="xsd:string">6506411110</calledparty> <bevocalcalllogavailable xsi:type="xsd:boolean">true</bevocalcalllogavailable> <sessionid xsi:type="xsd:string">2002-engca002-ch001-ftmm3</sessionid> <callresult xsi:type="xsd:string">completed</callresult> <mediagatewayhostname xsi:type="xsd:string">engcm002</mediagatewayhostname> <extendeddata xsi:type="soapenc:array" xsi:nil="true"/> <callingparty xsi:type="xsd:string">6506411508</callingparty> <mediagatewaychannel xsi:type="xsd:string">ch001</mediagatewaychannel> <speechvendorcalllogavailable xsi:type="xsd:boolean"> true</speechvendorcalllogavailable> <originalcallingparty xsi:type="xsd:string" xsi:nil="true"/> <startdatetime xsi:type="xsd:datetime"> 2002-11-04T14:22:51.000Z</startDateTime> <organizationid xsi:type="xsd:string">bvcldev</organizationid> <initialurl xsi:type="xsd:string"> http://engweb-1:90/vxml/cafelogin.vxml</initialurl> <calltype xsi:type="xsd:string">inbound</calltype> <multiref id="id0" soapenc:root="0" xsi:type="ns19:calldetailrecord" xmlns:ns19="urn:beanservice" <calldurationseconds xsi:type="xsd:int">40</calldurationseconds> <capturedutterancecount xsi:type="xsd:int">0</capturedutterancecount> <utterancesavailable xsi:type="xsd:boolean">false</utterancesavailable> <parentsessionid xsi:type="xsd:string" xsi:nil="true"/> <applicationid xsi:type="xsd:string">0000001239</applicationid> <calledparty xsi:type="xsd:string">6506411110</calledparty> <bevocalcalllogavailable xsi:type="xsd:boolean">true</bevocalcalllogavailable> <sessionid xsi:type="xsd:string">2002-engca002-ch001-fo9dr</sessionid> <callresult xsi:type="xsd:string">completed</callresult> <mediagatewayhostname xsi:type="xsd:string">engcm002</mediagatewayhostname> <extendeddata xsi:type="soapenc:array" xsi:nil="true"/> <callingparty xsi:type="xsd:string">6506411508</callingparty> <mediagatewaychannel xsi:type="xsd:string">ch001</mediagatewaychannel> <speechvendorcalllogavailable xsi:type="xsd:boolean"> true</speechvendorcalllogavailable> <originalcallingparty xsi:type="xsd:string" xsi:nil="true"/> <startdatetime xsi:type="xsd:datetime"> 2002-11-01T16:49:03.000Z</startDateTime> <organizationid xsi:type="xsd:string">bvcldev</organizationid> <initialurl xsi:type="xsd:string"> 20 CALL DETAIL RECORD ACCESS SERVICE