From c5a6413b1dd2ca86305dfd0ef2483b223ab73295 Mon Sep 17 00:00:00 2001 From: Deepak Srivastava Date: Fri, 26 Apr 2013 15:53:06 +0530 Subject: [PATCH] CRM-12427 Fixes and patch --- CRM/Activity/BAO/Activity.php | 48 +++++++++++++----- CRM/Contact/Form/Task/SMSCommon.php | 44 +++++++++------- CRM/Mailing/BAO/Job.php | 3 +- .../extensions/org.civicrm.sms.clickatell.zip | Bin 7471 -> 7486 bytes .../org_civicrm_sms_clickatell.php | 5 +- tools/extensions/org.civicrm.sms.twilio.zip | Bin 5934 -> 6013 bytes .../org_civicrm_sms_twilio.php | 17 +++++-- 7 files changed, 77 insertions(+), 40 deletions(-) diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php index 941e55c19e..d28b76373d 100644 --- a/CRM/Activity/BAO/Activity.php +++ b/CRM/Activity/BAO/Activity.php @@ -1499,7 +1499,8 @@ LEFT JOIN civicrm_case_activity ON ( civicrm_case_activity.activity_id = tbl.a } $success = 0; - $escapeSmarty = $sent = FALSE; + $escapeSmarty = FALSE; + $errMsgs = array(); foreach ($contactDetails as $values) { $contactId = $values['contact_id']; @@ -1525,19 +1526,33 @@ LEFT JOIN civicrm_case_activity ON ( civicrm_case_activity.activity_id = tbl.a $smsParams['To'] = ''; } - if (self::sendSMSMessage( - $contactId, - $tokenText, - $tokenHtml, - $smsParams, - $activityID - )) { - // even a single successful delivery should set this falg to true - $sent = TRUE; + $sendResult = self::sendSMSMessage( + $contactId, + $tokenText, + $tokenHtml, + $smsParams, + $activityID + ); + + if (PEAR::isError($sendResult)) { + // Collect all of the PEAR_Error objects + $errMsgs[] = $sendResult; + } else { $success++; } } + // If at least one message was sent and no errors + // were generated then return a boolean value of TRUE. + // Otherwise, return FALSE (no messages sent) or + // and array of 1 or more PEAR_Error objects. + $sent = FALSE; + if ($success > 0 && count($errMsgs) == 0) { + $sent = TRUE; + } elseif (count($errMsgs) > 0) { + $sent = $errMsgs; + } + return array($sent, $activity->id, $success); } @@ -1548,7 +1563,7 @@ LEFT JOIN civicrm_case_activity ON ( civicrm_case_activity.activity_id = tbl.a * @param int $activityID the activity ID that tracks the message * @param array $smsParams the params used for sending sms * - * @return boolean true if successfull else false. + * @return mixed true on success or PEAR_Error object * @access public * @static */ @@ -1579,7 +1594,11 @@ LEFT JOIN civicrm_case_activity ON ( civicrm_case_activity.activity_id = tbl.a // make sure both phone are valid // and that the recipient wants to receive sms if (empty($toPhoneNumber) or $toDoNotSms) { - return FALSE; + return PEAR::raiseError( + 'Recipient phone number is invalid or recipient does not want to receive SMS', + null, + PEAR_ERROR_RETURN + ); } $message = $tokenHtml ? $tokenHtml : $tokenText; @@ -1588,8 +1607,9 @@ LEFT JOIN civicrm_case_activity ON ( civicrm_case_activity.activity_id = tbl.a $smsParams['parent_activity_id'] = $activityID; $providerObj = CRM_SMS_Provider::singleton(array('provider_id' => $smsParams['provider_id'])); - if (!$providerObj->send($recipient, $smsParams, $message, NULL)) { - return FALSE; + $sendResult = $providerObj->send($recipient, $smsParams, $message, NULL); + if (PEAR::isError($sendResult)) { + return $sendResult; } // add activity target record for every sms that is send diff --git a/CRM/Contact/Form/Task/SMSCommon.php b/CRM/Contact/Form/Task/SMSCommon.php index 79cbfd1aea..611e52a33b 100644 --- a/CRM/Contact/Form/Task/SMSCommon.php +++ b/CRM/Contact/Form/Task/SMSCommon.php @@ -402,29 +402,39 @@ class CRM_Contact_Form_Task_SMSCommon { $contactIds ); - if ($sent) { + if ($countSuccess > 0) { CRM_Core_Session::setStatus(ts('One message was sent successfully.', array('plural' => '%count messages were sent successfully.', 'count' => $countSuccess)), ts('Message Sent', array('plural' => 'Messages Sent', 'count' => $countSuccess)), 'success'); } - //Display the name and number of contacts for those sms is not sent. - $smsNotSent = array_diff_assoc($allContactIds, $contactIds); - - if (!empty($smsNotSent)) { - $not_sent = array(); - foreach ($smsNotSent as $index => $contactId) { - $displayName = $form->_allContactDetails[$contactId]['display_name']; - $phone = $form->_allContactDetails[$contactId]['phone']; - $contactViewUrl = CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid=$contactId"); - $not_sent[] = "$displayName"; + if (is_array($sent)) { + // At least one PEAR_Error object was generated. + // Display the error messages to the user. + $status = ''; + CRM_Core_Session::setStatus($status, ts('One Message Not Sent', array('count' => count($sent), 'plural' => '%count Messages Not Sent')), 'info'); + } else { + //Display the name and number of contacts for those sms is not sent. + $smsNotSent = array_diff_assoc($allContactIds, $contactIds); + + if (!empty($smsNotSent)) { + $not_sent = array(); + foreach ($smsNotSent as $index => $contactId) { + $displayName = $form->_allContactDetails[$contactId]['display_name']; + $phone = $form->_allContactDetails[$contactId]['phone']; + $contactViewUrl = CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid=$contactId"); + $not_sent[] = "$displayName"; + } + $status = '(' . ts('because no phone number on file or communication preferences specify DO NOT SMS or Contact is deceased'); + if (CRM_Utils_System::getClassName($form) == 'CRM_Activity_Form_Task_SMS') { + $status .= ' ' . ts("or the contact is not part of the activity '%1'", array(1 => self::RECIEVED_SMS_ACTIVITY_SUBJECT)); + } + $status .= ')'; + CRM_Core_Session::setStatus($status, ts('One Message Not Sent', array('count' => count($smsNotSent), 'plural' => '%count Messages Not Sent')), 'info'); } - $status .= ')'; - CRM_Core_Session::setStatus($status, ts('One Message Not Sent', array('count' => count($smsNotSent), 'plural' => '%count Messages Not Sent')), 'info'); } - } } diff --git a/CRM/Mailing/BAO/Job.php b/CRM/Mailing/BAO/Job.php index 8c81602584..46fa34c5bc 100644 --- a/CRM/Mailing/BAO/Job.php +++ b/CRM/Mailing/BAO/Job.php @@ -653,7 +653,8 @@ VALUES (%1, %2, %3, %4, %5, %6, %7) CRM_Core_Error::setCallback(); } - if (is_a($result, 'PEAR_Error')) { + // FIXME: for now we skipping bounce handling for sms + if (is_a($result, 'PEAR_Error') && !$mailing->sms_provider_id) { // CRM-9191 $message = $result->getMessage(); if (strpos($message, diff --git a/tools/extensions/org.civicrm.sms.clickatell.zip b/tools/extensions/org.civicrm.sms.clickatell.zip index 9730f743290abc4e3d58b287c5368068331877c7..b20af57445635e8a650ff2540c3b19dbfb26499c 100644 GIT binary patch delta 3943 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 Bp2PqE delta 3959 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 NI%YP!eTIJ?{tp<`dRPDe diff --git a/tools/extensions/org.civicrm.sms.clickatell/org_civicrm_sms_clickatell.php b/tools/extensions/org.civicrm.sms.clickatell/org_civicrm_sms_clickatell.php index 03a8cea3b2..9330d372e5 100644 --- a/tools/extensions/org.civicrm.sms.clickatell/org_civicrm_sms_clickatell.php +++ b/tools/extensions/org.civicrm.sms.clickatell/org_civicrm_sms_clickatell.php @@ -285,9 +285,8 @@ class org_civicrm_sms_clickatell extends CRM_SMS_Provider { } else { // TODO: Should add a failed activity instead. - - CRM_Core_Error::debug_log_message($response['data'] . " - for phone: {$postDataArray['to']}"); - return; + CRM_Core_Error::debug_log_message($response['data'] . " - for phone: {$postDataArray['to']}"); + return PEAR::raiseError($response['data'], null, PEAR_ERROR_RETURN); } } } diff --git a/tools/extensions/org.civicrm.sms.twilio.zip b/tools/extensions/org.civicrm.sms.twilio.zip index 7c581aec36fb50207f2af6ad0cb13b7fe8f6dcc5..49a3e6df78ec823b4105fe7ad13a0e582b0872bc 100644 GIT binary patch delta 2590 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 A`v3p{ delta 2485 zcmV;m2}<_;F0L++Mgu?Pbg@ZK0uI8AmO}nwC5y%g0083|lc5Vde|nyt8$df7^d~8U!Hzi@;`n_S81*DLk)g>{T*IE*5C{D#a8sE z7qI0@3z@)A?Kkize_vm|t3NV*P~vuFa?eJiJ~YE4cyoOG)9W|KC*Sn%yZSR<2@OjT zbHH~7DN_dIGIOr|%=~=$vpIbdC(83rC~8ug|yxtdNcXMxLKShp)U-z(1_k!>1t5l66MTMmkcTx>BD%o6b1eDXM%*U#Vz zuvp^f!~RfZ5CF@bDtW8e`YnhhB+|6dpTw}RDkx9Je?`z+9u`_<>Yf03^%W72M? z<6Ui|o1Fr%@aH?};SZe}jvt&q^aH=9Ed0c7(YNV^{TzNG z;6n)Xe_96yTT@8j_l75tCj4M_F$*S2ZUxEK=UNTGIs%BtQUT_H8e38?)0@V1$iy|* z8Xa_Iziyd&L5h&v+Aliz8@Xb5NCHt05N1v&r_i9RHr`e?Nwd9uS3M6iTQx*VAux%= zL-VML+~24eIh8~)b&-}E6{4<0_TfR$aAg5fe@7?l_|OrpZJ0^8 zp{NtlZCeaSn3Z_7;*TFDE7F!Q2W&pBAC1HO)0P}iSC+9P*PVLrVY9AS&lqfQ5N zCX8UQ_=8j0EN`JsS$zF-iSpE9R|a_co z_1xSh6-bSnxtp1P06u(j+QB{6GS8PnX#=6lH}N1WI>j5gQc)hKJfl?E%028<{0u2c zWE4Qn|8a33C#yeN!4uhSwe-+a!>OOe_3!> z_N|@e&j;)`AWrcFnTkO>-ySQZELfX!1Otyq^wumPH7<4A0iHe8BD;N(qyHt}u^`}t z;egdu8WIbU;UTfQV9L!e@&%Q#m%qS31nQLyRjA=Q`p-eEu{l#qw-4c=NRzUvA zAFOp#B<85RrbJ6DwC1L%dA#g)e@nt}okQFl5g}ZBMfvv|(mU$eUTjvZsjkW<+q>Rn zKHa+ATW%($W~u;X8$9~=uQ`ny5a|w2*Ji1oi@wY#Sz`CscG%}C3U11$Qf67 z%k=sGWDRljPWkH z@BD_D?Ew{-+4D^T$Q`(FBO11Xm9yQO41LDSDv(k?xoxbmpYQJYjO%4*sqn;L@aT0w zJl5i#q(*IM+JoNMYT#5Oe*p}v^i}m`zh0I4&?&81$D4yl1=dMp%qz|uBfVqz*Y9#+ zm7|<`+g^J^%#WqK*HC!PUNVb{?bi8K2T!QSukoaMeA4NKq1>QPozI8si=wL%w&snS z#|~DZ3Q`GeE*+LDs{8zQ-|U@?9-N^sdS;WE z;t)_`-H6Z`e@t;6skX{tm%siQx#FpUe~YMG&zF3i8ti_wuhz%MY!5;`Y@My} zW|cn4TgNs`zI_p#F1E{x#beCsUK;k!GfxNin9qxe^sO`%1gJ4WF|ct`t1tD z);^#mWeKol_2+=$Y^`VZ%#xdWy|%>36??)J>5V%9YO`4`_hp$5U&>zG={|?Uld|}P z#ryeu0wi5P+<(G|hOt!Q59Z|7eTz3jY#F+yEy1fC%ur$JMl<8cG6Oi;Yrg*q@%QTQ zw(k7rVgz|#e=aat*&F~j2QK&Lzzcu(+8+d8Yv+s;UXYe4mfx&X`j>1rJndl~PjE6d zrE_`<`k2Pc$vnWfmL0;+w4Yqg<}En+6V~U$!RTzZJF}nR*=#VKd^jtl>p6?2gZb5T zJfHT)v-82UW#{pcKhD;5c2l<~{GNy9tBc#9R#DY!e>*nuo*8kg!ge7ZL4`ef?(9Dt zpI-(?HBN+9Ptv-CLJ^l|+O9KQH0000808den zLe4fFlb-@T10R=ev)=+X1p^%2O}tTQ7R~PldlyV zlV%lV5yFg?LjGbUi^d250OJ_|05Ox?6)2Ow3mgUo00Sc^b(60ZIsw0vz7`sj1Qt>P z{t%PD78#Rq7ATVt7X|~ujFyub7aIb)6qCOe8Iw;J1p^}}b(2>YAO;H+00000(S^BN diff --git a/tools/extensions/org.civicrm.sms.twilio/org_civicrm_sms_twilio.php b/tools/extensions/org.civicrm.sms.twilio/org_civicrm_sms_twilio.php index a4eedc97db..07fb7fde5e 100644 --- a/tools/extensions/org.civicrm.sms.twilio/org_civicrm_sms_twilio.php +++ b/tools/extensions/org.civicrm.sms.twilio/org_civicrm_sms_twilio.php @@ -145,7 +145,7 @@ class org_civicrm_sms_twilio extends CRM_SMS_Provider { * * @param array the message with a to/from/text * - * @return mixed true on sucess or PEAR_Error object + * @return mixed true on success or PEAR_Error object * @access public */ function send($recipients, $header, $message, $jobID = NULL) { @@ -171,7 +171,14 @@ class org_civicrm_sms_twilio extends CRM_SMS_Provider { return $sid; } else { - return PEAR::raiseError($response['data']); + $errMsg = $send->RestException->Message + . ' For more information, see ' + . $send->RestException->MoreInfo; + return PEAR::raiseError( + $errMsg, + null, + PEAR_ERROR_RETURN + ); } } } @@ -209,10 +216,10 @@ class org_civicrm_sms_twilio extends CRM_SMS_Provider { $response['http_code'] = curl_getinfo($this->_ch, CURLINFO_HTTP_CODE); if (empty($response['http_code'])) { - return PEAR::raiseError('No HTTP Status Code was returned.'); + return PEAR::raiseError('No HTTP Status Code was returned.', null, PEAR_ERROR_RETURN); } elseif ($response['http_code'] === 0) { - return PEAR::raiseError('Cannot connect to the Twilio API Server.'); + return PEAR::raiseError('Cannot connect to the Twilio API Server.', null, PEAR_ERROR_RETURN); } $response['data'] = $status; @@ -220,4 +227,4 @@ class org_civicrm_sms_twilio extends CRM_SMS_Provider { return ($response); } -} \ No newline at end of file +} -- 2.25.1