PDS Winsock connection

Companion has a facility to connect QPSMR Telin via a Winsock (Windows socket) to a dialler or PDS (predictive dialler system).

The Companion [Project] [Global settings] [Controls] is used to set the IPV4 address and port number of the PDS system. This information is stored in the main project file (QDF) and is used when Telin is started up to connect to the Winsock.

The following describes the “Native” protocol.  Other protocols may be used for specific PDS systems.

The Winsock connection is an open IPv4 TCP stream.  The Winsock connection is closed after each command or exchange and opened again for the next.

The commands are UTF8 texts which end in a comma and usually have a comma separating the command from the information being sent.

No reply is expected from the dialler except for the two “exchange” commands: Ready and Finished.


All commands are very short and will be sent in a single TCP packet.

The only commands which Telin will send to the PDS are:

  1. Start, user, study,
  2. Close, user, study,
  3. Ready, user, study,
  4. Dial, number, user, study (up to 2019.1)
  5. Dial, number, user, study, serial (2019.2 onwards)
  6. HangUp, number, user, study,
  7. Finished, number, user, study,

The user is the Windows login name of the interviewer.

If the study name has not been set in project global then the name of the qif file will be sent instead.

The number is the telephone number from TELNUM.

The serial is the serial number of the current sample record.

The commands that the dialler/PDS sends to Telin are:

  1. Called, number
  2. EndInfo, information

QPSMR Telin open and close

When the program is opened the Start command is sent.

When the program is closed the Close command is sent.

PDS exchange

If the user wishes to receive a call from the PDS, they use the PDS button which causes a Ready command to be sent. Telin is then suspended until it receives a Called message from the PDS. This message contains the telephone number of the call that has been put through. Telin then looks up the number in the sample file (or partial file) and retrieves the record ready for the interview to start.


If the user wishes the dialler/PDS to dial, a number they retrieve the record first and then use the Dial button which causes a Dial command to be sent to PDS system with the number from the record.

If “Add serial” is used the a dialog box will appear that allows the telephone number for the new record to be set and dialled.


This is sent when the interviewer requests that the call be disconnected

It may be used after a Dial or Ready/Called command.

Call End Info exchange

If “Needs Call End Info” is set then when a record is saved the Finished command is sent to the connection and Telin waits for an EndInfo command to be returned with the information that is then stored in ZZZCEI.

Telephone numbers

Numbers are stored in the sample file in an entry called TELNUM.

IMPORTANT NOTE. The number sent by the PDS (following a Ready command) must be an exact match to the number stored in TELNUM. For comparison purposes the number is converted into a 64 bit integer number by adding a 1 to the front and removing all characters that are not digits. The 1 is added to preserve any leading zeros.

PDS Emulator V6 downloads

You can download the PDS Emulator V6 open source Visual Studio C# code here:

Download PDS Emulator V6 open source Visual Studio C# code