diff --git a/app/services/twilio/incoming_message_service.rb b/app/services/twilio/incoming_message_service.rb index 4473131df..097274d44 100644 --- a/app/services/twilio/incoming_message_service.rb +++ b/app/services/twilio/incoming_message_service.rb @@ -9,7 +9,7 @@ class Twilio::IncomingMessageService set_contact set_conversation @message = @conversation.messages.create!( - content: params[:Body], + content: message_body, account_id: @inbox.account_id, inbox_id: @inbox.id, message_type: :incoming, @@ -46,6 +46,10 @@ class Twilio::IncomingMessageService TelephoneNumber.parse(phone_number).international_number end + def message_body + params[:Body].delete("\u0000") + end + def set_contact contact_inbox = ::ContactInboxWithContactBuilder.new( source_id: params[:From], diff --git a/spec/services/twilio/incoming_message_service_spec.rb b/spec/services/twilio/incoming_message_service_spec.rb index 62e368ca0..cf9d42874 100644 --- a/spec/services/twilio/incoming_message_service_spec.rb +++ b/spec/services/twilio/incoming_message_service_spec.rb @@ -24,6 +24,19 @@ describe Twilio::IncomingMessageService do expect(conversation.reload.messages.last.content).to eq('testing3') end + it 'removes null bytes' do + params = { + SmsSid: 'SMxx', + From: '+12345', + AccountSid: 'ACxxx', + MessagingServiceSid: twilio_channel.messaging_service_sid, + Body: "remove\u0000 null bytes\u0000" + } + + described_class.new(params: params).perform + expect(conversation.reload.messages.last.content).to eq('remove null bytes') + end + it 'creates a new conversation' do params = { SmsSid: 'SMxx',