Open billsimon opened 1 week ago
SMS adaptor is potentially passing null strings to the emojione library which was tolerated under PHP 7.x but not 8.x - most likely to happen when sending an MMS image only, no text.
Also seems to be specific to the mobile client (maybe desktop too), but not UCP. UCP sends an empty message string with MMS and so the bug doesn't show up when testing there.
I can add some validation to the SMS connector to prevent this.
@asasin114 if you are able to test on UCP and confirm that it works there but not iPhone that would be helpful.
I can confirm that sending an image with an empty text string from UCP and the Talk desktop app does work. It just appears to be iPhone... My wireless carrier is rejecting any MMS messages but I think that's a separate issue...
Are you able to apply this patch and let me know your results?
diff --git a/adaptor/Smsconnector.class.php b/adaptor/Smsconnector.class.php
index 2ba8688..5da4dbf 100644
--- a/adaptor/Smsconnector.class.php
+++ b/adaptor/Smsconnector.class.php
@@ -13,6 +13,8 @@ class Smsconnector extends \FreePBX\modules\Sms\AdaptorBase {
public function sendMedia($to,$from,$cnam,$message=null,$files=array(),$time=null,$adaptor=null,$emid=null,$chatId='')
{
+ $message ??= ''; // string is expected, so don't allow a null
+
// Store in database
$retval = array();
try
@@ -41,6 +43,8 @@ class Smsconnector extends \FreePBX\modules\Sms\AdaptorBase {
public function sendMessage($to,$from,$cnam,$message,$time=null,$adaptor=null,$emid=null,$chatId='')
{
+ $message ??= ''; // string is expected, so don't allow a null
+
// Clean up 'to' number if we got one with a +. Only seems to apply to mobile app. UCP
// and desktop apps format number before invoking this module.
$to = ltrim($to, '+');
I seem to be running into this issue on the iPhone app using FreePBX 17.0.19.16 and SMS Connector 16.0.17.1 with PHP 8.2.24. Using Telnyx if that makes any difference.
Full error for me is: Unable to store media: Unable to insert Message into DB preg_replace_callback(): Passing null to parameter #3 ($subject) of type array|string is deprecated
Originally posted by @asasin114 in https://github.com/simontelephonics/smsconnector/issues/56#issuecomment-2438896720