code: def __threadedHandleModemNotification(self, lines):
          
          for line in lines:
              if 'RING' in line:
                  # Incoming call (or existing call is ringing)
                  self._handleIncomingCall(lines)
                  return
              elif line.startswith('+CMTI'):
                  # New SMS message indication
                  self._handleSmsReceived(line)
                  return
              elif line.startswith('+CUSD'):
                  # USSD notification - either a response or a MT-USSD ("push USSD") message
                  self._handleUssd(lines)
                  return
              elif line.startswith('+CDSI'):
                  # SMS status report
                  self._handleSmsStatusReport(line)
                  return
              else:
                  # Check for call status updates            
                  for updateRegex, handlerFunc in self._callStatusUpdates:
                      match = updateRegex.match(line)
                      if match:
                          # Handle the update
                          handlerFunc(match)
                          return
          # If this is reached, the notification wasn't handled
          self.log.debug('Unhandled unsolicited modem notification: %s', lines)
docs: Implementation of _handleModemNotification() to be run in a separate thread
          
          :param lines The lines that were read