TelQ logo

TelQ Platform

SMS Testing Tool
service integration options

TelQ provides a wide range of integration options for you SMS testing, including SMPP and REST API integration, as well as direct integration with the Alaris platform.

TelQ integration

SMPP API integration

SMPP API allows you to connect directly to your SMPP server, to send and to schedule test messages from our user interface.

Quick set-up

If you already have an SMPP server, this type of integration will probably be the fastest.

Custom service type

You can assign a unique service type to each supplier for internal routing purposes.

Custom TLV parameters

Unique TLV parameters can also be used to set up flexible internal routing on your server.

Multiple connections

You can set up multiple SMPP binds from our platform to your server with a unique username and password.

Encryption

We encrypt your SMPP connection passwords on our backend side and keep them safe.

SMPP integration video tutorial

Learn how to integrate with the TelQ SMS testing service via SMPP

Integrating with service type or TLV

You can set up one SMPP connection to your server and assign a unique Service Type or TLV  to different suppliers in our user interface. When you send the test message to a particular supplier, the unique parameter will automatically be added to the message, allowing you to do internal routing based on it.

Flexible routing

Assign unique identifying parameters like service type or TLV for each supplier and set up internal routing for such messages.

Secure

You have full control of the traffic since we don't connect to your suppliers directly.

Easy set-up

You only need one SMPP bind to be able to test all of your suppliers. A simple addition of new suppliers.

Upload from Excel

We can upload a list of supplier names and the above mentioned parameters from an excel file.

SMPP SMS testing platform integration
SMPP SMS testing platform integration

Integrating with SMPP bind login as an identifier

This approach requires you to set up multiple SMPP connections, one for each supplier you would like to test. This works only if you can set up custom routing for each of the connections. In this case, the SMPP bind login name would be the unique identifier for your system to do the routing and send traffic to the corresponding supplier. This takes more time to set up, however, it should be supported by most SMPP servers.

Flexible routing

Create as many SMPP binds as you need in order to include all your suppliers in our testing platform.

Secure

You have full control of the traffic since we don't connect to your suppliers directly.

Highly compatible

This integration approach works with most SMPP servers — even ones with the most basic features.

Upload from Excel

We can upload a list of suppliers and SMPP binds parameters from an excel file on your behalf.

Download SMPP API

REST API integration

REST API integration allows you to integrate directly with your system's user interface.

Complete integration

REST API allows you full flexibility as you create the SMS on your platform and receive the test results in your system.

Highest security

Since you send tests directly from your system, you have full control over your SMPP or ss7 channels.

Complete automation

Time saving -- Once set up, REST API will allow you and your colleagues to keep using only your system. No resources are needed for onboarding or training for the TelQ platform.

				
					use TelQ\Sdk\Models\Destination;
use TelQ\Sdk\Models\Tests;

// new Destination('mcc', 'mnc', 'ported from mnc')
$sendTests = Tests::fromArray([
    'destinationNetworks' => [
        new Destination('222', '36', '10'),
        new Destination('505', '01')
    ],
    'resultsCallbackUrl' => 'https://my-domain.com/telq-callback',
    'maxCallbackRetries' => 3,
    'testIdTextType' => 'ALPHA',
    'testIdTextCase' => 'MIXED',
    'testIdTextLength' => 6,
    'testTimeToLiveInSeconds' => 3600
]);
$tests = $api->sendTests($sendTests);
foreach ($tests as $test) {
    echo 'Id: ', $test->getId(), PHP_EOL;
    echo 'PhoneNumber: ', $test->getPhoneNumber(), PHP_EOL;
    echo 'TestIdText: ', $test->getTestIdText(), PHP_EOL;
    echo 'Error message: ', $test->getErrorMessage() ?: 'empty', PHP_EOL;
    echo 'Destination:', PHP_EOL;
    echo '    Mcc: ', $test->getDestinationNetwork()->getMcc(), PHP_EOL;
    echo '    Mnc: ', $test->getDestinationNetwork()->getMnc(), PHP_EOL;
    echo '    Ported from mnc: ', $test->getDestinationNetwork()->getPortedFromMnc() ?: 'empty', PHP_EOL;
    echo PHP_EOL;
}
				
			
				
					curl -X POST "https://api.telqtele.com/v2.1/client/tests" -H "accept: */*"
  -H "Content-Type: application/json" -d "{ \"destinationNetworks\": [ { \"mcc\": \"208\",
      \"mnc\": \"10\", \"portedFromMnc\": \"20\" } ] }"

# Example of body with all available parameters
{
  "destinationNetworks": [
    {
      "mcc": "206",
      "mnc": "10",
      "portedFromMnc": "20"
    },
    {
      "mcc": "716",
      "mnc": "06",
    }
  ],
  "resultsCallbackUrl": "https://some-callback-url.com/some-path",
  "testIdTextType": "ALPHA_NUMERIC",
  "testIdTextCase": "MIXED",
  "testIdTextLength": "6",
  "maxCallbackRetries": 1,
  "testTimeToLiveInSeconds": 200
}
				
			
				
					destinationNetworks = [
    {
        "mcc": "206",
        "mnc": "10",
        "portedFromMnc": "20"
    },
    {
        "mcc": "716",
        "mnc": "06"
    }
]

requested_tests = test_client.initiate_new_tests(
    destinationNetworks=destinationNetworks,
    resultsCallbackUrl="https://my-callback-url.com/telq_result",
    maxCallbackRetries=3,
    testIdTextType="ALPHA_NUMERIC",
    testIdTextCase="MIXED",
    testIdTextLength=7,
    testTimeToLiveInSeconds=3000
)
requested_tests = test_client.initiate_new_tests(destinationNetworks=destinationNetworks)
				
			
				
					List<Network> networks = new ArrayList<>();

  Network network_1 = Network.builder()
    .mcc("206")
    .mnc("10")
    .portedFromMnc("20")
    .build();

  Network network_2 = Network.builder()
    .mcc("716")
    .mnc("06")
    .build();

  networks.add(network_1);
  networks.add(network_2);

  int maxCallBackRetries = 1;
  String resultsCallbackUrl = "https://some-callback-url.com/some-path";
  int testTimeToLive = 200;
  String callBackToken = "peHWFdAXikjzmMgqPTwhpeHWFdAXikjzmMgqPTwhpeHWFdAXikjzmMgqPTwh";

  TestIdTextOptions testIdTextOptions = TestIdTextOptions.builder()
    .testIdTextType(TestIdTextType.ALPHA_NUMERIC)
    .testIdTextCase(TestIdTextCase.MIXED)
    .testIdTextLength(6)
    .build();

  TestRequest testRequest = TestRequest.builder()
    .networks(networks)
    .maxCallbackRetries(maxCallBackRetries)
    .callbackUrl(resultsCallbackUrl)
    .callbackToken(callBackToken)
    .testTimeToLive(testTimeToLive)
    .timeUnit(TimeUnit.MINUTES)
    .testIdTextOptions(testIdTextOptions)
    .build();

  List<Test> requestedTests = testClient.initiateNewTests(testRequest);
				
			

View REST API

Help center

If you have more questions, please check out the following sections.
TelQ questions

Frequently Asked Questions

The following section provides answers o the most commonly asked questions. If you can't find the answer to your question, please contact us.