Phone Confirm HomePage | Phone Verification Usage Examples

Effective Fraud Protection

Trustworthy Phone Verification services by Phone Confirm

User Name:
Password:
Phone Confirm - Transaction Authorized
 
homeemail  to administrator
HOMEIN THE NEWSUSAGE EXAMPLESSEALS & STAMPSPRICESIMPLEMENTATIONLIVE DEMOFAQSITE MAPCONTACT US
 


There are several ways to integrate PhoneConfirm.com with in your application.

Option One:
User presented with PIN code on the web page as part of transaction confirmation. User receives phone call and asked to enter PIN using dial pad on the phone. The PIN sends back to the server, where it validates if it matched original PIN.
Option Two:
User receives a phone call and PIN number spoken slowly into headset. User to complete transaction must enter PIN that was spoken into headset. Web application must make sure that PIN entered into the site and PIN sent to PhoneConfor.com service match.

To integrate PhoneConform.com in most cases it requires some processing on the server side. Application running on your server must make a call to PhoneConfirm.com service.

Such calls could be performed using Web Services as SOAP/HTTP or simple HTTP request.


Using HTTP request to place call

http://www.phoneconfirm.com/soap/HTTPHandlers/play.aspx?

It accepts the following parameters:

GUID - This is your personal ID that is generated during account sign-up. You must keep this ID private.
Number - Phone Number to call.
Text - This is a message to be delivered. The text can contain the following variables:
@PIN specifies the place where pin will be spoken;
@File=<filename> - allows to play a file previously uploaded to the web site.
@VoiceConfirmation - allows to record a user voice reply only for Notification message type. The size is limited by 1 min and a user can stop recording pressing "#" sign. The url to this recorded file will be included in the Response in VoiceLink parameter.
ReplyEmail - Optional. Parameters specifies a email account where an opetation result will be duplicated.
ThankYou - Optional. A file that will be played at the end of the message. If this parameter is omitted, the default Thank you file will be played.
Pin - Optional. Unique number to be verified or just spoken. You can specify a PIN or you can omit it and it would be generated unique.
TransactionID - Unique client specified ID that is returned unchanged in a response.
Type - This parameter determines Option One or Option Two.
Extension - Phone extension to be dialed after connect.
ExtensionDelay - Delay in secs to wait until dialing phone extention.
MaxCallDuration - Maximum duration of a call.
SingleDigitMode - Waiting for one press.
NotificationType - This parameter determines type notification phone call or sms. By default it is phone call.

If set to Notification, Option two is implemented. User will receive a phone call and message will be played without waiting for PIN.

If set to Confirmation, text is played and then we wait for user to input Phone Number.

By default if Pin is not specified, Confirmation option is used.

Example:
http://www.phoneconfirm.com/soap/HTTPHandlers/play.aspx?guid=1a2b3c4d&number=15555551212&This+is+a+call+from+Widget+store+To+Complete+Transaction+please+eneter+PIN+shown+on+the+site+@PIN&type=Notification

PIN - You can send us a PIN or you can omit that filed and we would generate unique PIN number. If you send us a PIN, for service to be more reliable, please do not have two of the same digits following each other.

Example:
PIN 563345 is not very reliable, because of sequential "3". It is better to have PIN: 563245.

We provide a functions:
1. http://www.phoneconfirm.com/soap/HTTPHandlers/generatepin.aspx?digits=X
that will generate PIN with X number of digits.
2. http://www.phoneconfirm.com/soap/HTTPHandlers/GetPrice.aspx?PhoneNumber=12345678
that returns how much call costs in tickets

Response:

In response XML is returned. XML provides several fields that you would need to check to verify response:

<ProcessingStage> - This field indicated Call status. In most cases it would be "Processed", meaning call went through fine. It also could be Failed, Busy, NoAnswer.

You would need to analyze the response and determine your action.

<ConfiramtionResult> - This would tell you if PIN generated by us matches PIN on the site. It could be either false or True.

<TransactionID> - Unique client specified ID that is returned unchanged in a response.

<VoiceLink> - Provides an URL to a recorded Voice Confirmation file.

<PIN> - PIN code used during the call.

<PinOut> - Actual PIN entered.

<ErrorCode> - Error Code.

<ErrorDesc> - Error Description.

Example:

<?xml version="1.0"?>
  <JobStatus xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ProcessingStage>Processed</ProcessingStage>
  <ConfiramtionResult>false</ConfiramtionResult>
  <PIN>1</PIN>
  <PinOut>3</PinOut>
  <ErrorCode>-21</ErrorCode>
  <ErrorDesc>Incorrect input.</ErrorDesc>
</JobStatus>


Using SOAP request to place call


WSDL entry point :
http://www.phoneconfirm.com/soap/Jobs.asmx?wsdl

Jobs object:
http://www.phoneconfirm.com/soap/Jobs.asmx

AddJob- starts new confirmation request. It is an async function and returns immediately.

Parameters:
UserGuid - this is your personal ID that is generated during account sign-up. You must keep this ID private.
Number - Phone Number to call.
Text - This is a message to be delivered. The text can contain the following variables:
@PIN specifies the place where pin will be spoken;
@File=<filename> - allows to play a file previously uploaded to the web site.
@VoiceConfirmation - allows to record a user voice reply only for Notification message type. The size is limited by 1 min and a user can stop recording pressing "#" sign. The url to this recorded file will be included in the Response in VoiceLink parameter.
PIN - Transaction confirmation code that either spoken to a user if it is a notification call or waited to be pressed by user if it is confirmation call.
Optional. If it is null PhoneConfirm Service will generate 5 char sequence.
TransactionID - Unique client specified ID that is returned unchanged in a response.
JobType - enum. There are 2 types availible:
- Notification. Means that user will receive a phone call and message will be played without waiting for PIN.
- Confirmation. Means that text is played and then we wait for user to input PIN.

Result:
If the function succeeds the result value is a unique job descriptor. It is a parameter for GetJobStatus function.

SendConfirmation- starts new confirmation request. It is a sync function and returns immediately.

Parameters:
UserGuid - this is your personal ID that is generated during account sign-up. You must keep this ID private.
Number - Phone Number to call.
Text - This is a message to be delivered.
PIN - Transaction confirmation code that either spoken to a user if it is a notification call or waited to be pressed by user if it is confirmation call.
Optional. If it is null PhoneConfirm Service will generate 5 char sequence.
TransactionID - Unique client specified ID that is returned unchanged in a response.
JobType - enum. There are 2 types availible:
- Notification. Means that user will receive a phone call and message will be played without waiting for PIN.
- Confirmation. Means that text is played and then we wait for user to input PIN.

Result:
If the function succeeds, the result value will be an instance of JobStatus type.

AddJobEx- starts new confirmation request. It is an async function and returns immediately.

Parameters:
UserGuid - this is your personal ID that is generated during account sign-up. You must keep this ID private.
Number - Phone Number to call.
Text - This is a message to be delivered.
PIN - Transaction confirmation code that either spoken to a user if it is a notification call or waited to be pressed by user if it is confirmation call.
Optional. If it is null PhoneConfirm Service will generate 5 char sequence.
JobType - enum. There are 2 types availible:
- Notification. Means that user will receive a phone call and message will be played without waiting for PIN.
- Confirmation. Means that text is played and then we wait for user to input PIN.
JobDetails - Additional settings:
TransactionID - Unique client specified ID that is returned unchanged in a response.
ReplyEmail - specifies a email account where an opetation result will be duplicated.
ThankYouFile - a file that will be played at the end of the message. If this parameter is omitted, the default Thank you file will be played.
Extension - Phone extension to be dialed after connect.
ExtensionDelay - Delay in secs to wait until dialing phone extention.
MaxCallDuration - Maximum duration of a call.
SingleDigitMode - Waiting for one press.
NotificationType - enum. There are 2 types availible:
- Phone. Means that user will receive a phone call.
- SMS. Means that user will receive a sms message.

Result:
If the function succeeds the result value is a unique job descriptor. It is a parameter for GetJobStatus function.

SendConfirmationEx- starts new confirmation request. It is a sync function and returns immediately.

Parameters:
UserGuid - this is your personal ID that is generated during account sign-up. You must keep this ID private.
Number - Phone Number to call.
Text - This is a message to be delivered.
PIN - Transaction confirmation code that either spoken to a user if it is a notification call or waited to be pressed by user if it is confirmation call.
Optional. If it is null PhoneConfirm Service will generate 5 char sequence.
JobType - enum. There are 2 types availible:
- Notification. Means that user will receive a phone call and message will be played without waiting for PIN.
- Confirmation. Means that text is played and then we wait for user to input PIN.
JobDetails - Additional settings:
TransactionID - Unique client specified ID that is returned unchanged in a response.
ReplyEmail - specifies a email account where an opetation result will be duplicated.
ThankYouFile - a file that will be played at the end of the message. If this parameter is omitted, the default Thank you file will be played.
Extension - Phone extension to be dialed after connect.
ExtensionDelay - Delay in secs to wait until dialing phone extention.
MaxCallDuration - Maximum duration of a call.
SingleDigitMode - Waiting for one press.

Result:
If the function succeeds, the result value will be an instance of JobStatus type.

GetJobStatus - returns a job status;

Parameters:
JobGuid - unique job descriptor returned by AddJob function.

Result:
If the function succeeds the result value is JobStatus instance.
JobStatus instance:
ProcessingStage - enum. There 4 processing stages: Waiting, Processing, Processed, Failed;
ConfirmationResult - Must be used only if ProcessingStage is Processed;
Can be true only if:
- it has been a Confirmation call and user pressed correct PIN;
- it has been a Notification call and has heard PIN.
TransactionID - Unique client specified ID that is returned unchanged in a response.
VoiceLink - provides an URL to a recorded Voice Confirmation file.
PIN - pin code used during the call.
PinOut - actual pin entered.
ErrorCode - Error Code.
ErrorDesc - Error Description.


Example:

using System;
using System.Threading;
using System.Web.Services.Protocols;

using Sample.JobsRef;

namespace Sample
{
     class PHCSample
     {
        [STAThread]
        static void Main(string[] args)
        {
          Jobs jobs = new Jobs();
          // Starting new confirmation request.
          string jobGuid = jobs.AddJob( "5a1543bb3fcc40a7b96e32eh0c8434c7", "016529318807", "@File=welcome.wav This is the sample message. Please press @PIN", null/*Pin will be autogenerated*/, null, JobType.Confirmation );
          Console.WriteLine( "Job has been created sucessfully. Guid: " + jobGuid );
          do
         {
               //Receiving current status
               JobStatus status = jobs.GetJobStatus( jobGuid );
               //Anlysing status
               if( status.ProcessingStage != ProcessingStage.Processed && status.ProcessingStage != ProcessingStage.Failed )
               {
               Console.WriteLine( "Current status: " + status.ProcessingStage + ". Pin: " + status.PIN );
               Thread.Sleep( TimeSpan.FromSeconds( 15 ));
               continue;
               }
               else
              {
                  if( status.ProcessingStage == ProcessingStage.Processed )
                  Console.WriteLine( "Final status: " + status.ProcessingStage + " Result = " + status.ConfiramtionResult );
                  else
                  Console.WriteLine( "Final status: " + status.ProcessingStage );
                  break;
               }
            }
            while( true );
            Console.WriteLine( "Sample completed." );
            Console.ReadLine();

        }
    }
}

 
Website Monitoring by Dotcom-Monitor