Download - Voxeo Summit Day 2 -Voxeo APIs and SDKs
BUILD ON VOXEO
SERVICE PROVIDER INNOVATION AND TOOLS "
Our goal: Enable any conceivable task for automation and integration with 3rd party products
• Monitoring and Control • Configuration and Provisioning • User and License Management • Application Deployment • Application Development
BUILD ON VOXEO
Prophecy • Provisioning API • Monitor and Control API • Trigger and control sessions
Voxeo CXP • Web Service Interface
4
Agenda
Provisioning API
PROPHECY"
Overview
• Designed for Service providers • Allow their customers to manage services/applications in
the Prophecy community • Automated management
of servers and virtual platforms
• User Management
• SOAP Based • Stateless • Documentation:
http://help.voxeo.com/go/help/ prophecy.p13.apis.provisioning.overview
Prophecy Provisioning API
Integration
• There are two ways to use the Provisioning API: • Java-based Command line client (Windows/Unix/MAC) • Build your own Web Services client
• WSDL Located at: http://localhost:9996/ManagementConsole/soap/provisioning.wsdl
Prophecy Provisioning API
Security
For security, basic SOAP authentication is needed • Command Line – this is done for you • Web Services – the SOAP Request Header must
contain: • Username, • Password (SHA-1 hashed and base64 encoded), • And as an additional security measure, “nonce” is
also required.
Prophecy Provisioning API
Security Prophecy Provisioning API
SOAP Request Header example <soap:Header>
<wsse:Security xmlns:wsse="http://..." soap:mustUnderstand="1"> <wsse:UsernameToken xmlns:wsu="http://…" wsu:Id="UsernameToken-1">
<wsse:Username>admin</wsse:Username> <wsse:Password Type="http://…">m6sSYz22QCX0pCYfidi16NO/+4k=</wsse:Password> <wsse:Nonce EncodingType="http://…">/PM9ge0rBFKp9VPlhHOMhg==</wsse:Nonce> <wsu:Created>2013-05-14T19:37:18.527Z</wsu:Created>
</wsse:UsernameToken> </wsse:Security>
</soap:Header>
Response Prophecy Provisioning API
SOAP Response example <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header /> <SOAP-ENV:Body> <ns5:ServerDetailListResponse […] > <ServerDetail> <ID>324b26eb3f4044d8bb1a034bcba53180</ID> <Hostname>127.0.0.1</Hostname> </ServerDetail> </ns5:ServerDetailListResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Application Management Prophecy Provisioning API
11
Applications: CallXML/CCXML/VoiceXML scripts or applications Routes/addresses: String associating an application with a token or DID.
Server and Service Configuration
Prophecy Provisioning API
12
Servers: Physical hardware. Services: E.g. Loquendo ASR, Nuance ASR, Prophecy TTS, CCXML1.0, etc
Virtual Platform Configuration Prophecy Provisioning API
13
Virtual Platforms Set of logically grouped services (ASR/TTS/CCXML/etc). Route or resources are always selected based on a combination of VP and the site.
User Management Prophecy Provisioning API
14
Getting started Prophecy Provisioning API
• Get the WSI client and run it in a terminal (command shell) window
• http://help.voxeo.com/go/help/prophecy.p13.apis.provisioning.client.overview
15
Examples
• Get list of Servers:
./client.sh -host <host> -port 9996 -user <user> -passwd <pwd> -op GET_SERVERS
Prophecy Provisioning API
Examples
• Create Application: client.sh -host <host> -port 996 -user <user> -passwd <pwd> -op CREATE_APPLICATION -appAutoanswer true -appDialogStrings dial1,dial2,dial3 -applicationName MyTestApp -appUrl1 http://acme.com/myVXMLapp.xml -browserType VXML -virtualPlatformId 2c9086073a41a5e2013a41a603440272
Prophecy Provisioning API
Monitor & Control APIs
PROPHECY"
Monitor and Control Prophecy APIs
• APIs for monitoring and controlling Prophecy in production • HTTP Post API • Several data formats
supported for response (XML, CSV) • E.g.: …&format=xml& …
Stats_10 Prophecy APIs
• Monitor performance and usage data • Examples
• How many ports are licensed / in use? (for VXML, CCXML, MRCP, TTS, ASR, …)
• Retrieve a list of all port and session counter data, including browser type, session URLs, and Virtual Platform data
• Some Use cases • Create applications to monitor or control calls based on the
status of your Prophecy system. • Create applications to dynamically update a status monitor
as described in the blog entry, Building a Custom Stats Monitor for Voxeo Prophecy.
• In CCXML, you can control a call based on port availability.
20
Scm_10 Prophecy APIs
• Monitor, control, and update Voxeo Prophecy Services. • vphone - Prophecy SIP Phone Service • splunkweb - Prophecy Log Search Service • splunkd - Prophecy Log Indexer Service • vdirectory - Prophecy Directory Service • vmc - Prophecy Commander Service • vprism - Prophecy PRISM Server Service • vserver - Prophecy Server Service
21
Quiesce_10 Prophecy APIs
• For maintenance or testing, you may need to remove a Prophecy server that actively handles calls from service. • With the quiesce_10 API, you can direct Prophecy
to stop taking any new calls, and allow any calls in progress to finish.
• Use the sessions_10 API to monitor session data to determine when all calls are complete
• To end zombie sessions without having to restart Prophecy Services, use the ctrl1_0 API.
22
Starting and managing sessions
PROPHECY"
Start outbound applications / calls Prophecy Token API
• The Token API is a HTTP based API that allows to start a CCXML session, or to trigger an outbound call connected to a VXML session • TokenID is either a route name (premise),
or Voxeo-provisioned GUID (cloud)
• Separate service for each browser http://{server}:9998/SessionControl/VoiceXML.start http://{server}:9999/SessionControl/CallXML.start http://{server}:9999/SessionControl/CCXML10.start
Trigger events in CCXML sessions CCXML Event Injection
• http://api.voxeo.net/SessionControl/CCXML.send?sessionid=<sessionId>&eventname=<eventName>
Or • http://localhost:9999/SessionControl/CCXML.send?
sessionid=<sessionId>&eventname=<eventName>
• Use cases • Send asynchronous events from VXML to CCXML
without having to kill the VXML dialog • Build complex conference moderator type
applications where a web UI drives actions in a running conference call
25
Web Service Interface
VOXEO CXP"
The CXP Web Services Interface Voxeo CXP WSI
Documentation: http://help.voxeo.com/go/help/ vo.cxp13.webservices.reference.overview
The CXP Web Services Interface Voxeo CXP WSI
• For administration tasks, similar scope as Prophecy Provisioning API • Useful to Service Providers • Automate administration tasks and enable end
customers to self-provision applications
• SOAP-based • Session-oriented • Start a WSI session with a Login operation, end
it with a Logout operation.
Typical Use Cases
Voxeo CXP WSI
• Automate administration tasks • Schedule service deployments • Idle and stop server instances for hardware
maintenance • …
• Create new GUIs for CXP provisioning tasks • Create projects and upload project definition files • Configure Services and deploy them • Get current activity status
The CXP Web Services Interface (WSI) Voxeo CXP WSI
• Anything that can be done in CXP Developer can be done via the WSI • CXP Developer connects to CXP Server via WSI
for any kind of tasks (both Dev and OA&M)
WSI CXP Server
Metadata Repository
User Access Control Voxeo CXP WSI
31
• User access control applies in the same way as for activities in CXP Developer • WSI access must be
explicitly granted • WSI activities are
logged in audit trails
Security Commands Voxeo CXP WSI
• Login / Logout • User Management • Change password • Kill sessions
• writeAuditTrail • provides the ability to write custom messages to the
Voxeo CXP audit trail.
Server Management Voxeo CXP WSI
• Start/stop/idle/resume Servers and Server Instances • Manager Server and
Service configuration • Manage licenses • Activate tracing • Get live data
Server Management
• Returns the current status of the specified server, including information about the • Active/finished/aborted/rejected calls • Logging and tracing configuration • Session limits and guarantees
• For all deployed services and server instances
queryServer
Voxeo CXP WSI
Same scope of Information as in CXP Commander
Service Management
Voxeo CXP WSI
• Start/stop/idle/resume services • Create and modify Service
objects (i.e., provision applications) • Deploy services from • Metadata Repository DB • VoiceObjectsXML files
Project Management
Voxeo CXP WSI
• You’ll probably never touch this set – these methods are for used for actual project development work
• Would be used to create an alternative CXP development environment
User Management and Log Access
Voxeo CXP WSI
• Create and modify users • Manage user access grants:
ACLs (access control lists)
• Get access to log files and trace files
You saw APIs for Prophecy and CXP for • Monitoring and Control • Server and Platform Configuration • Service and Number Provisioning • Application Deployment • User and License Management • Application Development
BUILD ON VOXEO
More APIs available in Voxeo hosting: • Location Lookup (LBS)
• Wireless vs landline detection
• ANI Spoof Detector
• Voice Biometrics
Now …
BUILD ON VOXEO
à presentation on “Securing Customer Interactions”
What are YOU going to build?
BUILD ON VOXEO