Skip to content

Arkesel

Point your Arkesel shortcode at Asterisks, test it, and see the request and response format.

Before you start

  • A Arkesel account with a USSD shortcode (or a shared-code extension) assigned to you.
  • An Asterisks app, tested in the phone preview. New to Asterisks? Start with the Quickstart.
  • Arkesel selected in the builder's top bar, so the callback address is in Arkesel's format.

Connect Arkesel

  1. Deploy your app

    In the builder, press Save, then Deploy. Enter the shortcode Arkesel gave you and press Deploy.
  2. Copy the callback address

    Under Callback URL for Arkesel, press the copy button. It looks like this, with your app's id at the end:
    Callback address for Arkesel
    https://apis.useasterisks.com/api/ussd/arkesel/your-app-id
  3. Paste it into Arkesel

    Sign in to Arkesel, open the settings for your USSD shortcode, and paste the address into the callback field. Arkesel may call it the callback URL or webhook URL. Save.
Tip: Can't find the field, or don't have access to it? Send the address to your Arkesel account manager and ask them to point your shortcode at it.

Test the connection

  1. Open Live sessions

    In the Asterisks dashboard, keep Live sessions open.
  2. Dial your shortcode

    From a phone on a network Arkesel covers. Your first screen should appear, and the session shows up in Live sessions.
  3. Go through every path

    Try each option and a few wrong answers, as you did in the preview.

Nothing happens, or you see an error? Check Troubleshooting.

Technical details

You don't need this to get started. It is here for developers and for Arkesel's support team.

What Arkesel sends

Request
POST /api/ussd/arkesel/{appId}
Content-Type: application/json

{
  "sessionID": "a1b2c3...",
  "userID": "ARKESEL_USER",
  "newSession": true,
  "msisdn": "233244123456",
  "userData": "*928*55#",
  "network": "MTN"
}

newSession is true on dial and false for each reply. userData is the caller's latest reply.

What Asterisks answers

Response
{
  "sessionID": "a1b2c3...",
  "userID": "ARKESEL_USER",
  "msisdn": "233244123456",
  "message": "Coffee Shop\n1. Order coffee\n2. Opening hours\n3. Exit",
  "continueSession": true
}

continueSession is true to wait for a reply, or false to end the session.

The Network variable

{{Network}} holds the caller's network as Arkesel reports it in network.