Difference between revisions of "MOR API callback init"

From Kolmisoft Wiki
Jump to navigationJump to search
 
(3 intermediate revisions by 2 users not shown)
Line 15: Line 15:


* '''device''' – device_id, which device should be used to initiate callback and which Caller ID will be set on the call (Device ID = Device ACC, or accountcode). You can find ACC in /billing/devices/devices_all). USER should be the owner of the device in MOR.
* '''device''' – device_id, which device should be used to initiate callback and which Caller ID will be set on the call (Device ID = Device ACC, or accountcode). You can find ACC in /billing/devices/devices_all). USER should be the owner of the device in MOR.
* '''dst''' – destination, which will be dialed when SOURCE answers.
* '''src''' – source, which number to dial first.
* '''src''' – source, which number to dial first.
* '''dst''' – destination, which will be dialed when SOURCE answers.


'''Note that parameters are shown in the same order as they have to be when generating the hash. Last parameter in a row is API_Secret_Key'''
'''Note that parameters are shown in the same order as they have to be when generating the hash. Last parameter in a row is API_Secret_Key'''
Line 30: Line 30:
* '''lega_tariff_id''' - which Tariff to use for User when calling to legA. Optional.
* '''lega_tariff_id''' - which Tariff to use for User when calling to legA. Optional.
* '''lega_reseller_tariff_id''' - which Tariff to use for Reseller when calling to legA. Optional.
* '''lega_reseller_tariff_id''' - which Tariff to use for Reseller when calling to legA. Optional.
* '''lega_lcr_id''' - which LCR to use for User when calling to legA. Optional.
* '''server_id''' - ID of Server which has to be used. Optional.
* '''server_id''' - ID of Server which has to be used. Optional.
* '''callback_uniqueid''' - if set to 1, MOR will return callback_uniqueid which links both Callback Calls (this callback_uniqueid is the same for legA and legB CDRs). Note that API response format will change if you use this parameter. Also, '''use_callback_uniqueid''' setting must be enabled in [[Mor.conf|mor.conf]]. Optional.
* '''callback_uniqueid''' - if set to 1, MOR will return callback_uniqueid which links both Callback Calls (this callback_uniqueid is the same for legA and legB CDRs). Note that API response format will change if you use this parameter. Also, '''use_callback_uniqueid''' setting must be enabled in [[Mor.conf|mor.conf]]. Optional.
Line 48: Line 49:


If parameter callback_uniqueid=1 was used, reponse will change to:
If parameter callback_uniqueid=1 was used, reponse will change to:
 
<?xml version="1.0" encoding="UTF-8"?>
  <page>
  <page>
     <status>ok</status>
     <status>ok</status>

Latest revision as of 08:12, 7 November 2018

Description

Callback Addon is needed in order to use MOR API callback.

This API method is often used to implement Click2Call functionality from webpage. Also it can be used in CRM systems like SugarCRM, Salesforce and others.

Usage

  • From MOR X4 call: /api/callback_init
  • For Backwards-compatibility old name 'callback' is also usable. Call: /api/callback
  • Methods: POST, GET(if allowed, not recomended)



Parameters

Parameters which are included into hash:

  • device – device_id, which device should be used to initiate callback and which Caller ID will be set on the call (Device ID = Device ACC, or accountcode). You can find ACC in /billing/devices/devices_all). USER should be the owner of the device in MOR.
  • dst – destination, which will be dialed when SOURCE answers.
  • src – source, which number to dial first.

Note that parameters are shown in the same order as they have to be when generating the hash. Last parameter in a row is API_Secret_Key

Parameters which are not included into hash:

  • hash - SHA1 hash constructed using parameters above and API_Secret_Key ( More described in Constructing hash). Required.
  • u – users username, not from the device! (user should be the owner of the device)
  • cli_lega - callerID on legA. Optional. Takes higher priority than GUI settings.
  • cli_legb - callerID on legB. Optional. Takes higher priority than GUI settings.
  • card_pin - Card PIN. Optional.
  • lega_tariff_id - which Tariff to use for User when calling to legA. Optional.
  • lega_reseller_tariff_id - which Tariff to use for Reseller when calling to legA. Optional.
  • lega_lcr_id - which LCR to use for User when calling to legA. Optional.
  • server_id - ID of Server which has to be used. Optional.
  • callback_uniqueid - if set to 1, MOR will return callback_uniqueid which links both Callback Calls (this callback_uniqueid is the same for legA and legB CDRs). Note that API response format will change if you use this parameter. Also, use_callback_uniqueid setting must be enabled in mor.conf. Optional.

You can omit <DESTINATION>. If you do so, SOURCE will be asked to enter it.

Request

HTML POST: http://<YOUR_SERVER_IP>/billing/api/callback?u=username&device=device_id&src=source&dst=destination



Returns

Success– Means callback is initiated.

<?xml version="1.0" encoding="UTF-8"?>
<status>Ok</status>

If parameter callback_uniqueid=1 was used, reponse will change to:

<?xml version="1.0" encoding="UTF-8"?>
<page>
    <status>ok</status>
    <callback_uniqueid>14811237541247270</callback_uniqueid>
</page>

Here <callback_uniqueid> will contain uniqueid that links both Callback legs (legA and legB).




Errors

Not authenticated – User is not present with provided username.

<?xml version="1.0" encoding="UTF-8"?>
<status>Not authenticated</status>

Bad device – Device does not exist or Device should belong to user if user does not have 'admin' rights.

<?xml version="1.0" encoding="UTF-8"?>
<status>Bad device</status>

No source – No source in request.

<?xml version="1.0" encoding="UTF-8"?>
<status>No source</status>

PIN was not found - Entered PIN is not numerical or not found.

<?xml version="1.0" encoding="UTF-8"?>
<status>PIN was not found</status>

Call is not received

  • Check your CDR for a FAILED call and reason why it failed.
  • Check Asterisk CLI for error.
  • Use Call Tracing to locate the error and fix it.



See also