Search code examples
phplaravelsmpp

UTF8 Encoded messages broken charecter on php smpp sms sending


Hi am using php smpp sms sending package to work on socket sms sending.

$transport = new SocketTransport(array(config('app.smppHost')), config('app.smppPort'));
            $transport->setRecvTimeout(10000);
            $smpp = new SmppClient($transport);

I am sending with $encodedMessage = GsmEncoder::utf8_to_gsm0338($message);

$smpp->sendSMS($from,$to,$encodedMessage,null,null);

UPDATE
But the sms is receiving with broken character.I am sending in myn language and also tried as suggested

$smpp->sendSMS($from,$to,$encodedMessage,null,null);

But now half broken half proper message is sending. I think some encoded needed ???


Solution

  • This is special language encoded issue you need both override the encoded version in smpp package as well as encode the text itself.

    First convert the string

    mb_convert_encoding($message,'UCS-2',"utf8");
    

    Then send sms in encoded in type 8. it should work properly

    $smpp->sendSMS($from,$to,$encodedMessage,null,8);