Uploaded image for project: 'CiviCRM'
  1. CiviCRM
  2. CRM-9782 CiviSMS Phase1
  3. CRM-9786

Callback handling - delivery acknowledgement + status update

    Details

    • Type: Sub-task
    • Status: Done/Fixed
    • Priority: Trivial
    • Resolution: Fixed/Completed
    • Affects Version/s: 4.2.0
    • Fix Version/s: 4.2.0
    • Component/s: None
    • Labels:
      None

      Description

      A delivery acknowledgment can be monitored via the callback URL.

      Code flow:
      --------------
      The callback file could be: extern/sms.php - [input: carrier=clickatell for example]. This file would be the main handler for processing acknowledgments irrespective of provider.

      The callback url could be sth like http://example.com/sites/all/modules/civicrm/extern/sms.php?provider=clickatell

      The callback file based on input / provider could ask specific provider files to complete the processing, example - CRM/SMS/Provider/Clickatell.php (if provider=Clickatell)

      A base file CRM/SMS/Provider.php parent of CRM/Core/SMS/{$Provider}.php would try to do most of processing by itself. Specific operations only be delegated to CRM/SMS/Provider/{$provider}.php based on the amount of functionality that differs from base class.

      Action / post process
      ---------------------------
      For now activity would be updated with status & appropriate message (in location field).
      apiMsgId stored in result column of activity table (by $provider->send() action) would now be used to uniquely identify & update an activity record.

      Hooks would allow creating custom tables and updating other params time, cost .. values.
      Since $provider->send() does not set the status initially, any kind of status would be enough to indicate that there has been a callback, and status column would always reflect the current status at that point of time.

        Attachments

          Activity

            People

            • Assignee:
              deepak Deepak Srivastava
              Reporter:
              deepak Deepak Srivastava
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: