23
- SMS - VOICE FAX SMS E-MAIL MAIL PUSH APP ODYSSEY SERVICES 2017 WEB SERVICES - EASY GUIDE FOR DEVELOPERS

ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

- SMS -

VOICEFAXSMSE-MAIL MAIL PUSH APP

ODYSSEY

SERVICES

2017

W E B S E R V I C E S - E A S Y G U I D E F O R D E V E L O P E R S

Page 2: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

2 © 2017 - ODYSSEY SERVICES

OUR PRIDE IS INWHAT YOU BUILD

Page 3: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

3WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

CONTENTSINTRODUCTION TO ODYSSEY 4

CONNECT TO WEB SERVICES 6

GENERAL WORKFLOW 7

API REFERENCEsend SMS from a list

send SMS to a single recipient

get a list of finished jobs

get a job report

delete a job report

get a list of jobs referenced by TrakingID, JobType and/or Date

get job details

10

TROUBLESHOOTING 21

Page 4: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

4 © 2017 - ODYSSEY SERVICES

1- INTRODUCTION TO ODYSSEY

Default List Format

Odyssey Services’ default list format consists of a phone number in column

1, and recipient information in column 2. Other list formats can be set up on

request. Some applications require several fields of recipient information. If the negotiated list format has the additional fields specified in sequence after the recipient's name, then correct “adhoc” addresses can be passed into the

web services interface by specifying all of the associated fields within the name portion of a recipient structure.

The recipient information is always optional, unless required by

merge applications that rely upon list information in constructing

the delivered document. If supplied, the recipient information will appear on detailed reports.

The delivery portion of the Odyssey system only cares about the column

position of the Address portion of the Recipient structure. That position

is assumed to be in column 1, unless specifically negotiated differently at

account set up time (or job type setup time).

In our system, a message is a collection of documents, you want to transmit to lists with specific options. Documents, Lists and Options are everything you need to send out what we call a job. Each

job has a unique ID which we create for you as well as a reference called tracking Id' which you choose.

Options can be either selected for each job or configured by us beforehand in a Jobtype.

Document A Document is a Microsoft Office file (.doc) or an Acrobat file (.pdf) or an html file (.htm, .html), or a faxable TIFF (Tag Image Format) file (.tif) or a text file (.txt).

List A List is a Microsoft Excel file (.xls) or a tab separated value file (.tab, .txt) with columns in the pre-negotiated order – standard is, contact information such as email addresses, phone numbers, in column 1,

with optional recipient information in column 2.

Comma Separated Value files (.csv) can be used, Documents and lists may be hosted on our server in the account’s web folders, or uploaded with the broadcast request. Regardless of the location of the list, it must

be in the pre-negotiated column order.

WHAT WE MEAN WHEN WE SAY...

Page 5: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

5WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

Job A job is a collection of documents, sent to a collection of addresses, with a collection of options.

Some options are set via a programming interface, such as the web site, end user client software, or the web

services gateway. Other options can only be set by Odyssey’s customer services department.

Fixed collections of options are known as Job Types.

Job Types A job type can specify unusual scenarios such as retry algorithms or special document

handling options. Job types are referenced by name. Most applications do not require the use of job types.

The integration of the ODYSSEY solution took place optimally and we recorded significant gains in the quality of services (SMS delivered in real time for our customers). Today, we are extending our collaboration to other media such as fax and automated e-mails.

- Yves Hochard, General Manager

at JUXTA Successful developer

WHAT SENDING SMS VIA ODYSSEY API LOOKS LIKE

ODYSSEY

API

ODYSSEY

SERVICES

Documents

Recipients

(.xls .csv .tab)

(.txt)

Options

(Date, Jobtype...)

Job

Page 6: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

6 © 2017 - ODYSSEY SERVICES

2-CONNECT TO THE WEB SERVICESGETTING STARTED

Our API uses SOAP over HTTP protocol. It is described in Web Services Description Language (WSDL). The messages sent and responses are in XML.

To connect to web services, use the following WSDL address listed below. The Login and password is given by Odyssey. For the login, add “message\” in front of your regular web login.

WSDL URL: http://ows.odyssey-services.net/service.asmx?wsdl

Login WebSite: Username provided by Odyssey ####.####

Login Webservices: message\####.####

Password: Password provided by Odyssey

8

Tip

Our webservices are described in the WSDL. By using SOAP UI with the URL and your login/password, you can see a list of all the functions available and create requests

with all the parameters pre-written.

Page 7: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

7WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

3-GENERAL WORKFLOW

After receiving a job request, our system returns the ID attributed to the job request ( JobNumber) and prepares to send the SMS. This process is asynchronous, which means that the job will not be complete

when you have received the JobNumber. The status of the job evolves as we send items and prepare for the “end of job”. When the job status is “finished”, the details are available (Deliverability rates, opt-outs, etc.).

Send a SMS

Information

The following diagram is an example of workflow you can create with the API functions described in this document. For more examples please contact us.

A

8Tip

Save the JobNumber. It will be required to request the status and get the reports for the job.

ODYSSEYSERVICESYour user Your software

Click send a SMS

WS: StartBroadcast3

Job######## Accepted

Job accepted

Job######## Status: Active

SMS Sending

Create the report for Job########

Job######## Status: Finished

Page 8: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

8 © 2017 - ODYSSEY SERVICES

This workflow shows how to get the job report data and save it in your system.

Job reports are created at the end of the job. Call “getReports” to get a list of finished jobs. You can download the report, which can be set on demand as a CSV format. Save the outcome in your system and delete the

report from our service.

Check job results

8Tip

A report name is usually the “Job number” + .extension (example: 1628688.csv).

Scenario 1: A large job ; outcome from report data

ODYSSEYSERVICESYour user Your software

Get the content of thereceived Base64 file

and save it.

WS: GetReports

List of available reports

WS: GetReport (JobNumber)

Report in Base 64

WS: DeleteFilesFromReportFolder(name)

Message: Deleted

Check the job status

Information

When using the web service “DeleteFilesFromReportFolder”, you are deleting the report from our system; this is why you must save this data.

A

Page 9: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

9WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

ODYSSEYSERVICESYour user Your software

Get list of jobs with

WS: GetStatusPlusSummaries

List of jobs for this tracking IDList of jobs

Get details for

WS: GetJobDetails6

Job ######## detailsJob ########

following TrackingID: .....

job ########

outcome details

Web service can return "Job numbers" created up to 3 months prior. Using "Job numbers", enables you to get the Job Details.

Scenario 2: A Small job ; Check the history and get the details of a job

Information

The first web service call for this workflow (GetStatusPlusSummaries) should be called every 10 minutes or more with the same information. Make sure to include this in your system.

A

Page 10: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

10 © 2017 - ODYSSEY SERVICES

4-API REFERENCES

Acceptable list formats: .xlsx, .xls, .csv, .tab

Acceptable document formats: .txt encoded in UTF-8

Reference Name: startBroadcast3Method: POST

Description: Send a job from a list file

Parameters

For this example, we are using StartBroadcast3 which is a newer version of StartBroadcast.

Information

This web service is used for all media (SMS, Fax, Email, Voice), therefore there are many optional parameters.

A

Send SMS from a list

SENDING

JobTypeString

JobType you want to use ‘SMS’ for SMS jobs. (Make sure to check with customer service what JobTypes are available).

TrackingIDString

String of your choice, as a reference

for the job

(shown in the summary and in billing).

Soap example:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://odysseyservices.net/automatedui/"> <soapenv:Header/> <soapenv:Body> <aut:StartBroadcast> <aut:b> <aut:jobType>SMS</aut:jobType> <aut:trackingID>Reference</aut:trackingID> <aut:documents> <!--Zero or more repetitions:--> <aut:FileReference> <!--Optional:--> <aut:name>MessageToSend.txt</aut:name> <!--Encoded in base64:--> <aut:contents>VGhpcyBpcyBhIHRlc3QgZnJvbSBPZHlzc2V5IHNlcnZpY2VzIQ== </aut:-contents> <aut:hosted>false</aut:hosted> </aut:FileReference> </aut:documents>...

Documents List of FileReference (.txt file encoded in UTF-8).

Contains the message body.

8

Tip1: Make sure to set the header values Content-Type for this webservice Content-Type : text/xml;

Tip2: To customize your message per recipient, you can refer to values in your list using “`BCFX”

(X is the column number: Column A=1 ; Column B=2 etc).

Call startBroadcast3

Page 11: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

11WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

Reference Name: startBroadcastResponseStatus: Status 200

Parameters

... <aut:lists> <!--Zero or more repetitions:--> <aut:FileReference> <!--Optional:--> <aut:name>list.csv</aut:name> <!--Encoded in base64:--> <aut:contents>MDMtNjM2Ny0zMjI4LEF1ZHleSBwb3J0cm9uDQo=</aut:con-tents> <aut:hosted>false</aut:hosted> <!--Optional:--> <aut:mimeType>application/vnd.ms-excel</aut:mimeType> <aut:attachToEmail>false</aut:attachToEmail> </aut:FileReference> </aut:lists> <aut:scheduledStartTime>2017-02-28T13:50:00 </aut:scheduledStartTime> </aut:b> </aut:StartBroadcast> </soapenv:Body></soapenv:Envelope>

Lists List of FileReference (.xlsx, .xls, .csv or .tab file).

The list contains the recipient names. First column must contain the recipient’s phone

number.

FileReference Object (name, contents, hosted,

mimeType, attachToEmail).

NameString

Name of the file with extension (abc.txt).

ContentsString

File encoded in BASE64

HostedBoolean

True: if the file is hosted in your list of documents

False: if not

MimeTypeString

(Optional)

If the file's mimeType is defined, it will be used for sending emails. If not, the system will associate a mimeType based

on the file extension.

AttachToEmailBoolean

(Optional)

Only for Documents on email sending

Set to false : For SMS

ScheduleStartTimeDateTime

(Optional)

The date and hour of when you want

your job to be sent

Example : “2017-02-28T14:30:00”

Parameters

RESPONSE

Outcomeint

Created Job number if the broadcast Worked “########” or

-1 if an error occurred and the job is not created.

Messages

Soap example: successful sending

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <StartBroadcastResponse xmlns="http://odysseyservices.net/automatedui/"> <StartBroadcastResult> <outcome>31587297</outcome> <messages> <string>Job 01587297 Accepted</string> </messages> </StartBroadcastResult> </StartBroadcastResponse> </soap:Body></soap:Envelope>

StringString

Additional message about the

outcome.

Soap example: Error in the sending

<StartBroadcastResult>

<outcome>-1</outcome>

<messages>

<string>Null or badly formed File Reference in documents - is your array too big?</string>

</messages>

</StartBroadcastResult>

String object

Page 12: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

12 © 2017 - ODYSSEY SERVICES

Reference Name: startbroadcast3Method: POST

Description: Send a job from a list

Parameters

Send SMS to a single recipient

SENDING

Adhocs List of "Recipient"

Recipient Object, (name, address)

Soap example:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://odysseyservices.net/automatedui/"> <soapenv:Header/> <soapenv:Body> <aut:StartBroadcast> <aut:b> <aut:jobType>SMS</aut:jobType> <aut:trackingID>Reference</aut:trackingID> <aut:documents> <!--Zero or more repetitions:--> <aut:FileReference> <!--Optional:--> <aut:name>MessageToSend.txt</aut:name> <!--Encoded in base64:-->

<aut:contents>VGhpcyBpcyBhIHRlc3QgZnJvbSBPZHlzc2V5IHNlcnZpY2VzIQ== </aut:-contents> <aut:hosted>false</aut:hosted> </aut:FileReference> </aut:documents> <aut:adhocs> <!--Zero or more repetitions:--> <aut:Recipient> <aut:name>Name</aut:name> <aut:address>##########</aut:address> </aut:Recipient> <aut:Recipient> <aut:name>Name2</aut:name> <aut:address>##########</aut:address> </aut:Recipient> </aut:adhocs> <aut:scheduledStartTime>2017-02-28T13:50:00 </aut:scheduledStartTime> </aut:b> </aut:StartBroadcast> </soapenv:Body></soapenv:Envelope>

NameString

Name of the recipient

AddressString

Phone number of the recipient

For this example, we will use the same web service as the previous example. The difference is, we will replace the “lists” object by an “adhocs” object.

Call startBroadcast3

Page 13: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

13WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

Reference Name: getReports

Method: POST

Parameters

None

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:aut="http://odysseyservices.net/automatedui/"> <soap:Header/> <soap:Body> <aut:GetReport> </soap:Body></soap:Envelope>

Reference Name: getReportsResult

Status: Status 200

Parameters Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetReportsResponse xmlns="http://odysseyservices.net/automatedui/"> <GetReportsResult> <string>1626305.csv</string> <string>1628788.csv</string> </GetReportsResult> </GetReportsResponse> </soap:Body></soap:Envelope>

RESPONSE

Get a list of finished job

SENDING

Job reports are created at, end of job. To know if your job is finished, call “GetReports”.

Call getReports

getReportsResultString

String object

StringString

File name and extension ( JobNumber.xls)

Page 14: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

14 © 2017 - ODYSSEY SERVICES

Reference Name: getReport

Method: POST

Parameters

Get a job report

SENDING

JobString

Job number ( JOB########).

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:aut="http://odysseyservices.net/automatedui/"> <soap:Header/> <soap:Body> <aut:GetReport> <!--Optional:--> <aut:Job>JOB01232182</aut:Job> </aut:GetReport> </soap:Body></soap:Envelope>

Reference Name: getReportResponse

Status: Status 200

Parameters

RESPONSE

getReportResultList

Object of the same structure as

FileReference.

NameString

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetReportResponse xmlns="http://odysseyservices.net/automatedui/"> <GetReportResult> <name>1232182.xls</name> <contents>0M8R4KGxGuEAAAAAAAAAAAAAAAAAA…</contents> <hosted>true</hosted> <mimeType>application/octet-stream</mimeType> <attachToEmail>false</attachToEmail> </GetReportResult> </GetReportResponse> </soap:Body></soap:Envelope>

ContentsString

File content encoded in Base 64.

File name and extension ( JobNumber.xls). Other formats available, contact

us.

HostedBoolean

MimeTypeString

mimeType of the file.

Always true, this file is hosted by our service.

AttachToEmailBoolean

Always false, used for receiving files.

Call getReport

Page 15: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

15WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

Reference Name: deleteFilesFromReportsFolderMethod: POST

Parameters

Delete a job report

SENDING

NamesList

List of strings

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:aut="http://odysseyservices.net/automatedui/"> <soap:Header/> <soap:Body> <aut:DeleteFilesFromReportsFolder> <aut:names> <!--Zero or more repetitions:--> <aut:string>1628589.csv</aut:string> </aut:names> </aut:DeleteFilesFromReportsFolder> </soap:Body></soap:Envelope>

Reference Name: deleteFilesFromReportsFolderResponseStatus: Status 200

Parameters

RESPONSE

deleteFilesFromReports-FolderResponseList

Object (same structure as

FileReference).

StringString

Soap example: One report deleted and one was not found.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <DeleteFilesFromReportsFolderResponse xmlns="http://odysseyservices.net/automatedui/"> <DeleteFilesFromReportsFolderResult> <string>OK</string> <string>File: 1096470.xls not found on host</string> </DeleteFilesFromReportsFolderResult> </DeleteFilesFromReportsFolderResponse> </soap:Body></soap:Envelope>

Message : Data deleted = “0K”, error

occurred : “File : xxxxxxxx.xls not found on host”.

Call deleteFilesFromReportsFolder

Information

This web service will permanently delete the job reports from our service.A

StringString

Name of the report

(usually: JobNumber.extension)

Page 16: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

16 © 2017 - ODYSSEY SERVICES

Reference Name: getStatusPlusCount

Method: POST

Parameters

Get the sum of referenced jobs by: Tracking ID, Job type, Job number, Date. If you do not specify a parameter, the total of jobs created for the last 3 months will be returned.

Get a list of jobs referenced by Tracking ID, Job type and/or Date

SENDING

JobTypeString

(Optional) Job type used

JobNumberString

(Optional) JOB########

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:aut="http://odysseyservices.net/automatedui/"> <soap:Header/> <soap:Body> <aut:GetStatusPlusCount> <aut:jobType>SMS</aut:jobType> <aut:jobNumber></aut:jobNumber> <aut:tid>CompanyA</aut:tid> <aut:startDate>2017-03-07T15:52:53</aut:startDate> <aut:endDate>2017-03-14T15:52:53</aut:endDate> </aut:GetStatusPlusCount> </soap:Body></soap:Envelope>

Step 1: Call getStatusPlusCount

TidString

(Optional)

Tracking reference used at job sub-mission

StartDateDateType

(Optional) Starting date Format: “2017-03-07T15:52:53”

EndDateDateType

(Optional) Ending date Format: “2017-03-14T15:52:53”

Reference Name: getStatusPlusCountResponse

Status: Status 200

Parameters

RESPONSE

getStatusPlusCountResultInt

Number of jobs returned

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetStatusPlusCountResponse xmlns="http://odysseyservices.net/automat-edui/"> <GetStatusPlusCountResult>1</GetStatusPlusCountResult> </GetStatusPlusCountResponse> </soap:Body></soap:Envelope>

Page 17: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

17WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

Reference Name: getStatusPlusSummaries

Method: POST

Description: Get a list of jobs with status. Allows you to paginate your list

Parameters

SENDING

StartrowInt

Mandatory, Define the starting job in your array.

MaxrowsInt

Mandatory, Define the ending job in your array.

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:aut="http://odysseyservices.net/automatedui/"> <soap:Header/> <soap:Body> <aut:GetStatusPlusSummaries> <aut:startrow>0</aut:startrow> <aut:maxrows>100</aut:maxrows> <aut:sortord>statusDate</aut:sortord> <aut:jobType>SMS</aut:jobType> <aut:jobNumber></aut:jobNumber> <aut:tid>companyA</aut:tid> <aut:startDate>2017-03-07T15:52:53</aut:startDate> <aut:endDate>2017-03-14T15:52:53</aut:endDate> </aut:GetStatusPlusSummaries> </soap:Body></soap:Envelope>

Step 2: Call getStatusPlusSummaries

SortstringString

(Optional) Sorting parameters

(values: "job", "statusDate", "status", "type", "total", "sent", "failed", "re-tries", "remaining","custno", "tid", "firstlist", "firstdoc", "loggedinuser").

JobTypeString

(Optional) Job type used

JobNumberString

(Optional) JOB########

TidString

(Optional) Tracking reference used at job submission

StartDateDatetype

(Optional) Starting date Format: “2017-03-07T15:52:53”

EndDateDatetype

(Optional) Ending date Format: “2017-03-14T15:52:53”

Page 18: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

18 © 2017 - ODYSSEY SERVICES

Reference Name: getStatusPlusSummariesResponse

Status: Status 200

Parameters

RESPONSE

Table “Table” data set, Main Object, 0 to n.

RowInt

Position of the job in the result table.

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetStatusPlusSummariesResponse xmlns="http://odysseyservices.net/au-tomatedui/"> <GetStatusPlusSummariesResult> <xs:schema > … </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-ms-data" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns=""> <Table diffgr:id="Table1" msdata:rowOrder="0"> <row>0</row> <job>JOB31609493</job> <statusdate>2017-03-07T15:52:53</statusdate> <status>Finished</status> <type>SMS</type> <total>2</total> <sent>2</sent> <failed>0</failed> <retries>0</retries> <remaining>0</remaining> <firstlist>sms2numberUTF8.csv</firstlist> <firstdoc>20170308-171746 _ .txt</firstdoc> <custno>2022</custno> <tid>CompanyA</tid> <loggedinuser>2022.aportron</loggedinuser> </Table> </NewDataSet> </diffgr:diffgram> </GetStatusPlusSummariesResult> </GetStatusPlusSummariesResponse> </soap:Body></soap:Envelope>

JobString

(Optional) JOB########

StatusDateDateType

(Optional) Starting date Format: “2017-03-07T15:52:53”

StatusString

Job status: Active, Completed, Finished

TypeString

jobType used for this job

TotalInt

Total of Items

SentInt

Number of items Sent

FailedInt

Number of Failed items

RetriesInt

Number of Retries for this job

RemainingInt

Number of Remaining items

FirstlistString

Name of the first list used for the job (Example list.csv)

FirstdocString

Name of the first doc used for the job (Example doc.pdf)

CustnoString

Customer number used for this job

TidString

Tracking Id used for this job

LoggedinuserString

User logged for this job (eg : XXXX.test)

Page 19: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

19WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

Reference Name: getJobDetail6Method: POST

Description: Get the item details of a job

Parameters

Get detail of a jobSENDING

JobString

JOB########

TypeString

(Optional) job type used for this job

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:aut="http://odysseyservices.net/automatedui/"> <soap:Header/> <soap:Body> <aut:getJobDetail6> <aut:Job>1587245</aut:Job> <!--Optional:--> <aut:Type>SMS</aut:Type> <aut:OrderByDisposition>false</aut:OrderByDisposition> <aut:FilterFailed>false</aut:FilterFailed> </aut:getJobDetail6> </soap:Body></soap:Envelope>

Reference Name: getJobDetail6ResponseStatus: Status 200

Parameters

RESPONSE

getJobDetail6Result List of items type: DeliveryItem3

TidString

Soap example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <getJobDetail6Response xmlns="http://odysseyservices.net/automatedui/"> <getJobDetail6Result> <DeliveryItem3> <Job>36009493</Job> <Item>1</Item> <Disposition>SENT</Disposition> <Recipient>Audrey portron</Recipient> <Fax>64711571885</Fax>

...

ItemsInt

Job number: JOB########

Tracking Id used for the job

DeliveryItem3 Details for each item : Job, Item, Disposition,

Recipient, Fax, Email, Pages, attempts, FirstDateTime,

FinishDateTime, FaxBytes, EmailBytes, Baudrate,

FaxResCode, AnswerBack, Calltime, Outcome,

Outcomes, UD1, UD2, UD3, UD4, UD5, CallAnalysis,

TID, Status

JobInt

ItemInt

Item position in the job list

Job number: JOB########

DispositionString

Sent/Failed

RecipientString

FaxInt

Fax number of the recipient (default: 1st column of the list)

Empty for email job

Name of the recipient (default : 2nd column of the list)

OrderByDispositionBoolean

Sort items depending on their

outcome

True: show the failed items firstFalse: show the sent items first

FilterFailedBoolean

True: show only the failed items

False: show all items

Page 20: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

20 © 2017 - ODYSSEY SERVICES

Parameters

EmailString

Email address of the recipient

(default: 1st column of the list ) only

filled for email jobs

PagesInt

Soap example:

... <Email/> <Pages>1</Pages> <Attempts>1</Attempts> <FirstDateTime>3/8/2017 5:21:05 PM</FirstDateTime> <FinishDateTime>3/8/2017 6:24:52 PM</FinishDateTime> <FaxBytes>0</FaxBytes> <EmailBytes>0</EmailBytes> <BaudRate>0</BaudRate> <FaxResCode>0</FaxResCode> <AnswerBack/> <Calltime>0.0</Calltime> <Outcome>S</Outcome> <Outcomes>S</Outcomes> <UD1>Client 001</UD1> <UD2/> <UD3/> <UD4/> <UD5/> <CallAnalysis/> <TID>CompanyA</TID> <Status>0</Status> </DeliveryItem3> </getJobDetail6Result> <Tid>CompanyA</Tid> <Items>2</Items> </getJobDetail6Response> </soap:Body></soap:Envelope>

AttemptsInt

Number of retries

Number of pages sent

FirstDateTimeDateTime

Launch time

FinishDateTimeDateTime

FaxBytesInt

Size of the document in bytes

Finish time

EmailBytesInt

Size of the document for email

BaudRateInt

FaxResCodeInt

Fax resolution, 1: fine, 0: normal

Fax sending speed

AnswerBackString

AnswerBack number

CallTimeFloat

Transfer duration for the item

OutcomeString

OutcomesString

Outcome of all the attempts

Last outcome of the item (S, A, B, C ,D, E , F, G, H , Z, refer to Outcomes annex)

UD1, UD2, UD3, UD4, UD5String

Optional value set on the account

(Personalization fields, please contact customer service to set

these)

CallAnalysisString

TIDString

Tracking ID used for the job

if call returned an error, it will give

details of the failure

StatusInt

If status = 0, the item was sent successfully

If status > 0, Odyssey error code for that specific failure

Page 21: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

21WEBSERVICES - EASY GUIDE FOR DEVELOPERS - SMS

5-TROUBLESHOOTING

Information

Please contact customer support for further troubleshooting. Send error codes, logs of what

you are sending and your customer number to, [email protected].

A

Status Description Troubleshooting

400

401

500

Bad Request

Unauthorized

Internal Server Error

The server cannot or will not process the request

due to an apparent client error (e.g., malformed re-quest syntax, too large a size, invalid request mes-sage framing, or deceptive request routing).

invalid login/password

The name of the request or one of the elements of

the request might have been forgotten or misspelled,

or a date is incorrect.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <title>401 - Unauthorized: Access is denied due to invalid credentials.</title> <style type="text/css"> <!--body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;back-ground:#EEEEEE;}fieldset{padding:0 15px 10px 15px;} h1{font-size:2.4em;margin:0;color:#FFF;}h2{font-size:1.7em;margin:0;color:#CC0000;} h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} #header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-ser-if;color:#FFF;background-color:#555555;}#content{margin:0 0 0 2%;position:relative;}.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}--> </style> </head> <body> <div id="header"> <h1>Server Error</h1> </div> <div id="content"> <div class="content-container"> <fieldset> <h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2> <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3> </fieldset> </div> </div> </body></html>

401 Unauthorized:

MESSAGE EXAMPLES

400 BadRequestBad Request

Page 22: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

22 © 2017 - ODYSSEY SERVICES

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>System.Web.Services.Protocols.SoapException: Server was unable to process re-quest. ---> System.Xml.XmlException: 'ut' is an undeclared namespace. Line 4, position 8. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.Throw(String res, String arg, Int32 lineNo, Int32 linePos) at System.Xml.XmlTextReaderImpl.LookupNamespace(NodeData node) at System.Xml.XmlTextReaderImpl.ElementNamespaceLookup() at System.Xml.XmlTextReaderImpl.ParseElement() at System.Xml.XmlTextReaderImpl.ParseElementContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlTextReader.Read() at System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.Read() at System.Xml.XmlReader.MoveToContent() at System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.MoveToContent() at System.Web.Services.Protocols.SoapServerProtocolHelper.GetRequestElement() at System.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest() at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message) at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response) at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean&amp; abortProcessing) --- End of inner exception stack trace ---</faultstring> <detail/> </soap:Fault> </soap:Body>

500 Internal Server Error

Page 23: ODYSSEY SERVICES · 2017. 5. 30. · web services interface by specifying all of the associated elds within the name portion of a recipient structure. The recipient information is

S I N C E 1 9 9 9 - N E W - Y O R K , T O R O N T O , P A R I S , T O K Y O