Title: The Verizon Network API
1 2Webinar Overview
- Overview of the Verizon Network API
- Gateway Architecture
- Supported APIs
- Basic Demo
- Introduction to Network API Development
- Tools Overview
- On-Boarding Process and Certification
- Tips for avoiding RFIs and accelerating the
on-boarding process - Process addition API Certification
- API Certification
- QA
3Introduction
- Network API are the Parlay X 2.1 SOAP and REST
interfaces exposed to third party developers. - Network enablers are the elements of the Verizon
Network that are exposed through the Network API
web services. - Location and Messaging
- A Network application is a application that uses
the Network API. - Third party developers use the Verizon Network
API to implement an array of novel applications. - Network applications dont usually run on a
handset. - Device based applications should use a proxy
approach to the connect to the Network API.
Network Application
4Verizon Network API Gateways
5Verizon Network API Gateways
- Simulator Gateway (sim.verizoncert.com)
- Development and testing
- Certification Gateway (cert.verizoncert.com)
- Restricted production replica for application
certification - Production Gateway (prod.verizoncert.com)
6Supported and Up-coming Services
- Implements the Parlay X 2.1 network standard for
Short Messaging (SMS), Multimedia Messaging (MMS)
and Terminal Location (LBS) - Supports the same operations via the REST and
SOAP interfaces - Supported services
- Terminal Location (LBS) Coarse and fine location
support - Messaging (Short Messaging and Multimedia
Messaging) - Up-coming services
- Device capability and configuration (DCC)
Ability to access device make and model for an
MDN. - MDN Lookup Ability todetermine the service
mobile carrier for an MDN. - Terminal Status Ability todetermine whether a
device is online or offline.
7Supported Operations (SMS)
- SendSmsBinding
- sendSms
- getSmsDeliveryStatus
- SmsNotificationManagerBinding
- startSmsNotification
- stopSmsNotification
- SmsNotificationBinding
- notifySmsDeliveryReceipt
- notifySmsReception
8Supported Operations (MMS)
- SendMessageBinding
- sendMessage
- getMessageDeliveryStatus
- ReceiveMessageBinding
- getMessage
- MessageNotificationManagerBinding
- startMessageNotification
- stopMessageNotification
- MessageNotificationBinding
- notifyMessageDeliveryReceipt
- notifyMessageReception
9Supported Operations (Terminal Location / LBS)
- TerminalLocationBinding
- getLocation
- getLocationForGroup
- getTerminalDistance
- TerminalLocationNotificationManagerBinding
- startGeographicalNotification
- endNotification
- TerminalLocationNotificationBinding
- locationEnd
- locationError
- locationNotifcation
10Verizon Network API Privacy
- A subscribers opt-in opt-out settings is at
the application level and it is applicable to
both messaging and location requests. - The initial location or messaging request
triggers a dynamic sms ask to the subscribers
device. - Subscribers additionally have the ability to
enable or disable their opt-in and opt-out
setting for each application from their Verizon
My Account site
Sample sendSms Flow
- A Network Application sends sendSms request
- Server checks whether the target device has given
consent to the calling application - If the target device has given consent
- Server delivers the message
- Else
- Server sends the opt-in sms message to the target
device (W,A,D) - A program named
ApplicationShortName is trying to locate or
contact you.... - this message cannot be
changed - Server responds back to the calling application
with a 9061 error code
11Basic demo
12Basic Demonstration
Create developer credentials and log in
to http//developer.verizon.com/ Enter up to
two MDNs, answer SMS confirmation to allow MDN
use in demo. Use the VDC web interface to select
an MDN for sending a message or getting a
location. You can try the API without creating
your own app.
13Basic Demonstration Cont.
Respond to location and messaging opt-in message
to allow access to the Basic Demonstration
Application. You will be able to run this demo
from the website using your own devices. A good
way for nontechnical people to try out the
Network API. Expect more sophisticated demos in
future Only Verizon phones can be used
14MMS Demonstration
Select one of your devices from the drop down
menu, hit send to deliver the message.
15SMS Demonstration
Select one of your devices from the drop down
menu, type a message, hit send to deliver the
message.
16Get Location Demonstration
Select one of your devices from the drop down
menu, and click Get Location to get a location
fix of the selected device.
17Getting started developing
18Documentation
http//developer.verizon.com/jsps/devCenters/Netwo
rk_Enablers/index.jsp
19Simulator Credentials Generation
- Access the Network API Dev Center
- Sign-In in to the VDC Developer Portal
(http//verizon.developer.com) - Click Dev Center on the top navigation area and
scroll towards bottom to access the Network APIs
Dev Center link - From there click on Network API Tutorials under
the Technical Resources Section - (http//developer.verizon.com/jsps/devCenters/Netw
ork_Enablers/Landing_Pages/ne_tech_res_tutorials.j
sp) - Click the link to Access your simulator
credentials - An email with your password is sent to your email
address
20Sticking Point
- Make sure Verizon Emails do not go into your spam
folder! - Make sure to add network-apps_at_verizonwireless.com
into your email client white list. - If you are not receiving email notification,
please let us know send mail to
network-apps_at_verizonwireless.com
21Getting Started Bundle
- The link Getting Started Developing for the
Network API to download the Getting Started zip
file is available under the Downloads section. - Network_Apps_Getting_Started.zip content
- SOAP UI Project (getting_started_soap_ui.xml)
- Java API Generation Scripts (axis and cfx)
22Java API Generation
- Download Apache Axis or Apache CXF
- Extract the Network_Apps_Getting_Started.zip
file to a folder on your computer - Run the appropriate script included in the
Network_Apps_Getting_Started.zip file - vzw_axis1_sms_client_wsdl2java.sh
- vzw_axis1_sms_client_wsdl2java.bat
- vzw_cxf_sms_client_wsdl2java.bat
- vzw_cxf_sms_client_wsdl2java.sh
- The scripts create a Java API on which you can
build Network - applications
23Introduction to SOAP UI
- soapUI is a tool for testing Web-Services. Its
functions include - Inspecting Web Services
- Invoking SOAP and REST Services
- Open Source Version is downloadable free from
http//www.soapui.org/
24Sending A SOAP Network API requests via SOAP UI
- Extract the Network_Apps_Getting_Started.zip
file to a folder on your computer - Start SOAP UI
- Import SOAP UI Project
- File -gt Import
- Navigate to the folder where you extracted the
zip file and choose the getting_started_soap_ui.x
ml file - Configure your credentials
- Double-Click on the imported project (Getting
Started SOAP) - Navigate to the Security Credentials Tab and use
you your vdc login email address and simulator
password emailed you - Pick any request to initial a test
25Sample sendSms SOAP Request and Response
Request
Response
ltsoapenvEnvelope xmlnssoapenv"http//schemas.x
mlsoap.org/soap/envelope/" xmlnsloc"http//www.c
sapi.org/schema/parlayx/sms/send/v2_2/local"gt ltsoa
penvHeader /gt ltsoapenvBodygt ltlocsendSmsgt lt!--1
or more repetitions--gt ltlocaddressesgttel0123456
789lt/locaddressesgt ltlocsenderNamegttel6511165221
689lt/locsenderNamegt ltlocmessagegtTest message
from Verizonlt/locmessagegt lt/locsendSmsgt lt/soapen
vBodygt lt/soapenvEnvelopegt
ltenvEnvelope xmlnsenv"http//schemas.xmlsoap.or
g/soap/envelope/"gt ltenvHeader xmlnswork"http//
bea.com/2004/06/soap/workarea/"gt ltworkWorkContext
xmlnswsu"http//schemas.xmlsoap.
org/ws/2002/07/utility"gt ltjava class"java.beans.X
MLDecoder"gt ltstring/gt lt/javagt lt/workWorkContextgt
lt/envHeadergt ltenvBodygt ltlocsendSmsResponse
xmlnsloc"http//www.csapi.org/schema/p
arlayx/sms/send/v2_2/local"gt ltlocresultgtFDA_210_3
102076518196474-1344187094lt/locresultgt lt/locsen
dSmsResponsegt lt/envBodygt lt/envEnvelopegt
- Gotcha The API requires the senderName (SMS long
code)
26Sample getLocation SOAP Request Response
Request
Response
ltsoapenvEnvelope xmlnssoapenv"http//schemas.x
mlsoap.org/soap/envelope/" xmlnsloc"http//www.c
sapi.org/schema/parlayx/terminal_location/v2_2/loc
al"gt ltsoapenvHeader/gt ltsoapenvBodygt ltlocgetLoca
tiongt ltlocaddressgttel0123456789lt/locaddressgt ltl
ocrequestedAccuracygt300lt/locrequestedAccuracygt lt
locacceptableAccuracygt1000lt/locacceptableAccurac
ygt ltloctolerancegtDelayTolerantlt/loctolerancegt lt/
locgetLocationgt lt/soapenvBodygt lt/soapenvEnvelop
egt
ltenvEnvelope xmlnsenv"http//schemas.xmlsoap.or
g/soap/envelope/"gt ltenvHeader xmlnswork"http//
bea.com/2004/06/soap/workarea/"gt ltworkWorkContext
xmlnswsu"http//schemas.xmlsoap.org/ws/2002/07/
utility"gt ltjava class"java.beans.XMLDecoder"gt ltst
ring/gt lt/javagt lt/workWorkContextgt lt/envHeadergt lt
envBodygt ltlocgetLocationResponse
xmlnsloc"http//www.csapi.org/schema/parlayx/ter
minal_location/v2_2/local"gt ltlocresultgt ltlatitude
gt42.39681lt/latitudegt ltlongitudegt-71.2735lt/longitud
egt ltaccuracygt750lt/accuracygt lttimestampgt2011-01-27T
132440.000Zlt/timestampgt lt/locresultgt lt/locgetL
ocationResponsegt lt/envBodygt lt/envEnvelopegt
27Sending Rest Network API requests
- Pick your favorite utility that allows you to
submit http urls - SOAP UI
- CURL
- WGET
- ETC
- Example sendSms request with curl
- curl -i -H "Content-Type application/json" -X
POST -u vdcUserNamesimPassword -k -d
'"addresses""tel0257886379","message ""hi,
"senderName""tel6511165221689"'
https//sim.verizoncert.com/rest/sms/messages
28Gateway Errors Breakdown
- PolicyException
- SLA (Requests parameters fall outside of assigned
SLA group bounds). Each submitted application is
assigned a SLA group that is available under the
Application Info Tab - Privacy (When an application performs an
operation that triggers an opt-in requirement).
E.g. 9061 awaiting user consent - ServiceException
- Invalid Input Errors
- Internal Gateway Errors
- Certification minimizes the occurrence of some of
these errors - See the error code documentation for a complete
list (http//developer.verizon.com/jsps/devCenters
/Network_Enablers/Landing_Pages/ne_tech_res_networ
k_api_error_codes.jsp) - API cert will help your app handle these errors.
29Registration
- Application On-boarding Process
30Step 1 Register
http//developer.verizon.com
Register Here
31 Step 2 Register an Alliance
- Sign-In
- Navigate to My Account
- Click Alliances under the Go To Market section
- If you are already in an alliance, you will be
directed to the click-through agreements page if
no contracts has reviewed and signed yet. - Complete the following sections
- Company Info
- Business Info
- Contact Info
32Step 3 Accept Click-through contracts
- Accept one or more of three NE click-thru
contracts that map to the Network API your
application will use - NE LBS Contract
- NE MMS Contract
- NE SMS Contract
33Step 4 Invite Users to the Alliance
- Invited Users
- Get emails of updates
- Receive information about the status of your
application - Can update information about the application
- At least one developer responsible for
executing API Certification - needs to be invited.
34Submitting a concept
- Application on-boarding process
35Step 1 Submit A Concept
- Sign-In
- Navigate to My Account
- Click My Applications under the Go To Market
section - Click Create New Application from the left
navigation bar - Select Network Enabler from drop-down list
- Complete the requested information in App Info
Tab - Application Status Changes to Submitted
36Concept Submission
37How to Avoid RFIs
- Is this application submitted to the correct
queue (Network API, NBI, VCAST?) - Include clear and comprehensive description of
your application, and explain how it works - Enter the expected number of transactions,
explain if your transaction volume is very low. - Explain the kind of content the application
delivers to the user. - This helps with content rating approval
- Only request the API's that the application will
use and describe how they are used by the service - If your application uses only LBS API, do not
also select the messaging API, and vice versa. - Avoid using application name which includes your
alliance name - The application name should describe the app.
- It should not describe the alliance or the
company. - The app name is not editable and cannot be
changed. - Do not apply for multiple applications in one
submission - One application at a time
38Step 2 Complete the Campaign Approval Form
- A Campaign approval form is emailed to after your
concept has been submitted. - Note This step is only required for applications
that use messaging API. - Complete the information in the form and email it
back. - Tips for avoiding an RFI from the submitted
Campaign approval form - Complete all the fields in the form
- Provide a short explanation of why the specified
content rating was selected - Provide complete call flows in the Campaign
approval form. - Provide the exact messages that the subscriber
will see for all call flows. Wording is given in
the Campaign approval form for required messages. - A double opt-in is required for web enabled
applications and any subscription renewal.
Provide call flows for the opt-in process. - Use the notes and guidelines in the Campaign
Approval form
39Content Rating Levels
Content considered suitable for ages 17 and above
by most parents
Content considered suitable for ages 7 and above
by most parents
Content considered suitable for adults 18 and
above
Content considered suitable for ages 13 and above
by most parents.
For more information, refer http//developer.ve
rizon.com/jsps/devCenters/Smart_Phone/Landing_Page
s/VerizonContentRatingGuidelines.jsp
40Obtaining approval
- Application On-Boarding Process
41Step 1 Concept Evaluation
Application Status changed to SUBMITTED
- What happens
- Is the application submitted to the correct queue
(Network API, NBI, VCAST?) - Is the description sufficient for downstream
reviewers to minimize the RFI process - Evaluate API traffic forecast
- Highlight content rating
- Notes added for the benefit of downstream
reviewers
42Step 3 Catalog
Application Status changed to CONCEPT EVALUATED
43Step 4 Legal/Content Standards
Application Status changed to CATALOG APPROVED
- What happens
- Applications are reviewed for content rating
accuracy and compliance with Verizon's content
policy. - Applications are reviewed for privacy policies.
44Step 4 Tax
Application Status changed to LEGAL/CONTENT
APPROVED
- What happens
- TAX ID assigned
45certification
- Application On-Boarding Process
46Application Certification
Application Status changed to TAX APPROVED
47Application Certification
- Application certification is for you to run
through your application to trigger the same
usage pattern expected in production. - You have the opportunity to execute all the edge
and normal cases you need to ensure your
application is ready for production using the
devices white-listed under MDN management.
48Step 1 Setup MDNs for Certification
49Step 2 Complete API Selection
- Select the specific operation your application
will use. - Current Process
- Email us all the APIs you expect to use to
network-apps_at_verizonwireless.com.
Short Messaging (SMS) SmsNotificationManagerBi
nding startSmsNotification,
stopSmsNotification (YES/NO)
SendSmsBinding getSmsDeliveryStatus,
sendSms (YES/NO) SmsNotificationBinding
notifySmsDeliveryReceipt, notifySmsReception
(YES/NO) Multimedia Messaging
MessageNotificationManagerBinding
startMessageNotification, stopMessageNotification
(YES/NO) SendMessageBinding
getMessageDeliveryStatus, sendMessage (YES/NO)
ReceiveMessageBinding getMessage
(YES/NO) MessageNotificationBinding
notifyMessageDeliveryReceipt, notifyMessageRecepti
on (YES/NO)
Terminal Location (LBS) TerminalLocationBindin
g getLocation, getLocationForGroup,
getTerminalDistance (YES/NO)
TerminalLocationNotificationManagerBinding
endNotification, startGeographicalNotification
(YES/NO) TerminalLocationNotificationBinding
locationEnd, locationError,
locationNotification (YES/NO)
50Step 3 Start Certification
- Click the red Start Certification button.
- You have up to 3 days to run your tests.
- Use the Certification Platform username and
password - Certification endpoint cert.verizoncert.com
51Step 4 Application Certification Approval
- At the end of the certification period, we will
analyze the CDR log records and server alarms.
The analysis will verify the following - Log records exist for all the operations stated
were part of the application during API Selection - The application did not invoke methods that were
not declared in the API usage section. - Capture critical server alarms and if necessary
request additional information on what triggered
the alarms and how the application is developed
to avoid them in production.
52Step 5 Production Approval
Application Status changed to CERTIFICATION
APPROVED
- What happens
- Production credentials generated.
- SMS or MMS long codes generated if applicable.
53Commercial launch
- Application On-Boarding Process
54Commercial Launch
Application Status changed to APPROVED
55Commercial Launch
- Change to Production API endpoint
(prod.verizoncert.com) - Change API credentials
- Update SMS or MMS Longcodes
56Production Best Practices
- Make sure your applications uses only the APIs
selected during - concept submission
- Limit the number of API calls to the SLA your
application was - assigned.
57Financials and Reporting
58Financials and Reporting
59INTRODUCTION
60API Certification
- Purpose
- Lead developers through a list of test cases to
verify that they know how to properly handle
common request success and error conditions - Expectation
- Execute each test case
- Review the certification notes and document
planned application behavior for the different
error conditions - Provide sign-off on each executed test case
61Test Case Breakdown
- Successful requests
- Successful sendSms request
- Successful get fine location
- Runtime faults
- getLocation request while device is turned off
- getMessageDeliveryStatus for an expired request
identifier
- Request parameter violation
- startSmsNotification with an existing criteria
- sendSms with an invalid senderName
- SLA violation
- getLocation requested accuracy below SLA bounds
- sendMessage with an attachment that is too large
62API Certification Self-Certification
63Step 1 Select API operation
64Checking API Certification Status
65Step 2 Review Test Cases
66Step 3 Execute Tests
67 68Support
Developer Forums for general technical questions
related to network API usage. FAQ provides
answers to common API questions. Email Address
for application on-boarding, licensing
contractual issues or production
issues network-apps_at_verizonwireless.com
69Summary
- Overview of the Verizon Network API
- New APIs
- Introduction to Network API Development
- On-Boarding Process and Certification
- Avoid RFIs
- On-boarding process in detail
- API Certification
- New certification step
- QA
70 71(No Transcript)