/**
  * Process the following URI:
  * /api/v1/sms/ - to save an SMS.
  * 
  * When an SMS is saved a delivery confirmation SMS is sent back to sender.
  * @return mixed
  */
 private function process_sms_post()
 {
     // Convert sent post data to an array.
     $smsData = array();
     parse_str($this->file, $smsData);
     // Verify there is actually any content in the post data.
     if (isset($smsData['from']) && $smsData['from'] !== '' && isset($smsData['to']) && $smsData['to'] !== '' && isset($smsData['message']) && $smsData['message'] !== '' && isset($smsData['timestamp']) && $smsData['timestamp'] !== '') {
         // The sender and the recipient must be validated first.
         $smsUserCtr = new SMSUser_Controller();
         $sender = $smsUserCtr->get_smsuser_by_telephone($smsData['from']);
         $recipient = $smsUserCtr->get_smsuser_by_telephone($smsData['to']);
         if ($sender && $recipient) {
             // Save SMS if they're successfully validated.
             $sctr = new SMS_Controller();
             if ($sctr->save_SMS($sender->id, $recipient->id, $smsData)) {
                 // The SMS is received. Inform sender.
                 $cSend = new ClickSend_API();
                 return $cSend->send_delivery_confirmation($recipient->id, $sender->id, $sender->telephone);
             }
         }
     }
     return null;
 }