- 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
2 © 2017 - ODYSSEY SERVICES
OUR PRIDE IS INWHAT YOU BUILD
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
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...
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
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.
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
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
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
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
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
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
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)
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
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)
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>
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”
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)
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
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
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
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& abortProcessing) --- End of inner exception stack trace ---</faultstring> <detail/> </soap:Fault> </soap:Body>
500 Internal Server Error
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