Voxeo Summit Day 2 -Voxeo APIs and SDKs


Published on

Voxeo APIs and SDKs including the Prophecy Provisioning API, CXP Web Service Interface and hosting APIs

Andreas Volmer, Voxeo Sr. Product Manager

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Voxeo Summit Day 2 -Voxeo APIs and SDKs

  2. 2. 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
  3. 3. Prophecy •  Provisioning API •  Monitor and Control API •  Trigger and control sessions Voxeo CXP •  Web Service Interface 4 Agenda
  4. 4. Provisioning API PROPHECY"
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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>
  9. 9. 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></Hostname>        </ServerDetail> </ns5:ServerDetailListResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
  10. 10. Application Management Prophecy Provisioning API 11 Applications: CallXML/CCXML/ VoiceXML scripts or applications Routes/addresses: String associating an application with a token or DID.
  11. 11. Server and Service Configuration Prophecy Provisioning API 12 Servers: Physical hardware. Services: E.g. Loquendo ASR, Nuance ASR, Prophecy TTS, CCXML1.0, etc
  12. 12. 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.
  13. 13. User Management Prophecy Provisioning API 14
  14. 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
  15. 15. Examples • Get list of Servers: ./client.sh -host <host> -port 9996 -user <user> -passwd <pwd> -op GET_SERVERS Prophecy Provisioning API
  16. 16. 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
  17. 17. Monitor & Control APIs PROPHECY"
  18. 18. 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& …
  19. 19. 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
  20. 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
  21. 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
  22. 22. Starting and managing sessions PROPHECY"
  23. 23. 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
  24. 24. 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
  25. 25. Web Service Interface VOXEO CXP"
  26. 26. The CXP Web Services Interface Voxeo CXP WSI Documentation: http://help.voxeo.com/go/help/ vo.cxp13.webservices.reference.overview
  27. 27. 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.
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. 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.
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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”
  39. 39. What are YOU going to build? BUILD ON VOXEO