From 7e141eaf90619d3ee76a5f29f37a86efbcd99220 Mon Sep 17 00:00:00 2001 From: Guillaume DOTT Date: Wed, 11 Sep 2013 17:41:58 +0200 Subject: [PATCH] Check if phone number is the SIM phone number before ansering --- lib/smsd/cli.rb | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/smsd/cli.rb b/lib/smsd/cli.rb index 886a539..8a4bc49 100644 --- a/lib/smsd/cli.rb +++ b/lib/smsd/cli.rb @@ -20,13 +20,13 @@ module SMSd Process.daemon if options[:daemonize] loop do + sleep 5 break if @terminate modem.messages.each do |sms| - handle_message sms + handle_message sms unless check_number( + sms.phone_number, sms.type_of_address) end - - sleep 5 end modem.modem.close end @@ -49,6 +49,21 @@ module SMSd Signal.trap('SIGINT', signal_term) end + def check_number(number, type_of_address) + phone_numbers.each do |phone_number| + return true if phone_number[:number] == number && + phone_number[:type_of_address] == type_of_address + end unless phone_numbers.nil? + + false + end + + def phone_numbers + @phone_numbers ||= modem.phone_numbers + rescue Biju::AT::CmeError + nil + end + def handle_message(sms) if sms.valid? send_answer(sms)