X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FSMS%2FProvider.php;h=fb1a1a05310b9e6db06bea0688bb18f95387d39a;hb=fa6e7e67b3c515c36d390c75b7a4975408c4053f;hp=72c6e1251f817c0ef5c5bf5b54294e4a1cc3e07e;hpb=32dc2494c6d263ecee6621ad3d7ca4e892bb3d7a;p=civicrm-core.git diff --git a/CRM/SMS/Provider.php b/CRM/SMS/Provider.php index 72c6e1251f..fb1a1a0531 100644 --- a/CRM/SMS/Provider.php +++ b/CRM/SMS/Provider.php @@ -1,7 +1,7 @@ array($jobID, 'Integer'))); } + elseif($userID) { + $sourceContactID=$userID; + } else { $session = CRM_Core_Session::singleton(); $sourceContactID = $session->get('userID'); @@ -132,14 +135,13 @@ INNER JOIN civicrm_mailing_job mj ON mj.mailing_id = m.id AND mj.id = %1"; return false; } - $activityTypeID = CRM_Core_OptionGroup::getValue('activity_type', 'SMS', 'name'); + $activityTypeID = CRM_Core_OptionGroup::getValue('activity_type', 'SMS delivery', 'name'); // note: lets not pass status here, assuming status will be updated by callback $activityParams = array( 'source_contact_id' => $sourceContactID, 'target_contact_id' => $headers['contact_id'], 'activity_type_id' => $activityTypeID, 'activity_date_time' => date('YmdHis'), - 'subject' => 'SMS Sent', 'details' => $message, 'result' => $apiMsgID, ); @@ -162,7 +164,7 @@ INNER JOIN civicrm_mailing_job mj ON mj.mailing_id = m.id AND mj.id = %1"; function processInbound($from, $body, $to = NULL, $trackID = NULL) { $formatFrom = $this->formatPhone($this->stripPhone($from), $like, "like"); $escapedFrom = CRM_Utils_Type::escape($formatFrom, 'String'); - $fromContactID = CRM_Core_DAO::singleValueQuery('SELECT contact_id FROM civicrm_phone WHERE phone LIKE "' . $escapedFrom . '"'); + $fromContactID = CRM_Core_DAO::singleValueQuery('SELECT contact_id FROM civicrm_phone JOIN civicrm_contact ON civicrm_contact.id = civicrm_phone.contact_id WHERE !civicrm_contact.is_deleted AND phone LIKE "%' . $escapedFrom . '"'); if (! $fromContactID) { // unknown mobile sender -- create new contact @@ -191,7 +193,7 @@ INNER JOIN civicrm_mailing_job mj ON mj.mailing_id = m.id AND mj.id = %1"; if ($to) { $to = CRM_Utils_Type::escape($to, 'String'); - $toContactID = CRM_Core_DAO::singleValueQuery('SELECT contact_id FROM civicrm_phone WHERE phone LIKE "' . $to . '"'); + $toContactID = CRM_Core_DAO::singleValueQuery('SELECT contact_id FROM civicrm_phone JOIN civicrm_contact ON civicrm_contact.id = civicrm_phone.contact_id WHERE !civicrm_contact.is_deleted AND phone LIKE "%' . $to . '"'); } else { $toContactID = $fromContactID; @@ -199,7 +201,7 @@ INNER JOIN civicrm_mailing_job mj ON mj.mailing_id = m.id AND mj.id = %1"; if ($fromContactID) { $actStatusIDs = array_flip(CRM_Core_OptionGroup::values('activity_status')); - $activityTypeID = CRM_Core_OptionGroup::getValue('activity_type', 'SMS', 'name'); + $activityTypeID = CRM_Core_OptionGroup::getValue('activity_type', 'Inbound SMS', 'name'); // note: lets not pass status here, assuming status will be updated by callback $activityParams = array( @@ -207,7 +209,6 @@ INNER JOIN civicrm_mailing_job mj ON mj.mailing_id = m.id AND mj.id = %1"; 'target_contact_id' => $fromContactID, 'activity_type_id' => $activityTypeID, 'activity_date_time' => date('YmdHis'), - 'subject' => 'SMS Received', 'status_id' => $actStatusIDs['Completed'], 'details' => $body, 'phone_number' => $from